OSDN Git Service

e708c8ea9f57a452dec0bc1a2a476a1061c7544f
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-08-12  Richard Guenther  <rguenther@suse.de>
2
3         * tree-vrp.c (extract_range_from_unary_expr_1): Implement
4         -X as 0 - X.
5
6 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
7
8         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
9
10 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
11
12         * config/arm/arm.c (get_label_padding): New function.
13         (create_fix_barrier, md_reorg): Likewise.
14
15 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
16
17         PR target/49781
18         * config/i386/i386.md (*lea_5_zext): New.
19         (*lea_6_zext): Ditto.
20         * config/i386/predicates.md (const_32bit_mask): New predicate.
21         (lea_address_operand): Reject AND.
22         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
23         const_32bit_mask immediate.
24         (ix86_print_operand_address): Handle AND.
25         (memory_address_length): Ditto.
26
27 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
28             Brian Hackett  <bhackett1024@gmail.com>
29
30         * plugin.def: Add event for finish_decl.
31         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
32         * c-decl.c (finish_decl): Invoke callbacks on above event.
33         * doc/plugins.texi: Document above event.
34
35 2011-08-11  Richard Guenther  <rguenther@suse.de>
36
37         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
38         lookups, make looking through aggregate copies stronger.
39
40 2011-08-11  Richard Henderson  <rth@redhat.com>
41
42         PR bootstrap/50018
43         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
44
45 2011-08-11  Richard Guenther  <rguenther@suse.de>
46
47         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
48         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
49         (vrp_visit_stmt): Likewise.
50
51 2011-08-11  Richard Guenther  <rguenther@suse.de>
52
53         PR middle-end/50040
54         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
55         load of the other piece with TREE_NO_WARNING.
56         * tree-flow.h (warn_uninit): Adjust prototype.
57         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
58         the base variable and the expression that is used separately.
59         Properly query all TREE_NO_WARNING flags.
60         (struct walk_data): Remove.
61         (warn_uninitialized_var): Likewise.
62         (warn_uninitialized_vars): Do not walk gimple pieces but simply
63         look at all SSA uses of the statement.  Handle unused memory
64         separately.
65         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
66
67 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
68
69         * config/rx/rx.md (movsicc): Allow register to register transfers.
70         (*movsicc): Likewise.
71         (*stcc): Restrict this pattern to EQ and NE compares.
72         (*stcc_reg): New pattern.  Works for any comparison but only for
73         register transfers.
74
75 2011-08-11   Diego Novillo  <dnovillo@google.com>
76
77         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
78         Call stream_write_tree instead of output_record_start.
79         (lto_output_ts_binfo_tree_pointers): Likewise.
80
81         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
82         Convert it to a macro.
83         (stream_read_tree): Likewise.
84
85         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
86         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
87
88         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
89         and tree_read_bitfields.
90         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
91         (lto_write_tree): Call it.
92         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
93         * streamer-hooks.h (struct streamer_hooks): Remove fields
94         name, is_streamable and alloc_tree. Update all users.
95         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
96         (lto_materialize_tree): ... here.
97         Handle CALL_EXPR codes.
98         Remove call to lto_streamer_cache_append.
99         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
100         * tree-streamer.h (tree_read_bitfields): Declare.
101
102         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
103         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
104         * tree-streamer.h (stream_read_tree): New.  Replace all calls
105         to lto_input_tree with it.
106         (stream_write_tree): New.  Replace all calls to lto_output_tree,
107         lto_output_tree_ref and lto_output_tree_or_ref with it.
108         * lto-streamer-in.c (lto_read_tree): Inline code from
109         lto_streamer_read_tree.
110         (lto_input_tree): Move from tree-streamer-in.c.
111         * lto-streamer-out.c (lto_output_tree_ref): Make static.
112         Remove handling of NULL values for EXPR.
113         Do not handle EXPRs that are not indexable.
114         (lto_write_tree): Move from tree-streamer-out.c.
115         Inline lto_streamer_write_tree.
116         (lto_output_tree): Move from tree-streamer-out.c.
117         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
118         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
119         (lto_preload_common_nodes): Likewise.
120         Remove assertions and adjustments for nodes
121         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
122         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
123         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
124         * lto-streamer.h (lto_input_tree): Declare.
125         (lto_output_tree_ref): Remove.
126         * streamer-hooks.h (struct streamer_hooks): Remove fields
127         preload_common_nodes, indexable_with_decls_p,
128         pack_value_fields, unpack_value_fields and output_tree_header.
129         Update all users.
130         * tree-streamer-in.c (lto_materialize_tree): Make extern.
131         (lto_input_tree_pointers): Likewise.
132         (lto_read_tree): Move to lto-streamer-in.c.
133         (lto_input_integer_cst): Make extern.
134         (lto_get_pickled_tree): Likewise.
135         (lto_get_builtin_tree): Likewise.
136         (lto_input_tree): Move to lto-streamer-in.c.
137         * tree-streamer-out.c (pack_value_fields): Make extern.
138         (lto_output_tree_or_ref): Remove.  Replace all callers with
139         calls to stream_write_tree.
140         (lto_output_builtin_tree): Make extern.
141         (lto_streamer_write_tree): Inline into lto_write_tree.
142         (lto_output_tree_pointers): Make extern.
143         (lto_output_tree_header): Likewise.
144         (lto_output_integer_cst): Likewise.
145         (lto_write_tree): Move to lto-streamer-out.c.
146         (lto_output_tree): Likewise.
147         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
148         (preload_common_nodes): Likewise.
149         (lto_streamer_cache_create): Call it.
150         * tree-streamer.h: Include streamer-hooks.h.
151         (stream_write_tree): New.
152         (stream_read_tree): New.
153         (lto_input_tree): Remove.
154         (lto_materialize_tree): Declare.
155         (lto_input_tree_pointers): Declare.
156         (lto_get_pickled_tree): Declare.
157         (lto_get_builtin_tree): Declare.
158         (lto_input_integer_cst): Declare.
159         (lto_output_tree_header): Declare.
160         (pack_value_fields): Declare.
161         (lto_output_tree_pointers): Declare.
162         (lto_output_integer_cst): Declare.
163         (lto_output_builtin_tree): Declare.
164
165 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
166
167         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
168         only if producer writes to the register given by regno.
169
170 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
171             Alexander Monakov  <amonakov@ispras.ru>
172
173         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
174         (sched_get_condition_with_rev_uncached): ... this.  Factor out
175         condition caching logic into ...
176         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
177         attempt to use cache for instructions with zero luid.
178         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
179         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
180
181 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
182
183         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
184         get_seqno_for_a_jump.  Update the caller.
185         (get_seqno_by_succs): New.  Use it ...
186         (get_seqno_for_a_jump): ... here to find a seqno if looking at
187         predecessors was not sufficient.
188         (get_seqno_by_preds): Include head in iteration range, exclude insn.
189
190 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
191
192         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
193
194 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
195
196         * sel-sched-ir.h (register_unavailable_p): Declare.
197         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
198         (set_unavailable_target_for_expr): ... here to properly test
199         availability of a register.
200         (speculate_expr): Ditto.
201         * sel-sched.c (substitute_reg_in_expr): Ditto.
202         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
203
204 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
205
206         * sel-sched.c (verify_target_availability): Fix usage of
207         hard_regno_nregs.
208
209 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
210
211         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
212         recognized by cannot_copy_insn_p hook and volatile instructions.
213
214 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
215
216         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
217
218 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
219
220         * doc/md.texi (define_bypass): Say that the instruction names can
221         be filename-style globs.
222         * Makefile.in (FNMATCH_H): Define.
223         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
224         * genattrtab.c: Include fnmatch.h.
225         (bypass_list): Change field name from "insn" to "pattern".
226         (gen_bypass_1): Update accordingly.
227         (process_bypasses): Use fnmatch to check for matches between
228         insn reservations and define_bypasses.
229         * genautomata.c: Include fnmatch.h.
230         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
231         and out_pattern respectively.
232         (gen_bypass, insert_bypass): Update accordingly.
233         (for_each_matching_insn, process_bypass_2, process_bypass_1)
234         (process_bypass): New functions.
235         (process_decls): Use process_bypass.  Update after field name changes.
236
237 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
238
239         PR target/49687
240         * config/avr/avr.md (smulqi3_highpart): New insn.
241         (umulqi3_highpart): New insn.
242         (*subqi3.ashiftrt7): New insn.
243         (smulhi3_highpart): New expander.
244         (umulhi3_highpart): Nex expander.
245         (*smulhi3_highpart_call): New insn.
246         (*umulhi3_highpart_call): New insn.
247         (extend_u): New code attribute.
248         (extend_prefix): Rename code attribute to extend_su.
249         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
250         widening QI/HI multiply.
251
252 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
253
254         PR tree-optimization/50039
255         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
256         that DEF_STMT has a stmt_vec_info.
257
258 2011-08-10  Richard Guenther  <rguenther@suse.de>
259
260         * tree.h (can_trust_pointer_alignment): Remove.
261         * builtins.c (can_trust_pointer_alignment): Remove.
262
263 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
264
265         * c-typeck.c (scalar_to_vector): New function. Try scalar to
266         vector conversion.
267         (stv_conv): New enum for scalar_to_vector return type.
268         (build_binary_op): Adjust.
269         * doc/extend.texi: Description of scalar to vector expansion.
270
271 2011-08-10  Richard Guenther  <rguenther@suse.de>
272
273         * tree.h (get_pointer_alignment): Remove max-align argument.
274         (get_object_alignment): Likewise.
275         * builtins.c (get_object_alignment_1): Adjust.
276         (get_object_alignment): Remove max-align argument.
277         (get_pointer_alignment): Likewise.
278         (expand_builtin_strlen): Adjust.
279         (expand_builtin_memcpy): Likewise.
280         (expand_builtin_mempcpy_args): Likewise.
281         (expand_builtin_strncpy): Likewise.
282         (expand_builtin_memset_args): Likewise.
283         (expand_builtin_memcmp): Likewise.
284         (expand_builtin_strcmp): Likewise.
285         (expand_builtin_strncmp): Likewise.
286         (get_builtin_sync_mem): Likewise.
287         (fold_builtin_memset): Likewise.
288         (fold_builtin_memory_op): Likewise.
289         (expand_builtin_memory_chk): Likewise.
290         * emit-rtl.c (get_mem_align_offset): Likewise.
291         (set_mem_attributes_minus_bitpos): Likewise.
292         * expr.c (expand_assignment): Likewise.
293         (expand_expr_real_1): Likewise.
294         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
295         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
296         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
297         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
298         * value-prof.c (gimple_stringops_transform): Likewise.
299
300 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
301
302         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
303         * doc/tm.texi: Regenerate.
304
305 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
306
307         PR target/29560
308         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
309         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
310         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
311         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
312         shift target is unused.
313
314 2011-08-10  Richard Guenther  <rguenther@suse.de>
315
316         PR tree-optimization/49937
317         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
318         using get_object_alignment_1.
319
320 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
321
322         * config/i386/i386.c (ix86_emit_i387_round): New function.
323         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
324         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
325         Use ix86_emit_i387_round to expand round function for i387 math.
326         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
327         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
328
329 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
330
331         * config/sync.c: Move to ../libgcc.
332         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
333         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
334         Remove.
335
336 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
337
338         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
339         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
340         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
341         Change 'from' and 'to' arguments type to reg_class_t.
342         (TARGET_REGISTER_MOVE_COST): Define.
343
344 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
345
346         PR target/50026
347         Revert:
348         PR rtl-optimization/49990
349         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
350         ignore classes which can not change mode.
351         (find_costs_and_classes): Ditto.
352
353 2011-08-09  Richard Guenther  <rguenther@suse.de>
354
355         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
356         information for ranges with only negative values.
357         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
358         BIT_AND_EXPR handling to handle ranges with negative values.
359
360 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
361
362         * config/i386/i386.c: Remove traling spaces.
363         * config/i386/sse.md: Likewise.
364         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
365         (*fma_fmsub_<mode>): Likewise.
366         (*fma_fnmadd_<mode>): Likewise.
367         (*fma_fnmsub_<mode>): Likewise.
368
369 2011-08-09  Nick Clifton  <nickc@redhat.com>
370
371         * config/rx/rx.md: Disable extender peepholes at -O3.
372
373 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
374
375         PR target/49781
376         * config/i386/i386.md (reload_noff_load): New.
377         (reload_noff_store): Ditto.
378         * config/i386/i386.c (ix86_secondary_reload): Use
379         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
380         double-word moves from/to non-offsetable addresses instead of
381         generating XMM temporary.
382
383 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
384
385         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
386
387 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
388
389         PR tree-optimization/50014
390         * tree-vect-loop.c (vectorizable_reduction): Get def type before
391         calling vect_get_vec_def_for_stmt_copy ().
392
393 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
394
395         PR rtl-optimization/49990
396         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
397         ignore classes which can not change mode.
398         (find_costs_and_classes): Ditto.
399
400 2011-08-08  Richard Henderson  <rth@redhat.com>
401
402         PR middle-end/49990
403         * config/i386/i386.c (ix86_expand_prologue): Call
404         for SEH target gen_prologue_use instead of gen_blockage
405         at prologue's end.
406
407 2011-08-08  Martin Jambor  <mjambor@suse.cz>
408
409         PR middle-end/49923
410         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
411         memory alignment.
412
413 2011-08-08   Diego Novillo  <dnovillo@google.com>
414
415         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
416         (DATA_STREAMER_H): New.
417         (GIMPLE_STREAMER_H): New.
418         (TREE_STREAMER_H): New.
419         (STREAMER_HOOKS_H): New.
420         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
421         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
422         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
423         (data-streamer.o): New.
424         (data-streamer-in.o): New.
425         (data-streamer-out.o): New.
426         (gimple-streamer-in.o): New.
427         (gimple-streamer-out.o): New.
428         (streamer-hooks.o): New.
429         (tree-streamer.o): New.
430         (tree-streamer-in.o): New.
431         (tree-streamer-out.o): New.
432         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
433         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
434         GIMPLE_STREAMER_H and TREE_STREAMER_H.
435         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
436         GIMPLE_STREAMER_H and TREE_STREAMER_H.
437         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
438         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
439         (ipa-inline-analysis.o): Likewise.
440         (ipa-pure-const.o): Likewise.
441         * data-streamer-in.c: New.
442         * data-streamer-out.c: New.
443         * data-streamer.c: New.
444         * data-streamer.h: New.
445         * gimple-streamer-in.c: New.
446         * gimple-streamer-out.c: New.
447         * gimple-streamer.h: New.
448         * ipa-inline-analysis.c: Include data-streamer.h.
449         * ipa-prop.c: Include data-streamer.h.
450         * ipa-pure-const.c: Include data-streamer.h.
451         * lto-cgraph.c: Include data-streamer.h.
452         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
453         (lto_input_widest_uint_uleb128): Likewise.
454         (lto_input_sleb128): Likewise.
455         (bp_unpack_var_len_unsigned): Likewise.
456         (bp_unpack_var_len_int): Likewise.
457         * lto-section-out.c (lto_output_uleb128_stream): Move to
458         data-streamer-out.c.
459         (lto_output_widest_uint_uleb128_stream): Likewise.
460         (lto_output_sleb128_stream): Likewise.
461         (bp_pack_var_len_unsigned): Likewise.
462         (bp_pack_var_len_int): Likewise.
463         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
464         (struct string_slot): Remove.  Update all users.
465         (lto_tag_check_set): Make extern.
466         (lto_tag_check_range): Move to lto-streamer.h.
467         (lto_tag_check): Likewise.
468         (hash_string_slot_node): Remove.  Update all users.
469         (eq_string_slot_node): Remove.  Update all users.
470         (string_for_index): Move to data-streamer-in.c
471         (input_string_internal): Likewise.
472         (input_string_cst): Move to tree-streamer-in.c.
473         (input_identifier): Likewise.
474         (lto_input_string): Move to data-streamer-in.c
475         (input_record_start): Move to data-streamer.h
476         (canon_file_name): Use new definition of struct string_slot
477         from data-streamer.h.  Set S_SLOT.LEN.
478         (lto_input_location): Make extern.
479         (lto_input_chain): Move to tree-streamer-in.c.
480         (lto_init_eh): Make extern.
481         (input_phi): Move to gimple-streamer-in.c.
482         (input_gimple_stmt): Likewise.
483         (input_bb): Likewise.
484         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
485         (unpack_ts_real_cst_value_fields): Likewise.
486         (unpack_ts_fixed_cst_value_fields): Likewise.
487         (unpack_ts_decl_common_value_fields): Likewise.
488         (unpack_ts_decl_wrtl_value_fields): Likewise.
489         (unpack_ts_decl_with_vis_value_fields): Likewise.
490         (unpack_ts_function_decl_value_fields): Likewise.
491         (unpack_ts_type_common_value_fields): Likewise.
492         (unpack_ts_block_value_fields): Likewise.
493         (unpack_ts_translation_unit_decl_value_fields): Likewise.
494         (unpack_value_fields): Likewise.
495         (lto_materialize_tree): Likewise.
496         (lto_input_ts_common_tree_pointers): Likewise.
497         (lto_input_ts_vector_tree_pointers): Likewise.
498         (lto_input_ts_complex_tree_pointers): Likewise.
499         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
500         (lto_input_ts_decl_common_tree_pointers): Likewise.
501         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
502         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
503         (lto_input_ts_field_decl_tree_pointers): Likewise.
504         (lto_input_ts_function_decl_tree_pointers): Likewise.
505         (lto_input_ts_type_common_tree_pointers): Likewise.
506         (lto_input_ts_type_non_common_tree_pointers): Likewise.
507         (lto_input_ts_list_tree_pointers): Likewise.
508         (lto_input_ts_vec_tree_pointers): Likewise.
509         (lto_input_ts_exp_tree_pointers): Likewise.
510         (lto_input_ts_block_tree_pointers): Likewise.
511         (lto_input_ts_binfo_tree_pointers): Likewise.
512         (lto_input_ts_constructor_tree_pointers): Likewise.
513         (lto_input_ts_target_option): Likewise.
514         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
515         (lto_input_tree_pointers): Likewise.
516         (lto_get_pickled_tree): Likewise.
517         (lto_get_builtin_tree): Likewise.
518         (lto_read_tree): Likewise.
519         (lto_input_integer_cst): Likewise.
520         (lto_input_tree): Likewise.
521         * lto-streamer-out.c: Include data-streamer.h,
522         gimple-streamer.h and streamer-hooks.h.
523         (struct string_slot): Move to data-streamer.h.
524         (hash_string_slot_node): Likewise.
525         (eq_string_slot_node): Likewise.
526         (lto_string_index): Move to data-streamer-out.c.
527         (lto_output_string_with_length): Likewise.
528         (lto_output_string): Likewise.
529         (output_string_cst): Move to tree-streamer-out.c.
530         (output_identifier): Likewise.
531         (output_zero): Move to data-streamer-out.c
532         (output_uleb128): Likewise.
533         (output_sleb128): Likewise.
534         (output_record_start): Move to data-streamer.h
535         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
536         (pack_ts_real_cst_value_fields): Likewise.
537         (pack_ts_fixed_cst_value_fields): Likewise.
538         (pack_ts_decl_common_value_fields): Likewise.
539         (pack_ts_decl_wrtl_value_fields): Likewise.
540         (pack_ts_decl_with_vis_value_fields): Likewise.
541         (pack_ts_function_decl_value_fields): Likewise.
542         (pack_ts_type_common_value_fields): Likewise.
543         (pack_ts_block_value_fields): Likewise.
544         (pack_ts_translation_unit_decl_value_fields): Likewise.
545         (pack_value_fields): Likewise.
546         (lto_output_chain): Likewise.
547         (lto_output_ts_common_tree_pointers): Likewise.
548         (lto_output_ts_vector_tree_pointers): Likewise.
549         (lto_output_ts_complex_tree_pointers): Likewise.
550         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
551         (lto_output_ts_decl_common_tree_pointers): Likewise.
552         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
553         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
554         (lto_output_ts_field_decl_tree_pointers): Likewise.
555         (lto_output_ts_function_decl_tree_pointers): Likewise.
556         (lto_output_ts_type_common_tree_pointers): Likewise.
557         (lto_output_ts_type_non_common_tree_pointers): Likewise.
558         (lto_output_ts_list_tree_pointers): Likewise.
559         (lto_output_ts_vec_tree_pointers): Likewise.
560         (lto_output_ts_exp_tree_pointers): Likewise.
561         (lto_output_ts_block_tree_pointers): Likewise.
562         (lto_output_ts_binfo_tree_pointers): Likewise.
563         (lto_output_ts_constructor_tree_pointers): Likewise.
564         (lto_output_ts_target_option): Likewise.
565         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
566         (lto_output_tree_pointers): Likewise.
567         (lto_output_tree_header): Likewise.
568         (lto_output_builtin_tree): Likewise.
569         (lto_write_tree): Likewise.
570         (lto_output_integer_cst): Likewise.
571         (lto_output_tree): Likewise.
572         (output_phi): Move to gimple-streamer-out.c.
573         (output_gimple_stmt): Likewise.
574         (output_bb): Likewise.
575         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
576         (streamer_hooks): Move to streamer-hooks.c.
577         (check_handled_ts_structures): Move to tree-streamer.c
578         (lto_streamer_cache_add_to_node_array): Likewise.
579         (lto_streamer_cache_insert_1): Likewise.
580         (lto_streamer_cache_insert): Likewise.
581         (lto_streamer_cache_insert_at): Likewise.
582         (lto_streamer_cache_append): Likewise.
583         (lto_streamer_cache_lookup): Likewise.
584         (lto_streamer_cache_get): Likewise.
585         (lto_record_common_node): Likewise.
586         (lto_preload_common_nodes): Likewise.
587         (lto_streamer_cache_create): Likewise.
588         (lto_streamer_cache_delete): Likewise.
589         (streamer_hooks_init): Move to streamer-hooks.c.
590         * lto-streamer.h: Include diagnostic.h
591         (struct output_block, struct lto_input_block,
592         struct data_in, struct bitpack_d): Remove forward declarations.
593         (struct bitpack_d): Move to data-streamer.h.
594         (struct lto_streamer_cache_d): Move to tree-streamer.h.
595         (struct streamer_hooks): Move to streamer-hooks.h.
596         (bp_pack_var_len_unsigned): Move to data-streamer.h.
597         (bp_pack_var_len_int): Likewise.
598         (bp_unpack_var_len_unsigned): Likewise.
599         (bp_unpack_var_len_int): Likewise.
600         (lto_input_location): Declare.
601         (lto_tag_check_set): Declare.
602         (lto_init_eh): Declare.
603         (lto_output_tree_ref): Declare.
604         (lto_output_location): Declare.
605         (bitpack_create): Move to data-streamer.h.
606         (bp_pack_value): Likewise.
607         (lto_output_bitpack): Likewise.
608         (lto_input_bitpack): Likewise.
609         (bp_unpack_value): Likewise.
610         (lto_output_1_stream): Likewise.
611         (lto_input_1_unsigned): Likewise.
612         (lto_output_int_in_range): Likewise.
613         (lto_input_int_in_range): Likewise.
614         (bp_pack_int_in_range): Likewise.
615         (bp_unpack_int_in_range): Likewise.
616         (lto_output_enum): Likewise.
617         (lto_input_enum): Likewise.
618         (bp_pack_enum): Likewise.
619         (bp_unpack_enum): Likewise.
620         * streamer-hooks.c: New.
621         * streamer-hooks.h: New.
622         * tree-streamer-in.c: New.
623         * tree-streamer-out.c: New.
624         * tree-streamer.c: New.
625         * tree-streamer.h: New.
626
627 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
628
629         * gthr-posix95.h: Remove.
630         * gthr.h [_PTHREADS95]: Remove.
631         * configure.ac (enable_threads): Remove posix95.
632         * configure: Regenerate.
633         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
634
635 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
636
637         PR target/49781
638         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
639         SImode addresses.
640         (ix86_print_operand_address): Handle zero-extended addresses.
641         (memory_address_length): Add length of addr32 prefix for
642         zero-extended addresses.
643         (ix86_secondary_reload): Handle moves to/from double-word general
644         registers from/to zero-extended addresses.
645         * config/i386/predicates.md (lea_address_operand): Reject
646         zero-extended operands.
647
648 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
649
650         PR other/48007
651         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
652
653         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
654         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
655
656         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
657         (_Unwind_Context_Reg_Val): Likewise.
658         (_Unwind_Get_Unwind_Word): Likewise.
659         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
660         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
661         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
662         for EXTENDED_CONTEXT_BIT.
663         (__frame_state_for): Likewise.
664         (uw_init_context_1): Likewise.
665         (_Unwind_GetGR): Updated.
666         (_Unwind_SetGR): Likewise.
667         (_Unwind_GetGRPtr): Likewise.
668         (_Unwind_SetGRPtr): Likewise.
669         (_Unwind_SetGRValue): Likewise.
670         (_Unwind_GRByValue): Likewise.
671         (uw_install_context_1): Likewise.
672
673         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
674         ASSUME_EXTENDED_UNWIND_CONTEXT.
675         * doc/tm.texi: Regenerated.
676
677 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
678
679         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
680
681 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
682
683         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
684         Linux/GNU-specific.
685         (DEC Alpha Options, -mtune): Likewise.
686         (MIPS Options, -march): native is supported on IRIX.
687
688 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
689
690         * config/sparc/driver-sparc.c: New file.
691         * config/sparc/x-sparc: New file.
692         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
693         * config/sparc/sparc.opt (native): New value for enum processor_type.
694         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
695         * config/sparc/sparc.c (sparc_option_override): Abort if
696         PROCESSOR_NATIVE gets here.
697         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
698         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
699         DRIVER_SELF_SPECS): Define.
700         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
701         (SPARC Options, -mtune): Likewise.
702         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
703         Substitute result.
704         * configure: Regenerate.
705         * Makefile.in (EXTRA_GCC_LIBS): Set.
706         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
707         (cpp$(exeext)): Likewise.
708
709 2011-08-08  Richard Guenther  <rguenther@suse.de>
710
711         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
712         split out from ...
713         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
714         by composition.
715
716 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
717
718         PR tree-optimization/50005
719         * ipa-inline-analysis (remap_predicate): Add cast to
720         silence signed/unsigned comparison warning.
721
722 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
723
724         * modulo-sched.c (get_sched_window): Use a table for the debug output.
725         Print the current ii.
726         (sms_schedule_by_order): Reduce whitespace in dump line.
727
728 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
729
730         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
731         and one loop for successors.  Fix upper bound of memory range.
732
733 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
734
735         PR target/50001
736         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
737         (TARGET_INSTANTIATE_DECLS): New define.
738
739 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
740             Mikael Morin   <mikael.morin@sfr.fr>
741
742         * Makefile.in (INCLUDES_FOR_TARGET): New.
743         (LIBGCC2_CFLAGS): Use it.
744         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
745
746 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
747
748         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
749         frame->save_regs_using_mov calculation.
750
751 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
752
753         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
754         * config/i386/sse.md (castmode): New mode attribute.
755         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
756         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
757
758 2011-08-05  Jan Hubicka  <jh@suse.cz>
759
760         PR middle-end/49494
761         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
762
763 2011-08-05  Jan Hubicka  <jh@suse.cz>
764
765         PR middle-end/49500
766         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
767         handle aliases.
768         (create_emultls_var):New function.
769         (ipa_lower_emutls): Handle aliases correctly.
770
771 2011-08-05  Jan Hubicka  <jh@suse.cz>
772
773         PR middle-end/49735
774         * ipa-inline.c (recursive_inlining): Look through aliases.
775
776 2011-08-05  Jason Merrill  <jason@redhat.com>
777
778         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
779         declarations to beginning of function.
780
781 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
782
783         PR rtl-optimization/49900
784         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
785         ensure basic blocks stay in the same order.
786
787 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
788
789         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
790         store_bit_field.
791         (s390_expand_atomic): Same.
792
793 2011-08-05  Richard Henderson  <rth@redhat.com>
794
795         PR rtl-opt/49977
796         * dwarf2cfi.c (scan_insn_after): Split out of ...
797         (scan_trace): ... here.  Correctly place notes wrt sequences.
798
799 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
800             Richard Henderson  <rth@redhat.com>
801
802         PR rtl-opt/49982
803         * expr.c (fixup_args_size_notes): Look through no-op moves.
804
805 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
806
807         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
808         of "m" for operand 0.  Add type and mode attribute.
809         (*pushxf_nointeger"): Use "<" constraint for operand 0.
810         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
811         constraint instead of "o" for opreand 1.
812         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
813         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
814         operand 0, alternative 4.
815         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
816
817 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
818
819         * config/i386/predicates.md (lea_address_operand): Rename from
820         no_seg_address_operand.
821         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
822         (*lea_1_zext): Ditto.
823         (*lea_2): Ditto.
824         (*lea_2_zext): Ditto.
825
826 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
827
828         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
829         parts.base and parts.index.
830         * config/i386/predicates.md (aligned_operand): Ditto.
831         (cmpxchg8b_pic_memory_operand): Ditto.
832
833 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
834
835         * config/soft-fp: Move to ../libgcc.
836         * Makefile.in (SFP_MACHINE): Remove.
837         (libgcc-support): Remove $(SFP_MACHINE) dependency.
838         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
839         * config/arm/t-arm-softfp: Move to
840         ../libgcc/config/arm/t-softfp.
841         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
842         * config/c6x/t-c6x-softfp: Remove.
843         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
844         * config/i386/t-fprules-softfp: Move to
845         ../libgcc/config/t-softfp-tf.
846         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
847         * config/ia64/t-fprules-softfp: Remove.
848         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
849         * config/lm32/t-fprules-softfp: Remove.
850         * config/moxie/sfp-machine.h: Remove.
851         * config/moxie/t-moxie-softfp: Remove.
852         * config/rs6000/darwin-ldouble-format: Move to
853         ../libgcc/config/rs6000/ibm-ldouble-format.
854         * config/rs6000/darwin-ldouble.c: Move to
855         ../libgcc/config/rs6000/ibm-ldouble.c
856         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
857         * config/rs6000/libgcc-ppc64.ver: Likewise.
858         * config/rs6000/sfp-machine.h: Likewise.
859         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
860         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
861         (LIB2FUNCS_EXTRA): Remove.
862         (TARGET_LIBGCC2_CFLAGS): Remove.
863         * config/rs6000/t-aix52: Likewise
864         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
865         $(srcdir)/config/rs6000/darwin-ldouble.c.
866         (SHLIB_MAPFILES): Remove.
867         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
868         $(srcdir)/config/rs6000/darwin-ldouble.c.
869         * config/rs6000/t-fprules-softfp: Move to
870         ../libgcc/config/t-softfp-sfdf.
871         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
872         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
873         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
874         $(srcdir)/config/rs6000/darwin-ldouble.c.
875         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
876         * config/score/t-score-softfp: Remove.
877         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
878         soft-fp/t-softfp from tmake_file.
879         (arm*-*-uclinux*): Likewise.
880         (arm*-*-ecos-elf): Likewise.
881         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
882         (arm*-*-rtems*): Likewise.
883         (arm*-*-elf): Likewise.
884         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
885         tmake_file.
886         (moxie-*-uclinux*): Likewise.
887         (moxie-*-rtems*): Likewise.
888         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
889         tmake_file.
890         (lm32-*-rtems*): Likewise.
891         (lm32-*-uclinux*): Likewise.
892         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
893         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
894         (powerpc-*-linux*, powerpc64-*-linux*): Remove
895         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
896         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
897         tmake_file.
898         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
899         tmake_file.
900         (tic6x-*-uclinux): Likewise.
901         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
902         soft-fp/t-softfp from tmake_file.
903         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
904         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
905         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
906         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
907         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
908
909 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
910
911         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
912         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
913         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
914         TPBIT, TPBIT_FUNCS.
915         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
916         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
917         Remove.
918         * config/arm/t-vxworks: Likewise.
919         * config/arm/t-wince-pe: Likewise.
920         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
921         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
922         * config/bfin/t-bfin-elf: Likewise.
923         * config/bfin/t-bfin-linux: Likewise.
924         * config/bfin/t-bfin-uclinux: Likewise.
925         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
926         Remove.
927         * config/fr30/t-fr30: Likewise.
928         * config/frv/t-frv: Likewise.
929         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
930         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
931         * config/m32c/t-m32c: Likewise.
932         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
933         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
934         * config/mcore/t-mcore: Likewise.
935         * config/mep/t-mep: Likewise.
936         * config/microblaze/t-microblaze: Likewise.
937         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
938         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
939         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
940         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
941         * config/mn10300/t-linux: Remove.
942         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
943         * config/pdp11/t-pdp11: Likewise.
944         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
945         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
946         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
947         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
948         * config/rs6000/t-aix52: Likewise.
949         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
950         $(srcdir)/config/rs6000/ppc64-fp.c.
951         * config/rs6000/t-fprules-fpbit: Remove.
952         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
953         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
954         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
955         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
956         * config/sparc/t-elf: Likewise.
957         * config/sparc/t-leon: Likewise.
958         * config/sparc/t-leon3: Likewise.
959         * config/spu/t-spu-elf: Likewise.
960         (DPBIT_FUNCS): Remove.
961         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
962         * config/v850/t-v850: Likewise.
963         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
964         (avr-*-*): Likewise.
965         (h8300-*-rtems*): Set libgcc_tm_file.
966         (h8300-*-elf*): Likewise.
967         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
968         tmake_file.
969         (powerpc-*-eabisim*): Likewise.
970         (powerpc-*-elf*): Likewise.
971         (powerpc-*-eabialtivec*): Likewise.
972         (powerpc-xilinx-eabi*): Likewise.
973         (powerpc-*-eabi*): Likewise.
974         (powerpc-*-rtems*): Likewise.
975         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
976         (powerpcle-*-elf*): Likewise.
977         (powerpcle-*-eabisim*): Likewise.
978         (powerpcle-*-eabi*): Likewise.
979         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
980         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
981         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
982         Remove.
983
984 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
985
986         * Makefile.in (UNWIND_H): Remove.
987         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
988         ../libgcc/Makefile.in.
989         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
990         (LIBUNWINDDEP): Remove.
991         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
992         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
993         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
994         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
995         Don't copy $(UNWIND_H).
996         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
997         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
998         * aclocal.m4: Regenerate.
999         * configure: Regenerate.
1000         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
1001         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
1002         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
1003         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
1004         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
1005         * config/arm/libunwind.S, config/arm/pr-support.c,
1006         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
1007         ../libgcc/config/arm.
1008         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
1009         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
1010         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
1011         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
1012         ($(T)frvend$(objext)): Likewise.
1013         * config/ia64/t-glibc (LIB2ADDEH): Remove.
1014         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
1015         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
1016         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
1017         ../libgcc/config/ia64.
1018         * config/ia64/t-hpux (LIB2ADDEH): Remove.
1019         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
1020         * config/ia64/t-vms (LIB2ADDEH): Remove.
1021         * config/ia64/vms.h (UNW_IVMS_MODE,
1022         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
1023         * config/picochip/t-picochip (LIB2ADDEH): Remove.
1024         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
1025         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
1026         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
1027         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
1028         $(srcdir)/../libgcc to refer to unwinder sources.
1029         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
1030         * config/t-darwin (LIB2ADDEH): Remove.
1031         * config/t-freebsd (LIB2ADDEH): Remove.
1032         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
1033         * config/t-libunwind-elf: Move to ../libgcc/config.
1034         * config/t-linux (LIB2ADDEH): Remove.
1035         * config/t-sol2 (LIB2ADDEH): Remove.
1036         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
1037         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
1038
1039 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
1040
1041         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
1042
1043         * doc/invoke.texi: Document core-avx-i.
1044
1045 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1046
1047         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
1048
1049 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
1050
1051         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
1052         result of multiple results reduction when extracting the final
1053         value using scalar code.
1054
1055 2011-08-05  Richard Guenther  <rguenther@suse.de>
1056
1057         PR tree-optimization/49984
1058         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
1059
1060 2011-08-05  Richard Guenther  <rguenther@suse.de>
1061
1062         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
1063         return true for constant integer ranges.
1064         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
1065         BIT_IOR_EXPR handling.
1066
1067 2011-08-04  Kai Tietz  <ktietz@redhat.com>
1068
1069         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
1070         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
1071
1072 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
1073
1074         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
1075         pattern def statement, and its access macro.
1076         (NUM_PATTERNS): Set to 5.
1077         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1078         pattern def statement.
1079         (vect_transform_loop): Likewise.
1080         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
1081         function vect_recog_over_widening_pattern ().
1082         (vect_operation_fits_smaller_type): New function.
1083         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
1084         Likewise.
1085         (vect_pattern_recog_1): Move the code that marks pattern
1086         statements to vect_mark_pattern_stmts (), and call it.  Update
1087         documentation.
1088         * tree-vect-stmts.c (vect_supportable_shift): New function.
1089         (vect_analyze_stmt): Handle pattern def statement.
1090         (new_stmt_vec_info): Initialize pattern def statement.
1091
1092 2011-08-04  Richard Henderson  <rth@redhat.com>
1093
1094         PR target/49964
1095         * config/i386/i386.c (ix86_expand_call): Don't create nested
1096         PARALLELs for TARGET_VZEROUPPER.
1097         (ix86_split_call_vzeroupper): Fix extraction of the original call.
1098         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
1099         recognize nested PARALLELs.
1100         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
1101         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
1102         *sibcall_value_pop_vzeroupper): Likewise.
1103
1104 2011-08-04  Richard Henderson  <rth@redhat.com>
1105
1106         PR middle-end/49968
1107         * calls.c (expand_call): Use fixup_args_size_notes for
1108         emit_stack_restore.
1109         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
1110         in non-standard modes.
1111
1112 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
1113
1114         * gcc.c (self_spec): New variable.
1115         (static_specs): Add self_spec.
1116         (main): Call do_self_spec on "self_spec" specs after reading
1117         user specs files.  Move compare_debug handling right after that.
1118
1119 2011-08-04  Richard Guenther  <rguenther@suse.de>
1120
1121         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
1122         (value_range_nonnegative_p): New function.
1123         (ssa_name_nonnegative_p): Use it.
1124         (value_range_constant_singleton): New function.
1125         (op_with_constant_singleton_value_range): Use it.
1126         (extract_range_from_binary_expr_1): New function, split out from ...
1127         (extract_range_from_binary_expr): ... this.  Remove fallback
1128         constant folding done here.
1129
1130 2011-08-04  Richard Guenther  <rguenther@suse.de>
1131
1132         PR tree-optimization/49806
1133         * tree-vrp.c (op_with_boolean_value_range_p): New function.
1134         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
1135         a new statement for a final conversion to bool.
1136
1137 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
1138
1139         * gengtype-state.c: Include "bconfig.h" if
1140         GENERATOR_FILE is defined, "config.h" otherwise.
1141         * gengtype.c: Likewise.
1142         * gengtype-lex.l: Likewise.
1143         * gengtype-parse.c: Likewise.
1144         * Makefile.in (gengtype-lex.o-warn): New variable.
1145         (plugin_resourcesdir): Likewise.
1146         (plugin_bindir): Likewise.
1147         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
1148         (MOSTLYCLEANFILES): Add gengtype$(exeext).
1149         (native): Depend on gengtype$(exeext) is $enable_plugin
1150         is set to "yes".
1151         (gtype.state): Depend on s-gtype. Use temporary file.
1152         (gengtype-lex.o): New rule.
1153         (gengtype-parse.o): Likewise.
1154         (gengtype-state.o): Likewise.
1155         (gengtype$(exeext)): Likewise.
1156         (install-gengtype): Likewise.
1157         (gengtype.o): Likewise.
1158         (build/gengtype.o): Depend on version.h.
1159         (build/gengtype-state): Depend on double-int.h, version.h,
1160         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
1161         (install-plugin): Depend on install-gengtype.
1162
1163 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
1164
1165         PR middle-end/49905
1166         * tree.h (init_attributes): New prototype.
1167         * attribs.c (init_attributes): No longer static.
1168
1169 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1170
1171         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
1172         maybe_suffix.
1173
1174 2011-08-03   David Li  <davidxl@google.com>
1175
1176         * tree-optimize.c (execute_fixup_cfg): Fix up entry
1177         outgoing edge counts after inlining.
1178
1179 2011-08-03   David Li  <davidxl@google.com>
1180
1181         * profile.c (compute_branch_probabilities): Compute
1182         function frequency after profile annotation.
1183
1184 2011-08-04  Alan Modra  <amodra@gmail.com>
1185
1186         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
1187         use_backchain_to_restore_sp initialisation.
1188         (rs6000_legitimate_offset_address_p): Simplify offset test.
1189
1190 2011-08-03  Richard Henderson  <rth@redhat.com>
1191
1192         * config/spu/spu.md: Use define_c_enum instead of define_constants.
1193         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
1194         (UNSPECV_NOP): New.
1195
1196 2011-08-03  Richard Henderson  <rth@redhat.com>
1197
1198         PR target/34888
1199         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
1200
1201 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
1202
1203         PR tree-optimization/49948
1204         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
1205
1206 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
1207
1208         * config/m32c/m32c.c (class_sizes): Remove.
1209         (reduce_class): Change arguments and return type to reg_class_t.
1210         Change type cc var to HARD_REG_SET. Change type best var to
1211         reg_class_t. Change type best_size var to unsigned int. Remove
1212         initialization class_sizes var. Use reg_class_size array instead
1213         of class_sizes. Use reg_class_contents array instead
1214         of class_contents.
1215
1216 2011-08-03  Richard Guenther  <rguenther@suse.de>
1217
1218         PR middle-end/49958
1219         * fold-const.c (fold_binary_loc): Only associate
1220         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
1221         overflow wraps.
1222
1223 2011-08-03  Alan Modra  <amodra@gmail.com>
1224
1225         PR rtl-optimization/49941
1226         * jump.c (mark_jump_label): Comment.
1227         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
1228         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
1229         (mark_used_flags): Don't mark RETURN.
1230
1231 2011-08-03  Richard Guenther  <rguenther@suse.de>
1232
1233         PR tree-optimization/49938
1234         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
1235         deal with a POLYNOMIAL_CHREC.
1236
1237 2011-08-03  Revital Eres  <revital.eres@linaro.org>
1238
1239         * modulo-sched.c (calculate_stage_count,
1240         calculate_must_precede_follow, get_sched_window,
1241         try_scheduling_node_in_cycle, remove_node_from_ps): Add
1242         declaration.
1243         (update_node_sched_params, set_must_precede_follow, optimize_sc):
1244         New functions.
1245         (reset_sched_times): Call update_node_sched_params.
1246         (sms_schedule): Call optimize_sc.
1247         (get_sched_window): Change function arguments.
1248         (sms_schedule_by_order): Update call to get_sched_window.
1249         Call set_must_precede_follow.
1250         (calculate_stage_count): Add function argument.
1251
1252 2011-08-02  Richard Henderson  <rth@redhat.com>
1253
1254         PR target/49864
1255         PR target/49879
1256         * reg-notes.def (REG_ARGS_SIZE): New.
1257         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
1258         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
1259         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
1260         different stack levels.
1261         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
1262         (maybe_move_args_size_note): New.
1263         (combine_stack_adjustments_for_block): Use it.
1264         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
1265         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
1266         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
1267         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
1268         (cur_cfa): New.
1269         (queued_args_size): Remove.
1270         (add_cfi_args_size): Assert size is non-negative.
1271         (stack_adjust_offset, dwarf2out_args_size): Remove.
1272         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
1273         (notice_args_size, notice_eh_throw): New.
1274         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
1275         (dwarf2out_frame_debug_adjust_cfa): Likewise.
1276         (dwarf2out_frame_debug_cfa_offset): Likewise.
1277         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
1278         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
1279         (change_cfi_row): Don't emit args_size.
1280         (maybe_record_trace_start_abnormal): Split out from ...
1281         (maybe_record_trace_start): Here.  Set args_size_undefined.
1282         (create_trace_edges): Update to match.
1283         (scan_trace): Handle REG_ARGS_SIZE.
1284         (connect_traces): Connect args_size between EH insns.
1285         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
1286         * explow.c (suppress_reg_args_size): New.
1287         (adjust_stack_1): Split out from ...
1288         (adjust_stack): ... here.
1289         (anti_adjust_stack): Use it.
1290         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
1291         * expr.c (mem_autoinc_base): New.
1292         (fixup_args_size_notes): New.
1293         (emit_single_push_insn_1): Rename from emit_single_push_insn.
1294         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
1295         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
1296         * reload1.c (reload_as_needed): Likewise.
1297         * rtl.h (fixup_args_size_notes): Declare.
1298
1299 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
1300
1301         PR bootstrap/49914
1302         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
1303         of abs.
1304         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1305         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
1306
1307 2011-08-02  Richard Henderson  <rth@redhat.com>
1308
1309         * config/h8300/h8300.c (push, pop): Return the insn.
1310         (h8300_swap_into_er6): Generate correct unwind info.
1311         (h8300_swap_out_of_er6): Likewise.
1312         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
1313         complex cfa expression.
1314         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
1315
1316 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
1317
1318         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1319
1320 2011-08-02  Richard Henderson  <rth@redhat.com>
1321
1322         PR target/49878
1323         * config/h8300/h8300.c (h8300_move_ok): New.
1324         * config/h8300/h8300-protos.h: Declare it.
1325         * config/h8300/h8300.md (P): New mode iterator.
1326         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
1327         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
1328         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
1329         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
1330         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
1331         and pushqi1_h8300hs_normal; use PRE_MODIFY and
1332         register_no_sp_elim_operand.
1333         (*pushhi1_h8300hs_<P>): Similarly.
1334         (pushqi1, pushhi1, pushhi1_h8300): Remove.
1335         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
1336
1337 2011-08-02  Richard Henderson  <rth@redhat.com>
1338
1339         PR target/49881
1340         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
1341
1342 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
1343
1344         * c-parser.c (enum c_parser_prec): New enum, moved from within
1345         c_parser_binary_expression.
1346         (c_parser_binary_expression): Add PREC argument.  Stop parsing
1347         if operator has lower or equal precedence than PREC.
1348         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
1349         callers.
1350         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
1351         Adjust c_finish_omp_atomic caller.
1352         (c_parser_omp_taskyield): New function.
1353         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
1354         (c_parser_omp_clause_name): Handle final and mergeable clauses.
1355         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
1356         functions.
1357         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
1358         and PRAGMA_OMP_CLAUSE_MERGEABLE.
1359         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
1360         (c_parser_omp_clause_reduction): Handle min and max.
1361         * c-typeck.c (c_finish_omp_clauses): Don't complain about
1362         const qualified predetermined vars in firstprivate clause.
1363         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1364         Handle MIN_EXPR and MAX_EXPR.
1365         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
1366         and OMP_CLAUSE_MERGEABLE.
1367         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
1368         and OMP_ATOMIC_CAPTURE_NEW.
1369         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
1370         OMP_CLAUSE_MERGEABLE.
1371         (omp_clause_code_name): Likewise.
1372         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1373         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
1374         and OMP_CLAUSE_MERGEABLE.
1375         (OMP_CLAUSE_FINAL_EXPR): Define.
1376         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
1377         OMP_CLAUSE_MERGEABLE.
1378         (expand_task_call): Likewise.
1379         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
1380         (expand_omp_atomic_fetch_op): Handle cases where old or new
1381         value is needed afterwards.
1382         (expand_omp_atomic): Call expand_omp_atomic_load resp.
1383         expand_omp_atomic_store.
1384         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
1385         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
1386         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
1387         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1388         * tree-nested.c (convert_nonlocal_omp_clauses,
1389         convert_local_omp_clauses): Likewise.
1390         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
1391         OMP_ATOMIC_CAPTURE_NEW): New.
1392         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
1393         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
1394         New inlines.
1395         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
1396         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
1397         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1398
1399 2011-08-02  Kai Tietz  <ktietz@redhat.com>
1400
1401         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
1402         boolean-type.
1403         (ssa_forward_propagate_and_combine): Interprete result of
1404         forward_propagate_comparison.
1405         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
1406         boolean-typed operands for comparisons.
1407
1408 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
1409
1410         * config/avr/libgcc.S: Gather related function in the
1411         same input section.
1412         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
1413         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
1414         references.
1415         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
1416         __udivmodsi4, __divmodsi4, __prologue_saves__,
1417         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
1418         __do_copy_data, __do_clear_bss, __do_global_ctors,
1419         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
1420
1421 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
1422
1423         PR target/47766
1424         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
1425         (stack_protect_test): The pattern compares ptr_mode value.
1426
1427 2011-08-02  Alan Modra  <amodra@gmail.com>
1428
1429         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
1430         note for save_LR_around_toc_setup sequence.
1431
1432 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1433
1434         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
1435
1436 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
1437             Joseph Myers  <joseph@codesourcery.com>
1438
1439         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
1440         * hwint.c: Include diagnostic-core.h.
1441         (abs_hwi): New.
1442         (gcd): Moved here...
1443         (pos_mul_hwi): New.
1444         (mul_hwi): New.
1445         (least_common_multiple): Moved here...
1446         * hwint.h (gcd): ... from here.
1447         (least_common_multiple): ... from here.
1448         (HOST_WIDE_INT_MIN): New.
1449         (HOST_WIDE_INT_MAX): New.
1450         (abs_hwi): Declared.
1451         (gcd): Declared.
1452         (pos_mul_hwi): Declared.
1453         (mul_hwi): Declared.
1454         (least_common_multiple): Declared.
1455         * omega.c (check_pos_mul): Removed.
1456         (check_mul): Removed.
1457         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
1458         mul_hwi instead of check_mul.
1459
1460 2011-08-01  Richard Henderson  <rth@redhat.com>
1461
1462         PR target/49881
1463         * config/avr/avr.h (PUSH_ROUNDING): New.
1464         * config/avr/avr.md (pushqi1): Rename from *pushqi.
1465         (*pushhi, *pushsi, *pushsf): Remove.
1466         (MPUSH): New mode iterator.
1467         (push<MPUSH>1): New expander.
1468
1469 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
1470
1471         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
1472         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1473         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
1474         mmix_preferred_output_reload_class): Remove.
1475         * config/mmix/mmix.c (mmix_preferred_reload_class,
1476         mmix_preferred_output_reload_class): Make static. Change rclass
1477         argument and return type to reg_class_t.
1478         (TARGET_PREFERRED_RELOAD_CLASS,
1479         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1480
1481 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
1482
1483         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
1484         handling.
1485
1486 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1487
1488         PR target/47766
1489         * config/i386/i386.md (PTR): New.
1490         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
1491         (stack_protect_test): Likewise.
1492         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
1493         (stack_tls_protect_set_<mode>): Likewise.
1494         (stack_tls_protect_test_<mode>): Likewise.
1495
1496 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
1497
1498         PR target/49927
1499         * config/i386/i386.c (ix86_address_subreg_operand): New.
1500         (ix86_decompose_address): Use ix86_address_subreg_operand.
1501         (ix86_legitimate_address_p): Do not assert that subregs satisfy
1502         register_no_elim_operand in DImode.
1503
1504 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
1505
1506         PR tree-optimization/49926
1507         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
1508         in a chain doesn't have uses both inside and outside the loop.
1509
1510 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
1511
1512         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
1513         * config/avr/avr-devices.c (avr_mcu_types): Use it.
1514         * config/avr/avr-mcus.def (AVR_MCU): Use it.
1515         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
1516         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
1517         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
1518         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
1519         to detect if XJMP must not be skipped.
1520
1521 2011-08-02  Alan Modra  <amodra@gmail.com>
1522
1523         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
1524         Delete.
1525         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
1526         (rs6000_emit_prologue): Don't prematurely return when
1527         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
1528         save_toc_in_prologue case.
1529         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
1530         calls_alloca.
1531
1532 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
1533
1534         * config/avr/avr-devices.c: Delete SVN property svn:executable.
1535         * config/avr/predicates.md: Ditto.
1536         * config/avr/driver-avr.c: Ditto.
1537         * config/avr/genopt.sh: Set SVN property svn:executable to *.
1538
1539 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1540
1541         * calls.c (emit_library_call_value_1): Declare size only if
1542         BLOCK_REG_PADDING is defined.
1543
1544 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
1545
1546         PR target/49547
1547         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
1548         (x86_64-*-*): Likewise.
1549         * config/i386/i386.opt (mlzcnt): New.
1550         * config/i386/abmintrin.h: File removed.
1551         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
1552         * config/i386/lzcntintrin.h: ... here.  New file.
1553         (__lzcnt): Rename to ...
1554         (__lzcnt32): ... this.
1555         * config/i386/bmiintrin.h (head): Update copyright year.
1556         (__lzcnt_u16): Removed.
1557         (__lzcnt_u32): Likewise.
1558         (__lzcnt_u64): Likewise.
1559         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
1560         is defined, remove abmintrin.h.
1561         * config/i386/cpuid.h (bit_LZCNT): New.
1562         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1563         LZCNT feature.
1564         * config/i386/i386-c.c (ix86_target_macros_internal): Define
1565         __LZCNT__ if needed.
1566         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
1567         (ix86_option_override_internal): Handle LZCNT option.
1568         (ix86_valid_target_attribute_inner_p): Likewise.
1569         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
1570         * config/i386/i386.h (TARGET_LZCNT): New.
1571         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
1572         * config/i386/i386.md (clz<mode>2): Update insn constraint.
1573         (clz<mode>2_lzcnt): Likewise.
1574         * doc/invoke.texi: Mention -mlzcnt option.
1575         * doc/extend.texi: Likewise.
1576
1577 2011-08-01  Julian Brown  <julian@codesourcery.com>
1578
1579         * configure.ac (fixed-point): Add ARM support.
1580         * configure: Regenerate.
1581         * config/arm/arm.c (arm_fixed_mode_set): New struct.
1582         (arm_set_fixed_optab_libfunc): New.
1583         (arm_set_fixed_conv_libfunc): New.
1584         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
1585         ARM-specific names.
1586         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
1587         return values in SImode.
1588         (arm_return_in_msb): Return fixed-point types in the msb.
1589         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
1590         upwards.
1591         (arm_scalar_mode_supported_p): Support fixed-point modes.
1592         (arm_vector_mode_supported_p): Support vector fixed-point modes.
1593         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
1594         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
1595         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
1596         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
1597         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
1598         New mode iterators.
1599         (qaddsub_suf): New mode attribute.
1600         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
1601         vector modes.
1602         * config/arm/predicates.md (sat_shift_operator): New predicate.
1603         * config/arm/arm-fixed.md: New.
1604         * config/arm/arm.md: Include arm-fixed.md.
1605         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
1606
1607 2011-08-01  Julian Brown  <julian@codesourcery.com>
1608
1609         * calls.c (emit_library_call_value_1): Support padding for libcall
1610         arguments and return values.
1611         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
1612         downwards in big-endian mode.
1613
1614 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1615
1616         PR debug/49887
1617         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
1618         * config/sol2-protos.h: Likewise.
1619         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
1620         solaris_code_end.
1621         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
1622         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
1623         solaris_file_end.
1624         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
1625
1626 2011-08-01  Julian Brown  <julian@codesourcery.com>
1627
1628         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
1629
1630 2011-08-01  Julian Brown  <julian@codesourcery.com>
1631
1632         * final.c (output_addr_const): Print fixed-point constants as
1633         decimal not hex.
1634
1635 2011-08-01  Richard Guenther  <rguenther@suse.de>
1636
1637         * stor-layout.c (initialize_sizetypes): Properly sign-extend
1638         bitsiztype TYPE_MAX_VALUE.
1639
1640 2011-08-01  Julian Brown  <julian@codesourcery.com>
1641
1642         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
1643         comparison helpers.
1644
1645 2011-07-31  Richard Henderson  <rth@redhat.com>
1646
1647         * config/h8300/crti.asm: Add flags to .section directive.
1648         * config/h8300/crtn.asm: Likewise.
1649
1650 2011-07-31  Richard Henderson  <rth@redhat.com>
1651
1652         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
1653         * tree.c (build_common_tree_nodes): Likewise.
1654
1655 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1656
1657         PR target/49880
1658         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
1659         (divsi3_i1): Likewise.
1660
1661 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1662
1663         PR tree-optimization/49749
1664         * tree-ssa-reassoc.c (get_rank): New forward declaration.
1665         (PHI_LOOP_BIAS): New macro.
1666         (phi_rank): New function.
1667         (loop_carried_phi): Likewise.
1668         (propagate_rank): Likewise.
1669         (get_rank): Add calls to phi_rank and propagate_rank.
1670
1671 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1672
1673         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
1674         of TARGET_64BIT.
1675         (PTRDIFF_TYPE): Likewise.
1676
1677 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
1678
1679         PR target/49920
1680         * config/i386/i386.md (strset): Do not expand strset_singleop
1681         when %eax or $edi are fixed.
1682         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
1683         (*strsetsi_1): Ditto.
1684         (*strsethi_1): Ditto.
1685         (*strsetqi_1): Ditto.
1686         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
1687         (*rep_stossi): Ditto.
1688         (*rep_stosqi): Ditto.
1689         (*strlenqi_1): Ditto.
1690         (cmpstrnsi): Also fail when %ecx is fixed.
1691         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
1692         (*cmpstrnqi_1): Ditto.
1693         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
1694         (*strmovsi_1): Ditto.
1695         (*strmovhi_1): Ditto.
1696         (*strmovqi_1): Ditto.
1697         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
1698         (*rep_movsi): Ditto.
1699         (*rep_movqi): Ditto.
1700
1701 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
1702
1703         PR target/47908
1704         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
1705         Disable instruction scheduling for non-ColdFire targets.
1706         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1707
1708 2011-07-31  Revital Eres  <revital.eres@linaro.org>
1709
1710         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
1711         of anti-dep edge from a branch.
1712         (add_cross_iteration_register_deps): Create anti-dep edge from
1713         a branch.
1714
1715 2011-07-31  Revital Eres  <revital.eres@linaro.org>
1716
1717         * modulo-sched.c: Change comment.
1718         (reset_sched_times): Fix print message.
1719         (print_partial_schedule): Add print info.
1720
1721 2011-07-31  Tom de Vries  <tom@codesourcery.com>
1722
1723         PR middle-end/43513
1724         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
1725         get_object_alignment and TYPE_ALIGN.
1726
1727 2011-07-30  Tom de Vries  <tom@codesourcery.com>
1728
1729         PR middle-end/43513
1730         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
1731         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
1732
1733 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1734
1735         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
1736         <sys/sbd.h>.
1737         (cpu_types): New array.
1738         (cputype): New function.
1739         (host_detect_local_cpu): Only define buf, f if !__sgi__.
1740         Use scaninvent instead of /proc/cpuinfo if __sgi__.
1741         * config.host: Also use driver-native.o, mips/x-native on
1742         mips-sgi-irix*.
1743         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
1744         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
1745         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
1746
1747 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
1748
1749         PR middle-end/49897
1750         PR middle-end/49898
1751         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
1752         in nested parallel and outer is a gimple_reg, mark it as addressable
1753         and set its bit in task_shared_vars bitmap too.
1754
1755 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
1756
1757         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
1758
1759 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1760
1761         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
1762         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
1763         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
1764         AMASK_LOCKPFTCHOK): Define.
1765         (host_detect_local_cpu): Remove buf, f, cpu_names.
1766         Define cpu_types, implver, amask.
1767         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
1768         native CPU.
1769         * config.host: Also use driver-alpha.o, alpha/x-alpha on
1770         alpha*-dec-osf*.
1771         * config/alpha/osf5.h [__alpha__ || __alpha]
1772         (host_detect_local_cpu): Declare.
1773         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
1774         (DRIVER_SELF_SPECS): Define.
1775
1776 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
1777
1778         PR target/47715
1779         * config/i386/i386.md (*load_tp_x32): New.
1780         (*load_tp_x32_zext): Ditto.
1781         (*add_tp_x32): Ditto.
1782         (*add_tp_x32_zext): Ditto.
1783         (*load_tp_<mode>): Disable for TARGET_X32 targets.
1784         (*add_tp_<mode>): Ditto.
1785         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
1786         ptr_mode and convert to Pmode if needed.
1787
1788 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
1789
1790         PR target/49687
1791         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
1792         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
1793         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
1794         Add X to register footprint: Clobber r26/r27.
1795
1796 2011-07-29  Richard Guenther  <rguenther@suse.de>
1797
1798         * builtins.c (fold_builtin_signbit): Build the comparison
1799         with a proper type.
1800
1801 2011-07-29  Richard Guenther  <rguenther@suse.de>
1802
1803         PR tree-optimization/49893
1804         * tree-predcom.c (suitable_reference_p): Volatile references
1805         are not suitable.
1806
1807 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
1808
1809         PR target/49313
1810         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1811         (__ctzsi2): Result for 0 may be undefined.
1812         (__ctzhi2): Result for 0 may be undefined.
1813         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1814         (__popcountsi2): Ditto. And don't clobber r26.
1815         (__popcountdi2): Ditto. And don't clobber r27.
1816         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1817         (parityhi2): New expand.
1818         (paritysi2): New expand.
1819         (popcounthi2): New expand.
1820         (popcountsi2): New expand.
1821         (clzhi2): New expand.
1822         (clzsi2): New expand.
1823         (ctzhi2): New expand.
1824         (ctzsi2): New expand.
1825         (ffshi2): New expand.
1826         (ffssi2): New expand.
1827         (copysignsf3): New insn.
1828         (bswapsi2): New expand.
1829         (*parityhi2.libgcc): New insn.
1830         (*parityqihi2.libgcc): New insn.
1831         (*paritysihi2.libgcc): New insn.
1832         (*popcounthi2.libgcc): New insn.
1833         (*popcountsi2.libgcc): New insn.
1834         (*popcountqi2.libgcc): New insn.
1835         (*popcountqihi2.libgcc): New insn-and-split.
1836         (*clzhi2.libgcc): New insn.
1837         (*clzsihi2.libgcc): New insn.
1838         (*ctzhi2.libgcc): New insn.
1839         (*ctzsihi2.libgcc): New insn.
1840         (*ffshi2.libgcc): New insn.
1841         (*ffssihi2.libgcc): New insn.
1842         (*bswapsi2.libgcc): New insn.
1843
1844 2011-07-29  Richard Guenther  <rguenther@suse.de>
1845
1846         * tree-vrp.c (get_value_range): Only set parameter default
1847         definitions to varying, leave others at undefined.
1848         (extract_range_from_binary_expr): Fix undefined handling.
1849         (vrp_visit_phi_node): Handle merged undefined state.
1850
1851 2011-07-29  Wei Guozhi  <carrot@google.com>
1852
1853         PR rtl-optimization/49799
1854         * combine.c (make_compound_operation): Check if the bit field is valid
1855         before change it to bit field extraction.
1856
1857 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
1858
1859         PR rtl-optimization/49891
1860         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
1861         newly created returnjumps.
1862
1863 2011-07-28  DJ Delorie  <dj@redhat.com>
1864
1865         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
1866         local frame in a naked function, and produce a suitable error for
1867         that specific case.
1868
1869         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
1870         registers to be reloaded in HI classes when the target is HI.
1871
1872 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
1873
1874         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
1875         bound_one, bound_two.
1876
1877 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
1878
1879         PR middle-end/48648
1880         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
1881         CLAST assignments.
1882         (translate_clast): Same.
1883         (translate_clast_assignment): New.
1884
1885 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
1886
1887         PR tree-optimization/49876
1888         * sese.c (rename_uses): Do not return false on gloog_error: set
1889         the new_expr to integer_zero_node and continue code generation.
1890         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
1891
1892 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
1893
1894         PR debug/49846
1895         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
1896         arguments also check if they aren't initialized with a MODE_INT
1897         mode of the same size.
1898
1899 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
1900
1901         * expr.c (get_bit_range): Handle *MEM_REF's.
1902
1903 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
1904
1905         * rtlanal.c (tablejump_p): False for returns.
1906         * reorg.c (first_active_target_insn): New static function.
1907         (find_end_label): Set JUMP_LABEL for a new returnjump.
1908         (optimize_skip, get_jump_flags, rare_destination,
1909         mostly_true_jump, get_branch_condition,
1910         steal_delay_list_from_target, own_thread_p,
1911         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
1912         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
1913         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
1914         * jump.c (delete_related_insns): Likewise.
1915         (jump_to_label_p): New function.
1916         (redirect_target): New static function.
1917         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
1918         (redirect_jump_1): Assert that the new label is nonnull.
1919         (redirect_jump): Likewise.
1920         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
1921         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
1922         exit block.
1923         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
1924         changed.  Ensure that the right label is passed to redirect_jump.
1925         * function.c (emit_return_into_block,
1926         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
1927         ret_rtx in their JUMP_LABEL.
1928         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
1929         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
1930         pass ret_rtx as label.
1931         * cfglayout.c (fixup_reorder_chain): Use
1932         force_nonfallthru_and_redirect rather than force_nonfallthru.
1933         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
1934         * rtl.h (ANY_RETURN_P): New macro.
1935         (jump_to_label_p): Declare.
1936         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
1937         JUMP_LABELs.
1938         (mark_target_live_regs): Likewise.
1939         * basic-block.h (force_nonfallthru_and_redirect): Declare.
1940         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
1941         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
1942         alpha_tablejump_best_label): Remove functions.
1943         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
1944         alpha_tablejump_best_label): Remove declarations.
1945         * config/sh/sh.c (barrier_align, split_branches): Adjust for
1946         ret_rtx in JUMP_LABELs.
1947         * config/arm/arm.c (is_jump_table): Likewise.
1948
1949 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
1950
1951         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
1952         special predicate.  Remove explicit mode checks.
1953
1954 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
1955
1956         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
1957         DW_AT_data_member_location containing just DW_OP_plus_uconst.
1958
1959         PR debug/49871
1960         * dwarf2out.c (size_of_die, value_format, output_die): Use
1961         DW_FORM_udata instead of DW_FORM_data[48] for
1962         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
1963
1964 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1965
1966         * config/i386/i386.md (*tls_global_dynamic_64): Update
1967         length attribute.
1968
1969 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
1970
1971         PR target/47715
1972         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
1973         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
1974         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
1975         (tls_dynamic_gnu2_64): Ditto.
1976         (*tls_dynamic_gnu2_lea_64): Ditto.
1977         (*tls_dynamic_gnu2_call_64): Ditto.
1978         (*tls_dynamic_gnu2_combine_64): Ditto.
1979
1980 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1981
1982         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
1983
1984 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1985
1986         PR target/47364
1987         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
1988
1989 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1990
1991         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
1992         before the core constraints. Adjust attributes.
1993         ("*thumb2_movdf_vfp"): Likewise.
1994
1995 2011-07-28  Kai Tietz  <ktietz@redhat.com>
1996
1997         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
1998         (simplify_truth_ops_using_ranges): Likewise.
1999         (build_assert_expr_for): Likewise.
2000         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
2001         and handle BIT_NOT_EXPR for truth-operation.
2002
2003 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
2004
2005         PR target/49313
2006         Undo r176835 from trunk
2007         2011-07-27  Georg-Johann Lay
2008
2009 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
2010
2011         PR target/49687
2012         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
2013         Add _muluhisi3, _mulshisi3, _usmulhisi3.
2014         * config/avr/libgcc.S (__mulsi3): Rewrite.
2015         (__mulhisi3): Rewrite.
2016         (__umulhisi3): Rewrite.
2017         (__usmulhisi3): New.
2018         (__muluhisi3): New.
2019         (__mulshisi3): New.
2020         (__mulohisi3): New.
2021         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
2022         declare.
2023         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
2024         (pseudo_register_or_const_int_operand): New.
2025         (combine_pseudo_register_operand): New.
2026         (u16_operand): New.
2027         (s16_operand): New.
2028         (o16_operand): New.
2029         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
2030         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
2031         (any_extend, any_extend2): New code iterators.
2032         (extend_prefix): New code attribute.
2033         (mulsi3): Rewrite. Turn insn to expander.
2034         (mulhisi3): Ditto.
2035         (umulhisi3): Ditto.
2036         (usmulhisi3): New expander.
2037         (*mulsi3): New insn-and-split.
2038         (mulu<mode>si3): New insn-and-split.
2039         (muls<mode>si3): New insn-and-split.
2040         (mulohisi3): New insn-and-split.
2041         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
2042         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
2043         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
2044         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
2045         insn-and-split.
2046         (*mulsi3_call): Rewrite.
2047         (*mulhisi3_call): Rewrite.
2048         (*umulhisi3_call): Rewrite.
2049         (*usmulhisi3_call): New insn.
2050         (*muluhisi3_call): New insn.
2051         (*mulshisi3_call): New insn.
2052         (*mulohisi3_call): New insn.
2053         (extendqihi2): Use combine_pseudo_register_operand as predicate
2054         for operand 1.
2055         (extendqisi2): Ditto.
2056         (zero_extendqihi2): Ditto.
2057         (zero_extendqisi2): Ditto.
2058         (zero_extendhisi2): Ditto.
2059         (extendhisi2): Ditto. Don't early-clobber operand 0.
2060
2061 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
2062
2063         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
2064
2065 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2066
2067         PR tree-optimization/49471
2068         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
2069         iv only when the largest type is unsigned.  Do not call
2070         lang_hooks.types.type_for_size.
2071
2072 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2073
2074         PR middle-end/45450
2075         * graphite-poly.c (apply_poly_transforms): Disable legality check
2076         after an openscop read.
2077
2078 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2079
2080         PR middle-end/47691
2081         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
2082         copy_bb_and_scalar_dependences.
2083         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
2084         (graphite_copy_stmts_from_block): Update call to rename_uses.
2085         (copy_bb_and_scalar_dependences): Update call to
2086         graphite_copy_stmts_from_block.
2087         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2088
2089 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
2090
2091         PR target/49313
2092         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
2093         (__ctzsi2): Result for 0 may be undefined.
2094         (__ctzhi2): Result for 0 may be undefined.
2095         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
2096         (__popcountsi2): Ditto. And don't clobber r26.
2097         (__popcountdi2): Ditto. And don't clobber r27.
2098         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
2099         (parityhi2): New expand.
2100         (paritysi2): New expand.
2101         (popcounthi2): New expand.
2102         (popcountsi2): New expand.
2103         (clzhi2): New expand.
2104         (clzsi2): New expand.
2105         (ctzhi2): New expand.
2106         (ctzsi2): New expand.
2107         (ffshi2): New expand.
2108         (ffssi2): New expand.
2109         (copysignsf3): New insn.
2110         (bswapsi2): New expand.
2111         (*parityhi2.libgcc): New insn.
2112         (*parityqihi2.libgcc): New insn.
2113         (*paritysihi2.libgcc): New insn.
2114         (*popcounthi2.libgcc): New insn.
2115         (*popcountsi2.libgcc): New insn.
2116         (*popcountqi2.libgcc): New insn.
2117         (*popcountqihi2.libgcc): New insn-and-split.
2118         (*clzhi2.libgcc): New insn.
2119         (*clzsihi2.libgcc): New insn.
2120         (*ctzhi2.libgcc): New insn.
2121         (*ctzsihi2.libgcc): New insn.
2122         (*ffshi2.libgcc): New insn.
2123         (*ffssihi2.libgcc): New insn.
2124         (*bswapsi2.libgcc): New insn.
2125
2126 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
2127
2128         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
2129         the mode of symbolic_opreand RTXes.
2130
2131 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
2132
2133         * config/i386/predicates.md (x86_64_movabs_operand): Return false
2134         for pic_32bit_operand RTXes.
2135         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
2136         in DImode.
2137
2138 2011-07-27  Kai Tietz  <ktietz@redhat.com>
2139
2140         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
2141         for 32-bit, too.
2142         (ix86_handle_abi_attribute): Allow function attributes
2143         ms_abi/sysv_abi in 32-bit mode, too.
2144         * doc/extend.texi: Adjust attribute documentation.
2145
2146         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
2147         expression handling.
2148         (and_var_with_comparison_1): Likewise.
2149
2150 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
2151
2152         * params.h (ALLOW_STORE_DATA_RACES): New.
2153         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
2154         * Makefile.in (expr.o): Depend on PARAMS_H.
2155         * machmode.h (get_best_mode): Add argument.
2156         * fold-const.c (optimize_bit_field_compare): Add argument to
2157         get_best_mode.
2158         (fold_truthop): Same.
2159         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
2160         * expr.c (emit_group_store): Same.
2161         (copy_blkmode_from_reg): Same.
2162         (write_complex_part): Same.
2163         (optimize_bitfield_assignment_op): Add argument.
2164         Add argument to get_best_mode.
2165         (get_bit_range): New.
2166         (expand_assignment): Calculate maxbits and pass it down accordingly.
2167         (store_field): New argument.
2168         (expand_expr_real_2): New argument to store_field.  Include params.h.
2169         * expr.h (store_bit_field): New argument.
2170         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
2171         into account maxbits.
2172         * calls.c (store_unaligned_arguments_into_pseudos): New argument
2173         to store_bit_field.
2174         * expmed.c (store_bit_field_1): New argument.  Use it.
2175         (store_bit_field): Same.
2176         (store_fixed_bit_field): Same.
2177         (store_split_bit_field): Same.
2178         (extract_bit_field_1): Pass new argument to get_best_mode.
2179         (extract_bit_field): Same.
2180         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
2181         * doc/invoke.texi: Document parameter allow-store-data-races.
2182
2183 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
2184
2185         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
2186
2187 2011-07-27  Kai Tietz  <ktietz@redhat.com>
2188
2189         * tree-vrp.c (extract_range_from_binary_expr): Remove
2190         TRUTH-binary cases and add new bitwise-cases.
2191         (extract_range_from_assignment): Likewise.
2192         (register_edge_assert_for_1): Likeiwise.
2193         (register_edge_assert_for): Likewise.
2194         (simplify_truth_ops_using_ranges): Likewise.
2195         (simplify_stmt_using_ranges): Likewise.
2196
2197 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
2198
2199         PR target/47372
2200         * config/i386/i386.c (ix86_delegitimize_address): Call
2201         simplify_gen_subreg for PIC with mode of x only if modes of
2202         x and orig_x are different.
2203
2204 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
2205
2206         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
2207         to GC allocated copy of the string.
2208         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
2209         before .debug_line, not after it.
2210
2211 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2212
2213         PR middle-end/47046
2214         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
2215         evolution_function_is_affine_p on CHREC_RIGHT.
2216
2217 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2218
2219         * tree-data-ref.c (max_stmt_executions_tree): Do not call
2220         lang_hooks.types.type_for_size.
2221
2222 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2223
2224         PR middle-end/47653
2225         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
2226         loops using wrapping semantics.
2227
2228 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2229
2230         PR middle-end/48805
2231         * tree-scalar-evolution.c (instantiate_scev_r): Return
2232         chrec_dont_know for ADDR_EXPR.
2233
2234 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2235             H.J. Lu  <hongjiu.lu@intel.com>
2236
2237         PR target/47369
2238         PR target/49853
2239         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
2240         if legitimize_tls_address returned operand in wrong mode. Allow
2241         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
2242         if legitimize_pic_address returned operand in wrong mode.
2243
2244 2011-07-26  Martin Jambor  <mjambor@suse.cz>
2245
2246         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
2247         return false for invariants.
2248
2249 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2250
2251         * config/i386/i386.md (add->lea splitter): Implement using SWI
2252         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
2253         (add->lea zext splitter): Change operand 2 predicate to
2254         x86_64_nonmemory_operand.
2255
2256 2011-07-26  Richard Guenther  <rguenther@suse.de>
2257
2258         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
2259         frequency makes everything hot.
2260
2261 2011-07-26  Richard Guenther  <rguenther@suse.de>
2262
2263         PR tree-optimization/49840
2264         * tree-vrp.c (range_fits_type_p): Properly handle full
2265         double-int precision.
2266
2267 2011-07-26  Martin Jambor  <mjambor@suse.cz>
2268
2269         PR bootstrap/49786
2270         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
2271         counts.
2272         (update_specialized_profile): Likewise.
2273
2274 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2275             H.J. Lu  <hongjiu.lu@intel.com>
2276
2277         PR target/47381
2278         PR target/49832
2279         PR target/49833
2280         * config/i386/i386.md (i): Change SImode attribute to "e".
2281         (g): Change SImode attribute to "rme".
2282         (di): Change SImode attribute to "nF".
2283         (general_operand): Change SImode attribute to x86_64_general_operand.
2284         (general_szext_operand): Change SImode attribute to
2285         x86_64_szext_general_operand.
2286         (immediate_operand): Change SImode attribute to
2287         x86_64_immediate_operand.
2288         (nonmemory_operand): Change SImode attribute to
2289         x86_64_nonmemory_operand.
2290         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
2291         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
2292         (*lea_1): Use SWI48 mode iterator.
2293         (*lea_1_zext): New insn pattern.
2294         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
2295         (*bt<mode>): Ditto.
2296         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
2297         Update operand constraints.
2298         (addsi_1_zext): Ditto.
2299         (*add<mode>2): Ditto.
2300         (*addsi_3_zext): Ditto.
2301         (*subsi_1_zext): Ditto.
2302         (*subsi_2_zext): Ditto.
2303         (*subsi_3_zext): Ditto.
2304         (*addsi3_carry_zext): Ditto.
2305         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
2306         (*mulsi3_1_zext): Ditto.
2307         (*andsi_1): Ditto.
2308         (*andsi_1_zext): Ditto.
2309         (*andsi_2_zext): Ditto.
2310         (*<any_or:code>si_1_zext): Ditto.
2311         (*<any_or:code>si_2_zext): Ditto.
2312         (*test<mode>_1): Use <general_operand> predicate for operand 1.
2313         (*and<mode>_2): Ditto.
2314         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
2315         (add->lea splitter): Check operand modes in insn constraint.  Extend
2316         operands less than SImode wide to SImode.
2317         (add->lea zext splitter): Do not extend input operands to DImode.
2318         (*lea_general_1): Handle only QImode and HImode operands.
2319         (*lea_general_2): Ditto.
2320         (*lea_general_3): Ditto.
2321         (*lea_general_1_zext): Remove.
2322         (*lea_general_2_zext): Ditto.
2323         (*lea_general_3_zext): Ditto.
2324         (*lea_general_4): Check operand modes in insn constraint.  Extend
2325         operands less than SImode wide to SImode.
2326         (ashift->lea splitter): Ditto.
2327         * config/i386/i386.c (ix86_print_operand_address): Print address
2328         registers with 'q' modifier on 64bit targets.
2329         * config/i386/predicates.md (pic_32bit_opreand): Define as special
2330         predicate.  Reject non-SI and non-DI modes.
2331
2332 2011-07-25  Andrew Pinski  <apinski@cavium.com>
2333
2334         PR tree-opt/49671
2335         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
2336         TREE_THIS_NOTRAP into the inner most MEM_REF.
2337         Always copy TREE_THIS_VOLATILE.
2338         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
2339         arguments are not volatile references.
2340
2341 2011-07-25  Richard Henderson  <rth@redhat.com>
2342
2343         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
2344         * final.c (final_scan_insn): Don't test for it.
2345         (rest_of_clean_state): Likewise.
2346
2347 2011-07-25  Richard Henderson  <rth@redhat.com>
2348
2349         PR debug/49841
2350         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
2351         (emit_frame_save): Likewise.
2352         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
2353         insn onto a dummy blockage insn after the join label.
2354
2355 2011-07-25  Richard Henderson  <rth@redhat.com>
2356
2357         * dwarf2cfi.c (dw_trace_info): Add ID member.
2358         (get_trace_index): Remove.  Change users to use ID member.
2359         (before_next_cfi_note): New.
2360         (connect_traces): Remove unreachable traces before the main loop.
2361         Look across one trace and generate remember/restore_state if needed.
2362
2363 2011-07-25  Richard Henderson  <rth@redhat.com>
2364
2365         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
2366
2367 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
2368
2369         * genattr.c (write_upcase, gen_attr <enum definition writing>):
2370         Move to ...
2371         * genattr-common.c ... here.
2372         (main): Call gen_attr.
2373         * optc-gen.awk: Make generated program include insn-attr-common.h .
2374         * Makefile.in (oprions.o): Depend on insn-attr-common.h
2375
2376 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
2377
2378         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2379         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2380         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
2381         m32c_print_operand, m32c_print_operand_address): Remove.
2382         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
2383         Change return type to bool. Change argument type to bool.
2384         (m32c_print_operand, m32c_print_operand_address): Make static.
2385         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2386         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2387
2388 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2389
2390         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2391         attributes): Document mmap.
2392
2393 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
2394
2395         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2396         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2397         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
2398         mmix_print_operand, mmix_print_operand_address): Remove.
2399         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
2400         Change return type to bool. Change argument type to bool.
2401         (mmix_print_operand, mmix_print_operand_address): Make static.
2402         (mmix_intval, mmix_output_condition): Change 'x' argument type
2403         to const_rtx.
2404         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2405         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2406
2407 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
2408
2409         PR target/39386
2410         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
2411         shift counter for x << x and x >> x shifts.
2412
2413 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2414
2415         PR target/47124
2416         * config.gcc: Reject *-*-solaris2 configuration.
2417
2418 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
2419
2420         PR tree-optimization/49809
2421         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
2422         gimple_get_lhs instead of gimple_assign_lhs.
2423
2424 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2425
2426         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
2427
2428 2011-07-25  Richard Guenther  <rguenther@suse.de>
2429
2430         PR tree-optimization/49822
2431         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2432         more.  Make sure to preserve stmts with side-effects.  Properly
2433         handle virtual defs, follow a longer def chain.
2434
2435 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
2436
2437         PR plugins/45348
2438         PR plugins/48425
2439         PR plugins/46577
2440         * Makefile.in: Do not flatten c-family directory when installing
2441         plugin headers.
2442
2443 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
2444
2445         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
2446         original nodes if we are dealing with virtual clones.
2447
2448 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
2449
2450         * common/config/c6x/c6x-common.c: New file.
2451
2452 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
2453
2454         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
2455
2456 2011-07-25  Richard Guenther  <rguenther@suse.de>
2457
2458         PR tree-optimization/49715
2459         * tree-vrp.c: Include expr.h and optabs.h.
2460         (range_fits_type_): New function.
2461         (simplify_float_conversion_using_ranges): Likewise.
2462         (simplify_stmt_using_ranges): Call it.
2463         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
2464         * optabs.c (can_float_p): Export.
2465         * optabs.h (can_float_p): Declare.
2466
2467 2011-07-25  Richard Guenther  <rguenther@suse.de>
2468
2469         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
2470         (get_value_range): For out-of-range SSA names or names created
2471         after propagation return a read-only varying range.
2472         (dump_all_value_ranges): Adjust.
2473         (vrp_initialize): Likewise.
2474         (vrp_finalize): Likewise.
2475
2476 2011-07-24  Richard Henderson  <rth@redhat.com>
2477
2478         PR debug/49831
2479         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
2480         them entirely.
2481
2482 2011-07-24  Richard Henderson  <rth@redhat.com>
2483
2484         PR debug/49825
2485         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
2486         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
2487
2488 2011-07-24  Richard Henderson  <rth@redhat.com>
2489
2490         PR debug/49827
2491         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
2492
2493 2011-07-24  Richard Henderson  <rth@redhat.com>
2494
2495         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
2496         Zero args_size for abnormal edges.  Adjust all callers.
2497
2498 2011-07-24  Richard Henderson  <rth@redhat.com>
2499
2500         PR debug/49825
2501         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
2502
2503 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
2504
2505         PR bootstrap/49835
2506         * collect2.c (demangle_flag): Removed.
2507
2508 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
2509
2510         * configure.ac (demangler_in_ld): Default to yes.
2511         * configure: Regenerated.
2512         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
2513         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
2514         --no-demangle options straight through to ld.  When
2515         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
2516         way that has the intended effect on Windows.
2517
2518 2011-07-23  Richard Henderson  <rth@redhat.com>
2519
2520         * dwarf2cfi.c: Include basic-block.h.
2521         (dw_label_info): Remove.
2522         (trace_work_list, trace_index): New.
2523         (remember_row, emit_cfa_remember): Remove.
2524         (dw_trace_info_hash, dw_trace_info_eq): New.
2525         (get_trace_index, get_trace_info): New.
2526         (save_point_p): New.
2527         (free_cfi_row): Remove.
2528         (add_cfi): Do not emit DW_CFA_remember_state.
2529         (cfa_row_equal_p): New.
2530         (barrier_args_size): Remove.
2531         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
2532         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
2533         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
2534         (dwarf2out_cfi_begin_epilogue): Remove.
2535         (dwarf2out_frame_debug_restore_state): Remove.
2536         (connect_traces, create_pseudo_cfg): New.
2537         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
2538         * Makefile.in (dwarf2cfi.o): Update.
2539
2540 2011-07-23  Richard Henderson  <rth@redhat.com>
2541
2542         * dwarf2cfi.c (dw_trace_info): New.
2543         (dw_label_info): New.
2544         (cie_return_save): New.
2545         (cur_trace): New.
2546         (queued_args_size): Rename from args_size.  Update all users.
2547         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
2548         (def_cfa_1): Use cur_trace instead of cfa_*.
2549         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
2550         (clobbers_queued_reg_save, reg_saved_in): Likewise.
2551         (dwarf2out_frame_debug_expr): Likewise.
2552         (create_cie_data): Split out from ...
2553         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
2554
2555 2011-07-23  Richard Henderson  <rth@redhat.com>
2556
2557         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
2558         Update all users to match.
2559         (execute_dwarf2_frame): Free reg_saved_in_data.
2560
2561 2011-07-23  Richard Henderson  <rth@redhat.com>
2562
2563         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
2564         (queued_reg_saves): Don't GTY.  Change to a VEC.
2565         (queue_reg_save): Update to match.
2566         (dwarf2out_flush_queued_reg_saves): Likewise.
2567         (clobbers_queued_reg_save): Likewise.
2568         (reg_saved_in): Likewise.
2569         (execute_dwarf2_frame): Free queued_reg_saves.
2570
2571 2011-07-23  Richard Henderson  <rth@redhat.com>
2572
2573         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
2574
2575 2011-07-23  Richard Henderson  <rth@redhat.com>
2576
2577         * dwarf2cfi.c (add_cfi_args_size): Split out from...
2578         (dwarf2out_args_size): ... here.
2579         (add_cfi_restore): Split out from ...
2580         (dwarf2out_frame_debug_cfa_restore): ... here.
2581         (def_cfa_0): Split out from ...
2582         (def_cfa_1): ... here.
2583         (cfi_oprnd_equal_p, cfi_equal_p): New.
2584         (change_cfi_row): New.
2585         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
2586         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
2587         (output_cfis): Remove.
2588         * dwarf2out.c (output_fde): Simplify output_cfi loop.
2589         (dwarf2out_switch_text_section): Don't call output_cfis.
2590         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
2591         * dwarf2out.h: Update decls.
2592         (enum dw_val_class): Add dw_val_class_none.
2593
2594 2011-07-23  Richard Henderson  <rth@redhat.com>
2595
2596         * dwarf2cfi.c (update_row_reg_save): New.
2597         (dwarf2out_frame_debug_cfa_expression): Use it.
2598         (dwarf2out_frame_debug_cfa_restore): Likewise.
2599         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
2600
2601 2011-07-23  Richard Henderson  <rth@redhat.com>
2602
2603         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
2604
2605 2011-07-23  Richard Henderson  <rth@redhat.com>
2606
2607         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
2608         (cie_cfi_row): New.
2609         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
2610         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
2611         (cur_row, remember_row): New.
2612         (def_cfa_1): Use cur_row instead of the old_* variables.
2613         (dwarf2out_frame_debug_restore_state): Similarly.
2614         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
2615         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
2616         (dwarf2out_frame_debug_adjust_cfa): Likewise.
2617         (dwarf2out_frame_debug_cfa_offset): Likewise.
2618         (dwarf2out_frame_debug_expr): Likewise.
2619         (execute_dwarf2_frame): Set up cur_row.
2620         * dwarf2out.h (struct cfa_loc): Mark for GTY.
2621
2622 2011-07-23  Richard Henderson  <rth@redhat.com>
2623
2624         * basic-block.h (EDGE_PRESERVE): New.
2625         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
2626         * bb-reorder.c: Include except.h.
2627         (fix_up_crossing_landing_pad): New.
2628         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
2629         landing pads in the right partition.  Duplicate as necessary.
2630         (partition_hot_cold_basic_blocks): Fix up DF info after
2631         duplicating landing pads.
2632         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
2633         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
2634         is set properly.  Validate that EH edges are not CROSSING.
2635         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
2636         (dw2_build_landing_pads): ... here.
2637         (convert_to_eh_region_ranges): Remove code to fixup crossing
2638         landing pads.
2639         * except.h (expand_dw2_landing_pad_for_region): Declare.
2640         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
2641
2642 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
2643
2644         PR target/49816
2645         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
2646
2647 2011-07-22  Jason Merrill  <jason@redhat.com>
2648
2649         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
2650
2651 2011-07-22  Richard Henderson  <rth@redhat.com>
2652
2653         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
2654
2655 2011-07-22  Richard Henderson  <rth@redhat.com>
2656
2657         * jump.c (maybe_propagate_label_ref): Split out of...
2658         (mark_all_labels): ... here.  Do not attempt label_ref
2659         propagation while in cfglayout mode.
2660
2661 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
2662
2663         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
2664         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
2665         (dwarf_attr_name): Handle DW_AT_GNU_macros.
2666         (dwarf2out_define): If the vector is empty and
2667         lineno is 0, emit a dummy entry first.
2668         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
2669         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
2670         optimize_macinfo_range): New functions.
2671         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
2672         mergeable, optimize longer strings using
2673         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
2674         optimize longer sequences of define/undef ops from headers
2675         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
2676         emit a section headers.
2677         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
2678         and macinfo_section_label to DEBUG_MACRO_SECTION
2679         resp. DEBUG_MACRO_SECTION_LABEL.
2680         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
2681         instead of DW_AT_macro_info.
2682
2683         PR other/32998
2684         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
2685         options.
2686         * dwarf2out.c: Include opts.h.
2687         (dchar_p): New typedef.  Define heap VEC for it.
2688         (producer_string): New variable.
2689         (gen_producer_string): New function.
2690         (gen_compile_unit_die): Use it.
2691         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
2692         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
2693         * doc/invoke.texi: Document -grecord-gcc-switches and
2694         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
2695         to -frecord-gcc-switches description.
2696
2697 2011-07-22  Jason Merrill  <jason@redhat.com>
2698
2699         PR c++/30112
2700         * c-decl.c (c_linkage_bindings): Define.
2701
2702 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
2703
2704         PR debug/49815
2705         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
2706
2707 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
2708
2709         * config/i386/i386.c (ix86_option_override_internal): Disallow
2710         MS ABI in x32 mode.
2711         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
2712         only for TARGET_LP64.
2713         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
2714
2715 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
2716
2717         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
2718         avoid warnings when GCC is built with a C++ compiler.
2719
2720 2011-07-22  Martin Jambor  <mjambor@suse.cz>
2721
2722         PR lto/49796
2723         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
2724         if decl node is in another partition, call cgraph_get_node only once.
2725
2726 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
2727
2728         * config.gcc (x86_64-*-linux*): Set
2729         default_gnu_indirect_function to yes.
2730
2731 2011-07-22  Richard Guenther  <rguenther@suse.de>
2732
2733         PR tree-optimization/45819
2734         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2735         preserve volatile and notrap flags.
2736
2737 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2738             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2739
2740         PR bootstrap/49794
2741         * configure.ac: Test AM_ICONV with CXX.
2742         * configure: Regenerate.
2743         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
2744
2745 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2746
2747         PR bootstrap/49797
2748         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
2749         (set_cloog_options): Use it.
2750
2751 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
2752
2753         PR c++/49756
2754         * gcc.c (main): Call stack_limit_increase (64MB).
2755         * toplev.c (toplev_main): Likewise.
2756
2757 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2758
2759         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
2760         instead of force_reg.
2761
2762 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2763
2764         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
2765         needed and use force_reg after convert.
2766         (ix86_expand_call): Likewise.
2767         (ix86_expand_special_args_builtin): Likewise.
2768         (ix86_expand_builtin): Likewise.
2769
2770 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2771
2772         PR middle-end/47654
2773         PR middle-end/49649
2774         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
2775         in parameter.  Initialize v1 and v2 based on the values returned
2776         by clast_name_to_lb_ub.
2777         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
2778         values.
2779         (type_for_clast_bin): Same.
2780         (type_for_clast_expr): Same.
2781         (type_for_clast_eq): Update calls to type_for_clast_expr.
2782         (type_for_clast_for): Same.
2783         (build_iv_mapping): Same.
2784         * graphite-ppl.h (value_min): New.
2785
2786 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2787
2788         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
2789         types whenever possible.
2790
2791 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2792
2793         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
2794         and ub fields.
2795         (new_clast_name_index): Add lb and ub parameters.
2796         (free_clast_name_index): New.
2797         (clast_name_to_lb_ub): New.
2798         (save_clast_name_index): Add lb and ub parameters.
2799         (compute_bounds_for_param): New.
2800         (type_for_level): Removed.
2801         (type_for_clast_for): Removed level parameter.  Do not call
2802         type_for_level.
2803         (graphite_create_new_loop): Store the lb and ub for the clast_name
2804         of the iterator of the loop that has been generated.
2805         (graphite_create_new_loop_guard): Remove parameter level.
2806         (create_params_index): Store the lb and ub of each parameter.
2807         (gloog): Use free_clast_name_index.  Pass to create_params_index
2808         the current scop.
2809
2810 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2811
2812         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
2813         (max_precision_type): Inline max_signed_precision_type.
2814         (type_for_clast_red): Use max_precision_type.
2815         (type_for_clast_bin): Same.
2816         (type_for_clast_for): Same.
2817
2818 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2819
2820         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
2821         type_for_interval.
2822         (gcc_type_for_value): Renamed type_for_value.
2823         (gcc_type_for_clast_term): Renamed type_for_clast_term.
2824         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
2825         (gcc_type_for_clast_red): Renamed type_for_clast_red.
2826         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
2827         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
2828         (graphite_translate_clast_equation): Update calls.
2829         (compute_type_for_level): Renamed type_for_level.
2830         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
2831         (build_iv_mapping): Update calls.
2832         (graphite_create_new_loop_guard): Same.
2833
2834 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2835
2836         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
2837         comment.
2838
2839 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2840
2841         * graphite-clast-to-gimple.c (struct ivs_params): New.
2842         (clast_name_to_gcc): Use ivs_params to pass around parameters.
2843         (clast_to_gcc_expression): Same.
2844         (clast_to_gcc_expression_red): Same.
2845         (gcc_type_for_clast_term): Same.
2846         (gcc_type_for_clast_expr): Same.
2847         (gcc_type_for_clast_red): Same.
2848         (gcc_type_for_clast_bin): Same.
2849         (gcc_type_for_clast_eq): Same.
2850         (graphite_translate_clast_equation): Same.
2851         (graphite_create_guard_cond_expr): Same.
2852         (graphite_create_new_guard): Same.
2853         (graphite_create_new_loop): Same.
2854         (build_iv_mapping): Same.
2855         (translate_clast_user): Same.
2856         (graphite_create_new_loop_guard): Same.
2857         (translate_clast): Same.
2858         (translate_clast_for_loop): Same.
2859         (translate_clast_for): Same.
2860         (translate_clast_guard): Same.
2861         (initialize_cloog_names): Fix typo.
2862         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
2863
2864 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2865
2866         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
2867         (new_clast_name_index): Add level parameter.
2868         (clast_name_to_level): New.
2869         (save_clast_name_index): Add level parameter.
2870         (newivs_to_depth_to_newiv): Removed.
2871         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
2872         (graphite_create_new_loop): Add level parameter.  Pass level to
2873         save_clast_name_index.
2874         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
2875         (create_params_index): Pass level to save_clast_name_index.
2876
2877 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2878
2879         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
2880         recompute type, lb, and ub.  Get them from...
2881         (graphite_create_new_loop_guard): ...here.  Pass in parameter
2882         pointers to type, lb, and ub.
2883         (translate_clast_for_loop): Update function calls.
2884         (translate_clast_for): Same.
2885
2886 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2887
2888         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
2889         psct_dynamic_dim.
2890         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
2891         (gcc_type_for_iv_of_clast_loop): Update use of level.
2892         (gloog): Start counting nesting level from 0.
2893         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
2894         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
2895         psct_dynamic_dim on level.
2896
2897 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2898
2899         * config/i386/i386.c (ix86_legitimize_address): Convert to
2900         Pmode if needed.
2901
2902 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2903
2904         * config/i386/i386.c (function_value_64): Always return pointers
2905         in Pmode.
2906         (ix86_promote_function_mode): New.
2907         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
2908
2909 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2910
2911         PR tree-optimization/49749
2912         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
2913         remove no-longer-used maxrank variable.
2914
2915 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
2916
2917         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
2918
2919 2011-07-21  Jason Merrill  <jason@redhat.com>
2920
2921         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
2922         * recog.h (struct insn_data_d): Check it instead of
2923         HAVE_DESIGNATED_INITIALIZERS.
2924         * genoutput.c (output_insn_data): Likewise.
2925
2926 2011-07-21  Richard Guenther  <rguenther@suse.de>
2927
2928         PR tree-optimization/49770
2929         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
2930         valueized any operand.  Renamed from ...
2931         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
2932         (valueize_shared_reference_ops_from_ref): Return whether we
2933         valueized any operand.
2934         (vn_reference_lookup): Only when we valueized any operand
2935         use the valueized reference for alias analysis.  Do not preserve
2936         the original reference tree in this case.
2937
2938 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
2939
2940         * config/i386/i386.c (ix86_decompose_address): Reject all but
2941         register operands and subregs of DImode hard registers in index.
2942
2943 2011-07-21  Kai Tietz  <ktietz@redhat.com>
2944
2945         * fold-const.c (fold_unary_loc): Preserve indirect
2946         comparison cast to none-boolean type.
2947         * tree-ssa.c (useless_type_conversion_p): Preserve cast
2948         from/to boolean-type.
2949         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
2950         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
2951         * tree-cfg.c (verify_gimple_comparison): Check result
2952         type of comparison expression.
2953         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
2954         of condition result and disallow type-cast sinking into comparison.
2955
2956 2011-07-21  Richard Guenther  <rguenther@suse.de>
2957
2958         * tree-ssa-forwprop.c (combine_conversions): Return whether
2959         we have to run cfg-cleanup.  Properly remove dead stmts.
2960         (ssa_forward_propagate_and_combine): Adjust.
2961
2962 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
2963
2964         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
2965
2966 2011-07-21  Kai Tietz  <ktietz@redhat.com>
2967
2968         * tree-ssa-propagate.c (substitute_and_fold): Use
2969         do_dce flag to deside, if BB's statements are scanned
2970         in last to first, or first to last order.
2971
2972 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
2973
2974         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
2975
2976 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
2977             Uros Bizjak  <ubizjak@gmail.com>
2978             Richard Henderson  <rth@redhat.com>
2979
2980         * config/i386/constraints.md (w): New.
2981
2982         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
2983         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
2984
2985         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
2986         instead of TARGET_64BIT.
2987
2988         * config/i386/i386.md (indirect_jump): Replace
2989         nonimmediate_operand with indirect_branch_operand.
2990         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
2991         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
2992         Convert operand 0 to Pmode for x32 if not PIC.
2993         (*tablejump_1): Replace nonimmediate_operand with
2994         indirect_branch_operand.  Replace constraint "m" with "w".
2995         (*call_vzeroupper): Replace constraint "m" with "w".
2996         (*call): Likewise.
2997         (*call_rex64_ms_sysv_vzeroupper): Likewise.
2998         (*call_rex64_ms_sysv): Likewise.
2999         (*call_value_vzeroupper): Likewise.
3000         (*call_value): Likewise.
3001         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
3002         (*call_value_rex64_ms_sysv): Likewise.
3003         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
3004
3005         * config/i386/predicates.md (indirect_branch_operand): New.
3006         (call_insn_operand): Support x32.
3007
3008 2011-07-20  Michael Eager  <eager@eagercon.com>
3009
3010         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
3011
3012 2011-07-20  Richard Henderson  <rth@redhat.com>
3013
3014         * cfg.c (dump_bb_info): Dump basic_block->flags.
3015         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
3016
3017 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
3018
3019         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3020         of DImode hard registers in index.
3021         (ix86_legitimate_address_p): Allow subregs of base and index to span
3022         more than a word.  Assert that subregs of base and index satisfy
3023         register_no_elim_operand predicates.  Reject addresses where
3024         base and index have different modes.
3025
3026 2011-07-20  Robert Millan  <rmh@gnu.org>
3027
3028         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
3029
3030 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3031
3032         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
3033         removing now-unnecessary assignment.
3034
3035 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3036
3037         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
3038         memory address space to the type's address space.
3039
3040 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
3041
3042         PR target/36467
3043         PR target/49687
3044         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
3045         and expand appropriately if there is a CONST_INT in operand2.
3046         (usmulqihi3): New insn.
3047         (*sumulqihi3): New insn.
3048         (*osmulqihi3): New insn.
3049         (*oumulqihi3): New insn.
3050         (*muluqihi3.uconst): New insn_and_split.
3051         (*muluqihi3.sconst): New insn_and_split.
3052         (*mulsqihi3.sconst): New insn_and_split.
3053         (*mulsqihi3.uconst): New insn_and_split.
3054         (*mulsqihi3.oconst): New insn_and_split.
3055         (*ashifthi3.signx.const): New insn_and_split.
3056         (*ashifthi3.signx.const7): New insn_and_split.
3057         (*ashifthi3.zerox.const): New insn_and_split.
3058         (mulsqihi3): New insn.
3059         (muluqihi3): New insn.
3060         (muloqihi3): New insn.
3061         * config/avr/predicates.md (const_2_to_7_operand): New.
3062         (const_2_to_6_operand): New.
3063         (u8_operand): New.
3064         (s8_operand): New.
3065         (o8_operand): New.
3066         (s9_operand): New.
3067         (register_or_s9_operand): New.
3068
3069 2011-07-20  Kai Tietz  <ktietz@redhat.com>
3070
3071         * builtins.c (fold_builtin_expect): See through the cast
3072         from truthvalue_type_node to long.
3073
3074 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
3075
3076         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
3077         where we can use them from the standard and altivec instruction
3078         sets, instead of always using the 3 operand VSX forms that require
3079         the destination to overlap one of the inputs.
3080         (vsx_fms*): Ditto.
3081         (vsx_fnma*): Ditto.
3082         (vsx_fnms*): Ditto.
3083
3084         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
3085         for DF types.
3086         (fmsdf4_fpr): Ditto.
3087         (nfmadf4_fpr): Ditto.
3088         (nfmsdf4_fpr): Ditto.
3089
3090 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
3091
3092         * genrecog.c (make_insn_sequence): Correct position numbering
3093         when filtering out match_scratch and match_dup.
3094
3095 2011-07-20  Richard Guenther  <rguenther@suse.de>
3096
3097         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
3098         against already removed statements.
3099         (forward_propagate_into_comparison): Remove dead defining stmts.
3100         (forward_propagate_into_gimple_cond): Likewise.
3101         (forward_propagate_into_cond): Simplify.
3102         (ssa_forward_propagate_and_combine): Handle changed cfg from
3103         forward_propagate_into_comparison.
3104         * tree-ssa-phiopt.c (conditional_replacement): Use proper
3105         locations for newly built statements.
3106
3107 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
3108
3109         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
3110
3111 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3112
3113         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
3114         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
3115
3116 2011-07-20  Richard Guenther  <rguenther@suse.de>
3117
3118         PR middle-end/18908
3119         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
3120         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
3121         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
3122
3123 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
3124
3125         * config/frv/frv.c (frv_register_move_cost): Define explicitly
3126         costs for subclasses of GR_REGS.
3127
3128 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
3129
3130         PR target/49780
3131         * config/i386/predicates.md (no_seg_addres_operand): No more special.
3132         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3133         of DImode hard registers in base.
3134         (ix86_legitimate_address_p): Allow SImode and DImode base and index
3135         registers.
3136
3137 2011-07-20  Richard Guenther  <rguenther@suse.de>
3138
3139         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
3140         (unify_nodes): Deal with that.
3141         (solve_graph): Likewise.
3142
3143 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
3144
3145         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
3146         canonicalize left operand from ZERO_EXTEND to AND.
3147
3148 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
3149
3150         * target.def (class_max_nregs): New hook.
3151         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
3152         * doc/tm.texi: Regenerate.
3153         * targhooks.c (default_class_max_nregs): New function.
3154         * targhooks.h (default_class_max_nregs): Declare.
3155         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
3156         x_ira_reg_class_min_nregs arrays to unsigned char.
3157         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
3158         hook instead of CLASS_MAX_NREGS macro.
3159         * reginfo.c (restore_register_info): Ditto.
3160         * ira-conflicts.c (process_regs_for_copy): Use
3161         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3162         Change type rclass and aclass vars to reg_class_t.
3163         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
3164         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
3165         reg_class_t.
3166         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
3167         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3168
3169         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
3170         * config/i386/i386.c (ix86_class_max_nregs): New function.
3171         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
3172         instead of CLASS_MAX_NREGS macro.
3173         (TARGET_CLASS_MAX_NREGS): Define.
3174         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
3175         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
3176         * config/avr/avr.c (class_max_nregs): Remove function.
3177         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
3178         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
3179         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
3180         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
3181         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
3182         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
3183         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
3184         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
3185         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
3186         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
3187         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
3188         * config/score/score.h (CLASS_MAX_NREGS): Remove.
3189         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
3190         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
3191         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
3192
3193 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
3194
3195         * cif-code.def (OVERWRITABLE): Fix typo and move around.
3196         (TARGET_OPTIMIZATION_MISMATCH): Delete.
3197         (EH_PERSONALITY): Fix typo.
3198         (NON_CALL_EXCEPTIONS): Fix message.
3199         (OPTIMIZATION_MISMATCH): Adjust message.
3200         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
3201
3202 2011-07-19  Ian Lance Taylor  <iant@google.com>
3203
3204         * doc/install.texi (Configuration): Document
3205         --enable-build-poststage1-with-cxx.
3206
3207 2011-07-19  Robert Millan  <rmh@gnu.org>
3208
3209         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
3210         (GLIBC_DYNAMIC_LINKER): Remove.
3211
3212         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
3213         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3214         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3215         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
3216         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
3217         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
3218
3219         * config/mips/linux.h: Remove everything except for ...
3220         (GLIBC_DYNAMIC_LINKER): ... this macro.
3221
3222         * config/mips/linux64.h: Remove everything except for ...
3223         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3224         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3225         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
3226         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
3227         (GNU_USER_LINK_EMULATIONN32): New macros.
3228
3229         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
3230         Use the new headers.
3231
3232 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3233
3234         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
3235         Add offset_known_p and size_known_p fields.
3236         (MEM_OFFSET_KNOWN_P): Update accordingly.
3237         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
3238         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
3239         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
3240         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
3241         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
3242         (init_emit_regs): Likewise.
3243
3244 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3245
3246         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
3247         (MEM_OFFSET): Change from returning an rtx to returning a
3248         HOST_WIDE_INT.
3249         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
3250         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
3251         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3252         (clear_mem_offset): Declare.
3253         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
3254         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
3255         MEM_OFFSET to get a HOST_WIDE_INT offset.
3256         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
3257         (adjust_offset_for_component_ref): Take a bool "known_p"
3258         parameter and a HOST_WIDE_INT "offset" parameter.
3259         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
3260         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
3261         than an rtx.  Use clear_mem_offset to clear the offset.
3262         * cfgcleanup.c (merge_memattrs): Likewise.
3263         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
3264         * function.c (assign_parm_find_stack_rtl): Likewise.
3265         (assign_parm_setup_stack): Likewise.
3266         * print-rtl.c (print_rtx): Likewise.
3267         * reload.c (find_reloads_subreg_address): Likewise.
3268         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
3269         * var-tracking.c (INT_MEM_OFFSET): Likewise.
3270         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
3271         (get_mem_align_offset): Likewise.
3272         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3273         (clear_mem_offset): New function.
3274         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
3275         offset rather than an rtx.  Assume both the expressio and offset
3276         are available.
3277         (r10k_needs_protection_p_1): Update accordingly, checking the
3278         expression and offset availability here instead.
3279
3280 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3281
3282         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
3283         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
3284         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
3285         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
3286         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3287         (clear_mem_size): Declare.
3288         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3289         (clear_mem_size): New function.
3290         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
3291         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
3292         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
3293         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
3294         to clear the size.
3295         (nonoverlapping_memrefs_p): Likewise.
3296         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
3297         (expand_builtin_init_trampoline): Likewise.
3298         * calls.c (compute_argument_addresses): Likewise.
3299         * cfgcleanup.c (merge_memattrs): Likewise.
3300         * dce.c (find_call_stack_args): Likewise.
3301         * dse.c (record_store, scan_insn): Likewise.
3302         * dwarf2out.c (dw_sra_loc_expr): Likewise.
3303         * expr.c (emit_block_move_hints): Likewise.
3304         * function.c (assign_parm_find_stack_rtl): Likewise.
3305         * print-rtl.c (print_rtx): Likewise.
3306         * reload.c (find_reloads_subreg_address): Likewise.
3307         * rtlanal.c (may_trap_p_1): Likewise.
3308         * var-tracking.c (track_expr_p): Likewise.
3309         * varasm.c (assemble_trampoline_template): Likewise.
3310         * config/arm/arm.c (arm_print_operand): Likewise.
3311         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
3312         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
3313         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
3314         (expand_constant_setmem_prologue): Likewise.
3315         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
3316         * config/rs6000/rs6000.c (expand_block_move): Likewise.
3317         (adjacent_mem_locations): Likewise.
3318         * config/s390/s390.c (s390_expand_setmem): Likewise.
3319         (s390_expand_insv): Likewise.
3320         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
3321         (*extendqi<mode>2_short_displ): Likewise.
3322         * config/sh/sh.c (expand_block_move): Likewise.
3323         * config/sh/sh.md (extv, extzv): Likewise.
3324
3325 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3326
3327         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
3328         (mem_attrs_htab_eq): ...here.
3329         (find_mem_attrs): Replace with...
3330         (set_mem_attrs): ...this function.  Take a mem_attrs structure
3331         rather than individual fields.
3332         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3333         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3334         (set_mem_size, change_address, adjust_address_1, offset_address)
3335         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3336         Update accordingly.
3337
3338 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3339
3340         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
3341         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
3342         Provide a dummy definition of MEM_ADDR_SPACE for generators.
3343         (target_rtl): Add x_mode_mem_attrs.
3344         (mode_mem_attrs): New macro.
3345         (get_mem_attrs): New function.
3346         * emit-rtl.c (get_mem_attrs): Rename to...
3347         (find_mem_attrs): ...this.
3348         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3349         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3350         (set_mem_size, change_address, adjust_address_1, offset_address)
3351         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3352         Update accordingly.
3353         (init_emit_regs): Initialize mode_mem_attrs.
3354
3355 2011-07-19  Richard Guenther  <rguenther@suse.de>
3356
3357         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
3358         TRUTH_*_EXPR handling.
3359         * tree-ssa-operands.c (get_expr_operands): Likewise.
3360         * tree-ssa-pre.c (fully_constant_expression): Likewise.
3361         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
3362         Likewise.
3363         (is_and_or_or): Likewise.
3364         (is_norm_cond_subset_of): Likewise.
3365
3366 2011-07-19  Richard Guenther  <rguenther@suse.de>
3367
3368         * tree.h (fold_build_pointer_plus_loc): New helper function.
3369         (fold_build_pointer_plus_hwi_loc): Likewise.
3370         (fold_build_pointer_plus): Define.
3371         (fold_build_pointer_plus_hwi): Likewise.
3372         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
3373         (fold_builtin_memory_op): Likewise.
3374         (fold_builtin_stpcpy): Likewise.
3375         (fold_builtin_memchr): Likewise.
3376         (fold_builtin_strstr): Likewise.
3377         (fold_builtin_strchr): Likewise.
3378         (fold_builtin_strrchr): Likewise.
3379         (fold_builtin_strpbrk): Likewise.
3380         (fold_builtin_strcat): Likewise.
3381         (expand_builtin_memory_chk): Likewise.
3382         (fold_builtin_memory_chk): Likewise.
3383         * c-typeck.c (build_unary_op): Likewise.
3384         * cgraphunit.c (thunk_adjust): Likewise.
3385         * fold-const.c (build_range_check): Likewise.
3386         (fold_binary_loc): Likewise.
3387         * omp-low.c (extract_omp_for_data): Likewise.
3388         (expand_omp_for_generic): Likewise.
3389         (expand_omp_for_static_nochunk): Likewise.
3390         (expand_omp_for_static_chunk): Likewise.
3391         * tree-affine.c (add_elt_to_tree): Likewise.
3392         * tree-data-ref.c (split_constant_offset_1): Likewise.
3393         * tree-loop-distribution.c (generate_memset_zero): Likewise.
3394         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
3395         * tree-predcom.c (ref_at_iteration): Likewise.
3396         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
3397         (add_to_parts): Likewise.
3398         (create_mem_ref): Likewise.
3399         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3400         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
3401         (number_of_iterations_le): Likewise.
3402         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
3403         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3404         (vect_create_addr_base_for_vector_ref): Likewise.
3405         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
3406         (vect_create_cond_for_alias_checks): Likewise.
3407         * tree-vrp.c (extract_range_from_assert): Likewise.
3408         * config/alpha/alpha.c (alpha_va_start): Likewise.
3409         (alpha_gimplify_va_arg_1): Likewise.
3410         * config/i386/i386.c (ix86_va_start): Likewise.
3411         (ix86_gimplify_va_arg): Likewise.
3412         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3413         * config/mep/mep.c (mep_expand_va_start): Likewise.
3414         (mep_gimplify_va_arg_expr): Likewise.
3415         * config/mips/mips.c (mips_va_start): Likewise.
3416         (mips_gimplify_va_arg_expr): Likewise.
3417         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3418         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
3419         (rs6000_gimplify_va_arg): Likewise.
3420         * config/s390/s390.c (s390_va_start): Likewise.
3421         (s390_gimplify_va_arg): Likewise.
3422         * config/sh/sh.c (sh_va_start): Likewise.
3423         (sh_gimplify_va_arg_expr): Likewise.
3424         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
3425         * config/spu/spu.c (spu_va_start): Likewise.
3426         (spu_gimplify_va_arg_expr): Likewise.
3427         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3428         Likewise.
3429         (xstormy16_gimplify_va_arg_expr): Likewise.
3430         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
3431         (xtensa_gimplify_va_arg_expr): Likewise.
3432
3433 2011-07-19  Richard Guenther  <rguenther@suse.de>
3434
3435         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
3436         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
3437         handling.
3438
3439         PR middle-end/18908
3440         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
3441         result of BIT_*_EXPR to bitfield precision.
3442
3443 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
3444
3445         PR tree-optimization/49742
3446         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
3447         as a potential write.
3448
3449 2011-07-19  Richard Guenther  <rguenther@suse.de>
3450
3451         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
3452         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
3453         (forward_propagate_comparison): Simplify, remove obsolete code.
3454
3455 2011-07-19  Richard Guenther  <rguenther@suse.de>
3456
3457         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
3458         BIT_XOR_EXPR, same as the RTL expander does.
3459         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
3460         (verify_gimple_assign_unary): Likewise.
3461         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
3462         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
3463         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
3464
3465 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
3466
3467         PR tree-optimization/49768
3468         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
3469         if offset is smaller than bitoffset, but offset+size is bigger
3470         than bitoffset.
3471
3472 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
3473
3474         PR tree-optimization/49771
3475         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
3476         zero step, set segment length to the size of the data-ref's type.
3477
3478 2011-07-18  Martin Jambor  <mjambor@suse.cz>
3479
3480         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
3481         comments.
3482         (ipcp_values_pool): Declare.
3483         (ipcp_sources_pool): Likewise.
3484         (ipcp_lattice): Changed to forward declaration.
3485         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
3486         cannot_devirtualize.
3487         (ipa_node_params): New fields descriptors, lattices, known_vals,
3488         clone_for_all_contexts and node dead, removed fields params and
3489         count_scale.
3490         (ipa_set_param_count): Removed.
3491         (ipa_get_param_count): Made to work with descriptors vector.
3492         (ipa_get_param): Updated.
3493         (ipa_param_cannot_devirtualize_p): Removed.
3494         (ipa_param_types_vec_empty): Likewise.
3495         (ipa_set_param_used): New function.
3496         (ipa_get_param_used): Updated to use descriptors vector.
3497         (ipa_func_list): Removed.
3498         (ipa_init_func_list): Removed declaration.
3499         (ipa_push_func_to_list_1): Likewise.
3500         (ipa_pop_func_from_list): Likewise.
3501         (ipa_push_func_to_list): Removed.
3502         (ipa_lattice_from_jfunc): Remove declaration.
3503         (ipa_get_jf_pass_through_result): Declare.
3504         (ipa_get_jf_ancestor_result): Likewise.
3505         (ipa_value_from_jfunc): Likewise.
3506         (ipa_get_lattice): Update.
3507         (ipa_lat_is_single_const): New function.
3508         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
3509         (ipa_init_func_list): Likewise.
3510         (ipa_pop_func_from_list): Likewise.
3511         (ipa_get_param_decl_index): Fix coding style.
3512         (count_formal_params): Removed.
3513         (count_formal_params_1): Renamed to count_formal_params.
3514         (ipa_populate_param_decls): Update to use descriptors vector.
3515         (ipa_initialize_node_params): Likewise.
3516         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
3517         (ipa_analyze_params_uses): Likewise.
3518         (ipa_free_node_params_substructures): Likewise and free also lattices
3519         and known values.
3520         (duplicate_array): Removed.
3521         (ipa_edge_duplication_hook): Add the new edge to the list of edge
3522         clones.
3523         (ipa_node_duplication_hook): Update to use new lattices.
3524         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
3525         (ipa_free_all_structures_after_iinln): Likewise.
3526         (ipa_write_node_info): Update to use new lattices.
3527         (ipa_read_node_info): Likewise.
3528         (ipa_get_jf_pass_through_result): New function.
3529         (ipa_get_jf_ancestor_result): Likewise.
3530         (ipa_value_from_jfunc): Likewise.
3531         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
3532         * ipa-cp.c: Reimplemented.
3533         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
3534         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
3535         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
3536         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
3537         * doc/invoke.texi (devirt-type-list-size): Removed description.
3538         (ipa-cp-value-list-size): Added description.
3539
3540 2011-07-18  Richard Henderson  <rth@redhat.com>
3541
3542         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
3543         before calling create_basic_block.
3544
3545 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
3546
3547         PR middle-end/49675
3548         * tree.c (build_common_builtin_nodes): Register
3549         __builtin_return_address, __cyg_profile_func_enter
3550         and __cyg_profile_func_exit.
3551
3552 2011-07-18  Richard Henderson  <rth@redhat.com>
3553
3554         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
3555         (add_labels_and_missing_jumps): ... here.
3556         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
3557
3558 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
3559
3560         PR target/47744
3561         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3562         of DImode hard registers in PLUS address chains.
3563
3564 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3565
3566         PR bootstrap/49769
3567         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
3568         (alpha*-*-freebsd*): Likewise.
3569         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3570         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3571         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
3572         crtprec80.o, crtfastmath.o to extra_parts for all targets.
3573         (ia64*-*-elf*): Remove extra_parts.
3574         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
3575         (sparc64-*-linux*): Likewise.
3576         (sparc64-*-freebsd*): Likewise.
3577
3578         Revert:
3579         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
3580         (ia64*-*-linux*): Likewise.
3581         (mips64*-*-linux*): Likewise.
3582         (mips*-*-linux*): Likewise.
3583
3584 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
3585
3586         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
3587
3588 2011-07-18  Richard Guenther  <rguenther@suse.de>
3589
3590         * gimplify.c (gimplify_expr): Use input_location, not saved_location
3591         when building new trees.
3592
3593 2011-07-18  Richard Guenther  <rguenther@suse.de>
3594
3595         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
3596         expansion result to bitfield precision if required.
3597
3598 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3599
3600         * config.gcc (i[3456x]86-*-netware*): Remove.
3601
3602         * gthr-nks.h: Remove.
3603         * configure.ac (enable_threads): Remove nks.
3604         * configure: Regenerate.
3605
3606         * config/i386/i386.c (ix86_encode_section_info): Remove netware
3607         reference.
3608         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
3609         <netware.h> reference.
3610
3611         * config/i386/netware-libgcc.c,
3612         gcc/config/i386/netware-libgcc.def,
3613         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
3614         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
3615         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
3616         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
3617
3618         * doc/extend.texi (Function Attributes,
3619         callee_pop_aggregate_return): Remove i?86-netware reference.
3620         * doc/install.texi (Configuration, --enable-threads): Remove nks.
3621
3622 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3623
3624         PR target/49746
3625         Revert:
3626         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3627
3628         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
3629         patterns.
3630
3631 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
3632
3633         PR middle-end/49732
3634         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
3635
3636 2011-07-16  Matthias Klose  <doko@ubuntu.com>
3637
3638         * doc/install.texi: Document --enable-static-libjava.
3639
3640 2011-07-15  Richard Henderson  <rth@redhat.com>
3641
3642         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3643         Replace all three arguments by returning a VEC of edges.
3644         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
3645         pointers and counts.
3646         (fix_edges_for_rarely_executed_code): Merge ...
3647         (rest_of_handle_partition_blocks): ... into...
3648         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
3649         any work was performed.
3650         (pass_partition_blocks): Clear todo_flags_finish.
3651
3652 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
3653             Jakub Jelinek  <jakub@redhat.com>
3654             Jonathan Wakely  <jwakely.gcc@gmail.com>
3655
3656         PR libstdc++/49745
3657         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
3658         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
3659
3660 2011-07-15  Jason Merrill  <jason@redhat.com>
3661
3662         PR testsuite/49741
3663         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
3664         rather than --tool_opts.
3665
3666 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
3667
3668         * doc/plugins.texi (Building GCC plugins): gengtype needs its
3669         corresponding gtype.state.
3670
3671 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3672
3673         PR target/49723
3674         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
3675
3676 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
3677
3678         PR target/48220
3679         * doc/md.texi (Standard Names): Document window_save.
3680         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
3681         expand_debug_expr and expand_debug_source_expr.  If the target has
3682         a window_save instruction, adjust the ENTRY_VALUE_EXP.
3683         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
3684         SSA_NAME_VAR is a parameter.
3685         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
3686         * var-tracking.c (parm_reg_t): New type and associated vector type.
3687         (windowed_parm_regs): New variable.
3688         (adjust_insn): If the target has a window_save instruction and this
3689         is the instruction, make its effect on parameter registers explicit.
3690         (next_non_note_insn_var_location): New function.
3691         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
3692         (vt_add_function_parameter): If the target has a window_save insn,
3693         adjust the incoming RTL and record that in windowed_parm_regs.
3694         (vt_finalize): Free windowed_parm_regs.
3695
3696 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
3697
3698         * doc/invoke.texi (C6X Options): New section.
3699         * doc/md.texi (TI C6X family): New section.
3700         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
3701         tic6x-*-uclinux.
3702         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
3703         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
3704         Provide C6X definitions.
3705         * config/c6x/c6x.md: New file.
3706         * config/c6x/constraints.md: New file.
3707         * config/c6x/predicates.md: New file.
3708         * config/c6x/c6x-sched.md.in: New file.
3709         * config/c6x/c6x-sched.md: New file.
3710         * config/c6x/gensched.sh: New file.
3711         * config/c6x/c6x-mult.md.in: New file.
3712         * config/c6x/genmult.sh: New file.
3713         * config/c6x/c6x-mult.md: New file.
3714         * config/c6x/sync.md: New file.
3715         * config/c6x/c6x-protos.h: New file.
3716         * config/c6x/sfp-machine.h: New file.
3717         * config/c6x/c6x.c: New file.
3718         * config/c6x/c6x.h: New file.
3719         * config/c6x/crti.s: New file.
3720         * config/c6x/crtn.s: New file.
3721         * config/c6x/lib1funcs.asm: New file.
3722         * config/c6x/c6x-modes.def: New file.
3723         * config/c6x/genopt.sh: New file.
3724         * config/c6x/c6x.opt: New file.
3725         * config/c6x/c6x-tables.opt: New file.
3726         * config/c6x/c6x-opts.h: New file.
3727         * config/c6x/c6x-isas.def: New file.
3728         * config/c6x/elf.h: New file.
3729         * config/c6x/elf-common.h: New file.
3730         * config/c6x/uclinux-elf.h: New file.
3731         * config/c6x/t-c6x: New file.
3732         * config/c6x/t-c6x-elf: New file.
3733         * config/c6x/t-c6x-uclinux: New file.
3734         * config/c6x/t-c6x-softfp: New file.
3735         * config/c6x/gtd.c: New file.
3736         * config/c6x/gtf.c: New file.
3737         * config/c6x/ltd.c: New file.
3738         * config/c6x/ltf.c: New file.
3739         * config/c6x/ged.c: New file.
3740         * config/c6x/gef.c: New file.
3741         * config/c6x/led.c: New file.
3742         * config/c6x/lef.c: New file.
3743         * config/c6x/eqd.c: New file.
3744         * config/c6x/eqf.c: New file.
3745         * config/c6x/libgcc-c6xeabi.ver: New file.
3746
3747         Revert
3748         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
3749         PR rtl-optimization/11320
3750         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
3751         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
3752         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
3753         current_sched_info->compute_jump_reg_dependencies. Record which
3754         registers are used and which registers are set by the jump.
3755         Clear deps->reg_conditional_sets after a barrier.
3756         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
3757         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
3758         (init_deps): Initialize reg_conditional_sets.
3759         (free_deps): Clear reg_conditional_sets.
3760         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
3761         Mark registers live on entry of the fallthrough block and conditionally
3762         set as set by the jump. Mark registers live on entry of non-fallthrough
3763         blocks as used by the jump.
3764         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
3765         Mark new parameters as unused.
3766
3767 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
3768
3769         PR tree-opt/49309
3770         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
3771         Use fold_build2_loc instead of build2.
3772         Use the correct type for the new tree.
3773
3774 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
3775
3776         PR rtl-optimization/11320
3777         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
3778         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
3779
3780 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
3781
3782         PR target/49487
3783         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
3784         of REG.
3785         (*rotw<mode>): Use const_int_operand for operand2.
3786         Use match_scatch for operand3.
3787         (*rotb<mode>): Ditto
3788         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
3789
3790 2011-07-14  Richard Guenther  <rguenther@suse.de>
3791
3792         PR tree-optimization/49651
3793         * tree-ssa-structalias.c (get_constraint_for_1): Properly
3794         handle dereferences with subvariables.
3795
3796 2011-07-14  Richard Guenther  <rguenther@suse.de>
3797
3798         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
3799         (fold_stmt_1): Do it here directly on gimple and as a first thing.
3800
3801 2011-07-14  Richard Guenther  <rguenther@suse.de>
3802
3803         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
3804         not bool_var when folding bool_var != 1 or bool_var == 0.
3805
3806 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
3807
3808         * haifa-sched.c (schedule_insns): Remove outdated comment.
3809         (schedule_block): When computing a known value for TODO_SPEC,
3810         just set it rather than using logical operations.
3811         (try_ready): Likewise.  Use a local variable rather than a
3812         pointer to TODO_SPEC.  Reorder an if statement to move the
3813         easy case to the then block.
3814         * sched-deps.c (dep_spec_p): New static function.
3815         (update_dep): Use it to decide whether to call
3816         change_spec_dep_to_hard.
3817         (get_back_and_forw_lists): Use it.
3818         (sd_resolve_dep): Likewise.
3819         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
3820         (haifa_note_mem_dep): Likewise.
3821         (check_dep): Likewise.
3822         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
3823         (sched_free_deps): Free in two passes.
3824
3825 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
3826
3827         PR middle-end/49736
3828         * expr.c (all_zeros_p): Undo bogus part of last change.
3829
3830 2011-07-14  Matthias Klose <doko@ubuntu.com>
3831
3832         * doc/extend.texi (optimize attribute): Fix typo.
3833
3834 2011-07-14  Richard Guenther  <rguenther@suse.de>
3835
3836         * gimplify.c (gimplify_expr): Only do required conversions.
3837
3838 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
3839
3840         PR target/43746
3841         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
3842         i.e. use default_elf_select_section.
3843         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
3844         (READONLY_DATA_SECTION_ASM_OP): Remove.
3845         (TARGET_ASM_NAMED_SECTION): Move from here...
3846         * config/avr/avr.c: ...to here.
3847         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
3848         (avr_asm_named_section): Make static.
3849
3850 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3851
3852         PR bootstrap/49739
3853         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
3854         and crtfastmath.o for Linux/x86.
3855
3856 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
3857
3858         * haifa-sched.c: Include "hashtab.h"
3859         (sched_no_dce): New global variable.
3860         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
3861         SHADOW_P): New macros.
3862         (last_clock_var, cycle_issued_insns): Move declarations.
3863         (must_backtrack): New static variable.
3864         (struct delay_pair): New structure.
3865         (delay_htab, delay_htab_i2): New static variables.
3866         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
3867         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
3868         functions.
3869         (dep_cost_1): If delay pairs exist, try to look up the insns and
3870         use the correct pair delay if we find them.
3871         (rank-for_schedule): Tweak priority for insns that must be scheduled
3872         soon to avoid backtracking.
3873         (queue_insn): Detect conditions which force backtracking.
3874         (ready_add): Likewise.
3875         (struct sched_block_state): Add member shadows_only_p.
3876         (struct haifa_save_data): New structure.
3877         (backtrack_queue): New static variable.
3878         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
3879         unschedule_insns_until, restore_last_backtrack_point,
3880         free_topmost_backtrack_point, free_backtrack_queue,
3881         estimate_insn_tick, estimate_shadow_tick): New functions.
3882         (prune_ready_list): New arg shadows_only_p.  All callers changed.
3883         If true, remove everything that isn't SHADOW_P.  Look up delay
3884         pairs and estimate ticks to avoid scheduling the first insn too early.
3885         (verify_shadows): New function.
3886         (schedule_block): Add machinery to enable backtracking.
3887         (sched_init): Take sched_no_dce into account when setting
3888         DF_LR_RUN_DCE.
3889         (free_delay_pairs): New function.
3890         (init_h_i_d): Initialize INSN_EXACT_TICK.
3891         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
3892         * sched-deps.c (sd_unresolve_dep): New function.
3893         * sched-int. (struct haifa_sched_info): New fields save_state
3894         and restore_state.
3895         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
3896         feeds_backtrack_insn and shadow_p.
3897         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
3898         (sched_no_dce): Declare variable.
3899         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
3900         sd_unresolve_dep): Declare functions.
3901         * modulo-sched.c (sms_sched_info): Clear the two new fields.
3902         * sched-rgn.c (rgn_const_sched_info): Likewise.
3903         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
3904         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
3905         (ebb_sched_info): Add them for the two new fields.
3906         (add_deps_for_risky_insns): Call add_delay_dependencies.
3907
3908 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
3909
3910         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
3911         Rename -mr11.
3912         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
3913         (rs6000_call_indirect_aix): Ditto.
3914         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
3915         (call_indirect_aix<ptrsize>_internal): Ditto.
3916         (call_indirect_aix<ptrsize>_nor11): Ditto.
3917         (call_indirect_aix<ptrsize>_internal2): Ditto.
3918         (call_value_indirect_aix<ptrsize>): Ditto.
3919         (call_value_indirect_aix<ptrsize>_internal): Ditto.
3920         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3921         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3922         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
3923
3924 2011-07-13  Jason Merrill  <jason@redhat.com>
3925
3926         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
3927
3928 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3929
3930         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
3931         * config/spu/spu.md ("clrsb<mode>2"): New expander.
3932
3933 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
3934
3935         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
3936         * configure: Regenerate.
3937
3938 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3939
3940         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
3941         (asm_file_start): Remove.
3942         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
3943         free_bb_for_insn around code that modifies insns before
3944         restarting df analysis.
3945
3946 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3947
3948         PR target/49541
3949         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
3950         (LINK_SPEC): ... here.
3951
3952 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
3953
3954         * haifa-sched.c (struct sched_block_state): New.
3955         (schedule_block): Move some local variables into such a structure.
3956
3957 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3958
3959         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
3960         * config/i386/t-crtpc: Remove.
3961         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
3962         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
3963         tmake_file.
3964         (x86_64-*-darwin*): Likewise.
3965         (i[34567]86-*-linux*): Likewise.
3966         (x86_64-*-linux*): Likewise.
3967
3968         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
3969         Handle -mpc32, -mpc64, -mpc80.
3970
3971 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3972
3973         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
3974         * config/alpha/t-crtfm: Remove.
3975         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
3976         * config/i386/t-crtfm: Remove.
3977         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
3978         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
3979         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
3980         * config/sparc/t-crtfm: Remove.
3981
3982         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
3983         (alpha*-*-freebsd*): Likewise.
3984         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
3985         (x86_64-*-darwin*): Likewise.
3986         (i[34567]86-*-linux*): Likewise.
3987         (x86_64-*-linux*): Likewise.
3988         (x86_64-*-mingw*): Likewise.
3989         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
3990         (ia64*-*-freebsd*): Likewise.
3991         (ia64*-*-linux*): Likewise.
3992         (mips64*-*-linux*): Likewise.
3993         (mips*-*-linux*): Likewise.
3994         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
3995         (sparc64-*-linux*): Likewise.
3996         (sparc64-*-freebsd*): Likewise.
3997
3998 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3999
4000         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
4001         * config/darwin-crt3.c: Move to ../libgcc/config.
4002         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
4003         ($(T)crt3$(objext)): Remove.
4004         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
4005         ($(T)crt2$(objext)): Remove.
4006         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
4007         (powerpc64-*-darwin*): Likewise.
4008
4009 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
4010
4011         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
4012
4013         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
4014         (addsi_1_zext): This.
4015
4016 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
4017
4018         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
4019         * doc/tm.texi: Regenerate.
4020         * target.def (mergeable_rodata_prefix): New defhookpod.
4021         * varasm.c (mergeable_string_section, mergeable_constant_section):
4022         Use it. Allocate name with alloca.
4023
4024 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
4025
4026         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
4027
4028 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
4029
4030         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
4031         overlap check.
4032
4033 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
4034
4035         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
4036         (count_type_elements): Delete.
4037         (complete_ctor_at_level_p): Declare.
4038         * expr.c (flexible_array_member_p): New function, split out from...
4039         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
4040         parameter with for_ctor_p.  When for_ctor_p is true, return the
4041         number of elements that should appear in the top-level constructor,
4042         otherwise return an estimate of the number of scalars.
4043         (categorize_ctor_elements): Replace p_must_clear with p_complete.
4044         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
4045         (complete_ctor_at_level_p): New function, borrowing union logic
4046         from old categorize_ctor_elements_1.
4047         (mostly_zeros_p): Return true if the constructor is not complete.
4048         (all_zeros_p): Update call to categorize_ctor_elements.
4049         * gimplify.c (gimplify_init_constructor): Update call to
4050         categorize_ctor_elements.  Don't call count_type_elements.
4051         Unconditionally prevent clearing for variable-sized types,
4052         otherwise rely on categorize_ctor_elements to detect
4053         incomplete initializers.
4054
4055 2011-07-13  Richard Guenther  <rguenther@suse.de>
4056
4057         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
4058         the final type is integral.
4059
4060 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
4061
4062         * sched-int.h (struct _dep): Add member cost.
4063         (DEP_COST, UNKNOWN_DEP_COST): New macros.
4064         * sched-deps.c (init_dep_1): Initialize DEP_COST.
4065         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
4066         (sched_change_pattern): Reset it for dependent insns.
4067
4068 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4069
4070         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
4071         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
4072         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
4073         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
4074         (CRT0_S, MCRT0_S): Remove.
4075         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
4076         Remove.
4077         (s-crt0): Remove.
4078         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
4079
4080 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
4081
4082         * cse.c (insert_with_costs): Put semi-colon after empty loop body
4083         on the next line.
4084         * emit-rtl.c (push_to_sequence): Likewise.
4085         * haifa-sched.c (max_issue): Likewise.
4086         * matrix-reorg.c (add_allocation_site): Likewise.
4087         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
4088         * reload.c (alternative_allows_const_pool_ref): Likewise.
4089         * sched-rgn.c (rgn_add_block): Likewise.
4090         (rgn_fix_recovery_cfg): Likewise.
4091         * tree.c (attribute_list_contained): Likewise.
4092
4093 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
4094
4095         * config/i386/i386.c: Tidy processor feature bitmasks.
4096         (m_P4_NOCONA): New.
4097
4098 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
4099
4100         PR rtl-opt/49474
4101         * cprop.c (find_implicit_sets): Correct the condition.
4102
4103 2011-07-12  Richard Henderson  <rth@redhat.com>
4104
4105         PR target/49713
4106         * dwarf2out.h (dwarf_frame_regnum): Remove.
4107         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
4108         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
4109         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
4110         (execute_dwarf2_frame): Initialize them.
4111         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
4112         users of the macros with the variables.
4113         (expand_builtin_dwarf_sp_column): Revert last change.
4114         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
4115         result of DWARF_FRAME_REGNUM into a local variable.
4116
4117 2011-07-12  Richard Henderson  <rth@redhat.com>
4118
4119         PR target/49714
4120         * config/i386/i386.c (x86_output_mi_thunk): Use
4121         machopic_indirect_call_target instead of machopic_indirection_name
4122         directly.
4123
4124 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
4125             Eric Botcazou  <ebotcazou@adacore.com>
4126
4127         * prefix.h: Wrap up in extern "C" block.
4128
4129 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
4130
4131         AMD bdver2 Enablement
4132         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
4133         (case ${target}): Add bdver2.
4134         * config/i386/driver-i386.c (host_detect_local_cpu): Let
4135         -march=native recognize bdver2 processors.
4136         * config/i386/i386-c.c (ix86_target_macros_internal): Add
4137         bdver2 def_and_undef
4138         * config/i386/i386.c (struct processor_costs bdver2_cost): New
4139         bdver2 cost table.
4140         (m_BDVER2): New definition.
4141         (m_AMD_MULTIPLE): Includes m_BDVER2.
4142         (initial_ix86_tune_features): Add bdver2 tuning.
4143         (processor_target_table): Add bdver2 entry.
4144         (static const char *const cpu_names): Add bdver2 entry.
4145         (ix86_option_override_internal): Add bdver2 instruction sets.
4146         (ix86_issue_rate): Add bdver2.
4147         (ix86_adjust_cost): Add bdver2.
4148         (has_dispatch): Add bdver2.
4149         * config/i386/i386.h (TARGET_BDVER2): New definition.
4150         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
4151         (enum processor_type): Add PROCESSOR_BDVER2.
4152         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
4153         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
4154         description.
4155
4156 2011-07-12  Richard Henderson  <rth@redhat.com>
4157
4158         PR target/49714
4159         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
4160         destination address in memory on some paths.
4161
4162 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
4163
4164         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
4165         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
4166         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
4167         * function.c (locate_and_pad_parm): Take it into account.
4168         * target.def (function_arg_round_boundary): New hook.
4169         * targhooks.c (default_function_arg_round_boundary): New function.
4170         * targhooks.h (default_function_arg_round_boundary): Declare.
4171         * doc/tm.texi: Regenerate.
4172
4173 2011-07-12  Richard Guenther  <rguenther@suse.de>
4174
4175         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
4176         Do not perform no-op changes.
4177
4178 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
4179
4180         * config/arm/predicates.md (neon_struct_operand): Make a normal
4181         predicate.
4182         (neon_struct_or_register_operand): New predicate.
4183         * config/arm/neon.md (movmisalign<mode>): Replace predicates
4184         with neon_struct_or_register_operand.
4185         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
4186         neon_struct_operand instead of memory_operand.
4187
4188 2011-07-12  Martin Jambor  <mjambor@suse.cz>
4189
4190         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
4191         * cgraph.c (cgraph_get_node_or_alias): Removed.
4192         (change_decl_assembler_name): Changed all calls to
4193         cgraph_get_node_or_alias to a call to cgraph_get_node.
4194         (cgraph_make_decl_local): Likewise.
4195         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
4196         * varasm.c (default_binds_local_p_1): Likewise.
4197         (decl_binds_to_current_def_p): Likewise.
4198
4199 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
4200
4201         PR tree-optimization/49712
4202         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
4203
4204 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
4205
4206         * genautomata.c (add_arc): Return void.  All callers changed.
4207         (make_automaton): Remove dead code.
4208
4209 2011-07-11  Richard Henderson  <rth@redhat.com>
4210
4211         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
4212         (DW_FRAME_POINTER_REGNUM): New.
4213         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
4214         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
4215         (dwf_regno): New.
4216         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
4217         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
4218         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
4219         Use it.
4220         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
4221         * dwarf2out.h (dwarf_frame_regnum): New.
4222         (struct cfa_loc): Document the domain of the reg member.
4223
4224 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
4225
4226         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
4227         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
4228
4229 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
4230
4231         PR debug/49676
4232         * dwarf2out.c (int_shift_loc_descriptor): New function.
4233         (int_loc_descriptor): If shorter, emit i as
4234         (i >> shift), shift, DW_OP_shl for suitable shift value.
4235         Similarly, try to optimize large negative values using
4236         DW_OP_neg of a positive value if shorter.
4237         (size_of_int_shift_loc_descriptor): New function.
4238         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
4239         changes.
4240         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
4241         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
4242         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
4243         is shorter.
4244         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
4245         addend as added DW_OP_plus if it is shorter.
4246
4247 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4248
4249         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
4250         (DTORS_SECTION_ASM_OP): Define.
4251
4252 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4253
4254         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
4255         * config/t-dfprules: Move to ../libgcc/config.
4256         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
4257         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
4258         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
4259         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
4260         Likewise.
4261         (i[34567]86-*-cygwin*): Likewise.
4262         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
4263         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
4264         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
4265         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
4266         D64PBIT_FUNCS, D128PBIT_FUNCS.
4267
4268 2011-07-11  Richard Guenther  <rguenther@suse.de>
4269
4270         * tree-vrp.c (simplify_conversion_using_ranges): Manually
4271         translate the source value-range through the conversion chain.
4272
4273 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
4274
4275         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
4276
4277 2011-07-11  Arthur Loiret  <aloiret@debian.org>
4278
4279         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
4280         a bi-arch compiler defaulting to 31-bit. In this case:
4281         (tmake_file): Add s390/t-linux64.
4282         * doc/install.texi: Add s390-linux to the list of targets supporting
4283         --enable-targets=all.
4284
4285 2011-07-11  Arthur Loiret  <aloiret@debian.org>
4286             Matthias Klose <doko@debian.org>
4287
4288         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
4289         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
4290         (tm_file): Add mips/linux64.h.
4291         (tmake_file): Add mips/t-linux64.
4292         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
4293         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
4294         instead of hardcoded mabi=n32.
4295         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
4296         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
4297         convention.
4298
4299 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4300
4301         * passes.c (init_optimization_passes): Add invariant motion pass
4302         after induction variable optimization.
4303
4304 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
4305
4306         PR target/39633
4307         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
4308         offsets 1..5 set cc0 in a usable way.
4309
4310 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
4311
4312         * tree.h (call_expr_arg): Remove.
4313         (call_expr_argp): Likewise.
4314
4315 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
4316
4317         * config/sparc/sparc.md (save_register_window_1): Rename to...
4318         (window_save): ...this.
4319         * config/sparc/sparc.c (emit_save_register_window): Rename to...
4320         (emit_window_save): ...this.
4321         (sparc_expand_prologue): Adjust to above renaming.
4322
4323 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
4324
4325         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
4326         of movabs for x32.
4327
4328 2011-07-10  Richard Henderson  <rth@redhat.com>
4329
4330         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
4331         run final, instead of emitting text directly.
4332
4333 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
4334
4335         * config/i386/i386.c (ix86_option_override_internal): Turn on
4336         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
4337         small PIC models for TARGET_X32.
4338
4339 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
4340
4341         PR target/49684
4342         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
4343         $(LIBGCC2_CFLAGS).
4344
4345         PR bootstrap/49680
4346         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
4347         stray notes and debug insns by using prev_nonnote_nondebug_insn
4348         instead of PREV_INSN.
4349
4350 2011-07-09  Richard Henderson  <rth@redhat.com>
4351
4352         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
4353         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
4354         * dwarf2out.c: ... here.
4355         (output_all_cfis): Remove.
4356         (dwarf2out_switch_text_section): Use output_cfis directly.
4357         (size_of_locs): Export.
4358         (output_loc_sequence, output_loc_sequence_raw): Export.
4359         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
4360         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
4361         output_cfa_loc_raw): Move to ...
4362         * dwarfcfi.c: ... here.
4363         * dwarf2out.h: Update decls.
4364
4365 2011-07-09  Richard Henderson  <rth@redhat.com>
4366
4367         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
4368         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
4369         * dwarf2cfi.c: ... here.
4370         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
4371         (DWARF_ROUND, DWARF_CIE_ID): Remove.
4372         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
4373         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
4374         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
4375
4376 2011-07-09  Richard Henderson  <rth@redhat.com>
4377
4378         * dwarf2cfi.c (cie_return_save): New.
4379         (queue_reg_save): Use compare_reg_or_pc.
4380         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
4381         (dwarf2out_frame_debug_expr): Likewise.
4382         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
4383         (initial_return_save): Likewise.
4384         (execute_dwarf2_frame): Save and restore initial return save from
4385         the cie to the fde.
4386         * config/mips/mips.c (mips_frame_set): Remove special case for
4387         DWARF_FRAME_RETURN_COLUMN.
4388
4389 2011-07-09  Richard Henderson  <rth@redhat.com>
4390
4391         * dwarf2cfi.c (lookup_cfa): Remove.
4392         (execute_dwarf2_frame): Assert queues are empty on entry.
4393         Setup initial cfa directly, not via lookup_cfa.
4394         Don't clear args_size state here.
4395
4396 2011-07-09  Richard Henderson  <rth@redhat.com>
4397
4398         * dwarf2cfi.c (add_cfi_vec): New.
4399         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
4400         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
4401         (execute_dwarf2_frame): Set add_cfi_vec.
4402
4403 2011-07-09  Richard Henderson  <rth@redhat.com>
4404
4405         * defaults.h (ASM_COMMENT_START): Move here...
4406         * dwarf2asm.c: ... from here.
4407         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
4408         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
4409         * varasm.c: Likewise.
4410
4411 2011-07-09  Richard Henderson  <rth@redhat.com>
4412
4413         PR debug/49686
4414         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
4415         (create_cfi_notes): ... do it here instead.
4416
4417 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
4418
4419         PR debug/49676
4420         * dwarf2out.c (size_of_int_loc_descriptor): New function.
4421         (address_of_int_loc_descriptor): Use it.
4422         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
4423
4424 2011-07-09  Richard Henderson  <rth@redhat.com>
4425
4426         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
4427         (prologue, epilogue): New.
4428         (return, *rts): New.
4429         (blockage, setd, seti): New.
4430         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
4431         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
4432         (pdp11_saved_regno): New.
4433         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
4434         generate rtl instead of text.
4435         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
4436         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
4437         * config/pdp11/pdp11-protos.h: Update.
4438
4439 2011-07-09  Richard Henderson  <rth@redhat.com>
4440
4441         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
4442         try to insert an rtl prologue here.
4443         (rs6000_output_function_epilogue): Similarly.
4444         * config/rs6000/rs6000.md (prologue): Emit a barrier to
4445         satisfy !TARGET_SCHED_PROLOG.
4446         (epilogue, sibcall_epilogue): Likewise.
4447
4448 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
4449
4450         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
4451         (FP_REG_P): Delete.
4452         (IN_OR_GLOBAL_P): Likewise.
4453
4454 2011-07-08  Jason Merrill  <jason@redhat.com>
4455
4456         PR c++/45437
4457         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
4458         compound assignment.
4459
4460         * cgraph.c (cgraph_add_to_same_comdat_group): New.
4461         * cgraph.h: Declare it.
4462         * ipa.c (function_and_variable_visibility): Make sure thunks
4463         have the right visibility.
4464
4465 2011-07-08  Richard Henderson  <rth@redhat.com>
4466
4467         PR bootstrap/49680
4468         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
4469         any tablejump vector.
4470
4471         PR bootstrap/49680
4472         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
4473         end of the prologue.
4474
4475 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
4476
4477         PR target/49621
4478         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
4479         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
4480         * config/rs6000/vector.md (vector_select_<mode>,
4481         vector_select_<mode>_uns): Change second operand of NE to
4482         CONST0_RTX (<MODE>mode) instead of const0_rtx.
4483         * config/rs6000/altivec.md (*altivec_vsel<mode>,
4484         *altivec_vsel<mode>_uns): Expect second operand of NE to be
4485         zero_constant of the corresponding vector mode.
4486         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
4487         Likewise.
4488
4489 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
4490
4491         * graphite-dependences.c (build_alias_set_powerset): Remove
4492         continue from loop, add one more assert.
4493
4494 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
4495
4496         PR target/46779
4497         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
4498         In particular, allow 8-bit values in r28 and r29.
4499         (avr_hard_regno_scratch_ok): Disallow any register that might be
4500         part of the frame pointer.
4501         (avr_hard_regno_rename_ok): Same.
4502         (avr_legitimate_address_p): Don't allow SUBREGs.
4503
4504 2011-07-08  Julian Brown  <julian@codesourcery.com>
4505
4506         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
4507         big-endian mode.
4508         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
4509         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
4510         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
4511         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
4512         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
4513         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
4514         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
4515         registers in big-endian mode.
4516
4517 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
4518
4519         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
4520         in terms of another.
4521         (write_attr_value): Write a cast if necessary.
4522
4523         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
4524         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
4525         (REG_WORDS_BIG_ENDIAN): Document.
4526         * doc/tm.texi: Regenerate.
4527         * reload.c (operands_match_p): Take it into account.
4528         (reload_adjust_reg_for_mode): Likewise.
4529         * rtlanal.c (subreg_get_info): Likewise.
4530
4531 2011-07-08  Richard Guenther  <rguenther@suse.de>
4532
4533         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
4534         folding.
4535
4536 2011-07-08  Kai Tietz  <ktietz@redhat.com>
4537
4538         * fold-const.c (fold_truth_andor): Factored out truth_andor
4539         label from fold_binary as function.
4540         (fold_binary_loc): Replace truth_andor lable
4541         by function fold_truth_andor.
4542
4543 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
4544
4545         PR middle-end/49519
4546         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
4547         check if address is stored in register. If so - give up.
4548         (check_sibcall_argument_overlap_1): Do not perform check of
4549         overlapping when it is call to address.
4550
4551 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
4552
4553         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
4554         of magic '31'.
4555
4556 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
4557
4558         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
4559         GET_MODE_BITSIZE where appropriate.
4560         (widen_leading, expand_parity, expand_ctz, expand_ffs,
4561         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
4562         expand_float, expand_fix): Likewise.
4563         * expr.c (convert_move, convert_modes, expand_expr_real_2,
4564         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
4565         * stor-layout.c (get_mode_bounds): Likewise.
4566         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
4567         Likewise.
4568         * convert.c (convert_to_integer): Likewise.
4569         * expmed.c (expand_shift_1): Likewise.
4570
4571         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
4572         a bitsize.
4573
4574         * optabs.c (expand_binop): Tighten conditions for doubleword
4575         expansions.
4576         (widen_bswap): Assert that mode bitsize and precision are the same.
4577         * stor-layout.c (get_best_mode): Skip modes that have lower
4578         precision than bitsize.
4579         * recog.c (simplify_while_replacing): Assert that bitsize and
4580         precision are the same.
4581
4582 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4583
4584         * Makefile.in (LIBGCOV): Remove.
4585         (libgcc.mvars): Remove LIBGCOV.
4586         * libgov.c: Move to ../libgcc.
4587
4588 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4589
4590         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
4591
4592 2011-07-08  Martin Jambor  <mjambor@suse.cz>
4593
4594         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
4595         is too big for total scalarization.
4596
4597 2011-07-07  Richard Henderson  <rth@redhat.com>
4598
4599         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
4600         (DBX_DEBUGGING_INFO): Undef.
4601
4602 2011-07-07  Richard Henderson  <rth@redhat.com>
4603
4604         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
4605         Handle some opcodes specially for debugging.
4606         * print-rtl.c: Include dwarf2out.h
4607         (print_rtx): Handle NOTE_INSN_CFI.
4608         * Makefile.in (print-rtl.o): Update.
4609
4610 2011-07-07  Richard Henderson  <rth@redhat.com>
4611
4612         * tree-pass.h (pass_dwarf2_frame): Declare.
4613         * passes.c (init_optimization_passes): Add it.
4614         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
4615         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
4616         make static, do not call add_cfis_to_fde.
4617         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
4618         dwarf2out_frame_init): Merge into...
4619         (execute_dwarf2_frame): ... here.  New function.
4620         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
4621         saved_do_cfi_asm to a tri-state variable.
4622         (gate_dwarf2_frame, pass_dwarf2_frame): New.
4623         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
4624         if it has yet to be done.  Don't call dwarf2cfi_function_init.
4625         * dwarf2out.h, debug.h: Update decls.
4626         * final.c (final_start_function): Don't call
4627         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
4628         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
4629         * toplev.c (lang_dependent_init): Likewise.
4630
4631 2011-07-07  Richard Henderson  <rth@redhat.com>
4632
4633         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
4634         FDE_TABLE_INCREMENT): Replace with...
4635         (fde_vec): ... this, a new vector.
4636         (current_fde): Remove.  Replace all users with cfun->fde.
4637         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
4638         (size_of_aranges, dwarf2out_finish): Likewise.
4639         (dwarf2out_alloc_current_fde): Break out from ...
4640         (dwarf2out_begin_prologue): ... here.
4641         (dwarf2out_frame_init): Remove.
4642         * dwarf2cfi.c: Update all users of current_fde.
4643         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
4644         * dwarf2out.h: Update decls.
4645         (dw_fde_node): Add fde_index member.
4646         * function.h (struct function): Add fde member.
4647
4648 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
4649             Richard Henderson  <rth@redhat.com>
4650
4651         * dwarf2cfi.c (add_cfi): Remove.
4652         (dwarf2out_cfi_label): Remove force argument.  Only generate the
4653         label name.
4654         (add_fde_cfi): Simplify the different code paths.
4655         (add_cie_cfi): New.
4656         (old_cfa, old_cfa_remember): New.
4657         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
4658         (last_reg_save_label): Remove.
4659         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
4660         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
4661         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
4662         dwarf2out_frame_debug_cfa_expression,
4663         dwarf2out_frame_debug_cfa_restore,
4664         dwarf2out_frame_debug_cfa_window_save,
4665         dwarf2out_frame_debug_expr): Remove label parameter.
4666         (cfi_label_required_p, add_cfis_to_fde): New.
4667         (dwarf2out_frame_debug_after_prologue): New.
4668         (dwarf2cfi_frame_init): Initialize old_cfa.
4669         (dwarf2out_frame_debug_restore_state): Likewise.
4670         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
4671         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
4672         * final.c (final_start_function): Call
4673         dwarf2out_frame_debug_after_prologue.
4674
4675 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
4676             Richard Henderson  <rth@redhat.com>
4677
4678         * dwarf2cfi.c (cfi_insn): New.
4679         (dwarf2out_cfi_label): Don't emit cfi label here.
4680         (add_fde_cfi): Create a NOTE_INSN_CFI.
4681         (dwarf2out_frame_debug): Setup cfi_insn.
4682         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
4683         (dwarf2out_cfi_begin_epilogue): Make static.
4684         (dwarf2out_frame_debug_restore_state): Make static.
4685         * dwarf2out.c (output_cfi_directive): Make static.
4686         (dwarf2out_emit_cfi): New.
4687         * dwarf2out.h: Update.
4688         * final.c (final): Remove CFI notes.
4689         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
4690         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
4691         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
4692         * insn-notes.def (NOTE_INSN_CFI): New.
4693         (NOTE_INSN_CFI_LABEL): New.
4694         * rtl.h (union rtunion_def): Add rt_cfi member.
4695         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
4696
4697 2011-07-07  Richard Henderson  <rth@redhat.com>
4698
4699         * dwarf2cfi.c: New file.
4700         * Makefile.in (OBJS): Add it.
4701         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
4702         * gengtype.c (open_base_files): Include dwarf2out.h.
4703         * coretypes.h (enum var_init_status): Move from ...
4704         * rtl.h: ... here.
4705         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
4706         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
4707         expand_builtin_dwarf_sp_column, init_return_column_size,
4708         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
4709         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
4710         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
4711         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
4712         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
4713         compute_barrier_args_size, dwarf2out_args_size,
4714         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
4715         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
4716         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
4717         queue_reg_save, dwarf2out_flush_queued_reg_saves,
4718         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
4719         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
4720         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
4721         dwarf2out_frame_debug_cfa_expression,
4722         dwarf2out_frame_debug_cfa_restore,
4723         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
4724         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
4725         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
4726         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
4727         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
4728         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
4729         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
4730         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
4731         dw_loc_descr_node): Move to dwarf2out.h.
4732         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
4733         mem_loc_descriptor): Export.
4734         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
4735         (dwarf2out_frame_init): Extract CIE generation code to
4736         dwarf2cfi_frame_init.
4737
4738 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
4739
4740         PR target/49660
4741         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
4742         MASK_V8PLUS, remove commented out flag and reorder.
4743
4744 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
4745
4746         PR c/49644
4747         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
4748         one non-complex and one complex argument, call c_save_expr on both
4749         operands.
4750
4751 2011-07-07  Martin Jambor  <mjambor@suse.cz>
4752
4753         PR middle-end/49495
4754         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
4755         (verify_cgraph_node): Some functinality moved to
4756         verify_edge_corresponds_to_fndecl, call it.
4757
4758 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
4759
4760         * config.gcc (*local*): Remove.
4761         * doc/install-old.texi: Don't mention local configurations.
4762
4763 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
4764
4765         PR debug/49522
4766         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
4767         referencing debug insns that have been reset.
4768         (dead_debug_insert_before): Don't assert reg is non-NULL,
4769         instead return immediately if it is NULL.
4770
4771 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
4772
4773         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
4774
4775 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
4776
4777         * hw-doloop.c: New file.
4778         * hw-doloop.h: New file.
4779         * Makefile.in (OBJS): Add hw-doloop.o.
4780         (hw-doloop.o): New rule.
4781         ($(obj_out_file)): Add hw-doloop.h dependency.
4782         * config/bfin/bfin.c: Include "hw-doloop.h".
4783         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
4784         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
4785         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
4786         type changed to hwloop_info.  Return bool, true if the loop was
4787         successfully optimized.  Remove code that was moved to
4788         hw-doloop.c, and adjust other parts.
4789         (hwloop_fail): New static function, containing parts that used
4790         to be in bfin_optimize_loop.
4791         (bfin_discover_loop, bfin_discover_loops, free_loops,
4792         bfin_reorder_loops): Remove.
4793         (hwloop_pattern_reg): New static function.
4794         (bfin_doloop_hooks): New variable.
4795         (bfin_reorg_loops): Remove most code, call reorg_loops.
4796         * config/bfin/bfin.md (doloop_end splitter): Also enable if
4797         loop counter is a memory_operand.
4798
4799 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
4800
4801         * config.gcc: Support --with-multilib-list for x86 Linux targets.
4802
4803         * configure.ac: Mention x86-64 for --with-multilib-list.
4804         * configure: Regenerated.
4805
4806         * config/i386/gnu-user64.h (SPEC_64): Support x32.
4807         (SPEC_32): Likewise.
4808         (ASM_SPEC): Likewise.
4809         (LINK_SPEC): Likewise.
4810         (TARGET_THREAD_SSP_OFFSET): Likewise.
4811         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
4812         (SPEC_X32): New.
4813
4814         * config/i386/i386.h (TARGET_X32): New.
4815         (TARGET_LP64): New.
4816         (LONG_TYPE_SIZE): Likewise.
4817         (POINTER_SIZE): Likewise.
4818         (POINTERS_EXTEND_UNSIGNED): Likewise.
4819         (OPT_ARCH64): Support x32.
4820         (OPT_ARCH32): Likewise.
4821
4822         * config/i386/i386.opt (mx32): New.
4823
4824         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
4825         (GLIBC_DYNAMIC_LINKERX32): Likewise.
4826         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
4827         (GLIBC_DYNAMIC_LINKERX32): Likewise.
4828
4829         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
4830         (BIONIC_DYNAMIC_LINKERX32): Likewise.
4831         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
4832
4833         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
4834
4835         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
4836
4837         * doc/invoke.texi: Document -mx32.
4838
4839 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
4840
4841         * doc/invoke.texi (mwords-little-endian): Deprecate.
4842         * config/arm/arm.opt (mwords-little-endian): Likewise.
4843         * config/arm/arm.c (arm_option_override): Warn about the deprecation
4844         of -mwords-little-endian.
4845
4846 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
4847
4848         * reload1.c (choose_reload_regs): Use mode sizes to check whether
4849         an old reload register completely defines the required value.
4850
4851 2011-07-07  Richard Guenther  <rguenther@suse.de>
4852
4853         * fold-const.c (fold_unary_loc): Do not strip sign-changes
4854         for NEGATE_EXPR.
4855
4856 2011-07-07  Richard Guenther  <rguenther@suse.de>
4857
4858         * tree-vrp.c (simplify_conversion_using_ranges): New function.
4859         (simplify_stmt_using_ranges): Call it.
4860
4861 2011-07-07  Kai Tietz  <ktietz@redhat.com>
4862
4863         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
4864         (lookup_logical_inverted_value): Likewise.
4865         (simplify_bitwise_binary_1): Likewise.
4866         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
4867
4868 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
4869
4870         * gcc.c (%[Spec]): Don't document.
4871         (struct spec_list): Update comment.
4872         (do_spec_1): Don't handle %[Spec].
4873         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
4874
4875 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
4876
4877         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
4878         default based on TARGET_ASM_NAMED_SECTION.
4879         * common/common-target.def (have_named_sections): Default to true.
4880         * common/config/default-common.c: Don't include tm.h.
4881         * common/config/picochip/picochip-common.c
4882         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
4883         * common/config/m32c/m32c-common.c: Remove.
4884         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
4885         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4886         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4887         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4888         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4889         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4890         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4891
4892 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
4893
4894         PR middle-end/49640
4895         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
4896         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
4897
4898 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4899
4900         PR libmudflap/49550
4901         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
4902
4903 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4904
4905         PR target/39150
4906         * configure.ac (gcc_cv_as_hidden): Also accept
4907         x86_64-*-solaris2.1[0-9]*.
4908         (gcc_cv_as_cfi_directive): Likewise.
4909         (gcc_cv_as_comdat_group_group): Likewise.
4910         (set_have_as_tls): Likewise.
4911         * configure: Regenerate.
4912         * config.gcc (i[34567]86-*-solaris2*): Also handle
4913         x86_64-*-solaris2.1[0-9]*.
4914         * config.host (i[34567]86-*-solaris2*): Likewise.
4915         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
4916         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
4917         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
4918         (TARGET_LD_EMULATION): Use it.
4919         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
4920         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
4921         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
4922         (ASM_CPU64_DEFAULT_SPEC): Define.
4923         (ASM_CPU_SPEC): Use %(asm_cpu_default).
4924         (ASM_SPEC): Redefine.
4925         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
4926         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
4927         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
4928         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
4929         configuration.
4930         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
4931
4932 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4933
4934         * config/sol2.h (ASM_SPEC): Split into ...
4935         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
4936         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
4937         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
4938         (ASM_SPEC): Use ASM_SPEC_BASE.
4939         * config/sparc/sol2.h (ASM_SPEC): Redefine.
4940
4941 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
4942
4943         * config/avr/avr.md (*reload_insi): Change predicate #1 to
4944         const_int_operand.  Ditto for peep2 producing this insn.
4945         Add argument to output_reload_insisf call.
4946         (*movsi,*movsf): Add argument to output_movsisf call.
4947         (*reload_insf): New insn and new peep2 to produce it.
4948         * config/avr/avr-protos.h (output_movsisf): Change prototype.
4949         (output_reload_insisf): Change prototype.
4950         * config/avr/avr.c (avr_asm_len): New function.
4951         (output_reload_insisf): Rewrite.
4952         (output_movsisf): Change prototype.  output_reload_insisf for
4953         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
4954         (adjust_insn_length): Add argument to output_movsisf and
4955         output_reload_insisf call.
4956
4957 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
4958
4959         * emit-rtl.c (paradoxical_subreg_p): New function.
4960         * rtl.h (paradoxical_subreg_p): Declare.
4961         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
4962         apply_distributive_law, simplify_comparison, simplify_set): Use it.
4963         * cse.c (record_jump_cond, cse_insn): Likewise.
4964         * expr.c (force_operand): Likewise.
4965         * rtlanal.c (num_sign_bit_copies1): Likewise.
4966         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
4967         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
4968         (push_reload): Use precision to check for paradoxical subregs.
4969         * expmed.c (extract_bit_field_1): Likewise.
4970
4971         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
4972         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
4973         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
4974         simplify_set, simplify_logical, expand_compound_operation,
4975         make_extraction, force_to_mode, if_then_else_cond, extended_count,
4976         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
4977         record_value_for_reg): Likewise.
4978         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
4979         * simplify-rtx. c (simplify_unary_operation_1,
4980         simplify_binary_operation_1, simplify_const_relational_operation):
4981         Likewise.
4982
4983         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
4984         instead of GET_MODE_BITSIZE where appropriate.
4985         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
4986         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
4987         init_num_sign_bit_copies_in_rep): Likewise.
4988         * cse.c (fold_rtx, cse_insn): Likewise.
4989         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
4990         * simplify-rtx.c (simplify_unary_operation_1,
4991         simplify_const_unary_operation, simplify_binary_operation_1,
4992         simplify_const_binary_operation, simplify_ternary_operation,
4993         simplify_const_relational_operation, simplify_subreg): Likewise.
4994         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
4995         simplify_if_then_else, simplify_set, expand_compound_operation,
4996         expand_field_assignment, make_extraction, if_then_else_cond,
4997         make_compound_operation, force_to_mode, make_field_assignment,
4998         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
4999         extended_count, try_widen_shift_mode, simplify_shift_const_1,
5000         simplify_comparison, record_promoted_value, simplify_compare_const,
5001         record_dead_and_set_regs_1): Likewise.
5002
5003         Revert:
5004         * simplify-rtx.c (simplify_const_binary_operation): Use the
5005         shift_truncation_mask hook instead of performing modulo by width.
5006         Compare against mode precision, not bitsize.
5007         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
5008         Use shift_truncation_mask instead of constructing the value manually.
5009
5010 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
5011
5012         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
5013         declaration.
5014         (rs6000_save_toc_in_prologue_p): Ditto.
5015
5016         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
5017         up the static chain (r11) during indirect function calls.
5018         (-msave-toc-indirect): New undocumented debug switch.
5019
5020         * config/rs6000/rs6000.c (struct machine_function): Add
5021         save_toc_in_prologue field to note whether the prologue needs to
5022         save the TOC value in the reserved stack location.
5023         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
5024         to save the TOC in the prologue, do so.
5025         (rs6000_trampoline_init): Don't allow creating AIX style
5026         trampolines if -mno-r11 is in effect.
5027         (rs6000_call_indirect_aix): New function to create AIX style
5028         indirect calls, adding support for -mno-r11 to suppress loading
5029         the static chain, and saving the TOC in the prologue instead of
5030         the call body.
5031         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
5032         TOC in the prologue.
5033
5034         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
5035         register numbers.
5036         (TOC_REGNUM): Ditto.
5037         (STATIC_CHAIN_REGNUM): Ditto.
5038         (ARG_POINTER_REGNUM): Ditto.
5039         (SFP_REGNO): Delete, unused.
5040         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
5041         function descriptor offsets.
5042         (TOC_SAVE_OFFSET_64BIT): Ditto.
5043         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
5044         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
5045         (AIX_FUNC_DESC_SC_32BIT): Ditto.
5046         (AIX_FUNC_DESC_SC_64BIT): Ditto.
5047         (ptrload): New mode attribute for the appropriate load of a pointer.
5048         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
5049         (call_indirect_aix64): Ditto.
5050         (call_value_indirect_aix32): Ditto.
5051         (call_value_indirect_aix64): Ditto.
5052         (call_indirect_nonlocal_aix32_internal): Ditto.
5053         (call_indirect_nonlocal_aix32): Ditto.
5054         (call_indirect_nonlocal_aix64_internal): Ditto.
5055         (call_indirect_nonlocal_aix64): Ditto.
5056         (call): Rewrite AIX indirect function calls.  Add support for
5057         eliminating the static chain, and for moving the save of the TOC
5058         to the function prologue.
5059         (call_value): Ditto.
5060         (call_indirect_aix<ptrsize>): Ditto.
5061         (call_indirect_aix<ptrsize>_internal): Ditto.
5062         (call_indirect_aix<ptrsize>_internal2): Ditto.
5063         (call_indirect_aix<ptrsize>_nor11): Ditto.
5064         (call_value_indirect_aix<ptrsize>): Ditto.
5065         (call_value_indirect_aix<ptrsize>_internal): Ditto.
5066         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
5067         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
5068         (call_nonlocal_aix32): Relocate in the rs6000.md file.
5069         (call_nonlocal_aix64): Ditto.
5070
5071         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
5072         -mno-r11 documentation.
5073
5074 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
5075
5076         PR other/49658
5077         * doc/extend.texi (Compound Literals): Fix typo.
5078
5079 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
5080
5081         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
5082
5083 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
5084
5085         * configure.ac (plugin-version.h): Generate
5086         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
5087         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
5088         macros.
5089
5090         * configure: Regenerate.
5091
5092         * doc/plugins.texi (Building GCC plugins): Mention
5093         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
5094
5095 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
5096
5097         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
5098         * combine.c (make_extraction, gen_lowpart_or_truncate,
5099         apply_distributive_law, simplify_comparison,
5100         reg_truncated_to_mode, record_truncated_value): Use it.
5101         * cse.c (notreg_cost): Likewise.
5102         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
5103         * expr.c (convert_move, convert_modes): Likewise.
5104         * optabs.c (expand_binop, expand_unop): Likewise.
5105         * postreload.c (move2add_last_label): Likewise.
5106         * regmove.c (optimize_reg_copy_3): Likewise.
5107         * rtlhooks.c (gen_lowpart_general): Likewise.
5108         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
5109
5110 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
5111
5112         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
5113
5114 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
5115
5116         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
5117         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
5118         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
5119         (simplify_const_unary_operation, simplify_binary_operation_1,
5120         simplify_const_binary_operation, simplify_const_relational_operation):
5121         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
5122         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
5123         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
5124         simplify_shift_const_1, simplify_comparison): Likewise.
5125         * expr.c (convert_modes): Likewise.
5126         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
5127         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
5128         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
5129
5130         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
5131
5132 2011-07-06  Richard Guenther  <rguenther@suse.de>
5133
5134         PR tree-optimization/49645
5135         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
5136         register variables.
5137         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
5138         in type qualification here ...
5139         (copy_reference_ops_from_ref): ... not here.
5140         (vn_reference_lookup_3): ... or here.
5141         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
5142         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
5143
5144 2011-07-06  Ian Lance Taylor  <iant@google.com>
5145
5146         * doc/install.texi (Configuration): It's
5147         --enable-gnu-indirect-function, not --enable-indirect-function.
5148
5149 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
5150
5151         * simplify-rtx.c (simplify_const_binary_operation): Use the
5152         shift_truncation_mask hook instead of performing modulo by width.
5153         Compare against mode precision, not bitsize.
5154         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
5155         Use shift_truncation_mask instead of constructing the value manually.
5156
5157 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
5158
5159         PR middle-end/47383
5160         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
5161         address computation and convert to address_mode if needed.
5162
5163 2011-07-06  Richard Guenther  <rguenther@suse.de>
5164
5165         * tree.c (build_common_tree_nodes_2): Merge with
5166         build_common_tree_nodes.
5167         * tree.h (build_common_tree_nodes): Adjust prototype.
5168         (build_common_tree_nodes_2): Remove.
5169         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
5170         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
5171
5172 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
5173
5174         PR tree-optimization/49618
5175         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
5176         t recurse on the decl.
5177         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
5178         return true if expr isn't known to be defined in current
5179         TU or some other LTO partition.
5180
5181 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
5182
5183         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
5184         override CASE_VALUES_THRESHOLD.
5185
5186         * stmt.c (toplevel): Include params.h.
5187         (case_values_threshold): Use the --param case-values-threshold
5188         value if non-zero, otherwise use machine dependent value.
5189         (expand_case): Use case_values_threshold.
5190
5191         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
5192
5193         * doc/invoke.texi (--param case-values-threshold): Document.
5194
5195 2011-07-05  Richard Henderson  <rth@redhat.com>
5196
5197         * dwarf2out.c (dwarf2out_cfi_label): Make static.
5198         (dwarf2out_flush_queued_reg_saves): Make static.
5199         (dwarf2out_reg_save): Remove.
5200         (dwarf2out_return_save): Remove.
5201         (dwarf2out_return_reg): Remove.
5202         (dwarf2out_reg_save_reg): Remove.
5203         (dwarf2out_def_cfa): Merge into ...
5204         (dwarf2out_frame_init): ... here.
5205         * dwarf2out.h, tree.h: Remove declarations as necessary.
5206
5207 2011-07-05  Richard Henderson  <rth@redhat.com>
5208
5209         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
5210         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5211         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
5212         the alloc insn.
5213
5214         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
5215         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
5216         (process_epilogue): Don't call dwarf2out_def_cfa.
5217
5218         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
5219         indicate the return address save.
5220         (process_cfa_register): Likewise.
5221
5222         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
5223         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
5224
5225         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
5226         for ar.pfs save at alloc insn.
5227
5228 2011-07-05  Richard Henderson  <rth@redhat.com>
5229
5230         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
5231         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5232         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
5233         stack pointer save.
5234         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
5235         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
5236         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
5237         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
5238
5239 2011-07-05  Richard Henderson  <rth@redhat.com>
5240
5241         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
5242         VUNSPEC_* constants here instead of via define_constants.
5243         (VUNSPEC_PEM): New constant.
5244         (procedure_entry_mask): New insn.
5245         (prologue): New expander.
5246         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
5247         (vax_expand_prologue): Rename from vax_output_function_prologue;
5248         emit rtl instead of text.
5249         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
5250         (print_operand): Add 'x' prefix.
5251
5252 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
5253
5254         PR middle-end/47715
5255         * calls.c (precompute_register_parameters): Promote the function
5256         argument before checking non-legitimate constant.
5257
5258 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
5259
5260         PR tree-optimization/47654
5261         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
5262         (lst_do_strip_mine_loop): Return an int.
5263         (lst_do_strip_mine): Same.
5264         (scop_do_strip_mine): Same.
5265         (scop_do_block): Loop blocking should strip-mine at least two loops.
5266         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
5267         (scop_do_interchange): Same.
5268         * graphite-poly.h (scop_do_interchange): Update declaration.
5269         (scop_do_strip_mine): Same.
5270
5271 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
5272
5273         * graphite-clast-to-gimple.c (precision_for_value): Removed.
5274         (precision_for_interval): Removed.
5275         (gcc_type_for_interval): Use mpz_sizeinbase.
5276
5277 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
5278
5279         * graphite-ppl.h (value_max): Correct computation of max.
5280
5281 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
5282
5283         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
5284
5285 2011-07-05  Richard Guenther  <rguenther@suse.de>
5286
5287         * c-decl.c (c_init_decl_processing): Defer building common
5288         tree nodes to c_common_nodes_and_builtins.
5289
5290 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
5291
5292         PR tree-optimization/49580
5293         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
5294         the loop's number of iterations.
5295         * tree-parloops.c (transform_to_exit_first_loop): Add the
5296         handling of the loop's number of iterations before the call
5297         to gimple_duplicate_sese_tail.
5298         Insert the stmt caclculating the new rhs of the loop's
5299         condition stmt to the preheader instead of iters_bb.
5300
5301 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
5302
5303         PR rtl-optimization/47449
5304         * fwprop.c (forward_propagate_subreg): Don't propagate hard
5305         register nor zero/sign extended hard register.
5306
5307 2011-07-05  Richard Guenther  <rguenther@suse.de>
5308
5309         PR tree-optimization/49518
5310         PR tree-optimization/49628
5311         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
5312         irrelevant and invariant data-references.
5313         (vect_analyze_data_ref_access): For invariant loads clear the
5314         group association.
5315
5316 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
5317
5318         PR rtl-optimization/49619
5319         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
5320         pass VOIDmode as op0_mode to recursive call, and return temp even
5321         when different from tor, just if it is not IOR of the original
5322         PLUS arguments.
5323
5324         PR rtl-optimization/49472
5325         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
5326         negating MULT, negate the second operand instead of first.
5327         (simplify_binary_operation_1) <case MULT>: If one operand is
5328         a NEG and the other is MULT, don't attempt to optimize by negation
5329         of the MULT operand if it only moves the NEG operation around.
5330
5331         PR debug/49602
5332         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
5333         get_current_def return value if it can't be trusted to be
5334         the current value of the variable in the current bb.
5335
5336 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
5337
5338         PR target/49600
5339         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
5340         general register to memory for !TARGET_INTER_UNIT_MOVES.
5341
5342 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
5343
5344         PR target/44643
5345         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
5346         instead of TREE_READONLY.
5347
5348 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
5349
5350         * doc/extend.texi (AVR Built-in Functions): Update documentation
5351         of __builtin_avr_fmul*.
5352         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
5353         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
5354         * config/avr/avr.md (fmul): Rename to fmul_insn.
5355         (fmuls): Rename to fmuls_insn.
5356         (fmulsu): Rename to fmulsu_insn.
5357         (fmul,fmuls,fmulsu): New expander.
5358         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
5359         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
5360         * config/avr/libgcc.S (__fmul): New function.
5361         (__fmuls): New function.
5362         (__fmulsu,__fmulsu_exit): New function.
5363
5364 2011-07-04  Richard Guenther  <rguenther@suse.de>
5365
5366         PR tree-optimization/49615
5367         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
5368         basic-block index check.
5369
5370 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
5371
5372         * longlong.h (count_leading_zeros, count_trailing_zeros,
5373         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
5374         resp. 64.
5375
5376 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
5377
5378         PR tree-optimization/49610
5379         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
5380         a basic block.
5381
5382 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
5383             Olivier Hainque  <hainque@adacore.com>
5384             Nicolas Setton  <setton@adacore.com>
5385
5386         * tree.h (TYPE_ARTIFICIAL): New flag.
5387         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
5388         the DIE of the type if it is artificial.
5389         (gen_array_type_die): Likewise.
5390         (gen_enumeration_type_die): Likewise.
5391         (gen_struct_or_union_type_die): Likewise.
5392         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
5393         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
5394
5395 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
5396
5397         * tree-object-size.c (pass_through_call): Handle
5398         BUILT_IN_ASSUME_ALIGNED.
5399
5400 2011-07-01  Martin Jambor  <mjambor@suse.cz>
5401
5402         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
5403
5404 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
5405
5406         PR middle-end/48016
5407         * explow.c (update_nonlocal_goto_save_area): Use proper mode
5408         for stack save area.
5409         * function.c (expand_function_start): Likewise.
5410
5411 2011-07-01  Richard Guenther  <rguenther@suse.de>
5412
5413         PR middle-end/49596
5414         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
5415         may have unknown refs.
5416
5417 2011-07-01  Kai Tietz  <ktietz@redhat.com>
5418
5419         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
5420
5421 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5422
5423         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
5424         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
5425         (Specific, mips-sgi-irix6): Likewise.
5426
5427 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5428
5429         PR libmudflap/49549
5430         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
5431
5432 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
5433
5434         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
5435         [idx]= and [idx1 ... idx2]= before initializers if needed for
5436         array initializers.
5437
5438 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
5439
5440         * config.gcc (score-*-elf): Remove score7.o.
5441         * config/score/t-score-elf: Likewise.
5442         * config/score/score.c: Merge score7 to score.c and
5443         remove forwarding functions.
5444         * config/score/score7.c: Deleted.
5445         * config/score/score7.h: Deleted.
5446
5447 2011-07-01  Richard Guenther  <rguenther@suse.de>
5448
5449         PR tree-optimization/49603
5450         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
5451
5452 2011-06-30  Martin Jambor  <mjambor@suse.cz>
5453
5454         * tree-sra.c (struct access): Rename total_scalarization to
5455         grp_total_scalarization
5456         (completely_scalarize_var): New function.
5457         (sort_and_splice_var_accesses): Set total_scalarization in the
5458         representative access.
5459         (analyze_access_subtree): Propagate total scalarization accross the
5460         tree, no holes in totally scalarized trees, simplify coverage
5461         computation.
5462         (analyze_all_variable_accesses): Call completely_scalarize_var instead
5463         of completely_scalarize_record.
5464
5465 2011-06-30  Richard Henderson  <rth@redhat.com>
5466
5467         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
5468         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
5469         * config/i386/i386.c: Don't include dwarf2out.h.
5470         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
5471         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
5472         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
5473         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
5474         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
5475
5476 2011-06-30  Richard Henderson  <rth@redhat.com>
5477
5478         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
5479         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
5480         * final.c (final_scan_insn): Look for it, and invoke
5481         dwarf2out_frame_debug before the insn if found.
5482
5483 2011-06-30  Richard Henderson  <rth@redhat.com>
5484
5485         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
5486         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
5487
5488 2011-06-30  Richard Henderson  <rth@redhat.com>
5489
5490         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
5491         Define a vector of this type.
5492         (regs_saved_in_regs): Use a VEC.
5493         (num_regs_saved_in_regs): Remove.
5494         (compare_reg_or_pc): New.
5495         (record_reg_saved_in_reg): Split out from...
5496         (dwarf2out_flush_queued_reg_saves): ... here.
5497         (clobbers_queued_reg_save): Update for VEC.
5498         (reg_saved_in): Likewise.
5499         (dwarf2out_frame_debug_init): Likewise.
5500         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
5501         (dwarf2out_frame_debug_cfa_register): Likewise.
5502
5503 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
5504
5505         PR tree-optimization/49572
5506         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
5507         type of the RHS instead of that of the LHS for the expression type.
5508
5509 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
5510
5511         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
5512         unconditionally.
5513
5514 2011-06-30  Richard Guenther  <rguenther@suse.de>
5515
5516         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
5517         * tree-ssa-structalias.c (create_variable_info_for): Do not
5518         add initial constraints for non-var-decls.  Properly handle
5519         globals in other ltrans partitions.
5520         (intra_create_variable_infos): Manually create constraints for
5521         the fake no-alias parameter.
5522         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
5523         and assert there are no clones.
5524
5525 2011-06-30  Richard Guenther  <rguenther@suse.de>
5526
5527         PR tree-optimization/46787
5528         * tree-data-ref.c (dr_address_invariant_p): Remove.
5529         (find_data_references_in_stmt): Invariant accesses are ok now.
5530         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
5531         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
5532         invariant loads.
5533
5534 2011-06-30  Martin Jambor  <mjambor@suse.cz>
5535
5536         PR tree-optimization/49094
5537         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
5538         (build_accesses_from_assign): Use it.
5539
5540 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
5541
5542         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
5543         handling of BUILT_IN_ASSUME_ALIGNED.
5544
5545         PR debug/49364
5546         * dwarf2out.c (output_abbrev_section): Don't return early
5547         if abbrev_die_table_in_use is 1.
5548         (dwarf2out_finish): Instead don't call output_abbrev_section
5549         nor emit abbrev_section_label in that case.
5550
5551 2011-06-30  Nick Clifton  <nickc@redhat.com>
5552
5553         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
5554         for the V850E.
5555
5556 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
5557
5558         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
5559         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
5560
5561 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
5562
5563         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
5564         both pattern and original statements if necessary.
5565         (vect_transform_loop): Likewise.
5566         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
5567         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
5568         Mark the pattern statement only if the original statement doesn't
5569         have its own uses.
5570         (process_use): Call vect_mark_relevant with additional parameter.
5571         (vect_mark_stmts_to_be_vectorized): Likewise.
5572         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
5573         (vect_analyze_stmt): Handle both pattern and original statements
5574         if necessary.
5575         (vect_transform_stmt): Don't store vectorized pattern statement
5576         in the original statement.
5577         (vect_is_simple_use_1): Use related pattern statement only if the
5578         original statement is irrelevant.
5579         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
5580
5581 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
5582
5583         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
5584         option.
5585         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
5586         entry.
5587         (TARGET_AVX128_OPTIMAL): New definition.
5588         * config/i386/i386.c (initial_ix86_tune_features): Initialize
5589         X86_TUNE_AVX128_OPTIMAL entry.
5590         (ix86_option_override_internal): Enable the generation
5591         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
5592         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
5593         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
5594
5595 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
5596
5597         PR tree-optimization/49539
5598         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
5599         names by means of stmt_references_abnormal_ssa_name.
5600         (associate_plusminus): Call can_propagate_from before propagating
5601         from definition statements.
5602         (ssa_forward_propagate_and_combine): Remove superfluous newline.
5603
5604 2011-06-29  Richard Guenther  <rguenther@suse.de>
5605
5606         * doc/invoke.texi: Document -scev dump modifier.
5607         * tree-pass.h (TDF_SCEV): New dump flag.
5608         * tree-dump.c (dump_option_value_in): Add scev.
5609         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
5610         * tree-scalar-evolution.c: Likewise.
5611
5612 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
5613
5614         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
5615         (cxa_type_match): Correct declaration.
5616         (__gnu_unwind_pr_common): Reconstruct additional indirection
5617         when __cxa_type_match returns succeeded_with_ptr_to_base.
5618
5619 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5620
5621         PR rtl-optimization/49114
5622         * reload.c (struct replacement): Remove SUBREG_LOC member.
5623         (push_reload): Do not set it.
5624         (push_replacement): Likewise.
5625         (subst_reload): Remove dead code.
5626         (copy_replacements): Remove assertion.
5627         (copy_replacements_1): Do not handle SUBREG_LOC.
5628         (move_replacements): Likewise.
5629         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
5630         Detect subregs via recursive descent instead of via SUBREG_LOC.
5631
5632 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
5633
5634         * config/avr/avr.c (avr_encode_section_info): Dispatch to
5635         default_encode_section_info.
5636
5637 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
5638
5639         PR tree-optimization/49545
5640         * builtins.c (get_object_alignment_1): Update function comment.
5641         Do not use DECL_ALIGN for functions, but test
5642         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
5643         * fold-const.c (get_pointer_modulus_and_residue): Don't check
5644         for functions here.
5645         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
5646
5647 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
5648
5649         PR debug/49567
5650         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
5651         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
5652
5653 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
5654
5655         PR target/34734
5656         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
5657         about uninitialized data attributed 'progmem' from here...
5658         (avr_encode_section_info): ...to this new function.
5659         (TARGET_ENCODE_SECTION_INFO): New define.
5660         (avr_section_type_flags): For data in ".progmem.data", remove
5661         section flag SECTION_WRITE.
5662
5663 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
5664
5665         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
5666         _xmulhisi3_exit.
5667         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
5668         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
5669         (__umulhisi3): Ditto.
5670         * config/avr/avr.md (mulhisi3): New insn expender.
5671         (umulhisi3): New insn expender.
5672         (*mulhisi3_call): New insn.
5673         (*umulhisi3_call): New insn.
5674
5675 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
5676
5677         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
5678
5679 2011-06-28  Richard Henderson  <rth@redhat.com>
5680
5681         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
5682         all code and arguments that handled pushes.  Update all callers.
5683
5684 2011-06-28  Richard Henderson  <rth@redhat.com>
5685
5686         * config/arm/arm.c (arm_output_function_prologue): Don't call
5687         thumb1_output_function_prologue.
5688         (arm_expand_prologue): Avoid dead store.
5689         (number_of_first_bit_set): Use ctz_hwi.
5690         (thumb1_emit_multi_reg_push): New.
5691         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
5692         to emit the entire prologue as rtl.
5693         (thumb1_output_interwork): Split out from
5694         thumb1_output_function_prologue.
5695         (thumb1_output_function_prologue): Remove.
5696         (arm_attr_length_push_multi): Handle thumb1.
5697         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
5698         (prologue_thumb1_interwork): New.
5699         (*push_multi): Allow thumb1; use push_mult_memory_operand.
5700         * config/arm/predicates.md (push_mult_memory_operand): New.
5701
5702 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
5703
5704         * config/sparc/sync.md (*stbar): Delete.
5705         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
5706
5707 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
5708
5709         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
5710
5711 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5712
5713         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
5714         (TARGET_64BIT_DEFAULT): Define.
5715         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
5716         of tm_file.
5717         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
5718
5719 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
5720
5721         * common.opt (in_lto_p): New Variable entry.
5722         * flags.h (in_lto_p): Move to common.opt.
5723         * gcc.c: Include params.h.
5724         (set_option_handlers): Also use common_handle_option and
5725         target_handle_option.
5726         (main): Call global_init_params, finish_params and init_options_struct.
5727         * opts.c (debug_type_names): Move from toplev.c.
5728         (print_filtered_help): Access quiet_flag through opts pointer.
5729         (common_handle_option): Return early in the driver for some options.
5730         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
5731         opts pointer.
5732         * toplev.c (in_lto_p): Move to common.opt.
5733         (debug_type_names): Move to opts.c.
5734         * Makefile.in (OBJS): Remove opts.o.
5735         (OBJS-libcommon-target): Add opts.o.
5736         (gcc.o): Update dependencies.
5737
5738 2011-06-28  Kai Tietz  <ktietz@redhat.com>
5739
5740         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
5741
5742 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5743
5744         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
5745         with '=' constraint modifier.
5746         (*divdf3_vfp): Likewise.
5747         ("*mulsf3_vfp"): Likewise.
5748         ("*muldf3_vfp"): Likewise.
5749         ("*mulsf3negsf_vfp"): Likewise.
5750         ("*muldf3negdf_vfp"): Likewise.
5751
5752 2011-06-28  Nick Clifton  <nickc@redhat.com>
5753
5754         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
5755         relaxation when performing an incremental link.
5756
5757 2011-06-28  Kai Tietz  <ktietz@redhat.com>
5758
5759         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
5760         within BB from last to first.
5761
5762 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
5763
5764         * genattr-common.c: New.  Based on genattr.c.
5765         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
5766         (MOSTLYCLEANFILES): Add insn-attr-common.h.
5767         (opts.o): Update dependencies.
5768         (.PRECIOUS): Add insn-attr-common.h.
5769         (simple_rtl_generated_h): Add insn-attr-common.h.
5770         (build/genattr-common.o): New.
5771         (genprogrtl): Add attr-common.
5772         * genattr.c (main): Include insn-attr-common.h.  Don't generate
5773         definitions of DELAY_SLOTS or INSN_SCHEDULING.
5774         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
5775
5776 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
5777
5778         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
5779         avr-*-* and avr-*-rtems* targets.
5780
5781         * config/avr/elf.h: New file.
5782         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
5783         (TARGET_ASM_SELECT_SECTION): Define.
5784         (INIT_SECTION_ASM_OP): Undefine.
5785         (FINI_SECTION_ASM_OP): Undefine.
5786         (READONLY_DATA_SECTION_ASM_OP): Undefine.
5787         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
5788         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
5789         * config/avr/avr.h:
5790         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
5791         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
5792         (MAX_OFILE_ALIGNMENT): Move to elf.h.
5793         (STRING_LIMIT): Move to elf.h.
5794         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
5795         (ASM_DECLARE_OBJECT_NAME): Remove.
5796         (ESCAPES): Remove.
5797         (ASM_OUTPUT_SKIP): Remove.
5798         (DWARF2_DEBUGGING_INFO): Remove.
5799         (OBJECT_FORMAT_ELF): Remove.
5800         (USER_LABEL_PREFIX): Remove.
5801         (ASM_OUTPUT_EXTERNAL): Remove.
5802         (ASM_OUTPUT_ASCII): Remove.
5803         (TYPE_ASM_OP): Remove.
5804         (SIZE_ASM_OP): Remove.
5805         (WEAK_ASM_OP): Remove.
5806         (STRING_ASM_OP): Remove.
5807         (SET_ASM_OP): Remove.
5808         (ASM_WEAKEN_LABEL): Remove.
5809         (TYPE_OPERAND_FMT): Remove.
5810         (ASM_DECLARE_FUNCTION_SIZE): Remove.
5811         (ASM_FINISH_DECLARE_OBJECT): Remove.
5812         (NO_DOLLAR_IN_LABEL): Remove.
5813         (ASM_GENERATE_INTERNAL_LABEL): Remove.
5814         (ASM_OUTPUT_CASE_LABEL): Remove.
5815         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
5816         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
5817         (gas_output_ascii): Remove.
5818         (gas_output_limited_string): Remove.
5819         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
5820         * config/avr/avr-protos.h
5821         (gas_output_ascii): Remove prototye.
5822         (gas_output_limited_string): Remove prototype.
5823
5824 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
5825
5826         PR target/48637
5827         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
5828         asm operands.
5829
5830 2011-06-27  Jan Hubicka  <jh@suse.cz>
5831
5832         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
5833         node instead of references in node.
5834
5835 2011-06-27  Richard Henderson  <rth@redhat.com>
5836
5837         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
5838         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
5839         inside ifdef.
5840
5841 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
5842
5843         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
5844
5845         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
5846         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
5847         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
5848         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
5849         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
5850         (evaluate_stmt, execute_fold_all_builtins): Handle
5851         BUILT_IN_ASSUME_ALIGNED.
5852         * tree-ssa-dce.c (propagate_necessity): Likewise.
5853         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
5854         call_may_clobber_ref_p_1): Likewise.
5855         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
5856         (expand_builtin_assume_aligned): New function.
5857         * doc/extend.texi (__builtin_assume_aligned): Document.
5858
5859         PR debug/49544
5860         * cselib.c (promote_debug_loc): If cselib_preserve_constants
5861         and l has two DEBUG_INSN owned locs instead of just one, adjust
5862         the second location's setting_insn too.
5863
5864 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5865
5866         PR libmudflap/38738
5867         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
5868
5869 2011-06-27  Nick Clifton  <nickc@redhat.com>
5870
5871         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
5872         bit position of highest bit set into a count of the high zero bits.
5873
5874 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
5875
5876         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
5877
5878 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
5879
5880         PR lto/48492
5881         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
5882         to a NULL parent.
5883
5884 2011-06-27  Richard Guenther  <rguenther@suse.de>
5885
5886         PR tree-optimization/49394
5887         * passes.c (execute_one_pass): Restore current_pass after
5888         applying IPA transforms.
5889
5890 2011-06-27  Kai Tietz  <ktietz@redhat.com>
5891
5892         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
5893         out of type precision after operation.
5894         (find_bswap): Take for limit value the integer auto-promotion
5895         into account.
5896
5897 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
5898
5899         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
5900         forward scan as well.
5901
5902 2011-06-27  Tristan Gingold  <gingold@adacore.com>
5903
5904         PR target/44241
5905         * config/vms/vms-protos.h: New file.
5906         * config/vms/vms-crtlmap.map: New file.
5907         * config/vms/vms.c: New file.
5908         * config/vms/make-crtlmap.awk: New file.
5909         * config/vms/vms-crtl.h: File removed.
5910         * config/vms/vms-crtl-64.h: File removed.
5911         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
5912         * config/alpha/vms64.h: Do not include vms-crtl-64.h
5913         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
5914         clear some builtins on VMS.  Calls vms_patch_builtins.
5915         (avms_asm_output_external): Remove.
5916         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
5917         (struct crtl_name_spec): Remove
5918         (DO_CTRL_NAMES): Remove.
5919         * config/ia64/vms.h (struct crtl_name_spec): Remove
5920         (DO_CTRL_NAMES): Remove.
5921         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
5922         clear some builtins on VMS.  Calls vms_patch_builtins.
5923         (ia64_asm_output_external): Remove DO_CRTL_NAME.
5924         * config/ia64/vms64.h: Do not include vms-crtl-64.h
5925         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
5926
5927 2011-06-27  Tristan Gingold  <gingold@adacore.com>
5928
5929         * config/alpha/alpha.c (alpha_end_function): Always generate .end
5930         directive on VMS.
5931
5932 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
5933
5934         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
5935         the function receives nonlocal gotos.
5936
5937 2011-06-27  Richard Guenther  <rguenther@suse.de>
5938
5939         PR tree-optimization/49536
5940         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
5941         For non-scalar inner types use a scalar type according to
5942         the scalar inner mode.
5943
5944 2011-06-27  Richard Guenther  <rguenther@suse.de>
5945
5946         PR tree-optimization/49365
5947         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
5948
5949 2011-06-27  Richard Guenther  <rguenther@suse.de>
5950
5951         PR tree-optimization/49169
5952         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
5953         the alignment of function decls.
5954
5955 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
5956
5957         PR target/47997
5958         * config/darwin.c (darwin_mergeable_string_section): Place string
5959         constants in '.cstring' rather than '.const' when CF/NSStrings are
5960         active.
5961
5962 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
5963
5964         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
5965         (emit_save_register_window): Likewise.
5966         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
5967         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
5968         Swap back %o7/%i7 in register naming.
5969
5970 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
5971
5972         PR driver/49371
5973         * config/darwin.c (darwin_override_options): Improve warning when
5974         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
5975         is given with fpie/fPIE.
5976         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
5977         * config/darwin9.h (PIE_SPEC): New.
5978
5979 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
5980
5981         * timevar.c (timevar_print): Increase width for display of timevar
5982         name.
5983
5984 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
5985
5986         PR c++/46400
5987         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
5988         instead of TYPE_CHAIN for chain_next for types.
5989
5990 2011-06-24  Richard Henderson  <rth@redhat.com>
5991
5992         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
5993         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
5994         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
5995         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
5996         (sparc_flat_expand_prologue): Emit individual instructions
5997         instead of one of the above.
5998
5999 2011-06-24  Easwaran Raman  <eraman@google.com>
6000
6001         PR rtl-optimization/49429
6002         PR target/49454
6003         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
6004         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
6005         used to copy y into x.
6006         * calls.c (initialize_argument_information): Mark
6007         an argument addressable if it is passed by invisible reference.
6008         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
6009         if it is passed by reference.
6010
6011 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
6012
6013         PR rtl-optimization/49504
6014         * rtlanal.c (nonzero_bits1): Properly handle addition or
6015         subtraction of a pointer in Pmode if pointers extend unsigned.
6016         (num_sign_bit_copies1): Likewise.
6017
6018 2011-06-24  Martin Jambor  <mjambor@suse.cz>
6019
6020         PR tree-optimizations/49516
6021         * tree-sra.c (sra_modify_assign): Choose the safe path for
6022         aggregate copies if we also did scalar replacements.
6023
6024 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6025
6026         PR target/49335
6027         * config/arm/predicates.md (add_operator): New.
6028         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
6029
6030 2011-06-24  Andi Kleen  <ak@linux.intel.com>
6031
6032         * tree-sra.c (type_internals_preclude_sra_p): Add msg
6033         parameter. Split up ifs and report reason in *msg.
6034         (reject): Add.
6035         (find_var_candiate): Add msg variable.
6036         Split up ifs and report reason to reject.
6037         (find_param_candidates): Add msg variable.
6038         Pass msg to type_internals_preclude_sra_p.
6039
6040 2011-06-23  Jeff Law  <law@redhat.com>
6041
6042         PR middle-end/48770
6043         * reload.h (reload): Change to return a bool.
6044         * ira.c (ira): If requested by reload, run a fast DCE pass after
6045         reload has completed.  Fix comment typo.
6046         * reload1.c (need_dce): New file scoped static.
6047         (reload): Set reload_completed here.  Return whether or not a DCE
6048         pass after reload is needed.
6049         (delete_dead_insn): Set need_dce as needed.
6050
6051         PR middle-end/49465
6052         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
6053         to detect threading through joiner block.  If there was already
6054         an edge to the new target, then do not change the PHI nodes.
6055
6056 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
6057
6058         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
6059         get_pointer_alignment to see if base isn't sufficiently aligned.
6060
6061 2011-06-23  Jan Hubicka  <jh@suse.cz>
6062
6063         PR tree-optimize/49373
6064         * tree-pass.h (all_late_ipa_passes): Declare.
6065         * cgraphunit.c (init_lowered_empty_function): Fix properties.
6066         (cgraph_optimize): Execute late passes; remove unreachable funcions
6067         after materialization.
6068         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
6069         LTOing.
6070         * passes.c (all_late_ipa_passes): Declare.
6071         (dump_passes, register_pass): Handle late ipa passes.
6072         (init_optimization_passes): Move ipa_pta to late passes; schedule
6073         fixup_cfg at beggining of all_passes.
6074         (apply_ipa_transforms): New function.
6075         (execute_one_pass): When doing simple ipa pass, apply all transforms.
6076
6077 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
6078
6079         * params.c: Include common/common-target.h.  Don't include tm.h.
6080         (lang_independent_params): Move from toplev.c.
6081         (global_init_params): New.
6082         * params.h (global_init_params): Declare.
6083         * target.def (default_params): Move to common-target.def.
6084         * toplev.c (lang_independent_options): Remove.
6085         (lang_independent_params): Move to params.c.
6086         (general_init): Use global_init_params.
6087         * common/common-target.def (option_default_params): Move from
6088         target.def.
6089         * common/config/ia64/ia64-common.c: Include params.h.
6090         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6091         from ia64.c.
6092         * common/config/rs6000/rs6000-common.c: Include params.h.
6093         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6094         from rs6000.c.
6095         * common/config/sh/sh-common.c: Include params.h.
6096         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6097         from sh.c.
6098         * common/config/spu/spu-common.c: Include params.h.
6099         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6100         from spu.c.
6101         * config/ia64/ia64.c (ia64_option_default_params,
6102         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
6103         * config/rs6000/rs6000.c (rs6000_option_default_params,
6104         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
6105         * config/sh/sh.c (sh_option_default_params,
6106         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
6107         * config/spu/spu.c (spu_option_default_params,
6108         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
6109         * Makefile.in (OBJS): Remove params.o.
6110         (OBJS-libcommon-target): Add params.o.
6111         (params.o, $(common_out_object_file)): Update dependencies.
6112         * doc/tm.texi: Regenerate.
6113
6114 2011-06-23  Alan Modra  <amodra@gmail.com>
6115
6116         PR bootstrap/49383
6117         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
6118         invocation for 2011-06-09 changes.
6119
6120 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
6121
6122         PR libgomp/49490
6123         * omp-low.c (expand_omp_for_static_nochunk): Only
6124         use n ceil/ nthreads size for the first n % nthreads threads in the
6125         team instead of all threads except for the last few ones which
6126         get less work or none at all.
6127
6128         PR debug/49496
6129         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
6130         uses.
6131
6132 2011-06-22  Richard Guenther  <rguenther@suse.de>
6133
6134         PR tree-optimization/49493
6135         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
6136         Refer to the alias target of variables.
6137         (associate_varinfo_to_alias_1): Remove.
6138         (ipa_pta_execute): Do not associate aliases with anything.
6139         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
6140         (cgraph_function_node): Likewise.
6141         (cgraph_function_or_thunk_node): Likewise.
6142         (varpool_variable_node): Likewise.
6143
6144 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
6145
6146         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
6147         * config.gcc (arm*-*-linux*): Default to gnu tls.
6148         (arm*-*-*): Add --with-tls option.
6149         (all_defaults): Add 'tls'.
6150
6151 2011-06-22  Richard Henderson  <rth@redhat.com>
6152
6153         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
6154         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
6155         (dwarf2out_frame_debug_cfa_window_save): Rename from
6156         dwarf2out_window_save; make static.
6157         * tree.h (dwarf2out_window_save): Don't declare.
6158
6159         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
6160         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
6161         (emit_save_register_window): Rename from gen_save_register_window;
6162         emit the insn and add REG_CFA_* notes.
6163         (sparc_expand_prologue): Update to match.
6164         * config/sparc/sparc.md (save_register_window_1): Simplify from
6165         save_register_window<P:mode>.
6166
6167 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
6168
6169         PR target/49497
6170         * config/i386/i386.md (*lea_general_2): Always allow SImode.
6171         (*lea_general_2_zext): Likewise.
6172         (imul to lea peepholes): Use const359_operand and check
6173         TARGET_PARTIAL_REG_STALL.
6174
6175         * config/i386/predicates.md (const359_operand): New.
6176
6177 2011-06-22  Michael Matz  <matz@suse.de>
6178
6179         * cgraphunit.c (assemble_thunk): Use correct return type.
6180
6181 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
6182             Dmitry Melnik  <dm@ispras.ru>
6183
6184         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
6185         (neon_output_shift_immediate): Ditto.
6186         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
6187         prototype.
6188         (neon_output_shift_immediate): Ditto.
6189         * config/arm/neon.md (vashl<mode>3): Modified constraint.
6190         (vashr<mode>3_imm): New insn pattern.
6191         (vlshr<mode>3_imm): Ditto.
6192         (vashr<mode>3): Modified constraint.
6193         (vlshr<mode>3): Ditto.
6194         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
6195         predicate.
6196         (imm_for_neon_rshift_operand): Ditto.
6197         (imm_lshift_or_reg_neon): Ditto.
6198         (imm_rshift_or_reg_neon): Ditto.
6199
6200         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
6201
6202 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
6203
6204         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
6205         builtin calls even if likelyvalue is not CONSTANT.
6206         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
6207         Return get_value_for_expr of first operand
6208         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
6209         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6210         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
6211         their non-checking counterparts.
6212         (call_may_clobber_ref_p_1): Likewise.
6213         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
6214         like their non-checking counterparts.
6215         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6216         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
6217         like their non-checking counterparts.
6218         (find_func_clobbers): Likewise.
6219         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
6220         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
6221
6222         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
6223         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
6224         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
6225         of base type reference as argument.
6226         (resolve_addr_in_expr): Likewise.  Fix keep computation.
6227         (convert_descriptor_to_signed): Renamed to...
6228         (convert_descriptor_to_mode): ... this.  For wider types convert to
6229         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
6230         (typed_binop): New function.
6231         (scompare_loc_descriptor, ucompare_loc_descriptor,
6232         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
6233         default to unsigned type instead of signed.
6234
6235         PR debug/47858
6236         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
6237         (gimple_build_debug_source_bind_stat): New prototype.
6238         (gimple_build_debug_source_bind): Define.
6239         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
6240         gimple_debug_source_bind_get_value,
6241         gimple_debug_source_bind_get_value_ptr,
6242         gimple_debug_source_bind_set_var,
6243         gimple_debug_source_bind_set_value): New inlines.
6244         * gimple.c (gimple_build_debug_source_bind_stat): New function.
6245         * gimple-pretty-print.c (dump_gimple_debug): Handle
6246         GIMPLE_DEBUG_SOURCE_BIND.
6247         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
6248         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6249         * tree-parloops.c (eliminate_local_variables,
6250         separate_decls_in_region): Likewise.
6251         (separate_decls_in_region_debug): Renamed from
6252         separate_decls_in_region_debug_bind.  Handle
6253         gimple_debug_source_bind_p.
6254         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
6255         prototypes.
6256         (DECL_HAS_DEBUG_ARGS_P): Define.
6257         (struct tree_function_decl): Add has_debug_args_flag field.
6258         * tree.c (debug_args_for_decl): New variable.
6259         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
6260         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
6261         (rewrite_debug_stmt_uses): New function.
6262         (rewrite_stmt): Use it to rewrite debug stmt uses.
6263         * rtl.def (DEBUG_PARAMETER_REF): New.
6264         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
6265         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
6266         DEBUG_PARAMETER_REF.
6267         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
6268         * print-rtl.c (print_rtx): Likewise.
6269         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
6270         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
6271         debug stmts in the first bb.
6272         * tree-inline.c (remap_ssa_name): If remapping default def
6273         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
6274         a source bind debug stmt.
6275         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
6276         (maybe_move_debug_stmts_to_successors): Likewise.
6277         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
6278         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
6279         debug args vector from old_decl to new_decl.
6280         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
6281         or modified parameters, add debug bind stmts before call
6282         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
6283         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
6284         on DECL_DEBUG_EXPRs from debug args vector.
6285         (expand_debug_source_expr): New function.
6286         (expand_debug_locations): Use it for source bind insns.
6287         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
6288         * var-tracking.c (prepare_call_arguments): Add debug args
6289         to call_arguments if any.
6290         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
6291         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
6292         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
6293         (get_ref_die_offset, parameter_ref_descriptor): New functions.
6294         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
6295         (gen_subprogram_die): Handle parameters identified by
6296         DEBUG_PARAMETER_REF.
6297
6298 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
6299
6300         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
6301         * doc/install.texi (Configuration): Document --with-tls.
6302         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
6303         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
6304         (arm_tls_descseq_addr): New.
6305         (legitimize_tls_address): Add tlsdesc support.
6306         (arm_cannot_copy_insn_p): Check for tlscall.
6307         (arm_emit_tls_decoration): Likewise.
6308         * config/arm/arm.h (TARGET_GNU2_TLS): New.
6309         (OPTION_DEFAULT_SPECS): Add with-tls support.
6310         * config/arm/arm.md (R1_REGNUM): Define.
6311         (tlscall): New.
6312         * config/arm/arm.opt (tls_type): New enumeration type and values.
6313         (mtls-dialect): New switch.
6314         * config/arm/arm-opts.h (enum tls_type): New.
6315
6316 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
6317
6318         * attribs.c (register_attribute): Added assert to check that all
6319         attribute specs are registered with a name that is not empty and
6320         does not start with '_'.
6321         (decl_attributes): Avoid the lookup of the "naked" attribute spec
6322         if the function has no attributes.
6323         * tree.c (is_attribute_with_length_p): Removed.
6324         (is_attribute_p): Removed.
6325         (private_is_attribute_p): New.
6326         (private_lookup_attribute): New.
6327         (lookup_attribute): Removed.
6328         (lookup_ident_attribute): New.
6329         (remove_attribute): Require the first argument to be in the form
6330         'text', not '__text__'.  Updated asserts.
6331         (merge_attributes): Use lookup_ident_attributes instead of
6332         lookup_attribute.
6333         (merge_dllimport_decl_attributes): Use remove_attribute.
6334         (attribute_list_contained): Likewise.
6335         (attribute_list_equal): Immediately return 1 if the arguments are
6336         identical pointers.
6337         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
6338         'int'.  Require the first argument to be in the form 'text', not
6339         '__text__'.  Require the second argument to be an identifier.
6340         (lookup_attribute): Made inline.  Require the first argument to be
6341         in the form 'text', not '__text__'.
6342         (private_is_attribute_p, private_lookup_attribute): New.
6343         Updated comments.
6344
6345 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
6346
6347         * builtins.c: Add sync_ or SYNC__ to builtin names.
6348         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
6349         * omp-low.c: Add sync_ or SYNC__ to builtin names.
6350
6351 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
6352
6353         PR target/33049
6354         * config/avr/avr.md (extzv): New expander.
6355         (*extzv): New insn.
6356         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
6357         * config/avr/constraints.md (C04): New constraint.
6358         * doc/md.texi (Machine Constraints): Document it.
6359
6360 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
6361
6362         PR middle-end/49489
6363         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
6364         unsignedp argument instead of 1 for clrsb_optab.
6365         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
6366         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
6367         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
6368         * optabs.c (widen_leading): Call widen_operand and expand_unop
6369         with 0 as unsignedp argument instead of 1 for clrsb_optab.
6370         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
6371
6372 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
6373
6374         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
6375
6376 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
6377
6378         * gensupport.c (add_define_attr): New static function.
6379         (is_predicable): Allow multi-alternative lists for the "predicable"
6380         attribute.
6381         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
6382         (process_one_cond_exec): Call alter_attrs_for_insn.
6383         * doc/md.texi (Defining Attributes): Mention some standard names.
6384         (Conditional Execution): Update documentation for "predicable".
6385
6386         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
6387         __builtin_clrsbll): Document.
6388         * doc/rtl.texi (clrsb): New entry.
6389         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
6390         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
6391         (expand_unop): Handle clrsb_optab.
6392         (init_optabs): Initialize it.
6393         * optabs.h (enum optab_index): New entry OTI_clrsb.
6394         (clrsb_optab): Define.
6395         * genopinit.c (optabs): Add an entry for it.
6396         * builtins.c (expand_builtin): Handle clrsb builtin functions.
6397         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
6398         BUILT_IN_CLRSBLL): New.
6399         * rtl.def (CLRSB): New code.
6400         * dwarf2out.c (mem_loc_descriptor): Handle it.
6401         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
6402         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
6403         and popcount.
6404         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
6405         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
6406         (__ctzDI2): Move declaration.
6407         * config/bfin/bfin.md (clrsbsi2): New expander.
6408         (signbitssi2): Use the CLRSB rtx.
6409         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
6410         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
6411
6412 2011-06-21  Richard Guenther  <rguenther@suse.de>
6413
6414         * ipa-inline-transform.c (inline_transform): Fix previous change.
6415
6416 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
6417
6418         PR tree-optimization/49478
6419         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
6420         with constant operand.
6421
6422 2011-06-21  Richard Guenther  <rguenther@suse.de>
6423
6424         * ipa-inline-transform.c (inline_transform): Fix typo.
6425
6426 2011-06-21  Richard Guenther  <rguenther@suse.de>
6427
6428         PR tree-optimization/49483
6429         * tree-vect-stmts.c (vectorizable_assignment): Also handle
6430         VIEW_CONVERT_EXPR conversions.
6431
6432 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
6433
6434         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
6435         * config/avr/avr-tables.opt: New file (generated).
6436         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
6437         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
6438         avr-mcus.def.
6439         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
6440         (avr_option_override): Don't process -mmcu= argument here.  Set
6441         avr_current_device using avr_mcu_index.
6442         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
6443         * config/avr/avr.opt (mmcu=): Use Enum.
6444         * config/avr/t-avr (avr-devices.o): Update dependencies.
6445         ($(srcdir)/config/avr/avr-tables.opt): New.
6446         * target.def (help): Remove.
6447         * doc/tm.texi.in (TARGET_HELP): Remove.
6448         * doc/tm.texi: Regenerate.
6449         * opts.c: Don't include target.h.
6450         (common_handle_option): Don't call targetm.help.
6451         * system.h (TARGET_HELP): Poison.
6452         * Makefile.in (opts.o): Update dependencies.
6453
6454 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6455
6456         * config/usegld.h: New file.
6457         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
6458         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
6459         (LIB_SPEC): Likewise.  Search /lib.
6460         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
6461         (RDYNAMIC_SPEC): Handle GNU ld.
6462         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
6463         Define.
6464         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
6465         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
6466         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
6467         (STACK_CHECK_STATIC_BUILTIN): Define.
6468         * config/sol2.opt (compat-bsd): Remove.
6469         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
6470         * config/sol2-bi.h: New file.
6471         * config/sol2-gld.h: Remove.
6472         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
6473         (NO_DBX_BNSYM_ENSYM): Remove.
6474         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
6475         (STACK_CHECK_STATIC_BUILTIN): Remove.
6476         Test USE_GLD instead of TARGET_GNU_LD.
6477         * config/i386/sol2-10.h: Rename to ...
6478         * config/i386/sol2-bi.h .. this.
6479         (SUBTARGET_EXTRA_SPECS): Redefine.
6480         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
6481         (MULTILIB_DEFAULTS): Remove.
6482         (DEFAULT_ARCH32_P): Define.
6483         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
6484         (ARCH64_SUBDIR): Define.
6485         Test USE_GLD instead of TARGET_GNU_LD.
6486         (I386_EMULATION): Rename to ...
6487         (ARCH32_EMULATION): ... this.
6488         (X86_64_EMULATION): Rename to ...
6489         (ARCH64_EMULATION): ... this.
6490         (TARGET_LD_EMULATION): Remove.
6491         (LINK_ARCH_SPEC): Remove.
6492         * config/i386/sol2-gas.h: Remove.
6493         * config/i386/t-sol2-10: Rename to ...
6494         * config/i386/t-sol2-64: ... this.
6495         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
6496         (AS_SPARC64_FLAG): Define.
6497         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
6498         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
6499         depending on TARGET_CPU_DEFAULT.
6500         (CPP_CPU_SPEC): Redefine.
6501         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
6502         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
6503         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
6504         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
6505         ASM_ARCH_DEFAULT_SPEC): Redefine.
6506         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
6507         LINK_ARCH_DEFAULT_SPEC.
6508         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
6509         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
6510         (ARCH64_SUBDIR): Define.
6511         (LINK_ARCH64_SPEC): Redefine.
6512         (CC1_SPEC): Redefine.
6513         (OPTION_DEFAULT_SPECS): Redefine.
6514         (MULTILIB_DEFAULTS): Define.
6515         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
6516         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
6517         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
6518         (NO_DBX_BNSYM_ENSYM): Remove.
6519         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
6520         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
6521         (TARGET_ASM_NAMED_SECTION): Likewise.
6522         (STACK_CHECK_STATIC_BUILTIN): Remove.
6523         * config/sparc/sol2-bi.h: Remove.
6524         * config/sparc/sol2-gas-bi.h: Remove.
6525         * config/sparc/sol2-gas.h: Remove.
6526         * config/sparc/sol2-gld-bi.h: Remove.
6527         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
6528         common parts ...
6529         (*-*-solaris2*): ... here.
6530
6531 2011-06-21  Christian Bruel  <christian.bruel@st.com>
6532
6533         PR other/43564
6534         * ipa-inline.c (can_inline_edge_p): Check
6535         !DECL_DISREGARD_INLINE_LIMITS.
6536
6537 2011-06-21  Christian Bruel  <christian.bruel@st.com>
6538
6539         PR middle-end/49139
6540         * cgraphunit.c (process_function_and_variable_attributes): warn when
6541         always_inline functions that are not inline.
6542         * ipa-inline-transform.c (inline_transform): Always call
6543         optimize_inline.
6544         * tree-inline.c (tree_inlinable_function_p): Use error instead
6545         of sorry.
6546         (expand_call_inline): Likewise.
6547
6548 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
6549
6550         * Makefile.in (dg_target_exps): Set.
6551         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
6552         instead of 7, try to divide it more evenly.
6553
6554 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
6555
6556         PR target/49089
6557         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
6558         (avx256_split_unaligned_store): New definition.
6559         (ix86_option_override_internal): Enable avx256 unaligned load/store
6560         splitting only when avx256_split_unaligned_load/store is set.
6561
6562 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
6563
6564         * regrename.c (scan_rtx_reg): Handle the case where we write to an
6565         open chain in a smaller mode without failing the entire block.
6566
6567 2011-06-21  Alan Modra  <amodra@gmail.com>
6568
6569         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
6570         CONST high part large-toc address.
6571         (rs6000_tls_referenced_p): Make static.
6572         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
6573
6574 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6575
6576         PR target/49385
6577         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
6578         one of the operands is a register.
6579
6580 2011-06-20  Kai Tietz  <ktietz@redhat.com>
6581
6582         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
6583         operations in combination with binary and.
6584
6585 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
6586
6587         * regrename.c (do_replace): Don't update notes.
6588
6589 2011-06-20  Alan Modra  <amodra@gmail.com>
6590
6591         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
6592         of toc-relative address in CONST.
6593         (rs6000_delegitimize_address): Recognize changed address.
6594         (rs6000_legitimize_reload_address): Likewise.
6595         (rs6000_emit_move): Don't force these constants to memory.
6596         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
6597         toc-relative address in CONST.
6598         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
6599         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
6600
6601 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
6602
6603         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
6604         (count_trailing_zeros): Likewise.
6605
6606 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
6607
6608         PR other/49325
6609         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
6610         .init_array can be used with .ctors on targets.
6611         * configure: Regenerated.
6612
6613 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
6614
6615         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
6616         if the element type is volatile.
6617
6618 2011-06-18  Jan Hubicka  <jh@suse.cz>
6619
6620         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
6621         extra name aliases.
6622         (lto_symtab_resolve_can_prevail_p): Likewise.
6623         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
6624         * cgraphbuild.c (record_reference): Remove extra body alias code.
6625         (mark_load): Likewise.
6626         (mark_store): Likewise.
6627         * cgraph.h (varpool_node): Remove extra_name filed;
6628         add alias_of and extraname_alias.
6629         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
6630         (varpool_alias_aliased_node): New inline function.
6631         (varpool_variable_node): New function.
6632         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
6633         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
6634         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
6635         (input_varpool_node): Likewise.
6636         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
6637         (varpool_externally_visible_p): Remove extra body alias code.
6638         (function_and_variable_visibility): Likewise.
6639         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
6640         (ipa_pta_execute): Use it.
6641         * varpool.c (varpool_remove_node): Remove extra name alias code.
6642         (varpool_mark_needed_node): Likewise.
6643         (varpool_analyze_pending_decls): Analyze aliases.
6644         (assemble_aliases): New functoin.
6645         (varpool_assemble_decl): Use it.
6646         (varpool_create_variable_alias): New function.
6647         (varpool_extra_name_alias): Rewrite.
6648         (varpool_for_node_and_aliases): New function.
6649
6650 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
6651
6652         PR target/49411
6653         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
6654         last_arg_constant and last argument doesn't match its predicate,
6655         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
6656         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
6657         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
6658         spelling of error message.
6659         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
6660         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
6661         const_0_to_255_operand instead of const_int_operand.
6662
6663         Revert:
6664         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
6665
6666         * config/i386/sse.md (blendbits): Remove mode attribute.
6667         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
6668         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
6669         Check integer value of operand 3 in insn constraint.
6670
6671 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
6672
6673         PR rtl-optimization/48542
6674         * reload.c (find_equiv_reg): Stop looking when finding a
6675         setjmp-type call.
6676         * reload1.c (reload_as_needed): Invalidate all reload
6677         registers when crossing a setjmp-type call.
6678
6679 2011-06-16  Jeff Law  <law@redhat.com>
6680
6681         * tree-ssa-threadupdate.c (struct redirection_data): New field
6682         intermediate_edge.
6683         (THREAD_TARGET2): Define.
6684         (redirection_data_eq): Also check that the intermediate edge is equal.
6685         (lookup_redirection_data): Drop useless argument.  Extract the
6686         outgoing_edge and intermediate edge from E.  Callers updated.
6687         (copy_phi_args, update_destination_phis): New functions.
6688         (fix_duplicate_block_edges): Likewise.
6689         (create_edge_and_update_destination_phis): Duplicate all the edges
6690         hung off e->aux.  Use copy_phi_args.
6691         (create_duplicates): Use fix_duplicate_block_edges.
6692         (fixup_template_block): Likewise.
6693         (redirect_edges): If necessary, redirect the joiner block's incoming
6694         edge to the duplicate of the joiner block.
6695         (thread_block): Don't muck up loops when threading through a joiner
6696         block.
6697         (thread_through_loop_header): Handle threading through a joiner block.
6698         (mark_threaded_blocks, register_jump_thread): Likewise.
6699         * tree-flow.h (register_jump_thread): Add new argument.  Callers
6700         updated.
6701         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
6702         (thread_across_edge): Handle threading through a joiner block.
6703
6704 2011-06-16  Martin Jambor  <mjambor@suse.cz>
6705
6706         PR tree-optimization/49343
6707         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
6708         calculate offset, provide 2nd operand for the new COMPONENT_REF.
6709
6710 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
6711
6712         * config/darwin-protos.h (machopic_select_rtx_section): Move to
6713         inside RTX_CODE ifdef.
6714
6715 2011-06-16  Tom de Vries  <tom@codesourcery.com>
6716
6717         PR target/45098
6718         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
6719         Disallow NULL pointer for pointer arithmetic.
6720
6721 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6722
6723         PR target/49398
6724         Revert.
6725         2011-06-10  Wei Guozhi  <carrot@google.com>
6726
6727         PR target/45335
6728         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
6729         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
6730         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
6731         related peephole2.
6732         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
6733         related peephole2.
6734         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
6735         (arm_legitimate_ldrd_p): New prototype.
6736         (arm_output_ldrd): New prototype.
6737         * config/arm/arm.c (arm_check_ldrd_operands): New function.
6738         (arm_legitimate_ldrd_p): New function.
6739         (arm_output_ldrd): New function.
6740
6741 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
6742
6743         PR middle-end/46500
6744         * doc/tm.texi.in: Update Copyright date.
6745         * doc/tm.texi: Regenerate.
6746         * targhooks.c (default_setup_incoming_varargs): Replace
6747         CUMULATIVE_ARGS* argument type with cumulative_args_t.
6748         (default_pretend_outgoing_varargs_named): Likewise.
6749         (hook_pass_by_reference_must_pass_in_stack): Likewise.
6750         (hook_callee_copies_named): Likewise.
6751         (default_function_arg_advance): Likewise.
6752         (default_function_arg): Likewise.
6753         (default_function_incoming_arg): Likewise.
6754         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
6755         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
6756         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
6757         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
6758         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
6759         * targhooks.h (default_setup_incoming_varargs): Likewise.
6760         (default_pretend_outgoing_varargs_named): Likewise.
6761         (hook_pass_by_reference_must_pass_in_stack): Likewise.
6762         (hook_callee_copies_named): Likewise.
6763         (default_function_arg_advance): Likewise.
6764         (default_function_arg): Likewise.
6765         (default_function_incoming_arg): Likewise.
6766         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
6767         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
6768         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
6769         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
6770         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
6771         * target.def (pass_by_reference): Likewise.
6772         (setup_incoming_varargs, strict_argument_naming): Likewise.
6773         (pretend_outgoing_varargs_named, callee_copies): Likewise.
6774         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
6775         (function_incoming_arg): Likewise.
6776         * target.h: Don't include "tm.h" .
6777         (cumulative_args_t): New typedef.
6778         [GCC_TM_H] (get_cumulative_args): New static inline function.
6779         [GCC_TM_H] (pack_cumulative_args): Likewise.
6780         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
6781         argument type with cumulative_args_t.
6782         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
6783         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
6784         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
6785         (frv_arg_partial_bytes, frv_function_arg): Likewise.
6786         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
6787         (frv_function_arg_1): Likewise.
6788         * config/s390/s390.c (s390_pass_by_reference): Likewise.
6789         (s390_function_arg_advance, s390_function_arg): Likewise.
6790         * config/m32c/m32c.c (m32c_function_arg): Likewise.
6791         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
6792         (m32c_strict_argument_naming): Likewise.
6793         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
6794         (spu_function_arg_advance): Likewise.
6795         (spu_setup_incoming_varargs): Likewise.  Make static.
6796         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
6797         Remove prototype.
6798         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
6799         CUMULATIVE_ARGS* argument type with cumulative_args_t.
6800         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
6801         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
6802         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
6803         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
6804         (mep_pass_by_reference, mep_function_arg): Likewise.
6805         (mep_function_arg_advance): Likewise.
6806         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
6807         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
6808         (m32r_function_arg, m32r_function_arg_advance): Likewise.
6809         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
6810         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
6811         (ix86_function_arg, ix86_pass_by_reference): Likewise.
6812         (ix86_setup_incoming_varargs): Likewise.
6813         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
6814         (sh_strict_argument_naming): Likewise.
6815         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
6816         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
6817         (sh_function_arg_advance, sh_function_arg): Likewise.
6818         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
6819         (pdp11_function_arg_advance): Likewise.
6820         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
6821         Likewise.
6822         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
6823         * config/avr/avr.c (avr_function_arg): Likewise.
6824         (avr_function_arg_advance): Likewise.
6825         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
6826         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
6827         (xtensa_function_arg_1): Likewise.
6828         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
6829         Likewise.
6830         (xstormy16_function_arg): Likewise.
6831         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
6832         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
6833         (fr30_function_arg_advance): Likewise.
6834         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
6835         (lm32_function_arg, lm32_function_arg_advance): Likewise.
6836         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
6837         (moxie_function_arg, moxie_function_arg_advance): Likewise.
6838         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
6839         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
6840         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
6841         (cris_function_arg, cris_function_incoming_arg): Likewise.
6842         (cris_function_arg_advance, cris_function_arg_1): Likewise.
6843         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
6844         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
6845         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
6846         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
6847         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
6848         (mn10300_arg_partial_bytes): Likewise.
6849         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
6850         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
6851         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
6852         (ia64_function_arg_1): Likewise.
6853         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
6854         (m68k_function_arg): Likewise.
6855         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
6856         (rs6000_function_arg, setup_incoming_varargs): Likewise.
6857         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
6858         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
6859         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
6860         (picochip_arg_advance): Likewise.
6861         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
6862         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
6863         (mcore_function_arg_advance): Likewise.
6864         * config/score/score.c (score_pass_by_reference): Likewise.
6865         (score_function_arg_advance): Likewise.
6866         (score_arg_partial_bytes): Likewise.  Make static.
6867         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
6868         * config/arm/arm.c (arm_arg_partial_bytes): Replace
6869         CUMULATIVE_ARGS* argument type with cumulative_args_t.
6870         (arm_function_arg, arm_function_arg_advance): Likewise.
6871         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
6872         * config/pa/pa.c (pa_pass_by_reference): Likewise.
6873         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
6874         (pa_function_arg): Likewise.
6875         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
6876         (mips_function_arg, mips_function_arg_advance): Likewise.
6877         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
6878         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
6879         * config/vax/vax.c (vax_function_arg): Likewise.
6880         (vax_function_arg_advance): Likewise.
6881         * config/h8300/h8300.c (h8300_function_arg): Likewise.
6882         (h8300_function_arg_advance): Likewise.
6883         * config/v850/v850.c (v850_pass_by_reference): Likewise.
6884         (v850_strict_argument_naming, v850_function_arg): Likewise.
6885         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
6886         (v850_setup_incoming_varargs): Likewise.
6887         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
6888         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
6889         (mmix_function_arg, mmix_pass_by_reference): Likewise.
6890         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
6891         with const void *.
6892         * config/bfin/bfin.c (setup_incoming_varargs): Replace
6893         CUMULATIVE_ARGS* argument type with cumulative_args_t.
6894         (bfin_function_arg_advance, bfin_function_arg): Likewise.
6895         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
6896         * calls.c (emit_call_1): Change type of args_so_far to
6897         cumulative_args_t.  Changed all callers.
6898         (initialize_argument_information): Likewise.
6899         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
6900         * dse.c (get_call_args): Likewise.
6901         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
6902         * function.c (pass_by_reference, reference_callee_copied): Likewise.
6903         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
6904         New member args_so_far_v.  Changed all users.
6905         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
6906         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
6907         * config/mips/mips.c (mips_output_args_xfer): Likewise.
6908         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
6909         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
6910         * config/microblaze/microblaze.c (microblaze_expand_prologue):
6911         Likewise.
6912         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
6913         m32r_pass_by_reference.
6914
6915 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
6916
6917         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
6918         argument to be a VEC of statements.
6919         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
6920         assert that pattern statements have to have their vector type set.
6921         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
6922         Change the first argument to be a VEC of statements.  Update
6923         documentation.
6924         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
6925         (vect_handle_widen_mult_by_const): New function.
6926         (vect_recog_widen_mult_pattern):  Change the first argument to be a
6927         VEC of statements.  Update documentation.  Check that the constant is
6928         INTEGER_CST.  Support multiplication by a constant that fits an
6929         intermediate type - call vect_handle_widen_mult_by_const.
6930         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
6931         call.  Handle additional pattern statements if necessary.
6932
6933 2011-06-16  Nick Clifton  <nickc@redhat.com>
6934
6935         PR target/49427
6936         * config.gcc: Set cpu_type to v850 for any V850 architecture.
6937         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
6938         md_file, extra_modes, out_file and extra_options are these are all
6939         deduced from cpu_type.
6940
6941 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
6942
6943         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
6944         truncation mask to 63.
6945
6946 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
6947
6948         PR target/49313
6949         PR target/29524
6950         * longlong.h: Add AVR support:
6951         (count_leading_zeros): New macro.
6952         (count_trailing_zeros): New macro.
6953         (COUNT_LEADING_ZEROS_0): New macro.
6954         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
6955         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
6956         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
6957         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
6958         (LIB2FUNCS_EXCLUDE): Add _clz.
6959         * config/avr/libgcc.S (XCALL): Move up in file.
6960         (XJMP): New C Macro.
6961         (DEFUN): New asm macro.
6962         (ENDF): New asm macro.
6963         (__ffssi2): New function.
6964         (__ffshi2): New function.
6965         (__loop_ffsqi2): New function.
6966         (__ctzsi2): New function.
6967         (__ctzhi2): New function.
6968         (__clzdi2): New function.
6969         (__clzsi2): New function.
6970         (__clzhi2): New function.
6971         (__paritydi2): New function.
6972         (__paritysi2): New function.
6973         (__parityhi2): New function.
6974         (__parityqi2): New function.
6975         (__popcounthi2): New function.
6976         (__popcountsi2): New function.
6977         (__popcountdi2): New function.
6978         (__popcountqi2): New function.
6979         (__bswapsi2): New function.
6980         (__bswapdi2): New function.
6981         (__ashldi3): New function.
6982         (__ashrdi3): New function.
6983         (__lshrdi3): New function.
6984         Fix suspicous lines.
6985
6986 2011-06-16  Richard Guenther  <rguenther@suse.de>
6987
6988         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
6989         the same as x != 0.
6990         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
6991         to (bool) X & 1.
6992         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
6993         equality compares against zero for the lower bit.
6994
6995 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
6996
6997         PR tree-optimization/49419
6998         * tree-vrp.c (execute_vrp): Call init_range_assertions
6999         before estimate_numbers_of_iterations, call
7000         free_number_of_iterations_estimates before calling
7001         remove_range_assertions.
7002
7003 2011-06-16  Revital Eres  <revital.eres@linaro.org>
7004
7005         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
7006         (struct partial_schedule): Add rows_length field.
7007         (verify_partial_schedule): Check rows_length.
7008         (ps_insert_empty_row): Handle rows_length.
7009         (create_partial_schedule): Likewise.
7010         (free_partial_schedule): Likewise.
7011         (reset_partial_schedule): Likewise.
7012         (create_ps_insn): Remove rest_count argument.
7013         (remove_node_from_ps): Update rows_length.
7014         (add_node_to_ps): Update rows_length and call create_ps_insn
7015         without passing row_rest_count.
7016         (rotate_partial_schedule): Update rows_length.
7017
7018 2011-06-16  Revital Eres  <revital.eres@linaro.org>
7019
7020         * ddg.c (add_intra_loop_mem_dep): New function.
7021         (build_intra_loop_deps): Call it.
7022
7023 2011-06-13  Jeff Law  <law@redhat.com>
7024
7025         * df-problems.c (df_lr_local_compute): Manually CSE
7026         PIC_OFFSET_TABLE_REGNUM.
7027         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
7028         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
7029
7030 2011-06-13  Jan Hubicka  <jh@suse.cz>
7031
7032         * cgraphunit.c (handle_alias_pairs): New function.
7033         (cgraph_finalize_compilation_unit): Use it.
7034         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
7035         as externally visible.
7036
7037 2011-06-15  Richard Guenther  <rguenther@suse.de>
7038
7039         * expr.c (expand_expr_real_2): Reduce all integral types to
7040         bitfield precision.
7041         (expand_expr_real_1): Likewise.
7042
7043 2011-06-15  Martin Jambor  <mjambor@suse.cz>
7044
7045         PR tree-optimization/48613
7046         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
7047         ipa_node_params_vector is NULL.
7048
7049 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
7050
7051         PR debug/49382
7052         * dwarf2out.c (dw_loc_list_node): Add force field.
7053         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
7054         location in the list, even if it is modified before first real insn.
7055         (output_loc_list): Emit empty ranges with force flag set.
7056         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
7057
7058 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
7059
7060         PR target/49349
7061         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
7062         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
7063         above a fence.  Update comments.
7064         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
7065         placed just above it.  Do not allow NULL place_to_insert.
7066
7067 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
7068
7069         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
7070         (slpeel_tree_peel_loop_to_edge): Don't call
7071         remove_dead_stmts_from_loop.
7072         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
7073         remove irrelevant pattern statements.  For irrelevant statements
7074         check if it is the last statement of a detected pattern, use
7075         corresponding pattern statement instead.
7076         (destroy_loop_vec_info): No need to remove pattern statements,
7077         only free stmt_vec_info.
7078         (vect_transform_loop): For irrelevant statements check if it is
7079         the last statement of a detected pattern, use corresponding
7080         pattern statement instead.
7081         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
7082         pattern statements.  Set basic block for the new statement.
7083         (vect_pattern_recog): Update documentation.
7084         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
7085         operands of pattern statements.
7086         (vectorizable_call): Fix printing.  In case of a pattern statement
7087         use the lhs of the original statement when creating a dummy
7088         statement to replace the original call.
7089         (vect_analyze_stmt): For irrelevant statements check if it is
7090         the last statement of a detected pattern, use corresponding
7091         pattern statement instead.
7092         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
7093         statements use gsi of the original statement.
7094
7095 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
7096
7097         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
7098         common/common-target-def.h.
7099         * target.def (default_target_flags, handle_option,
7100         supports_split_stack, optimization_table, init_struct,
7101         except_unwind_info, unwind_tables_default, have_named_sections):
7102         Move to common/common-target.def.
7103         * target.h (enum opt_levels, struct default_options): Move to
7104         common/common-target.h.
7105         * targhooks.c (default_except_unwind_info,
7106         dwarf2_except_unwind_info, sjlj_except_unwind_info,
7107         default_target_handle_option, empty_optimization_table): Move to
7108         common/common-targhooks.c.
7109         * targhooks.h (default_except_unwind_info,
7110         dwarf2_except_unwind_info, sjlj_except_unwind_info,
7111         default_target_handle_option, empty_optimization_table): Move to
7112         common/common-targhooks.h.
7113         * common/common-target-def.h: Include common/common-targhooks.h.
7114         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
7115         defined.
7116         * common/common-target.def (handle_option, option_init_struct,
7117         option_optimization_table, default_target_flags,
7118         except_unwind_info, supports_split_stack, unwind_tables_default,
7119         have_named_sections): Move from target.def.
7120         (HOOK_PREFIX): Undefine at end of file.
7121         * common/common-target.h: Include input.h.
7122         (enum opt_levels, struct default_options): Move from target.h.
7123         * common/common-targhooks.c, common/common-targhooks.h: New.
7124         * config.gcc (target_has_targetm_common): Default to yes.
7125         (moxie*): Set target_has_targetm_common=no.
7126         (hppa*-*-*): Don't set target_has_targetm_common=yes.
7127         * doc/tm.texi: Regenerate.
7128         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
7129         (C_TARGET_DEF_H): Add common/common-targhooks.h.
7130         (GCC_OBJS): Remove vec.o.
7131         (OBJS): Remove hooks.o and vec.o.
7132         (OBJS-libcommon-target): Add vec.o, hooks.o and
7133         common/common-targhooks.o.
7134         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
7135         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
7136         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
7137         cfglayout.o, $(out_object_file), $(common_out_object_file)):
7138         Update dependencies.
7139         (common/common-targhooks.o): New.
7140         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
7141         * common/config/pa/pa-common.c: Include more headers.  Take
7142         copyright dates from pa.c.
7143         (pa_option_optimization_table, pa_handle_option,
7144         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
7145         TARGET_HANDLE_OPTION): Move from pa.c.
7146         * common/config/alpha/alpha-common.c,
7147         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
7148         common/config/bfin/bfin-common.c,
7149         common/config/cris/cris-common.c,
7150         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
7151         common/config/h8300/h8300-common.c,
7152         common/config/i386/i386-common.c,
7153         common/config/ia64/ia64-common.c,
7154         common/config/iq2000/iq2000-common.c,
7155         common/config/lm32/lm32-common.c,
7156         common/config/m32c/m32c-common.c,
7157         common/config/m32r/m32r-common.c,
7158         common/config/m68k/m68k-common.c,
7159         common/config/mcore/mcore-common.c,
7160         common/config/mep/mep-common.c,
7161         common/config/microblaze/microblaze-common.c,
7162         common/config/mips/mips-common.c,
7163         common/config/mmix/mmix-common.c,
7164         common/config/mn10300/mn10300-common.c,
7165         common/config/pdp11/pdp11-common.c,
7166         common/config/picochip/picochip-common.c,
7167         common/config/rs6000/rs6000-common.c,
7168         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
7169         common/config/score/score-common.c, common/config/sh/sh-common.c,
7170         common/config/sparc/sparc-common.c,
7171         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
7172         common/config/vax/vax-common.c,
7173         common/config/xstormy16/xstormy16-common.c,
7174         common/config/xtensa/xtensa-common.c: New.
7175         * config/alpha/alpha.c: Include common/common-target.h.
7176         (alpha_option_optimization_table, alpha_handle_option,
7177         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7178         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
7179         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
7180         * config/arm/arm.c (arm_option_optimization_table,
7181         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7182         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
7183         arm-common.c.
7184         * config/avr/avr.c (avr_option_optimization_table,
7185         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
7186         to avr-common.c.
7187         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
7188         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
7189         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
7190         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
7191         * config/cris/cris.c (cris_option_optimization_table,
7192         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7193         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
7194         cris-common.c.
7195         * config/fr30/fr30.c (fr30_option_optimization_table,
7196         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
7197         to fr30-common.c.
7198         * config/frv/frv.c (frv_option_optimization_table,
7199         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
7200         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
7201         * config/h8300/h8300.c (h8300_option_optimization_table,
7202         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7203         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
7204         * config/i386/i386-protos.h (ix86_handle_option): Declare.
7205         * config/i386/i386.c: Include common/common-target.h.
7206         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
7207         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
7208         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
7209         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
7210         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
7211         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
7212         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
7213         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
7214         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
7215         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
7216         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
7217         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
7218         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
7219         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
7220         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
7221         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
7222         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
7223         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
7224         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
7225         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
7226         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
7227         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
7228         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
7229         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
7230         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
7231         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
7232         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
7233         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
7234         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
7235         ix86_option_optimization_table, ix86_option_init_struct,
7236         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
7237         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7238         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
7239         i386-common.c.
7240         * config/i386/t-i386 (i386.o): Update dependencies.
7241         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
7242         * config/ia64/ia64.c (ia64_option_optimization_table,
7243         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
7244         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7245         ia64_handle_option): Move to ia64-common.c.
7246         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
7247         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
7248         * config/lm32/lm32.c (lm32_option_optimization_table,
7249         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
7250         to lm32-common.c.
7251         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
7252         m32c-common.c.
7253         * config/m32r/m32r.c (m32r_option_optimization_table,
7254         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7255         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
7256         m32r_handle_option): Move to m32r-common.c.
7257         (m32r_memory_move_cost): Remove comment referring to
7258         TARGET_HANDLE_OPTION.
7259         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
7260         Move to m68k-common.c.
7261         * config/mcore/mcore.c (mcore_option_optimization_table,
7262         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7263         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
7264         * config/mep/mep.c (mep_option_optimization_table,
7265         mep_handle_option, TARGET_HANDLE_OPTION,
7266         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
7267         Move to mep-common.c.
7268         * config/microblaze/microblaze.c
7269         (microblaze_option_optimization_table,
7270         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7271         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
7272         * config/mips/mips.c (mips_handle_option,
7273         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
7274         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
7275         mips-common.c.
7276         * config/mmix/mmix.c (mmix_option_optimization_table,
7277         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
7278         Move to mmix-common.c.
7279         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
7280         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
7281         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7282         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
7283         * config/pa/pa.c: Include common/common-target.h.
7284         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
7285         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7286         pa_handle_option): Move to pa-common.c.
7287         (pa_option_override): Use targetm_common.except_unwind_info.
7288         (pa_asm_output_mi_thunk, pa_function_section): Use
7289         targetm_common.have_named_sections.
7290         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
7291         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7292         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
7293         pdp11_handle_option, pdp11_option_init_struct): Move to
7294         pdp11-common.c.
7295         * config/picochip/picochip.c (picochip_option_optimization_table,
7296         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
7297         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
7298         * config/rs6000/rs6000.c: Include common/common-target.h.
7299         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
7300         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
7301         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
7302         rs6000_handle_option): Move to rs6000-common.c.
7303         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
7304         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
7305         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7306         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
7307         * config/s390/s390.c (processor_flags_table,
7308         s390_option_optimization_table, s390_option_init_struct,
7309         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
7310         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7311         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
7312         * config/s390/s390.h (processor_flags_table): Declare.
7313         * config/score/score.c (score_option_optimization_table,
7314         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7315         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
7316         score_handle_option): Move to score-common.c.
7317         * config/sh/sh.c (sh_option_optimization_table,
7318         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
7319         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7320         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
7321         * config/sparc/sparc.c: Include common/common-target.h.
7322         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
7323         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
7324         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
7325         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
7326         spu_option_init_struct): Move to spu-common.c.
7327         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
7328         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
7329         * config/v850/v850.c (small_memory_physical_max,
7330         v850_handle_memory_optionn v850_handle_option,
7331         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
7332         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
7333         v850-common.c.
7334         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
7335         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
7336         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
7337         Move to xtensa-common.c.
7338         * cfglayout.c: Include common/common-target.h.
7339         (fixup_reorder_chain): Use targetm_common.have_named_sections.
7340         * cfgrtl.c: Include common/common-target.h.
7341         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
7342         targetm_common.have_named_sections.
7343         * dbxout.c: Include common/common-target.h.
7344         (dbxout_function_end): Use targetm_common.have_named_sections.
7345         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
7346         targetm_common.except_unwind_info.
7347         * dwarf2out.c: Include common/common-target.h.
7348         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
7349         dwarf2out_begin_prologue, dwarf2out_frame_init,
7350         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
7351         targetm_common.except_unwind_info.
7352         * except.c: Include common/common-target.h.
7353         (init_eh, finish_eh_generation,
7354         output_one_function_exception_table): Use
7355         targetm_common.except_unwind_info.
7356         (switch_to_exception_section): Use targetm_common.have_named_sections.
7357         * explow.c: Include common/common-target.h.
7358         * expr.c: Include common/common-target.h.
7359         (build_personality_function): Use targetm_common.except_unwind_info.
7360         * function.c: Include common/common-target.h.
7361         (expand_function_end): Use targetm_common.except_unwind_info.
7362         * haifa-sched.c: Include common/common-target.h.
7363         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
7364         * lto-opts.c: Include common/common-target.h instead of target.h.
7365         (lto_reissue_options): Use targetm_common.handle_option.
7366         * opts.c: Include common/common-target.h.
7367         (target_handle_option): Use targetm_common.handle_option.
7368         (init_options_struct): Update comment referring to
7369         targetm.target_option.optimization.  Use
7370         targetm_common.default_target_flags,
7371         targetm_common.unwind_tables_default and
7372         targetm_common.option_init_struct.
7373         (default_options_optimization): Use
7374         targetm_common.option_optimization_table.
7375         (finish_options): Use targetm_common.except_unwind_info,
7376         targetm_common.unwind_tables_default,
7377         targetm_common.have_named_sections and
7378         targetm_common.supports_split_stack.
7379         * toplev.c: Include common/common-target.h.
7380         (process_options): Use targetm_common.have_named_sections.
7381         * tree-tailcall.c: Include common/common-target.h.
7382         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
7383         * tree.c: Include common/common-target.h.
7384         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
7385         * varasm.c: Include common/common-target.h.
7386         (resolve_unique_section, hot_function_section,
7387         default_function_section): Use targetm_common.have_named_sections.
7388
7389 2011-06-14  Easwaran Raman  <eraman@google.com>
7390
7391         PR rtl-optimization/44194
7392         * dse.c: Include tree-flow.h
7393         (insn_info): Add new field non_frame_wild_read.
7394         (group_info): Add new fields escaped_n and escaped_p.
7395         (kill_on_calls): New variable.
7396         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
7397         (dse_step0): Initialize kill_on_calls.
7398         (can_escape): New function.
7399         (set_usage_bits): Add additional parameter; record information
7400         about escaped locations.
7401         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
7402         (dse_step2_nospill): Set kill_on_calls based on
7403         group->escaped_n and group->escaped_n.
7404         (add_wild_read): Refactor into...
7405         (reset_active_stores): ... New function, and
7406         (free_read_records): ... New function.
7407         (add_non_frame_wild_read): New function.
7408         (scan_insn): Call add_non_frame_wild_read on non-const calls.
7409         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
7410         (dse_step5_nospill): Call scan_reads_nospill for instructions
7411         marked as non_frame_wild_read.
7412         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
7413
7414 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
7415
7416         * common/common-target-def.h, common/common-target.def,
7417         common/common-target.h, common/config/default-common.c,
7418         common/config/pa/pa-common.c: New files.
7419         * Makefile.in (common_out_file, common_out_object_file,
7420         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
7421         (OBJS-libcommon-target): Include $(common_out_object_file).
7422         (prefix.o): Update dependencies.
7423         ($(common_out_object_file), common/common-target-hooks-def.h,
7424         s-common-target-hooks-def-h): New.
7425         (s-tm-texi): Also check timestamp on common-target.def.
7426         (build/genhooks.o): Update dependencies.
7427         * config.gcc (common_out_file, target_has_targetm_common): Define.
7428         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
7429         TARGET_ALWAYS_STRIP_DOTDOT.
7430         * configure.ac (common_out_object_file): Define.
7431         (common_out_file, common_out_object_file): Substitute.
7432         (common): Create directory.
7433         * configure: Regenerate.
7434         * doc/tm.texi.in (targetm_common): Document.
7435         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
7436         * doc/tm.texi: Regenerate.
7437         * genhooks.c (hook_array): Also include common/common-target.def.
7438         * prefix.c (tm.h): Don't include.
7439         (common/common-target.h): Include.
7440         (ALWAYS_STRIP_DOTDOT): Don't define.
7441         (update_path): Use targetm_common.always_strip_dotdot instead of
7442         ALWAYS_STRIP_DOTDOT.
7443         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
7444
7445 2011-06-14  David Li  <davidxl@google.com>
7446
7447         * passes.c (execute_function_todo): Remove TODO_dump_func.
7448         (execute_one_pass): Remove TODO_dump_func.
7449         (execute_function_dump): New function.
7450         * tree-vrp.c: Remove TODO_dump_func.
7451         * regrename.c: Remove TODO_dump_func.
7452         * fwprop.c: Remove TODO_dump_func.
7453         * tree-into-ssa.c: Remove TODO_dump_func.
7454         * tree-complex.c: Remove TODO_dump_func.
7455         * tracer.c: Remove TODO_dump_func.
7456         * tree-loop-distribution.c: Remove TODO_dump_func.
7457         * postreload-gcse.c: Remove TODO_dump_func.
7458         * postreload.c: Remove TODO_dump_func.
7459         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
7460         * tree-tailcall.c: Remove TODO_dump_func.
7461         * ipa-cp.c: Remove TODO_dump_func.
7462         * final.c: Remove TODO_dump_func.
7463         * tree-emutls.c: Remove TODO_dump_func.
7464         * omp-low.c: Remove TODO_dump_func.
7465         * tree-ssa-dse.c: Remove TODO_dump_func.
7466         * tree-ssa-uncprop.c: Remove TODO_dump_func.
7467         * auto-inc-dec.c: Remove TODO_dump_func.
7468         * reorg.c: Remove TODO_dump_func.
7469         * tree-ssa-copyrename.c: Remove TODO_dump_func.
7470         * tree-ssa-ccp.c: Remove TODO_dump_func.
7471         * compare-elim.c: Remove TODO_dump_func.
7472         * mode-switching.c: Remove TODO_dump_func.
7473         * modulo-sched.c: Remove TODO_dump_func.
7474         * tree-call-cdce.c: Remove TODO_dump_func.
7475         * cse.c: Remove TODO_dump_func.
7476         * web.c: Remove TODO_dump_func.
7477         * tree-stdarg.c: Remove TODO_dump_func.
7478         * lto-streamer-out.c: Remove TODO_dump_func.
7479         * tree-ssa-math-opts.c: Remove TODO_dump_func.
7480         * tree-ssa-dom.c: Remove TODO_dump_func.
7481         * tree-nrv.c: Remove TODO_dump_func.
7482         * loop-init.c: Remove TODO_dump_func.
7483         * gimple-low.c: Remove TODO_dump_func.
7484         * ipa-inline.c: Remove TODO_dump_func.
7485         * tree-ssa-sink.c: Remove TODO_dump_func.
7486         * jump.c: Remove TODO_dump_func.
7487         * ifcvt.c: Remove TODO_dump_func.
7488         * tree-ssa-loop.c: Remove TODO_dump_func.
7489         * recog.c: Remove TODO_dump_func.
7490         * dse.c: Remove TODO_dump_func.
7491         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
7492         * matrix-reorg.c: Remove TODO_dump_func.
7493         * tree-eh.c: Remove TODO_dump_func.
7494         * regmove.c: Remove TODO_dump_func.
7495         * function.c: Remove TODO_dump_func.
7496         * tree-vectorizer.c: Remove TODO_dump_func.
7497         * ipa-split.c: Remove TODO_dump_func.
7498         * gcse.c: Remove TODO_dump_func.
7499         * tree-if-conv.c: Remove TODO_dump_func.
7500         * init-regs.c: Remove TODO_dump_func.
7501         * tree-ssa-phiopt.c: Remove TODO_dump_func.
7502         * implicit-zee.c: Remove TODO_dump_func.
7503         * lower-subreg.c: Remove TODO_dump_func.
7504         * bt-load.c: Remove TODO_dump_func.
7505         * tree-dfa.c: Remove TODO_dump_func.
7506         * except.c: Remove TODO_dump_func.
7507         * emit-rtl.c: Remove TODO_dump_func.
7508         * store-motion.c: Remove TODO_dump_func.
7509         * cfgexpand.c: Remove TODO_dump_func.
7510         * tree-cfgcleanup.c: Remove TODO_dump_func.
7511         * cfgcleanup.c: Remove TODO_dump_func.
7512         * tree-ssa-pre.c: Remove TODO_dump_func.
7513         * tree-sra.c: Remove TODO_dump_func.
7514         * tree-mudflap.c: Remove TODO_dump_func.
7515         * tree-ssa-copy.c: Remove TODO_dump_func.
7516         * cfglayout.c: Remove TODO_dump_func.
7517         * tree-ssa-forwprop.c: Remove TODO_dump_func.
7518         * tree-ssa-dce.c: Remove TODO_dump_func.
7519         * ira.c: Remove TODO_dump_func.
7520         * tree-ssa.c: Remove TODO_dump_func.
7521         * integrate.c: Remove TODO_dump_func.
7522         * tree-optimize.c: Remove TODO_dump_func.
7523         * tree-ssa-phiprop.c: Remove TODO_dump_func.
7524         * tree-object-size.c: Remove TODO_dump_func.
7525         * combine.c: Remove TODO_dump_func.
7526         * bb-reorder.c: Remove TODO_dump_func.
7527         * cprop.c: Remove TODO_dump_func.
7528         * var-tracking.c: Remove TODO_dump_func.
7529         * tree-profile.c: Remove TODO_dump_func.
7530         * tree-vect-generic.c: Remove TODO_dump_func.
7531         * reg-stack.c: Remove TODO_dump_func.
7532         * sched-rgn.c: Remove TODO_dump_func.
7533         * tree-ssa-structalias.c: Remove TODO_dump_func.
7534         * tree-switch-conversion.c: Remove TODO_dump_func.
7535         * tree-cfg.c: Remove TODO_dump_func.
7536         * tree-ssa-reassoc.c: Remove TODO_dump_func.
7537         * combine-stack-adj.c: Remove TODO_dump_func.
7538         * dce.c: Remove TODO_dump_func.
7539         * tree-ssanames.c: Remove TODO_dump_func.
7540         * regcprop.c: Remove TODO_dump_func.
7541
7542 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
7543
7544         PR middle-end/47364
7545         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
7546         and properly handle result not in Pmode.
7547
7548 2011-06-14  Robert Millan  <rmh@gnu.org>
7549
7550         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
7551         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
7552         `config/linux.h'.
7553
7554         * config/i386/kfreebsd-gnu64.h: New file.
7555         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
7556         with `i386/kfreebsd-gnu64.h'.
7557
7558         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
7559         (GNU_USER_LINK_EMULATION64): New macros.
7560         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
7561         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
7562         of hardcoding `elf_i386' and `elf_x86_64'.
7563
7564 2011-06-14  Nick Clifton  <nickc@redhat.com>
7565
7566         PR target/49403
7567         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
7568
7569         PR target/49402
7570         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
7571
7572 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
7573
7574         PR fortran/49103
7575         * tree.h (DECL_NONSHAREABLE): Define.
7576         (struct tree_decl_common): Change decl_common_unused to
7577         decl_nonshareable_flag.
7578         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
7579         Ignore vars with DECL_NONSHAREABLE bit set.
7580         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
7581         on stores to automatic aggregate vars.
7582
7583         PR rtl-optimization/49390
7584         Revert:
7585         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
7586
7587         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
7588         MEM_ALIAS_SET.
7589
7590 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
7591             Tom de Vries  <tom@codesourcery.com>
7592
7593         PR target/45098
7594         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
7595         Document changed semantics.
7596         (max_stmt_executions, max_stmt_executions_int): Declare.
7597         * tree-data-ref.c (estimated_loop_iterations)
7598         (estimated_loop_iterations_int): Move functions...
7599         * tree-ssa-loop-niter.c (estimated_loop_iterations)
7600         (estimated_loop_iterations_int): here.
7601         (record_estimate): Change nb_iterations_upper_bound and
7602         nb_iterations_estimate semantics.
7603         (max_stmt_executions, max_stmt_executions_int): New function.
7604         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
7605         (max_stmt_executions_tree): this.
7606         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
7607         estimated_loop_iterations_tree.
7608         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
7609         max_stmt_executions_int instead of estimated_loop_iterations_int.
7610         * predict.c (predict_loops): Idem.
7611         * tree-parloops.c (parallelize_loops): Idem.
7612         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
7613         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
7614         (init_omega_for_ddr_1): Idem.
7615         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
7616         (loop_prefetch_arrays): Idem
7617         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
7618         max_stmt_executions instead of estimated_loop_iterations.
7619         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
7620         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
7621         instead of nb_iterations_upper_bound.
7622
7623 2011-06-13  Jan Hubicka  <jh@suse.cz>
7624
7625         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
7626
7627 2011-06-14  Richard Henderson  <rth@redhat.com>
7628
7629         PR debug/48459
7630         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
7631         (based_loc_descr): Assert it's true.
7632         (compute_frame_pointer_to_fb_displacement): Set it, rather than
7633         aborting immediately.
7634
7635 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
7636             Mingfeng Wu  <mingfeng@faraday-tech.com>
7637
7638         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
7639
7640 2011-06-13  Jan Hubicka  <jh@suse.cz>
7641
7642         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
7643
7644 2011-06-13  Jan Hubicka  <jh@suse.cz>
7645
7646         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
7647         similarly to DECL_COMDAT.
7648         * cgraphunit.c (cgraph_analyze_function): Likewise.
7649         * ipa.c (function_and_variable_visibility): Likewise.
7650
7651 2011-06-13  Jan Hubicka  <jh@suse.cz>
7652
7653         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
7654         BINFO_VIRTUALS when streaming for ltrans unit.
7655
7656 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
7657
7658         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
7659         (movdi_internal64): Same.
7660
7661 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
7662
7663         PR target/44618
7664         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
7665         a set of similar patterns, where the MATCH_OPERAND for the function
7666         argument is replaced with individual references to hardware registers.
7667         (save_fpregs_<mode>): Ditto
7668         (restore_gpregs_<mode>): Ditto
7669         (return_and_restore_gpregs_<mode>): Ditto
7670         (return_and_restore_fpregs_<mode>): Ditto
7671         (return_and_restore_fpregs_aix_<mode>): Ditto
7672
7673 2011-06-13  Jan Hubicka  <jh@suse.cz>
7674
7675         * ipa-utils.c (postorder_stack): New structure.
7676         (ipa_reverse_postorder): Handle aliases.
7677
7678 2011-06-13  Jan Hubicka  <jh@suse.cz>
7679
7680         * ipa-inline.c (reset_edge_caches): Walk aliases.
7681         (update_caller_keys): Do not test inlinability of aliases.
7682         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
7683         (do_estimate_growth): Fix typo.
7684
7685 2011-06-13  Jan Hubicka  <jh@suse.cz>
7686
7687         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
7688         (can_remove_node_now_p): ... here; handle same comdat groups.
7689         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
7690         (inline_call): Update use of can_remove_node_now_p.
7691
7692 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
7693
7694         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
7695         condition to disallow non-identical memory locations.
7696         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
7697         preference to bit manipulation instructions.
7698
7699 2011-06-13  Jan Hubicka  <jh@suse.cz>
7700
7701         * cgraph.c (cgraph_for_node_thunks_and_aliases,
7702         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
7703         (nonremovable_p): New function.
7704         (cgraph_can_remove_if_no_direct_calls_p): New function.
7705         (used_from_object_file_p): New functoin.
7706         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
7707         references from aliases.
7708         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
7709         * ipa-inline.c (check_caller_edge): New function.
7710         (want_inline_function_called_once_p): Use it; accept aliases called
7711         once, too.
7712         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
7713
7714 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7715
7716         PR target/48454
7717         * config/arm/neon.md (vec_pack_trunc): Set the lengths
7718         correctly for the case with Quad vectors.
7719
7720 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
7721            Ira Rosen  <ira.rosen@linaro.org>
7722
7723         PR tree-optimization/49352
7724         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
7725         all, make sure loop_use_stmt after the loop is a def stmt of a used
7726         SSA_NAME that is the only one defined inside of the loop.  Don't
7727         check for COND_EXPR and GIMPLE_BINARY_RHS.
7728         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
7729         check_reduction is true.
7730
7731 2011-06-11  Jan Hubicka  <jh@suse.cz>
7732
7733         PR middle-end/49373
7734         * ipa.c (cgraph_externally_visible_p): Check resolution info.
7735
7736 2011-06-11  Jan Hubicka  <jh@suse.cz>
7737
7738         PR middle-end/48836
7739         * ipa-inline-transform.c: Include tree-pass.h
7740         (inline_transform): Set TODO_update_ssa_only_virtuals.
7741         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
7742
7743 2011-06-11  Jan Hubicka  <jh@suse.cz>
7744
7745         PR middle-end/49378
7746         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
7747         aliases and thunks.
7748
7749 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
7750
7751         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
7752         Take number of iterations to peel into account for equally frequent
7753         misalignment values.
7754
7755 2011-06-11  Jan Hubicka  <jh@suse.cz>
7756
7757         * lto-streamer-out.c (produce_symtab): Stream out the newly
7758         represented aliases.
7759
7760 2011-06-11  Jan Hubicka  <jh@suse.cz>
7761
7762         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
7763         varying args.
7764         (ipa_update_after_lto_read): Likewise.
7765         (ipa_write_node_info): Do not sream call_with_var_arguments.
7766         (ipa_read_node_info): Likewise.
7767
7768 2011-06-11  Jan Hubicka  <jh@suse.cz>
7769
7770         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
7771
7772 2011-06-11  Jan Hubicka  <jh@suse.cz>
7773
7774         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
7775         (lto_symtab_resolve_can_prevail_p): Likewise.
7776         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
7777         * cgraph.c (same_body_aliases_done): New global var.
7778         (cgraph_same_body_alias_1): Rename to ...
7779         (cgraph_create_function_alias): ... this one; reorg to new
7780         representation.
7781         (cgraph_same_body_alias): Use cgraph_create_function_alias;
7782         record references when asked to.
7783         (cgraph_add_thunk): Fix formating.
7784         (cgraph_get_node): Kill same body alias code.
7785         (cgraph_node_for_asm): Likewise.
7786         (cgraph_remove_same_body_alias): Remove.
7787         (cgraph_remove_node): Kill same body alias code.
7788         (cgraph_mark_address_taken_node): Mark also the aliased function
7789         as having address taken.
7790         (dump_cgraph_node): Dump same body aliases.
7791         (cgraph_for_node_thunks_and_aliases): Update for new alias
7792         representation.
7793         (cgraph_for_node_and_aliases): Likewise.
7794         * cgraph.h (same_body): Kll pointer.
7795         (same_body_alias): Update comment.
7796         (same_body_aliases_done): Declare.
7797         (cgraph_remove_same_body_alias): Remove declaration.
7798         (cgraph_create_function_alias): Declare.
7799         (cgraph_process_same_body_aliases): Declare.
7800         (cgraph_function_with_gimple_body_p): Check for alias.
7801         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
7802         (cgraph_alias_aliased_node): New function.
7803         (cgraph_function_node): Update for new aliases.
7804         (cgraph_function_or_thunk_node): Likewise.
7805         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
7806         (inline_call): Remove dead aliases.
7807         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
7808         name hack for same body aliases.
7809         (clone_of_p): Look through aliases.
7810         (verify_cgraph_node): Verify aliases.
7811         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
7812         (cgraph_process_same_body_aliases): New function.
7813         (process_function_and_variable_attributes): Disable weakref warning on
7814         alias.
7815         (cgraph_analyze_functions): Handle aliases.
7816         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
7817         (assemble_thunks): Rename to ...
7818         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
7819         (cgraph_expand_function): Remove alias output code.
7820         (cgraph_output_in_order): Skip aliases.
7821         (cgraph_preserve_function_body_p): Aliases don't need preserving.
7822         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
7823         (ipa_record_reference): Do not assert on alias references.
7824         (ipa_ref_has_aliases_p): New function.
7825         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
7826         (ipa_ref_has_aliases_p): Declare.
7827         * lto-cgraph.c (lto_output_node): Handle aliases.
7828         (input_node): Likewise.
7829         * lto-streamer-out.c (lto_output): Skip aliases.
7830         (produce_symtab): Kill same_body_alias code.
7831         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
7832         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
7833         * ipa-inline.c (update_caller_keys): Walk aliases.
7834         (inline_small_functions): Fix thinko in previous patch.
7835         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
7836         (function_and_variable_visibility): Do not walk same body aliases.
7837         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
7838         (ipa_pta_execute): Use it.
7839
7840 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
7841
7842         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
7843         (*vec_dupv2df): Rename from vec_dupv2df.
7844         (vec_dupv2df): New expander.
7845
7846 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
7847
7848         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
7849
7850 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
7851
7852         * config/i386/i386.md: Use default value in "isa" attribute.
7853         * config/i386/sse.md: Ditto.
7854         * config/i386/mmx.md: Ditto.
7855
7856 2011-06-10  Wei Guozhi  <carrot@google.com>
7857
7858         PR target/45335
7859         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
7860         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
7861         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
7862         related peephole2.
7863         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
7864         related peephole2.
7865         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
7866         (arm_legitimate_ldrd_p): New prototype.
7867         (arm_output_ldrd): New prototype.
7868         * config/arm/arm.c (arm_check_ldrd_operands): New function.
7869         (arm_legitimate_ldrd_p): New function.
7870         (arm_output_ldrd): New function.
7871
7872 2011-06-10  David Li  <davidxl@google.com>
7873
7874         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
7875         * passes.c (passr_eq): New function.
7876         (create_pass_tab): New function.
7877         (pass_traverse): New function.
7878         (dump_one_pass): New function.
7879         (dump_pass_list): New function.
7880         (dump_passes): New function.
7881
7882 2011-06-10  Jan Hubicka  <jh@suse.cz>
7883
7884         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
7885         setting the nothrow flag.
7886         * ipa-reference.c (propagate): Skip aliases.
7887         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
7888         (propagate_nothrow): Skip aliases; do not update cgraph.
7889         (local_pure_const): Do not update cgraph.
7890         * tree-profile.c (tree_profiling): Do fixup_cfg.
7891
7892 2011-06-10  Jan Hubicka  <jh@suse.cz>
7893
7894         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
7895         (cgraph_local_node_p): ... here; handle aliases.
7896         (has_addr_references_p): Break out from ...;
7897         (cgraph_remove_unreachable_nodes) ... here.
7898
7899 2011-06-10  Jan Hubicka  <jh@suse.cz>
7900
7901         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
7902         * common.opt (flag_inline_functions_called_once): Do not
7903         initialize to 1.
7904
7905 2011-06-10  Jan Hubicka  <jh@suse.cz>
7906
7907         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
7908         (ipcp_initialize_node_lattices): Do not deal with aliases;
7909         Do not try to propagate through thunks.
7910         (ipcp_change_tops_to_bottom): Do not deal with aliases.
7911
7912 2011-06-10  Jan Hubicka  <jh@suse.cz>
7913
7914         * ipa-prop.c (ipa_write_node_info): Stream jump functions
7915         for indirect calls.
7916         (ipa_read_node_info): Likewise.
7917
7918 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7919
7920         PR lto/49302
7921         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
7922         (build_and_insert_call): Likewise.
7923         (build_and_insert_ref): New.
7924         (gimple_expand_builtin_pow): Minor cleanup.
7925         (gimple_expand_builtin_cabs): New.
7926         (execute_cse_sincos): Add case for BUILT_IN_CABS.
7927
7928 2011-06-10  Jan Hubicka  <jh@suse.cz>
7929
7930         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
7931         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
7932         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
7933         (ipcp_propagate_stage): Skip aliases when propagating.
7934         (ipcp_need_redirect_p): Skip aliases.
7935         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
7936         collect_callers_of_node.
7937         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
7938         for aliases.
7939         (ipa_compute_jump_functions): Look through aliases.
7940
7941 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7942
7943         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
7944
7945 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
7946
7947         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
7948         Adjust comments.
7949         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
7950
7951 2011-06-10  Jan Hubicka  <jh@suse.cz>
7952
7953         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
7954         Update call of gimple_get_virt_method_for_binfo.
7955         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
7956         refuse_thunks parameter.
7957         (gimple_fold_call): Update.
7958         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
7959
7960 2011-06-10  Jan Hubicka  <jh@suse.cz>
7961
7962         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
7963         (not_all_callers_have_enough_arguments_p): ... this one; turn into
7964         worker for cgraph_for_node_and_aliases.
7965         (convert_callers_for_node): Break out from ...
7966         (convert_callers): ... here.
7967         (modify_function): Use collect_callers_of_node.
7968         (ipa_early_sra): Use cgraph_for_node_and_aliases.
7969
7970 2011-06-10  Richard Guenther  <rguenther@suse.de>
7971
7972         PR tree-optimization/49361
7973         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
7974         when not already in gimple form.
7975
7976 2011-06-10  Richard Guenther  <rguenther@suse.de>
7977
7978         PR bootstrap/49344
7979         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
7980         FOR_EACH_PHI_OR_STMT_USE.
7981
7982 2011-06-10  Jan Hubicka  <jh@suse.cz>
7983
7984         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
7985         (clone_inlined_nodes): ... here.
7986         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
7987         to real destination prior inlining.
7988         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
7989         can_early_inline_edge_p, want_early_inline_function_p,
7990         want_early_inline_function_p, want_inline_small_function_p,
7991         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
7992         edge_badness, update_all_callee_keys, lookup_recursive_calls,
7993         add_new_edges_to_heap, inline_small_functions, flatten_function,
7994         inline_always_inline_functions, early_inline_small_functions): Use
7995         cgraph_function_or_thunk_node.
7996         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
7997         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
7998         (do_estimate_edge_growth_1): Break out from ...
7999         (do_estimate_growth) ... here; walk aliases.
8000         (inline_generate_summary): Skip aliases.
8001
8002 2011-06-10  Richard Guenther  <rguenther@suse.de>
8003
8004         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
8005         forward when combining, visit inserted stmts when a stmt was changed.
8006
8007 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
8008
8009         * tree.h (error_operand_p): Add.
8010         * dbxout.c (dbxout_type_fields): Use the latter.
8011         * c-decl.c (add_stmt): Likewise.
8012         * gimplify.c (omp_add_variable, omp_notice_variable,
8013         gimplify_scan_omp_clauses): Likewise.
8014
8015 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
8016
8017         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
8018         when a value is actually passed in regs.
8019
8020 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
8021             Laurent Rougé  <laurent.rouge@menta.fr>
8022
8023         * doc/invoke.texi (SPARC options): Add -mflat.
8024         * config/sparc/sparc.opt: Likewise.
8025         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
8026         (sparc_flat_expand_prologue): Declare.
8027         (sparc_flat_expand_epilogue): Likewise.
8028         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
8029         (CPP_ENDIAN_SPEC): Replace with...
8030         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
8031         (CPP_SPEC): Adjust to above change.
8032         (EXTRA_SPECS): Likewise.
8033         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
8034         (INCOMING_REGNO): Likewise.
8035         (OUTGOING_REGNO): Likewise.
8036         (LOCAL_REGNO): Likewise.
8037         (SETUP_FRAME_ADDRESSES): Likewise.
8038         (FIXED_REGISTERS): Set 0 for %fp.
8039         (CALL_USED_REGISTERS): Likewise.
8040         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
8041         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
8042         (RETURN_ADDR_REGNUM): Define.
8043         (RETURN_ADDR_RTX): Use it.
8044         (INCOMING_RETURN_ADDR_REGNUM): Define.
8045         (INCOMING_RETURN_ADDR_RTX): Use it.
8046         (DWARF_FRAME_RETURN_COLUMN): Likewise.
8047         (EH_RETURN_REGNUM): Define.
8048         (EH_RETURN_STACKADJ_RTX): Use it.
8049         (EH_RETURN_HANDLER_RTX): Delete.
8050         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
8051         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
8052         Delete.
8053         (struct machine_function): Add frame_size, apparent_frame_size,
8054         frame_base_reg, frame_base_offset, n_global_fp_regs and
8055         save_local_in_regs_p fields.
8056         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
8057         sparc_frame_base_offset, sparc_n_global_fp_regs,
8058         sparc_save_local_in_regs_p): New macros.
8059         (sparc_option_override): Error out if -fcall-saved-REG is specified
8060         for Out registers.
8061         (eligible_for_restore_insn): Fix formatting.
8062         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
8063         (eligible_for_sibcall_delay): Likewise.
8064         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
8065         (sparc_legitimate_address_p): Adjust to above change.
8066         (save_global_or_fp_reg_p): New predicate.
8067         (return_addr_reg_needed_p): Likewise.
8068         (save_local_or_in_reg_p): Likewise.
8069         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
8070         (SORR_SAVE, SORR_RESTORE): Delete.
8071         (sorr_pred_t): New typedef.
8072         (sorr_act_t): New enum.
8073         (save_or_restore_regs): Rename to...
8074         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
8075         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
8076         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
8077         mechanism.  Add CFI information for double-word saves in 32-bit mode.
8078         (emit_adjust_base_to_offset): New function extracted from...
8079         (emit_save_or_restore_regs): ...this.  Rename the rest to...
8080         (emit_save_or_restore_regs_global_fp_regs): ...this.
8081         (emit_save_or_restore_regs_local_in_regs): New function.
8082         (gen_create_flat_frame_[123]): New functions.
8083         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
8084         (sparc_flat_expand_prologue): New function.
8085         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
8086         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
8087         (sparc_flat_expand_epilogue): New function.
8088         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
8089         (output_return): Likewise.
8090         (output_sibcall): Likewise.
8091         (sparc_output_mi_thunk): Likewise.
8092         (sparc_frame_pointer_required): Likewise.
8093         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
8094         function optimization.
8095         * config/sparc/sparc.md (flat): New attribute.
8096         (prologue): Add TARGET_FLAT handling.
8097         (save_register_window): Disable if TARGET_FLAT.
8098         (create_flat_frame_[123]): New patterns.
8099         (epilogue): Add TARGET_FLAT handling.
8100         (sibcall_epilogue): Likewise.
8101         (eh_return): New expander.
8102         (eh_return_internal): New insn and splitter.
8103         (return_internal): Add TARGET_FLAT handling.
8104         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
8105         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
8106         (nonlocal_goto): Add TARGET_FLAT handling.
8107         * config/sparc/t-elf: Add -mflat multilib.
8108         * config/sparc/t-leon: Likewise.
8109
8110 2011-06-10  Jan Hubicka  <jh@suse.cz>
8111
8112         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
8113         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
8114         (self_recursive_p): Use cgraph_function_node.
8115         (propagate_pure_const): Likewise.
8116         (propagate_nothrow): Likewise.
8117         * ipa-reference.c (ipa_reference_get_not_read_global): Use
8118         cgraph_function_node.
8119         (propagate_bits): Likewise.
8120         (propagate): Likewise.
8121
8122 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8123             Richard Earnshaw  <rearnsha@arm.com>
8124
8125         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
8126         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
8127         (*thumb2_movdi_vfp): Delete.
8128         (*arm_movdi_vfp_cortexa8): Delete.
8129         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
8130         (*movdi_vfp_cortexa8): Likewise.
8131
8132 2011-06-10  Richard Guenther  <rguenther@suse.de>
8133
8134         * stor-layout.c (initialize_sizetypes): Give names to all
8135         sizetype kinds.
8136
8137 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
8138
8139         PR tree-optimization/49318
8140         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
8141         irrelevant pattern statements.
8142
8143 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
8144
8145         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
8146
8147         PR bootstrap/49354
8148         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
8149         to last assignment.
8150
8151 2011-06-09  Jan Hubicka  <jh@suse.cz>
8152
8153         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
8154         do not recompute reachable flag.
8155         (cgraph_finalize_function, cgraph_analyze_functions): Set
8156         redefined_extern_inline here.
8157
8158 2011-06-09  Jan Hubicka  <jh@suse.cz>
8159
8160         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
8161         (cgraph_only_called_directly_p): ... this one; bring offline.
8162         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
8163         varpool_used_from_object_file_p): Drop names from the declaratoin.
8164         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
8165         collect_callers_of_node): New.
8166         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
8167         (cgraph_edge_recursive_p): Use cgraph_function_node.
8168         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
8169         (cgraph_node_cannot_be_local_p_1): Break out from ...
8170         (cgraph_node_can_be_local_p): ... here; walk aliases.
8171         (cgraph_for_node_thunks_and_aliases): New function.
8172         (cgraph_for_node_and_aliases): New function.
8173         (cgraph_make_node_local_1): Break out from ...
8174         (cgraph_make_node_local) ... here; use
8175         cgraph_for_node_thunks_and_aliases.
8176         (cgraph_set_nothrow_flag_1): Break out from ...
8177         (cgraph_set_nothrow_flag) ... here;
8178         use cgraph_for_node_thunks_and_aliases.
8179         (cgraph_set_const_flag_1): Break out from ...
8180         (cgraph_set_const_flag) ... here;
8181         use cgraph_for_node_thunks_and_aliases.
8182         (cgraph_set_pure_flag_1): Break out from ...
8183         (cgraph_set_pure_flag) ... here;
8184         use cgraph_for_node_thunks_and_aliases.
8185         (cgraph_propagate_frequency_1): Break out from ...
8186         (cgraph_propagate_frequency) ... here; use
8187         cgraph_for_node_thunks_and_aliases.
8188         (cgraph_used_from_object_file_p): Do not care about aliases.
8189         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
8190         New functions.
8191         (collect_callers_of_node_1, collect_callers_of_node): New functions.
8192
8193 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
8194
8195         PR rtl-optimization/49154
8196         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
8197         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
8198         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
8199         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
8200         * config/cris/cris.h (cris_register_move_cost): Remove
8201         !TARGET_V32 code.  Tweak comments.
8202
8203 2011-06-09  Jan Hubicka  <jh@suse.cz>
8204
8205         * cgraphbuild.c (record_eh_tables): Mark personality function as having
8206         address taken.
8207
8208 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
8209
8210         PR rtl-optimization/49154
8211         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
8212         is a matching slot in the hashtable, assign it to classes_ptr.
8213
8214         PR rtl-optimization/49154
8215         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
8216         register classes.
8217         * doc/tm.texi: Regenerate.
8218
8219 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
8220
8221         PR target/49307
8222         * config/sh/sh.md (UNSPEC_CHKADD): New.
8223         (chk_guard_add): New define_insn_and_split.
8224         (symGOT_load): Use chk_guard_add instead of blockage.
8225
8226 2011-06-09  Kai Tietz  <ktietz@redhat.com>
8227
8228         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
8229
8230 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
8231
8232         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
8233
8234 2011-06-09  Wei Guozhi  <carrot@google.com>
8235
8236         PR target/46975
8237         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
8238         (peephole2 for conditional move): Generate 16 bit instructions.
8239
8240 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
8241
8242         * config/i386/i386.md (*movdi_internal_rex64): Merge
8243         alternatives 6 and 8.
8244
8245 2011-06-09  David Li  <davidxl@google.com>
8246
8247         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
8248         * passes.c (passr_eq): New function.
8249         (create_pass_tab): New function.
8250         (pass_traverse): New function.
8251         (dump_one_pass): New function.
8252         (dump_pass_list): New function.
8253         (dump_passes): New function.
8254
8255 2011-06-09  David Li  <davidxl@google.com>
8256
8257         * tree-complex.c (tree_lower_complex): Gate cleanup.
8258         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
8259         (execute_optimize_stdarg): Ditto.
8260         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
8261         (execute_cleanup_eh_1): Ditto.
8262         (execute_cleanup_eh): Ditto.
8263         * gcse.c (gate_rtl_pre): Ditto.
8264         (execute_rtl_pre): Ditto.
8265         * except.c (finish_eh_generation): Ditto.
8266         (convert_to_eh_region_ranges): Ditto.
8267         * cprop.c (one_cprop_pass): Ditto.
8268
8269 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
8270
8271         PR target/48673
8272         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
8273         in all basic blocks.
8274
8275 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8276
8277         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
8278         (HAVE_ENABLE_EXECUTE_STACK): Define.
8279         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
8280         (HAVE_ENABLE_EXECUTE_STACK): Define.
8281         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
8282         (HAVE_ENABLE_EXECUTE_STACK): Define.
8283         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
8284         (ENABLE_EXECUTE_STACK): Remove.
8285         (HAVE_ENABLE_EXECUTE_STACK): Define.
8286         [IN_LIBGCC2]: Don't include <windows.h>.
8287         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
8288         (HAVE_ENABLE_EXECUTE_STACK): Define.
8289         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
8290         (HAVE_ENABLE_EXECUTE_STACK): Define.
8291         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
8292         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
8293         (HAVE_ENABLE_EXECUTE_STACK): Define.
8294         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
8295         (HAVE_ENABLE_EXECUTE_STACK): Define.
8296         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
8297         (HAVE_ENABLE_EXECUTE_STACK): Define.
8298         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
8299         (HAVE_ENABLE_EXECUTE_STACK): Define.
8300         * config/alpha/alpha.c (alpha_trampoline_init): Test
8301         HAVE_ENABLE_EXECUTE_STACK.
8302         * config/i386/i386.c (ix86_trampoline_init): Likewise.
8303         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
8304         (sparc64_initialize_trampoline): Likewise.
8305         * libgcc2.c [L_enable_execute_stack]: Remove.
8306         * system.h (ENABLE_EXECUTE_STACK): Poison.
8307         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
8308         * doc/tm.texi: Regenerate.
8309         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
8310
8311 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
8312
8313         PR middle-end/49308
8314         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
8315         variable.  After resetting and rescanning insn continue with previous
8316         statement.
8317
8318 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8319
8320         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
8321         (gcc_cv_ld_hidden): Likewise.
8322         * configure: Regenerate.
8323         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
8324         (ix86_stack_protect_fail): Mark unused.
8325         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
8326         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
8327         [TARGET_MACHO]: Don't define.
8328         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
8329         (TARGET_STACK_PROTECT_FAIL): Likewise.
8330         (rs6000_stack_protect_fail): Mark unused.
8331         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
8332         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
8333
8334 2011-06-08  Andi Kleen  <ak@linux.intel.com>
8335
8336         * varasm.c (get_section): Print location of other conflict
8337         for section conflicts.
8338
8339 2011-06-08  Andi Kleen  <ak@linux.intel.com>
8340
8341         * config/i386/driver-i386.c (host_detect_local_cpu):
8342         Add model 0x2d Intel CPU.
8343
8344 2011-06-08  Andi Kleen  <ak@linux.intel.com>
8345
8346         * reginfo.c (global_regs_decl): Add.
8347         (globalize_reg): Add decl parameter. Compute location.  Pass location
8348         to warnings and add inform. Store decl in global_regs_decl.
8349         * rtl.h (globalize_reg): Update prototype.
8350         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
8351
8352 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
8353
8354         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
8355
8356 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8357
8358         PR target/49305
8359         * config/sh/predicates.md (general_movsrc_operand): Check
8360         mode for memory with indexed address for QI and HImode.
8361         (general_movdst_operand): Likewise.
8362
8363 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
8364
8365         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
8366
8367 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
8368
8369         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
8370         (num_ssa_operands): Likewise.
8371         (op_iter_init_phiuse): Forward-declare.
8372         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
8373
8374 2011-06-08  Nick Clifton  <nickc@redhat.com>
8375
8376         * doc/invoke.texi (ARM Options): Update description of
8377         -mthumb-interwork.
8378
8379 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
8380
8381         * config/i386/driver-i386.c (host_detect_local_cpu): Support
8382         unknown Intel family 0x6 CPUs.
8383
8384 2011-06-08  Martin Jambor  <mjambor@suse.cz>
8385
8386         * tree-sra.c (mark_rw_status): Removed.
8387         (analyze_access_subtree): New parameter parent instead of
8388         mark_read and mark_write, propagate from that.
8389
8390 2011-06-08  Julian Brown  <julian@codesourcery.com>
8391
8392         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
8393         for double-precision helper functions in hard-float mode if only
8394         single-precision arithmetic is supported in hardware.
8395
8396 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
8397
8398         PR rtl-optimization/49303
8399         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
8400         code_motion_path_driver returned 0 or 1.
8401         (sel_region_finish): Clear h_d_i_d.
8402
8403 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8404
8405         * config/sh/sh.c (prepare_move_operands): Set pic register
8406         appropriately for global and local dynamic tls models even
8407         if flag_pic is unset.
8408
8409 2011-06-07  Jason Merrill  <jason@redhat.com>
8410
8411         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
8412
8413 2011-06-07  Xinliang David Li  <davidxl@google.com>
8414         * passes.c (enable_disable_pass): Handle assembler name.
8415         (is_pass_explicitly_enabled_or_disabled): Ditto.
8416
8417 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8418
8419         PR tree-optimization/48497
8420         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
8421
8422 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8423
8424         PR tree-optimization/46728
8425         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
8426         to use gimple_val_nonnegative_real_p.
8427         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
8428         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
8429
8430 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
8431
8432         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
8433
8434 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
8435
8436         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
8437         constant vectors.
8438
8439 2011-06-07  Richard Guenther  <rguenther@suse.de>
8440
8441         * stor-layout.c (initialize_sizetypes): Initialize all
8442         sizetypes based on target definitions.
8443         (set_sizetype): Remove.
8444         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
8445         * tree.h (set_sizetype): Remove.
8446
8447 2011-06-07  Nick Clifton  <nickc@redhat.com>
8448
8449         * config.gcc: Unify V850 architecture options and add support for
8450         newer V850 architectures.
8451         * config/v850/t-v850e: Delete.
8452
8453 2011-06-07  Richard Guenther  <rguenther@suse.de>
8454
8455         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
8456         Call set_sizetype from here.
8457
8458 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
8459
8460         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
8461         (*maddhisi4tb, *maddhisi4tt): New define_insns.
8462
8463 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
8464             Andrew Stubbs  <ams@codesourcery.com>
8465
8466         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
8467         multiplies.
8468         * doc/md.texi (Canonicalization of Instructions): Document widening
8469         multiply canonicalization.
8470
8471 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
8472
8473         PR gcov-profile/49299
8474         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
8475
8476 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
8477
8478         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
8479         a pointer.
8480         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
8481         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
8482         vect_recog_pow_pattern): Likewise.
8483         (vect_pattern_recog_1): Remove declaration.
8484         (widened_name_p): Remove declaration.  Add new argument to specify
8485         whether to check that both types are either signed or unsigned.
8486         (vect_recog_widen_mult_pattern): Update documentation.  Handle
8487         unsigned patterns and multiplication by constants.
8488         (vect_pattern_recog_1): Update vect_recog_func references.  Use
8489         statement information from the statement returned from pattern
8490         detection functions.
8491         (vect_pattern_recog): Update vect_recog_func reference.
8492         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
8493         multiplication by a constant use the type of the other operand.
8494
8495 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
8496
8497         PR rtl-optimization/49145
8498         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
8499
8500 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
8501
8502         PR debug/49262
8503         * dwarf2out.c (native_encode_initializer): Decrement count in each
8504         iteration.
8505
8506         PR debug/49294
8507         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
8508         non-MODE_INT modes.
8509
8510         PR c++/49264
8511         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
8512         if stmt folded into nothing.
8513         * tree-inline.c (fold_marked_statements): If a builtin at the end of
8514         a bb folded into nothing, just update cgraph edges and move to next bb.
8515         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
8516         to be NULL.  Don't compute count and frequency if new_call is NULL.
8517
8518 2011-06-04  Diego Novillo  <dnovillo@google.com>
8519
8520         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
8521         (cgraph.o): Likewise.
8522         (cgraphunit.o): Likewise.
8523         * cgraphunit.c: Include lto-streamer.h
8524         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
8525         if LTO is enabled.
8526         * lto-streamer-in.c (unpack_value_fields): Call
8527         streamer_hooks.unpack_value_fields if set.
8528         (lto_materialize_tree): For unhandled nodes, first try to
8529         call lto_streamer_hooks.alloc_tree, if it exists.
8530         (lto_input_ts_decl_common_tree_pointers): Move reading of
8531         DECL_INITIAL to lto_streamer_read_tree.
8532         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
8533         (lto_streamer_read_tree): New.
8534         (lto_reader_init): Rename from lto_init_reader.
8535         Move initialization code to lto/lto.c.
8536         * lto-streamer-out.c (pack_value_fields): Call
8537         streamer_hooks.pack_value_fields if set.
8538         (lto_output_tree_ref): For tree nodes that are not normally indexable,
8539         call streamer_hooks.indexable_with_decls_p before giving up.
8540         (lto_output_ts_decl_common_tree_pointers): Move handling
8541         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
8542         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
8543         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
8544         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
8545         (lto_streamer_write_tree): New.
8546         (lto_output): Call lto_streamer_init directly.
8547         (lto_writer_init): Remove.
8548         * lto-streamer.c (streamer_hooks): New.
8549         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
8550         instead of lto_preload_common_nodes.
8551         (lto_is_streamable): Move from lto-streamer.h
8552         (lto_streamer_hooks_init): New.
8553         (streamer_hooks): New.
8554         (streamer_hooks_init): New.
8555         * lto-streamer.h (struct output_block): Forward declare.
8556         (struct lto_input_block): Likewise.
8557         (struct data_in): Likewise.
8558         (struct bitpack_d): Likewise.
8559         (struct streamer_hooks): Declare.
8560         (streamer_hooks): Declare.
8561         (lto_streamer_hooks_init): Declare.
8562         (lto_streamer_write_tree): Declare.
8563         (lto_streamer_read_tree): Declare.
8564         (streamer_hooks_init): Declare.
8565         (lto_is_streamable): Move to lto-streamer.c
8566
8567 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8568
8569         * longlong.h (smul_ppmm): The resulting register pair contains the
8570         higher order word first.
8571
8572 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8573
8574         PR tree-optimization/46728
8575         * builtins.c (powi_table): Remove.
8576         (powi_lookup_cost): Remove.
8577         (powi_cost): Remove.
8578         (expand_powi_1): Remove.
8579         (expand_powi): Remove.
8580         (expand_builtin_pow_root): Remove.
8581         (expand_builtin_pow): Remove.
8582         (expand_builtin_powi): Eliminate handling of constant exponent.
8583         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
8584
8585 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
8586
8587         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
8588
8589 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
8590
8591         * dce.c (reset_unmarked_insns_debug_uses): New.
8592         (delete_unmarked_insns): Skip debug insns.
8593         (prescan_insns_for_dce): Likewise.
8594         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
8595         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
8596         active reg can be found.
8597         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
8598         (convert_regs_1): Use it.
8599
8600 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
8601
8602         * tree-pretty-print.c (dump_function_header): Add flags.
8603         Don't dump decl_uid with nouid.
8604         * tree-pretty-print.h (dump_function_header): Adjust.
8605         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
8606         * passes.c (pass_init_dump_file): Pass dump_flags on.
8607         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
8608
8609 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
8610
8611         PR bootstrap/49270
8612         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
8613
8614 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
8615
8616         PR tree-optimization/49243
8617         * calls.c (setjmp_call_p): Also check if fndecl has the
8618         returns_twice attribute.
8619
8620 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8621
8622         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
8623         -ffast-math etc.
8624
8625 2011-06-06  Richard Henderson  <rth@redhat.com>
8626             Georg-Johann Lay  <avr@gjlay.de>
8627
8628         PR target/42210
8629         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
8630         New predicates.
8631         * config/avr/avr.md ("insv"): New insn expander.
8632         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
8633         "*insv.not.io", "*insv.reg"): New insns.
8634
8635 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
8636
8637         PR target/49285
8638         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
8639         to nonimmediate_operand from memory_operand for the operand that is to
8640         be forced to memory by the expander.  Lose the constraints.
8641
8642 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
8643
8644         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
8645         EH return when delayed branches are disabled.
8646
8647 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
8648
8649         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
8650         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
8651         calculation.
8652         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
8653         Simplify MODE_V1DF and MODE_V2SF handling.
8654         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
8655         Simplify MODE_SF handling.
8656
8657 2011-06-04  Jan Hubicka  <jh@suse.cz>
8658
8659         PR tree-optimization/48893
8660         PR tree-optimization/49091
8661         PR tree-optimization/49179
8662         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
8663         Bounds check.
8664
8665 2011-06-04  Jan Hubicka  <jh@suse.cz>
8666
8667         PR lto/48954
8668         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
8669         bitmaps.
8670
8671 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
8672
8673         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
8674
8675 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
8676
8677         PR target/49281
8678         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
8679         to be strictly smaller than 1 << shiftcount.
8680
8681 2011-06-04  Jan Hubicka  <jh@suse.cz>
8682
8683         PR tree-optimize/48929
8684         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
8685         of empty predicate.
8686
8687 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
8688
8689         PR debug/48333
8690         * calls.c (emit_call_1): Prefer the __builtin declaration of
8691         builtin functions.
8692
8693 2011-06-03   Diego Novillo  <dnovillo@google.com>
8694
8695         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
8696         (lto_input_tree_pointers): Likewise.
8697         * lto-streamer-out.c (pack_value_fields): Likewise.
8698         (lto_output_tree_pointers): Likewise.
8699         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
8700         and OPTIMIZATION_NODE.
8701
8702 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8703
8704         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
8705         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
8706         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
8707         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
8708         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
8709         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
8710         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
8711         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
8712         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
8713         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
8714         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
8715         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
8716         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
8717         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
8718         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
8719         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
8720         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
8721         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
8722         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
8723         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
8724         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
8725         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
8726         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
8727         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
8728         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
8729         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
8730         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
8731         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
8732         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
8733         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
8734         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
8735         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
8736         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
8737         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
8738         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
8739         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
8740         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
8741         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
8742         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
8743         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
8744         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
8745         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
8746         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
8747         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
8748         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
8749         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
8750         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
8751         * system.h (MD_UNWIND_SUPPORT): Poison.
8752         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
8753         * doc/tm.texi: Regenerate.
8754         * unwind-dw2.c: Include md-unwind-support.h instead of
8755         MD_UNWIND_SUPPORT.
8756         * config/ia64/unwind-ia64.c: Likewise.
8757         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
8758
8759 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
8760
8761         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
8762
8763 2011-06-03  Richard Henderson  <rth@redhat.com>
8764             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8765
8766         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
8767         (sigill_hdlr): Correct insn, insn size.
8768         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
8769
8770 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8771
8772         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
8773         t-slibgcc-dummy.
8774         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
8775         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
8776         * config/mips/t-iris: Remove.
8777         * config/mips/t-irix6: New file.
8778         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
8779
8780 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8781
8782         * Makefile.in (LIB2ADDEHDEP): Remove.
8783         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
8784         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
8785         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
8786         * config/t-darwin (LIB2ADDEHDEP): Remove.
8787         * config/t-freebsd (LIB2ADDEHDEP): Remove.
8788         * config/t-linux (LIB2ADDEHDEP): Remove.
8789
8790 2011-06-03  Diego Novillo  <dnovillo@google.com>
8791
8792         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
8793         (lto_register_var_decl_in_symtab): Likewise.
8794         (lto_register_function_decl_in_symtab): Likewise.
8795         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8796         logic to uniquify_nodes.
8797
8798 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8799
8800         * config/alpha/t-osf5: Remove.
8801         * config/alpha/t-osf-pthread: Remove.
8802         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
8803         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
8804
8805 2011-06-03  Julian Brown  <julian@codesourcery.com>
8806
8807         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
8808         (strongarm1110): Use strongarm tuning.
8809         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
8810         * config/arm/arm.c (arm_strongarm_tune): New.
8811         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
8812         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
8813         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
8814         setting, using previous defaults or 1 for Cortex-A5.
8815         (arm_option_override): Set max_insns_skipped from current tuning.
8816
8817 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
8818
8819         * doc/install.texi (Options specification): Document --with-specs.
8820
8821 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8822
8823         * config/arm/neon.md (orndi3_neon): Actually split it.
8824
8825 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
8826
8827         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
8828         * var-tracking.c (reverse_op): Limite recurse depth to 5.
8829
8830 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
8831
8832         PR debug/47590
8833         * target.def (delay_sched2, delay_vartrack): New.
8834         * doc/tm.texi.in: Update.
8835         * doc/tm.texi: Rebuild.
8836         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
8837         * var-tracking.c (gate_handle_var_tracking): Likewise.
8838         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
8839         (bfin_flag_var_tracking): Drop.
8840         (output_file_start): Don't save and override flag_var_tracking.
8841         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
8842         (bfin_reorg): Test original variables.
8843         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8844         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
8845         (ia64_flag_var_tracking): Drop.
8846         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8847         (ia64_file_start): Don't save and override flag_var_tracking.
8848         (ia64_override_options_after_change): Ditto
8849         flag_schedule_insns_after_reload.
8850         (ia64_reorg): Test original variables.
8851         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
8852         (picochip_flag_var_tracking): Drop.
8853         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8854         (picochip_option_override): Don't save and override
8855         flag_schedule_insns_after_reload.
8856         (picochip_asm_file_start): Ditto flag_var_tracking.
8857         (picochip_reorg): Test original variables.
8858         * config/spu/spu.c (spu_flag_var_tracking): Drop.
8859         (TARGET_DELAY_VARTRACK): Define.
8860         (spu_var_tracking): New.
8861         (spu_machine_dependent_reorg): Call it.
8862         (asm_file_start): Don't save and override flag_var_tracking.
8863
8864 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
8865
8866         PR target/49163
8867         * config/sh/predicates.md (general_movsrc_operand): Return 0
8868         for memory and memory subreg of which address is an invalid
8869         indexed address for QI and HImode.
8870         (general_movdst_operand): Likewise.
8871
8872 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
8873
8874         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
8875         edges only, when there is a non-local label in the function.
8876         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
8877
8878 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
8879
8880         * config/i386/constraints.md (Y3): New register constraint.
8881         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
8882         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
8883         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
8884         *sse2_interleave_lowv2df.
8885
8886 2011-06-02  Julian Brown  <julian@codesourcery.com>
8887
8888         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
8889         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
8890         (arm_cortex_a5_tune): New.
8891
8892 2011-06-02  Julian Brown  <julian@codesourcery.com>
8893
8894         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
8895         * config/arm/arm.c (arm_default_branch_cost): New.
8896         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
8897         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
8898         (arm_fa726_tune): Set branch_cost field using
8899         arm_default_branch_cost.
8900         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
8901         current_tune structure.
8902         * dojump.c (tm_p.h): Include file.
8903
8904 2011-06-02  Julian Brown  <julian@codesourcery.com>
8905
8906         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
8907         tuning.
8908         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
8909         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
8910         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
8911         field.
8912         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
8913         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
8914         (arm_fa726te_tune): Add prefer_constant_pool setting.
8915         (arm_v6t2_tune, arm_cortex_tune): New.
8916         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
8917         prefer_constant_pool setting.
8918
8919 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
8920
8921         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
8922         switch statement.
8923         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
8924         (*movdf_internal) <case 6,7,8>: Ditto.
8925
8926         * config/i386/constraints.md (Y4): New register constraint.
8927         * config/i386/sse.md (vec_set<mode>_0): Merge with
8928         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
8929         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
8930         *vec_extractv2di_1_sse.
8931         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
8932         and *vec_concatv2di_rex64_sse.
8933
8934 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
8935
8936         PR target/48807
8937         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
8938         of cgraph_local_info for null before attempting to use it.
8939
8940 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
8941
8942         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
8943         (current_function_dynamic_alloc_count): Delete.
8944         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
8945         (expand_builtin_nonlocal_goto): Remove obsolete comment.
8946         (expand_builtin_update_setjmp_buf): Remove dead code.
8947         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
8948         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
8949         support.
8950         * function.c (instantiate_virtual_regs): Likewise.
8951         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
8952         for a block with a single abnormal incoming edge.
8953         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
8954         (SETJMP_VIA_SAVE_AREA): Delete.
8955         * config/sparc/sparc-protos.h (load_got_register): Declare.
8956         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
8957         (load_got_register): Make global.
8958         (sparc_frame_pointer_required): Add 'static'.
8959         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
8960         (sparc_builtin_setjmp_frame_value): New function.
8961         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
8962         (save_stack_nonlocal): New expander.
8963         (restore_stack_nonlocal): Likewise.
8964         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
8965         (nonlocal_goto_internal): New insn.
8966         (goto_handler_and_restore): Delete.
8967         (builtin_setjmp_setup): Likewise.
8968         (do_builtin_setjmp_setup): Likewise.
8969         (setjmp): Likewise.
8970         (builtin_setjmp_receiver): New expander.
8971
8972 2011-06-01  David Li  <davidxl@google.com>
8973
8974         PR middle-end/49261
8975         * tree-pretty-print.c (dump_function_header): Format cleanup.
8976
8977 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
8978
8979         PR target/49238
8980         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
8981         needed when original operands are used for msw_skip comparison.
8982
8983 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
8984
8985         PR debug/49250
8986         * var-tracking.c (add_uses, add_stores): Don't call
8987         cselib_subst_to_values on ENTRY_VALUE.
8988
8989 2011-06-01  Diego Novillo  <dnovillo@google.com>
8990
8991         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
8992         output_record_start with LTO_null instead of output_zero.
8993         (lto_output_ts_binfo_tree_pointers): Likewise.
8994         (lto_output_tree): Likewise.
8995         (output_eh_try_list): Likewise.
8996         (output_eh_region): Likewise.
8997         (output_eh_lp): Likewise.
8998         (output_eh_regions): Likewise.
8999         (output_bb): Likewise.
9000         (output_function): Likewise.
9001         (output_unreferenced_globals): Likewise.
9002         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
9003         instead of NUM_TREE_CODES.
9004         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
9005         (lto_output_int_in_range): Change << to >> when shifting VAL.
9006
9007 2011-06-01  Diego Novillo  <dnovillo@google.com>
9008
9009         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
9010         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
9011
9012 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9013
9014         PR target/45074
9015         * optabs.h (valid_multiword_target_p): Declare.
9016         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
9017         doing multi-word operations.
9018         * optabs.c (expand_binop): Likewise.
9019         (expand_doubleword_bswap): Likewise.
9020         (expand_absneg_bit): Likewise.
9021         (expand_unop): Likewise.
9022         (expand_copysign_bit): Likewise.
9023         (multiword_target_p): New function.
9024
9025 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9026
9027         PR rtl-optimization/48830
9028         PR rtl-optimization/48808
9029         PR rtl-optimization/48792
9030         * reload.c (push_reload): Check contains_reg_of_mode.
9031         * reload1.c (strip_paradoxical_subreg): New function.
9032         (gen_reload_chain_without_interm_reg_p): Use it to handle
9033         paradoxical subregs.
9034         (emit_output_reload_insns, gen_reload): Likewise.
9035
9036 2011-06-01  David Li  <davidxl@google.com>
9037
9038         * predict.c : Change pass name
9039         * ipa.c: Ditto.
9040         * dce.c: Ditto.
9041         * tree-profile.c: Ditto.
9042         * except.c: Ditto.
9043
9044 2011-06-01  David Li  <davidxl@google.com>
9045
9046         * tree-pretty-print.c (dump_function_header): New function.
9047         * final.c (rest_of_clean_state): Use header dumper.
9048         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
9049         * passes.c (pass_init_dump_file): Use header dumper.
9050
9051 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
9052
9053         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
9054         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
9055         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
9056         New functions.
9057         (mem_loc_descriptor): Use them.
9058
9059         * var-tracking.c (create_entry_value): New function.
9060         (vt_add_function_parameter): Use it.
9061
9062 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9063
9064         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
9065         Include <signal.h>, <ucontext.h>.
9066         (sigill_caught): Define.
9067         (sigill_hdlr): New function.
9068         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
9069         insns can be executed.
9070         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
9071         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
9072
9073 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9074
9075         * config/t-slibgcc-darwin: Move to ...
9076         * config/t-slibgcc-dummy: ... this.  Clarify comments.
9077         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
9078         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
9079         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
9080         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
9081         Remove i386/t-crtstuff from tmake_file.
9082         (i[34567]86-*-solaris2*): Remove t-svr4,
9083         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
9084         t-slibgcc-dummy.
9085         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
9086         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
9087         sparc/t-crtfm from tmake_file.
9088         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
9089         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
9090         Remove extra_parts.
9091         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
9092         * config/i386/t-nwld (SHLIB_LINK): Remove.
9093         * config/i386/t-rtems-i386: Rename to ...
9094         * config/i386/t-rtems: ... this.
9095         ($(T)crti.o, $(T)crtn.o): Remove.
9096         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
9097         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
9098         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
9099         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
9100         EXTRA_MULTILIB_PARTS): Remove.
9101         * config/sparc/t-sol2-64: Likewise.
9102         * config/sparc/t-sol2: Remove.
9103         * config/sparc/t-crtin: Remove.
9104         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
9105         * config/i386/gmon-sol2.c: Remove.
9106         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
9107         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
9108         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
9109         * config/i386/sol2-gc1.asm: Remove.
9110         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
9111         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
9112         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
9113         * config/t-slibgcc-sld: Remove.
9114
9115 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
9116
9117         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
9118         base_type_for_mode with op_mode instead of mode.
9119
9120 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
9121
9122         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
9123         Cortex-A15.
9124         * config/arm/arm-tune.md: Regenerate.
9125         * config/arm/arm-tables.opt: Regenerate.
9126         * config/arm/arm.c (FL_DIV): Rename...
9127         (FL_THUMB_DIV): ... to this.
9128         (FL_ARM_DIV): Define.
9129         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
9130         (arm_arch_hwdiv): Remove.
9131         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
9132         (arm_issue_rate): Add cortexr5.
9133         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
9134         __ARM_ARCH_EXT_IDIV__.
9135         (TARGET_IDIV): Define.
9136         (arm_arch_hwdiv): Remove.
9137         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
9138         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
9139         (divsi3, udivsi3): New patterns.
9140         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
9141         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
9142
9143 2011-06-01  Martin Jambor  <mjambor@suse.cz>
9144
9145         * ipa-utils.c (ipa_dfs_info): New field scc_no.
9146         * ipa-utils.c (searchc): Set scc_no.
9147
9148 2011-06-01  Martin Jambor  <mjambor@suse.cz>
9149
9150         * ipa-utils.c (searchc_env): New field allow_overwritable.
9151         (searchc): do not ignore edges to overwritable nodes if indicated
9152         by env->allow_overwritable.
9153         (ipa_reduced_postorder): Set env.allow_overwritable.
9154
9155 2011-06-01  Richard Guenther  <rguenther@suse.de>
9156
9157         * tree.c (free_lang_data): Do not reset boolean_type_node nor
9158         char_type_node.
9159         * lto-streamer.c (lto_record_common_node): Take node pointer,
9160         do not register types.
9161         (lto_preload_common_nodes): Explicitly skip preloading nodes
9162         that differ between frontends.
9163
9164 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
9165
9166         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
9167         NON_FLOAT_REGS.
9168
9169 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
9170
9171         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
9172         parameter value for dump. Dump cost on outermost call only.
9173         (rs6000_memory_move_cost): Dump cost on outermost call only.
9174
9175 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
9176
9177         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
9178         DW_OP_GNU_convert ops.
9179
9180         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
9181         cselib_preserve_constants.
9182         (cselib_lookup_1): If cselib_preserve_constants,
9183         a new VALUE is being created for REG and there is a VALUE for the
9184         same register in wider mode, add another loc with lowpart SUBREG of
9185         the wider VALUE.
9186         (cselib_subst_to_values): Handle ENTRY_VALUE.
9187         * var-tracking.c  (replace_expr_with_values): Return NULL for
9188         ENTRY_VALUE too.
9189         * dwarf2out.c (convert_descriptor_to_signed): New function.
9190         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
9191         instead of two shifts.
9192         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
9193         the right mode if needed.
9194         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
9195         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
9196         convert_descriptor_to_signed.
9197         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
9198         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
9199
9200         PR target/48688
9201         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
9202
9203 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
9204
9205         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
9206         of X87MODEI12 and SWI48x instead of SSEMODEI24.
9207         (SWI248x): New mode iterator, rename from X87MODEI.
9208         (X87MODEI): Remove mode iterator.
9209         (X87MODEI12): Ditto.
9210         (SSEMODEI24): Ditto.
9211
9212 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
9213
9214         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
9215         * doc/invoke.texi: Document max-vartrack-expr-depth.
9216         * var-tracking.c (EXPR_DEPTH): New.
9217         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
9218
9219 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
9220
9221         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
9222         * config/i386/sse.md: Add n to negated FMA pattern names.
9223
9224 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
9225
9226         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
9227
9228 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
9229
9230         * gengtype-state.c (read_state_params_structs): Initialize previous.
9231
9232 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
9233
9234         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
9235         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
9236
9237 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
9238
9239         * config/i386/i386.md (*movtf_internal): Avoid allocating general
9240         registers.  Penalize F*r->o alternative to prevent partial memory
9241         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
9242         CONST_DOUBLE immediates when optimizing function for size.  Do not move
9243         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
9244         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
9245         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
9246         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
9247         alternatives.
9248         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
9249
9250         (fp_register_operand splitters): Use fp_register_operand
9251         constraint.  Do not use FP_REG_P in insn condition.
9252         (any_fp_register_operand splitters): Use any_fp_register_operand
9253         constraint.  Do not use ANY_FP_REG_P in insn condition.
9254
9255 2011-05-31  Jan Hubicka  <jh@suse.cz>
9256
9257         * cgraph.h (cgraph_inline_failed_t): Give enum a name
9258         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
9259         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
9260         (lto_output_edge): Use output_enum and var_len_unsigned.
9261         (lto_output_varpool_node): Likewise.
9262         (input_overwrite_node): Do not take resolution parameter;
9263         extract it from a bitpack.
9264         (input_node): Do not read resolution; use input_enum and
9265         var_len_unsigned.
9266         (input_varpool_node): Likewise.
9267         (input_edge): Likewise.
9268         (input_cgraph_1): Likewise.
9269
9270 2011-05-31  Richard Guenther  <rguenther@suse.de>
9271
9272         * gimple.c (gimple_register_canonical_type): Do not register
9273         any types via gimple_register_type.
9274
9275 2011-05-31  Jan Hubicka  <jh@suse.cz>
9276
9277         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
9278         of thunks.
9279
9280 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
9281
9282         PR rtl-optimization/49235
9283         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
9284         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
9285
9286 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
9287
9288         PR tree-optimization/49093
9289         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
9290         data references.
9291
9292 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
9293
9294         PR debug/49047
9295         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
9296         for concrete functions containing the code of cloned functions.
9297
9298 2011-05-31  Richard Guenther  <rguenther@suse.de>
9299
9300         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
9301         to ...
9302         (forward_propagate_into_comparison_1): ... this.
9303         (forward_propagate_comparison): Rename to ...
9304         (forward_propagate_into_comparison): ... this.  Split out
9305         real forward propagation code to ...
9306         (forward_propagate_comparison): ... this.
9307         (forward_propagate_into_gimple_cond): Remove looping.
9308         (forward_propagate_into_cond): Likewise.
9309         (simplify_not_neg_expr): Return whether we have done something.
9310         (simplify_gimple_switch): Likewise.
9311         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
9312         (ssa_forward_propagate_and_combine): ... this.  Re-structure
9313         to do a forward forward-propagation walk on BBs and a backward
9314         stmt combining walk on BBs.  Consistently re-scan changed statements.
9315         (pass_forwprop): Adjust.
9316
9317 2011-05-30  Ian Lance Taylor  <iant@google.com>
9318
9319         * godump.c (go_format_type): Correct length of name added to
9320         obstack for anonymous field.
9321
9322 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9323
9324         PR target/49186
9325         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
9326         part of the second operand is 0.
9327
9328 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
9329
9330         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
9331         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
9332         to memory for !TARGET_MEMORY_MISMATCH_STALL.
9333         (*movdf_internal_rex64): Do not penalize F->r alternative.
9334         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
9335         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
9336         when optimizing function for size.  Do not move CONST_DOUBLEs
9337         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
9338         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
9339         SUBREGs.  Do not check for MEM_P operands in the insn condition,
9340         check for ANY_FP_REGNO_P instead.
9341         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
9342         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
9343         function for speed.
9344         * config/i386/i386.c (ix86_option_override_internal): Do not
9345         set TARGET_INTEGER_DFMODE_MOVES here.
9346
9347 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
9348
9349         PR target/49168
9350         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
9351
9352 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
9353
9354         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
9355         DW_TAG_rvalue_reference_type even for
9356         -gdwarf-4 -fno-debug-types-section.
9357
9358 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9359
9360         PR tree-optimization/46728
9361         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
9362         (build_and_insert_binop): New.
9363         (gimple_expand_builtin_pow): Reorder args for
9364         build_and_insert_call; use build_and_insert_binop; add more
9365         optimizations for fractional exponents.
9366
9367 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
9368
9369         PR bootstrap/49190
9370
9371         Revert:
9372         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
9373
9374         * tree.h (struct tree_identifier): Inherit from tree_typed, not
9375         tree_common.
9376         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
9377         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
9378         TS_BASE instead of TS_COMMON.
9379         * varasm.c (assemble_name): Remove assert.
9380
9381 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
9382
9383         * config.gcc: Keep obselete list sorted.
9384
9385 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
9386             Eric Botcazou  <ebotcazou@adacore.com>
9387
9388         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
9389         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
9390         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
9391         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
9392         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
9393
9394 2011-05-30  Richard Guenther  <rguenther@suse.de>
9395
9396         * gimple.c (gimple_types_compatible_p_1): Compare record
9397         and union type members properly.
9398
9399 2011-05-30  Richard Guenther  <rguenther@suse.de>
9400
9401         PR tree-optimization/49210
9402         * ipa-split.c (split_function): Care for the case where the call
9403         result is not trivially convertible to the result holding variable.
9404
9405 2011-05-30  Richard Guenther  <rguenther@suse.de>
9406
9407         PR tree-optimization/49218
9408         * tree-vrp.c (adjust_range_with_scev): Properly check whether
9409         overflow occured.
9410
9411 2011-05-30  Richard Guenther  <rguenther@suse.de>
9412
9413         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
9414         New function split out from ...
9415         (forward_propagate_into_gimple_cond): ... here.  Adjust.
9416         (forward_propagate_into_cond): Likewise.
9417         (forward_propagate_comparison): Also propagate into
9418         comparisons on assignment RHS.  Change return value to
9419         behave similar to forward_propagate_into_cond.
9420         (tree_ssa_forward_propagate_single_use_vars): Handle
9421         strict-overflow warnings properly for forward_propagate_comparison.
9422
9423 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9424
9425         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
9426         from plugin linker.
9427         * configure: Regenerate.
9428
9429 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
9430
9431         PR tree-optimization/49199
9432         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
9433         non-reduction operands are either defined in the loop or by induction.
9434
9435 2011-05-29  Xinliang David Li  <davidxl@google.com>
9436
9437         * opts-global.c (handle_common_deferred_options): Handle new options.
9438         * passes.c (register_one_dump_file): Call register_pass_name.
9439         (execute_one_pass): Check explicit enable/disable flag.
9440         (passr_hash): New function.
9441         (passr_eq): Ditto.
9442         (register_pass_name): Ditto.
9443         (get_pass_by_name): Ditto.
9444         (pass_hash): Ditto.
9445         (pass_eq): Ditto.
9446         (enable_pass): Ditto.
9447         (disable_pass): Ditto.
9448         (is_pass_explicitly_enabled_or_disabled): Ditto.
9449
9450 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
9451
9452         * config/i386/i386.md (*movoi_internal_avx): Use
9453         standard_sse_constant_opcode for alternative 0.
9454         (*movti_internal_sse): Ditto.
9455         (*movti_internal_rex64): Use standard_sse_constant_opcode for
9456         alternative 2.
9457         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
9458         sselog1 type moves.
9459         (*movsi_internal): Ditto.
9460         (*movdi_internal): Ditto.  Add ssecvt type moves.
9461
9462 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
9463
9464         PR target/48830
9465         * rtlanal.c (simplify_subreg_regno): Adjust comment.
9466
9467 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
9468
9469         PR rtl-optimization/49095
9470         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
9471         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
9472
9473 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
9474
9475         PR target/43995
9476         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
9477         recurse_p argument.  Only follow register copies if it is set,
9478         and prevent mips_find_pic_call_symbol from recursing.
9479         (mips_find_pic_call_symbol): Add a recurse_p argument.
9480         Pass it to mips_pic_call_symbol_from_set.
9481         (mips_annotate_pic_calls): Update accordingly.
9482
9483 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
9484
9485         * emit-rtl.c (try_split): Use a loop to search for
9486         NOTE_INSN_CALL_ARG_LOCATIONs.
9487
9488 2011-05-29  Richard Guenther  <rguenther@suse.de>
9489
9490         PR tree-optimization/49217
9491         * ipa-pure-const.c (propagate_pure_const): Fix typos.
9492
9493 2011-05-28  Jan Hubicka  <jh@suse.cz>
9494
9495         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
9496         length.
9497         (string_slot_free): Remove
9498         (create_output_block): Initialize obstack.
9499         (destroy_output_block): Free obstack.
9500         (lto_string_index): Add PERSISTENT parameter; do not duplicate
9501         the string unless it needs to be added into the hash.
9502         (lto_output_string_with_length): Add persistent attribute;
9503         handle NULL strings.
9504         (lto_output_string): Add PERSISTENT parameter.
9505         (output_string_cst, output_identifier): Simplify.
9506         (lto_output_location_bitpack): Update.
9507         (lto_output_builtin_tree): Update.
9508         * lto-streamer.h (struct output_block): Add obstack.
9509         (lto_output_string, lto_output_string_with_length): Remove
9510         declarations; functions are static now.
9511
9512 2011-05-28  Jan Hubicka  <jh@suse.cz>
9513
9514         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
9515         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
9516         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
9517         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
9518         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
9519         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
9520         unpack_ts_decl_with_vis_value_fields,
9521         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
9522         lto_get_builtin_tree): Use enum and variable length i/o.
9523         * basic-block.h (profile_status_d): Add PROFILE_LAST.
9524         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
9525         New functions.
9526         (bp_pack_enum, bp_unpack_enum): New macros.
9527
9528 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
9529
9530         * genrecog.c: Remove redundant forward declarations.
9531
9532 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
9533
9534         * config.gcc: Deprecate mips*-*-openbsd*.
9535
9536 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
9537
9538         PR bootstrap/49195
9539         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
9540         for match_op_dup.
9541
9542 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
9543
9544         PR middle-end/48981
9545         * gengtype.c (vec_prefix_type): New function.
9546         (note_def_vec): Use vec_prefix_type and change the length
9547         attribute to be based on the prefix.
9548         * vec.c: Include coretypes.h before vec.h.
9549         (struct vec_prefix): Remove.
9550         (vec_gc_p_reserve): Change the offsetof to sizeof.
9551         (vec_gc_p_reserve_exact): Likewise.
9552         (vec_heap_p_reserve): Likewise.
9553         (vec_heap_p_reserve_exact): Likewise.
9554         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
9555         (vec_stack_p_reserve): Change the offsetof to sizeof.
9556         (vec_stack_p_reserve_exact): Likewise.
9557         * vec.h (struct vec_prefix): New struct definition.
9558         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
9559         (VEC_T_GTY(T,B)): Likewise.
9560         (DEF_VEC_FUNC_P(T)): Use prefix field.
9561         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
9562         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
9563
9564 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9565
9566         PR tree-optimization/46728
9567         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
9568         (powi_as_mults): Add gimple_set_location.
9569         (build_and_insert_call): New.
9570         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
9571         0.5, 0.25, 0.75, 1./3., or 1./6.
9572
9573 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
9574
9575         * doc/contrib.texi: Update copyright years.
9576         (Contributors): Add Zdenek Sojka.
9577
9578 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
9579
9580         * c-decl.c (c_push_function_context): Copy the current statement
9581         list stack.
9582         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
9583         (finish_struct): Call building_stmt_list_p instead of checking
9584         cur_stmt_list.
9585         * c-parser.c (c_parser_postfix_expression): Likewise.
9586         * c-typeck.c (c_end_compound_stmt): Likewise.
9587         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
9588         * tree-iterator.c (stmt_list_cache): Change to a VEC.
9589         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
9590         (free_stmt_list): Likewise.
9591         * tree.h (struct tree_statement_list): Include typed_tree instead
9592         of tree_common.
9593         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
9594         as TS_TYPED instead of TS_COMMON.
9595
9596 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9597             Uros Bizjak  <ubizjak@gmail.com>
9598
9599         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
9600         (HAVE_AS_IX86_TLSGDPTL): Define.
9601         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
9602         (HAVE_AS_IX86_TLSLDMPLT): Define.
9603         * configure: Regenerate.
9604         * config.in: Regenerate.
9605         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
9606         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
9607         TARGET_SUN_TLS, use @tlsgdplt or @plt.
9608         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
9609         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
9610         @tlsldmplt or @plt.
9611         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
9612
9613 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
9614
9615         * sched-int.h (struct _haifa_deps_insn_data): New members cond
9616         and reverse_cond.
9617         (INSN_COND, INSN_REVERSE_COND): New macros.
9618         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
9619         once.
9620         (sched_get_condition_with_rev): Cache the results, and look them up
9621         if possible.
9622         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
9623         are clobbered by the current insn.
9624         * target.def (exposed_pipline): New sched data hook.
9625         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
9626         * doc/tm.texi: Regenerate.
9627
9628 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9629
9630         PR tree-optimization/49170
9631         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
9632         sincos or cexp.
9633
9634 2011-05-27  Richard Guenther  <rguenther@suse.de>
9635
9636         PR middle-end/49189
9637         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
9638         of comparisons.
9639
9640 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
9641
9642         * haifa-sched.c (sched_scan_info): Remove.
9643         (schedule_block): Call sched_extend_luids rather than sched_init_luids
9644         with NULL args.
9645         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
9646         Remove functions.
9647         (sched_scan): Remove.
9648         (sched_extend_luids): Renamed from luids_extend_insn and no longer
9649         static.  All callers changed.
9650         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
9651         static.  All callers changed.
9652         (sched_init_luids): Remove all arguments except the first.  All
9653         callers changed.  Don't use sched_scan.
9654         (haifa_init_h_i_d): Likewise.
9655         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
9656         manually rather than using sched_init_luids.  Likewise with
9657         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
9658         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
9659         rather than sched_init_luids with NULL args.
9660         * sel-sched-ir.c (new_insns): Remove variable.
9661         (sched_scan): New static function, previously in haifa-sched.c.  Remove
9662         all arguments but the first two; all callers changed.
9663         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
9664         rather than sched_init_luids.
9665         (sel_init_bbs): Remove second argument.  All callers changed.
9666         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
9667         with NULL arguments.
9668         (create_insn_rtx_from_pattern): Likewise.
9669         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
9670         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
9671         (sched_init_insn_luid, sched_extend_luids): Declare.
9672         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
9673         declarations.
9674
9675 2011-05-27  Richard Guenther  <rguenther@suse.de>
9676
9677         PR middle-end/49177
9678         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
9679         A CMP B ? (T) true : (T) false for non-integral types T again.
9680
9681 2011-05-27  Jan Hubicka  <jh@suse.cz>
9682
9683         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
9684         so 0 means NULL string.
9685         (lto_output_string_with_length): ... here.
9686         (lto_output_string, output_string_cst, output_identifier): Update
9687         handling of NULL strings.
9688         (lto_output_location_bitpack): New function.
9689         (lto_output_location): Use it.
9690         (lto_output_tree_ref): Use output_record_start.
9691         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
9692         len values.
9693         * lto-streamer-in.c (string_for_index): Break out from ...; offset
9694         values by 1.
9695         (input_string_internal): ... here;
9696         (input_string_cst, input_identifier, lto_input_string): Update handling
9697         of NULL strings.
9698         (lto_input_location_bitpack): New function
9699         (lto_input_location): Use it.
9700         (unpack_ts_type_common_value_fields): Pack align & alias in var len
9701         values.
9702         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
9703         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
9704         (bp_pack_value): Sanity check the value range.
9705         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
9706         New functions.
9707         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
9708         New functions.
9709
9710 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
9711
9712         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
9713         call_arg_location instructions down the floor.
9714
9715 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
9716
9717         PR rtl-optimization/49154
9718         * ira.c (setup_pressure_classes): Process class without sublcasses
9719         as a candidate for pressure classes.
9720
9721 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
9722
9723         PR rtl-optimization/48575
9724         * genrecog.c (position_type): New enum.
9725         (position): New structure.
9726         (decision): Use position structure instead of a string.
9727         (root_pos, peep2_insn_pos_list): New variables.
9728         (next_position, compare_positions): New functions.
9729         (new_decision): Use position structures instead of strings.
9730         (maybe_both_true): Likewise.
9731         (change_state): Likewise.
9732         (write_tree): Likewise.
9733         (make_insn_sequence): Likewise.
9734
9735 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
9736
9737         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
9738         TS_BASE instead of TS_COMMON.
9739         (find_decls_types_r): Check for TS_TYPED structure before looking at
9740         TREE_TYPE.
9741         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
9742         Add chain field.
9743         (BLOCK_CHAIN): Use new chain field.
9744
9745 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
9746
9747         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
9748         moves expensive on Power7 also.
9749
9750 2011-05-26  Richard Guenther  <rguenther@suse.de>
9751
9752         * fold-const.c (fold_unary_loc): Remove bogus code.
9753
9754 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
9755
9756         * tree.h (struct tree_identifier): Inherit from tree_typed, not
9757         tree_common.
9758         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
9759         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
9760         TS_BASE instead of TS_COMMON.
9761         * varasm.c (assemble_name): Remove assert.
9762
9763 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
9764
9765         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
9766         substituted first.
9767         * libgcc-std.ver: Delete file.
9768
9769 2011-05-26  Richard Guenther  <rguenther@suse.de>
9770
9771         PR tree-optimization/48702
9772         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
9773         only when we know the base address is within bounds.
9774         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
9775         assume the base address of TARGET_MEM_REFs is in bounds.
9776
9777 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9778
9779         PR target/49099
9780         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
9781         declaration in TARGET_SOLARIS.
9782
9783 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
9784
9785         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
9786         The instruction is then expanded explicitly.
9787         (supported_compare): Callable instruction.
9788         (compare): Likewise.
9789
9790 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
9791
9792         PR c++/49165
9793         * gimplify.c (shortcut_cond_r): Don't special case
9794         COND_EXPRs if they have void type on one of their arms.
9795
9796 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
9797
9798         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
9799         to reduce duplication, and to achieve a slightly more logical order
9800         of operations.
9801
9802 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
9803
9804         PR tree-optimization/49161
9805         * tree-vrp.c (struct case_info): New type.
9806         (compare_case_labels): Sort case_info structs instead of
9807         trees, and not primarily by CASE_LABEL uids but by
9808         label_for_block indexes.
9809         (find_switch_asserts): Put case labels into struct case_info
9810         array instead of TREE_VEC, adjust sorting, compare label_for_block
9811         values instead of CASE_LABELs.
9812
9813 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9814
9815         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
9816         ("orndi3_neon"): Likewise.
9817         ("bic<mode>3_neon"): Likewise.
9818
9819 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
9820
9821         PR tree-optimization/49038
9822         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
9823         Ensure at least one epilogue iteration if required by data
9824         accesses with gaps.
9825         * tree-vectorizer.h (struct _loop_vec_info): Add new field
9826         to mark loops that require peeling for gaps.
9827         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
9828         (vect_get_known_peeling_cost): Take peeling for gaps into
9829         account.
9830         (vect_transform_loop): Generate epilogue if required by data
9831         access with gaps.
9832         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
9833         loop as requiring an epilogue if there are gaps in the end of
9834         the strided group.
9835
9836 2011-05-25  Ian Lance Taylor  <iant@google.com>
9837
9838         * godump.c (go_format_type): Output the first field with a usable
9839         Go type, if any.
9840
9841 2011-05-25  Ian Lance Taylor  <iant@google.com>
9842
9843         * godump.c (go_format_type): Check for invalid type names, pointer
9844         target types, and struct field types.
9845
9846 2011-05-25  Jason Merrill  <jason@redhat.com>
9847
9848         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
9849
9850 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
9851
9852         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
9853
9854 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
9855
9856         * config/i386/i386.md (*movqi_extv_1)): Put back
9857         "register_operand" check in "type" calculation.
9858         (*movqi_extzv_2): Likewise.
9859
9860 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
9861
9862         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
9863
9864 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
9865
9866         PR bootstrap/49160
9867         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
9868         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
9869         __divxc3, __divtc3): Wrap definitions in #ifndef.
9870
9871 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
9872
9873         PR target/49142
9874         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
9875         "register_operand" check and replace q_regs_operand with
9876         QIreg_operand in "type" calculation.
9877         (*movqi_extv_1): Likewise.
9878         (*movqi_extzv_2_rex64): Likewise.
9879         (*movqi_extzv_2): Likewise.
9880
9881         * config/i386/predicates.md (QIreg_operand): New.
9882
9883 2011-05-25  Richard Guenther  <rguenther@suse.de>
9884
9885         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
9886         type-based offset disambiguation, streamline MEM_REF and
9887         TARGET_MEM_REF handling.
9888
9889 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
9890
9891         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
9892         (bdesc_special_args): Add pause intrinsic.
9893
9894         * config/i386/i386.md (UNSPEC_PAUSE): New.
9895         (pause): Likewise.
9896         (*pause): Likewise.
9897         * config/i386/ia32intrin.h (__pause): Likewise.
9898
9899         * doc/extend.texi (X86 Built-in Functions): Add documentation for
9900         pause intrinsic.
9901
9902 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9903
9904         PR tree-optimization/46728
9905         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
9906         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
9907
9908 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
9909
9910         * tree.h (struct tree_exp): Inherit from struct tree_typed.
9911         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
9912         instead of TS_COMMON.
9913
9914 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
9915
9916         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
9917         LIBGCC2_GNU_PREFIX is defined.
9918         (__N): New macro.
9919         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
9920         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
9921         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
9922         __clz_tab): Define using __N.
9923         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
9924         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
9925         * target.def (libfunc_gnu_prefix): New hook.
9926         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
9927         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
9928         * doc/tm.texi: Regenerate.
9929         * system.h (LIBGCC2_GNU_PREFIX): Poison.
9930         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
9931         account.
9932         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
9933         (init_optabs): Likewise for the bswap libfuncs.
9934         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
9935         and divide.
9936         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
9937         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
9938         * libgcc-std.ver: Remove.
9939         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
9940         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
9941         libgcc-std.ver.
9942         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
9943         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
9944         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
9945         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
9946         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
9947         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
9948         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
9949         * config/fixed-bit.h (FIXED_OP): Define differently depending on
9950         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
9951         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
9952
9953 2011-05-25  Jan Hubicka  <jh@suse.cz>
9954
9955         * lto-streamer-out.c (output_record_start): Use lto_output_enum
9956         (lto_output_tree): Use output_record_start.
9957         * lto-streamer-in.c (input_record_start): Use lto_input_enum
9958         (lto_get_pickled_tree): Use input_record_start.
9959         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
9960         (lto_value_range_error): New function.
9961         * lto-streamer.h (lto_value_range_error): Declare.
9962         (lto_output_int_in_range, lto_input_int_in_range): New functions.
9963         (lto_output_enum, lto_input_enum): New macros.
9964
9965 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9966
9967         * common.opt (flag_stack_usage_info): New variable.
9968         (-Wstack-usage): New option.
9969         * doc/invoke.texi (Warning options): Document -Wstack-usage.
9970         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
9971         <OPT_fstack_usage>: Likewise.
9972         * toplev.c (output_stack_usage): Handle -Wstack-usage.
9973         * calls.c (expand_call): Test flag_stack_usage_info variable instead
9974         of flag_stack_usage.
9975         (emit_library_call_value_1): Likewise.
9976         * explow.c (allocate_dynamic_stack_space): Likewise.
9977         * function.c (instantiate_virtual_regs ): Likewise.
9978         (prepare_function_start): Likewise.
9979         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
9980         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
9981         * config/arm/arm.c (arm_expand_prologue): Likewise.
9982         (thumb1_expand_prologue): Likewise.
9983         * config/avr/avr.c (expand_prologue): Likewise.
9984         * config/i386/i386.c (ix86_expand_prologue): Likewise.
9985         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
9986         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
9987         * config/mips/mips.c (mips_expand_prologue): Likewise.
9988         * config/pa/pa.c (hppa_expand_prologue): Likewise.
9989         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
9990         * config/s390/s390.c (s390_emit_prologue): Likewise.
9991         * config/sh/sh.c (sh_expand_prologue): Likewise.
9992         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
9993         * config/spu/spu.c (spu_expand_prologue): Likewise.
9994
9995 2011-05-25  Richard Guenther  <rguenther@suse.de>
9996
9997         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
9998         (gimple_canonical_types_compatible_p): Likewise.
9999
10000 2011-05-25  Jan Hubicka  <jh@suse.cz>
10001
10002         PR middle-end/49062
10003         * ipa.c (function_and_variable_visibility): Only add to same
10004         comdat group list if DECL_ONE_ONLY.
10005
10006 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
10007
10008         PR rtl-optimization/49014
10009         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
10010
10011 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
10012
10013         PR target/49128
10014         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
10015
10016 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
10017
10018         PR rtl-optimization/48757
10019         * ira-build.c (loop_with_eh_edge_p): Rename to
10020         loop_with_complex_edge_p, check edges on complexity, make function
10021         conditional.
10022         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
10023         conditional.
10024
10025 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
10026
10027         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
10028         force flag_ira_share_save_slots to 0.
10029
10030 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
10031
10032         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
10033         (vt_initialize): Set PROLOGUE_BB unconditionally.
10034         Add block comment about CFA_BASE_RTX machinery.
10035         Reset FP_CFA_OFFSET to -1 on all invalid paths.
10036         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
10037
10038 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10039
10040         PR objc/48187
10041         * c-parser.c (c_parser_objc_class_instance_variables): More robust
10042         parsing of syntax error in ObjC instance variable lists.  In
10043         particular, avoid an infinite loop if there is a stray ']'.
10044         Updated error message.
10045
10046 2011-05-24  Ian Lance Taylor  <iant@google.com>
10047
10048         * godump.c (go_define): Don't accept a string immediately after
10049         another operand.
10050
10051 2011-05-24  Ian Lance Taylor  <iant@google.com>
10052
10053         * godump.c (struct godump_container): Add invalid_hash field.
10054         (go_format_type): Return false if type is found in invalid_hash.
10055         (go_output_typedef): Add invalid type to invalid_hash.
10056         (go_finish): Create and delete invalid_hash.
10057
10058 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10059
10060         PR tree-optimization/46728
10061         * tree-ssa-math-opts.c (powi_table): New.
10062         (powi_lookup_cost): New.
10063         (powi_cost): New.
10064         (powi_as_mults_1): New.
10065         (powi_as_mults): New.
10066         (gimple_expand_builtin_powi): New.
10067         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
10068         (gate_cse_sincos): Remove sincos/cexp restriction.
10069
10070 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10071
10072         PR target/3746
10073         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
10074         mips-tdump native.
10075         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
10076         * mips-tdump.c: Likewise.
10077
10078 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
10079
10080         PR target/49128
10081         * config/i386/driver-i386.c (host_detect_local_cpu): Always
10082         add -mno-XXX.  Handle FMA.
10083
10084 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
10085
10086         PR rtl-optimization/48633
10087         * ira-build.c (loop_with_eh_edge_p): New function.
10088         (mark_loops_for_removal): Use it.
10089
10090 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
10091
10092         PR rtl-optimization/48971
10093         * ira.c (setup_pressure_classes): Don't check register move cost
10094         for classes with one registers.  Don't add pressure class if there
10095         is a pressure class with the same available hard registers.
10096         Check contains_reg_of_mode.  Fix a typo in collecting
10097         temp_hard_regset.  Ignore hard registers not belonging to a class.
10098
10099 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
10100
10101         PR target/49133
10102         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
10103
10104 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
10105             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10106
10107         PR gcov-profile/48845
10108         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
10109
10110 2011-05-24  Richard Guenther  <rguenther@suse.de>
10111
10112         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
10113         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
10114         (gimple_types_compatible_p_1): Adjust.
10115         (iterative_hash_canonical_type): Do not bother about complete vs.
10116         incomplete types.
10117         (gimple_canonical_types_compatible_p): Likewise.
10118
10119 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10120
10121         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
10122
10123 2011-05-24  Richard Guenther  <rguenther@suse.de>
10124
10125         PR bootstrap/49078
10126         * gimple.c (gimple_register_canonical_type): Revert
10127         previous change.
10128         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
10129         does not for a tree for the case where it matters.  Cache
10130         pointer-type alias-sets.
10131
10132 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
10133
10134         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
10135         (OBJS): Remove options.o, opts-common.o and prefix.o.
10136         (OBJS-libcommon-target): New.
10137         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
10138         (BACKEND): Include libcommon-target.a.
10139         (MOSTLYCLEANFILES): Include libcommon-target.a.
10140         (libcommon-target.a): New.
10141         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
10142         prefix.o.
10143
10144 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
10145
10146         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
10147         parts of output shared with the driver.
10148         * optc-gen.awk: Don't generate parts of output not shared with the
10149         driver.
10150         * opth-gen.awk: Remove GCC_DRIVER conditionals.
10151         * doc/options.texi (SourcerInclude): Mention options-save.c.
10152         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
10153         (OBJS): Add options-save.o.
10154         (options-save.c, options-save.o): New.
10155         (options.o): Update dependencies.
10156         (gcc-options.o): Remove.
10157         (mostlyclean): Remove options-save.c.
10158
10159 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
10160
10161         PR debug/49032
10162         * dbxout.c: Include cgraph.h.
10163         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
10164         and without value expr, return NULL if no varpool node exists for
10165         it or if it is not needed.
10166         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
10167
10168         PR c/49120
10169         * c-decl.c (start_decl): Convert expr to void_type_node.
10170
10171 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
10172
10173         PR rtl-optimization/48826
10174         * emit-rtl.c (try_split): When splitting a call that is followed
10175         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
10176
10177 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
10178
10179         * cfgexpand.c (expand_debug_expr): For unused non-addressable
10180         parameters passed in memory prefer using DECL_INCOMING_RTL over
10181         the pseudos it will be copied into.
10182
10183 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
10184
10185         PR target/47315
10186         * config/i386/i386.c (ix86_option_override_internal): Save the
10187         initial options after checking vzeroupper.
10188
10189 2011-05-23  David Li  <davidxl@google.com>
10190
10191         PR tree-optimization/48988
10192         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
10193         Initialize has_valid_pred for each pred chain.
10194
10195 2011-05-23  Richard Guenther  <rguenther@suse.de>
10196
10197         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
10198         (iterative_hash_gimple_type): Always hash type names.
10199
10200 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
10201
10202         * c-typeck.c (build_function_call_vec): Tweak call to
10203         check_function_arguments.
10204
10205 2011-05-23  Richard Guenther  <rguenther@suse.de>
10206
10207         PR tree-optimization/49115
10208         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
10209         is not necessarily carried out, do not claim it kills the ref.
10210         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
10211
10212 2011-05-23  Richard Guenther  <rguenther@suse.de>
10213
10214         PR middle-end/15419
10215         * builtins.c (fold_builtin_memory_op): Be less restrictive about
10216         what pointer types we accept for folding.
10217
10218 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10219
10220         * gthr-gnat.c: Remove.
10221         * gthr-gnat.h: Remove.
10222         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
10223         * config/t-freebsd (LIB2ADDEH): Likewise.
10224         * config/t-linux (LIB2ADDEH): Likewise.
10225         * config/t-sol2 (LIB2ADDEH): Likewise.
10226         * config/ia64/t-vms (LIB2ADDEH): Likewise.
10227         * configure.ac (target_thread_file): Remove gnat handling.
10228         * configure: Regenerate.
10229         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
10230
10231 2011-05-23  Tristan Gingold  <gingold@adacore.com>
10232             Eric Botcazou  <ebotcazou@adacore.com>
10233
10234         * gcov.c (create_file_names): If no object directory is specified,
10235         keep the directory of the file.
10236
10237 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10238
10239         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
10240         * configure: Regenerate.
10241
10242 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
10243
10244         PR middle-end/48973
10245         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
10246         failed and the comparison has a single bit signed type, use
10247         constm1_rtx instead of const1_rtx for true value.
10248         (do_store_flag): If ops->type is single bit signed type, disable
10249         signel bit test optimization and pass -1 instead of 1 as last
10250         parameter to emit_store_flag_force.
10251
10252 2011-05-23  Tom de Vries  <tom@codesourcery.com>
10253
10254         PR target/45098
10255         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
10256         function.
10257         (infer_loop_bounds_from_undefined): Use new function.
10258
10259 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
10260
10261         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
10262         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
10263         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
10264         and -O0 otherwise.
10265         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
10266
10267 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
10268
10269         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
10270         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
10271         returns true.
10272
10273 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
10274
10275         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
10276
10277 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
10278
10279         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
10280         UNSPEC_MOVE_PIC pattern.
10281
10282 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
10283
10284         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
10285         (sparc-*-rtems*): Likewise.
10286         (sparc64-*-elf*): Likewise.
10287         (sparc64-*-rtems*): Likewise.
10288         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
10289         * config/sparc/t-crtin: New file.
10290         * config/sparc/t-sol2 (crti.o): Delete rule.
10291         (crtn.o): Likewise.
10292         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
10293         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
10294         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
10295         (ENDFILE_SPEC): Add crtn.o.
10296
10297 2011-05-22  Tom de Vries  <tom@codesourcery.com>
10298
10299         PR middle-end/48689
10300         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
10301         CODE_CONTAINS_STRUCT (TS_COMMON).
10302
10303 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
10304
10305         PR middle-end/49029
10306         * expmed.c (extract_fixed_bit_field): Test whether target can be used
10307         only after deciding which mode to use.
10308
10309 2011-05-22  Tom de Vries  <tom@codesourcery.com>
10310
10311         PR target/45098
10312         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
10313         for call to get_shiftadd_cost.
10314
10315 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
10316
10317         PR target/49104
10318         * config/i386/cpuid.h (bit_MMXEXT): New define.
10319
10320 2011-05-22  Nick Clifton  <nickc@redhat.com>
10321
10322         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
10323         initialisation of non-existant args[2] element.  Use args[] array
10324         not arg[] array to pass arguments to build_function_type_list.
10325
10326 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
10327
10328         PR tree-optimization/49087
10329         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
10330
10331 2011-05-21  Jason Merrill  <jason@redhat.com>
10332
10333         PR c++/49092
10334         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
10335         static storage duration.
10336
10337 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
10338
10339         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
10340         frame pointer.
10341
10342 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
10343
10344         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
10345         false if there are call-saved registers here...
10346         (sparc_can_use_return_insn_p): ...but here instead.
10347         (save_or_restore_regs): Fix thinko.
10348         (sparc_expand_prologue): Use current_function_is_leaf.
10349         (sparc_frame_pointer_required): Likewise.
10350
10351 2011-05-21  Nick Clifton  <nickc@redhat.com>
10352
10353         PR target/49098
10354         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
10355
10356 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10357
10358         * gengtype.c (walk_type): Implemented "atomic" GTY option.
10359         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
10360
10361 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
10362
10363         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
10364         * optc-gen.awk: Move common code to opt-read.awk.
10365         * opth-gen.awk: Likewise.
10366         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
10367
10368 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
10369
10370         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
10371
10372 2011-05-20  Tom de Vries  <tom@codesourcery.com>
10373
10374         PR target/45098
10375         * tree-ssa-loop-ivopts.c: Include expmed.h.
10376         (get_shiftadd_cost): New function.
10377         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
10378
10379 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
10380
10381         PR bootstrap/49086
10382         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
10383         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
10384
10385 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
10386
10387         * Makefile.in: Update comment referring to $(OBJS-common).
10388
10389 2011-05-20  Ian Lance Taylor  <iant@google.com>
10390
10391         * godump.c (go_output_typedef): Put enum constants in the macro
10392         hash table to avoid duplicate Go const definitions.
10393
10394 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
10395
10396         * Makefile.in (LIBDEPS): Add libcommon.a.
10397         (LIBS): Likewise.
10398         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
10399         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
10400         pretty-print.o and version.o.
10401         (OBJS-libcommon): New.
10402         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
10403         (BACKEND): Add libcommon.a.
10404         (MOSTLYCLEANFILES): Likewise.
10405         (libcommon.a): New.
10406         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
10407         (cpp$(exeext)): Likewise.
10408         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
10409         pretty-print.o and input.o.
10410         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
10411         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
10412         (errors.o): Remove.
10413         (mips-tfile): Don't explicitly use version.o.
10414         (mips-tdump): Likewise.
10415         (gcov.o): Depend on $(DIAGNOSTIC_H).
10416         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
10417         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
10418         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
10419         * gcov-dump.c: Include intl.h and diagnostic.h.
10420         (main): Initialize diagnostics.
10421         * gcov.c: Include diagnostic.h.
10422         (fnotice): Remove.
10423         (main): Initialize diagnostics.
10424         * lto-wrapper.c: Include diagnostic.h.
10425         (main): Initialize diagnostics.
10426
10427 2011-05-20  Michael Matz  <matz@suse.de>
10428
10429         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
10430
10431 2011-05-20  Michael Matz  <matz@suse.de>
10432             Richard Guenther  <rguenther@suse.de>
10433
10434         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
10435         use lto_streamer_cache_append directly instead of returning a VEC.
10436         (preload_common_node): Remove.
10437         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
10438         track seen nodes.
10439         (lto_streamer_cache_create): Call lto_preload_common_nodes.
10440
10441 2011-05-20  Richard Guenther  <rguenther@suse.de>
10442
10443         PR tree-optimization/49079
10444         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
10445         MEM_REFs correctly for the trailing array access detection.
10446         Special case constants the same way as decls for overall size
10447         constraining.
10448
10449 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
10450
10451         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
10452         argument expansion.
10453
10454 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
10455
10456         PR tree-optimization/49073
10457         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
10458         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
10459         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
10460
10461 2011-05-20  Richard Guenther  <rguenther@suse.de>
10462
10463         PR middle-end/48849
10464         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
10465         of pointer types the same way the middle-end does.
10466
10467 2011-05-20  Richard Guenther  <rguenther@suse.de>
10468
10469         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
10470         or pointer-to chains.  Delay all fixup to uniquify_nodes.
10471
10472 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
10473
10474         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
10475         (fma4_fmaddsub): Likewise
10476
10477 2011-05-19  Jan Hubicka  <jh@suse.cz>
10478
10479         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
10480         (GIMPLE_TYPE_PAIR_SIZE): New macro.
10481         (type_pair_cache): New static var.
10482         (lookup_type_pair): Use fixed sized custom hash; make inline.
10483         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
10484         calls of lookup_type_pair.
10485         (print_gimple_types_stats): Remove cache stats.
10486         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
10487         and gtc_ob.
10488
10489 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
10490
10491         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
10492         when TARGET_RDRND is active.
10493         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
10494         Generate dummy SImode target register when target is NULL.
10495
10496 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
10497
10498         * config/arm/arm-fpus.def: New.
10499         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
10500         arm-fpus.def.
10501         * config/arm/arm-tables.opt: Regenerate.
10502         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
10503         (arm_option_override): Don't decode FPU name to string here.
10504         * config/arm/arm.opt (mfpu=): Use Enum.
10505         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
10506         Update dependencies.
10507
10508 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
10509
10510         * collect2.c: Include diagnostic.h.
10511         (fatal_perror, fatal, error, fancy_abort): Remove.
10512         (main): Set progname.  Call xmalloc_set_program_name and
10513         diagnostic_initialize.
10514         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
10515         scan_libraries, resolve_lib_name): Call fatal_error instead of
10516         fatal and fatal_perror.
10517         * collect2.h (error, fatal, fatal_perror): Don't declare.
10518         * tlink.c: Include diagnostic-core.h.
10519         (recompile_files): Call fatal_error instead of fatal_perror.
10520         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
10521         pretty-print.o and input.o.
10522         (collect2.o, tlink.o): Update dependencies.
10523
10524 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10525
10526         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
10527
10528 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10529
10530         PR target/40483
10531         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
10532         COMDAT group syntax, both SPARC and x86 variants.
10533         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
10534         * configure: Regenerate.
10535         * config/sol2.h (TARGET_SOLARIS): Define.
10536         (PUSHSECTION_FORMAT): Remove.
10537         (SECTION_NAME_FORMAT): Define.
10538         * config/sol2.c: Include hashtab.h.
10539         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
10540         expansion, using SECTION_NAME_FORMAT.
10541         (solaris_comdat_htab): New variable.
10542         (struct comdat_entry): Define.
10543         (comdat_hash): New function.
10544         (comdat_eq): New function.
10545         (solaris_elf_asm_comdat_section): New function.
10546         (solaris_define_comdat_signature): New function.
10547         (solaris_code_end): New function.
10548         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
10549         (solaris_code_end): Declare.
10550         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
10551         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
10552         solaris_code_end.
10553         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
10554         Remove ATTRIBUTE_UNUSED.
10555         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
10556         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
10557         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
10558         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
10559         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
10560         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
10561         (PUSHSECTION_FORMAT): Remove.
10562         (SECTION_NAME_FORMAT): Redefine.
10563
10564 2011-05-19  Kai Tietz  <ktietz@redhat.com>
10565
10566         * tree-cfg.c (verify_gimple_assign_binary): Barf on
10567         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
10568         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
10569
10570 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
10571             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10572
10573         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
10574
10575 2011-05-19  Richard Guenther  <rguenther@suse.de>
10576
10577         PR middle-end/48985
10578         * tree-object-size.c (addr_object_size): If the pointed-to
10579         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
10580
10581 2011-05-19  Richard Guenther  <rguenther@suse.de>
10582
10583         * gimple.c (gimple_types_compatible_p_1): Compare names of
10584         the types themselves.
10585         (iterative_hash_gimple_type): And hash them that way.
10586         (gimple_register_type_1): If we register a main variant properly
10587         initialize the leader to ourselves.
10588
10589 2011-05-19  Tom de Vries  <tom@codesourcery.com>
10590
10591         PR target/45098
10592         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
10593         get_loop_invariant_expr_id.
10594         (get_loop_invariant_expr_id): Use get_expr_id.
10595         (parm_decl_cost): New function.
10596         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
10597         Improve bound cost estimation.  Use different inv_expr_id for elim and
10598         express cases.
10599
10600 2011-05-19  Tom de Vries  <tom@codesourcery.com>
10601
10602         PR target/45098
10603         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
10604         cost_base.cost == 0.
10605
10606 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
10607
10608         PR target/49002
10609         * config/i386/sse.md
10610         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
10611         load cast.
10612
10613 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
10614
10615         PR tree-optimization/49039
10616         * tree-vrp.c (extract_range_from_binary_expr): For
10617         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
10618         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
10619
10620 2011-05-18  Tom de Vries  <tom@codesourcery.com>
10621
10622         PR target/45098
10623         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
10624
10625 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
10626
10627         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
10628         (*tls_global_dynamic_64): Ditto.
10629         (*tls_local_dynamic_base_32_gnu): Ditto.
10630         (*tls_local_dynamic_base_64): Ditto.
10631         (tls_initial_exec_64_sun): Ditto.
10632
10633 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
10634
10635         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
10636         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
10637         bf592-none.
10638         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
10639         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
10640         * config/bfin/bfin.c (bfin_cpus): Add bf592.
10641         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10642         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
10643         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
10644         * config/bfin/elf.h (LIB_SPEC): Add bf592.
10645
10646 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
10647
10648         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
10649         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
10650         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
10651         target_thread_pointer, arm_structure_size_boundary, struct
10652         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
10653         struct abi_name, arm_all_abis): Remove.
10654         (arm_option_override) Don't process most enumerated option values here.
10655         Don't process target_fpe_name here.  Work with integer not string for
10656         structure size boundary; use separate diagnostics for each case.
10657         * config/arm/arm.h (enum float_abi_type, enum
10658         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
10659         to arm-opts.h.
10660         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
10661         arm_structure_size_boundary): Remove.
10662         * config/arm/arm.opt (mabi=): Use Enum and Init.
10663         (arm_abi_type): New Enum and EnumValue entries.
10664         (mfloat-abi=): Use Enum and Init.
10665         (float_abi_type): New Enum and EnumValue entries.
10666         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
10667         (mfp16-format=): Use Enum and Init.
10668         (arm_fp16_format_type): New Enum and EnumValue entries.
10669         (mstructure-size-boundary=): Use UInteger and Init.
10670         (mtp=): Use Enum and Init.
10671         (arm_tp_type): New Enum and EnumValue entries.
10672
10673 2011-05-18  Richard Guenther  <rguenther@suse.de>
10674
10675         PR tree-optimization/49018
10676         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
10677         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
10678         gimple_has_side_effects.
10679
10680 2011-05-18  Richard Guenther  <rguenther@suse.de>
10681
10682         * gimple.c (gimple_register_type_1): New function, split out from ...
10683         (gimple_register_type): ... here.  Avoid infinite recursion.
10684
10685 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
10686
10687         PR tree-optimization/41881
10688         * tree-vectorizer.h (struct _loop_vec_info): Add new field
10689         reduction_chains along with a macro for its access.
10690         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
10691         (destroy_loop_vec_info): Free reduction chains.
10692         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
10693         (vect_is_slp_reduction): New function.
10694         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
10695         (vect_create_epilog_for_reduction): Support SLP reduction chains.
10696         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
10697         definition types for reduction chains.
10698         (vect_supported_load_permutation_p): Don't allow permutations for
10699         reduction chains.
10700         (vect_analyze_slp_instance): Support reduction chains.
10701         (vect_analyze_slp): Try to build SLP instance from reduction chains.
10702         (vect_get_constant_vectors):  Handle reduction chains.
10703         (vect_schedule_slp_instance): Mark the first statement of the
10704         reduction chain as reduction.
10705
10706 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
10707
10708         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
10709         names for group elements access.
10710         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
10711         reduction chains as well.  Remove data reference and interleaving
10712         related words from the fields names.
10713         * tree-vect-loop.c (vect_transform_loop): Use new names for group
10714         elements access.
10715         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
10716         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
10717         vect_update_interleaving_chain, vect_same_range_drs,
10718         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
10719         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
10720         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
10721         vect_analyze_group_access, vect_analyze_data_ref_access,
10722         vect_create_data_ref_ptr, vect_transform_strided_load,
10723         vect_record_strided_load_vectors): Likewise.
10724         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
10725         vect_model_load_cost, vectorizable_store, vectorizable_load,
10726         vect_remove_stores, new_stmt_vec_info): Likewise.
10727         * tree-vect-slp.c (vect_build_slp_tree,
10728         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
10729
10730 2011-05-18  Richard Guenther  <rguenther@suse.de>
10731
10732         PR middle-end/48989
10733         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
10734         operand verification.
10735         (verify_gimple_assign_binary): Likewise.
10736         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
10737         to non-1-precision BOOLEAN_TYPEs.
10738
10739 2011-05-18  Tom de Vries  <tom@codesourcery.com>
10740
10741         PR target/45098
10742         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
10743
10744 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
10745
10746         PR tree-optimization/49000
10747         * tree-ssa.c (execute_update_addresses_taken): Call
10748         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
10749         be rewritten and decl has been marked for renaming, reset
10750         the debug stmt.
10751
10752 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
10753
10754         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
10755         enum_opts_set when testing if attributes have set -mfpmath=.
10756
10757 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
10758
10759         * config/mips/mips.c (mips_handle_option): Remove unused variable.
10760
10761 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
10762
10763         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
10764         info->entry with 0
10765         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
10766         id.transform_lang_insert_block with NULL.
10767
10768 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
10769
10770         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
10771         (output_fp_compare): Change args 3 and 4 to bool.
10772         (ix86_expand_call): Change arg 6 to bool.
10773         (ix86_attr_length_immediate_default): Change arg 2 to bool.
10774         (ix86_attr_length_vex_default): Change arg 3 to bool.
10775         * config/i386/i386.md: Update all uses.
10776         * config/i386/i386.c: Ditto.
10777         (ix86_flags_dependent): Change return type to bool.
10778
10779 2011-05-17  Richard Guenther  <rguenther@suse.de>
10780
10781         * gimple.c (type_hash_pair_compare): Fix comparison.
10782
10783 2011-05-17  Richard Guenther  <rguenther@suse.de>
10784
10785         * gimple.c (iterative_hash_gimple_type): Simplify singleton
10786         case some more, fix final hash value of the non-singleton case.
10787
10788 2011-05-17  Richard Guenther  <rguenther@suse.de>
10789
10790         PR bootstrap/49013
10791         Revert
10792         2011-05-16  Richard Guenther  <rguenther@suse.de>
10793
10794         * gimple.c (gimple_types_compatible_p_1): Use names of the
10795         type itself, not its main variant.
10796         (iterative_hash_gimple_type): Likewise.
10797
10798 2011-05-17  Richard Guenther  <rguenther@suse.de>
10799
10800         * gimple.c (gimple_register_canonical_type): Use the main-variant
10801         leader for computing the canonical type.
10802
10803 2011-05-17  Nick Clifton  <nickc@redhat.com>
10804
10805         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
10806         moves.
10807
10808         * config/rx/rx.md: Add peephole to remove redundant extensions
10809         after loads.
10810         (bitset_in_memory): Use rx_restricted_mem_operand.
10811         (bitinvert_in_memory): Likewise.
10812         (bitclr_in_memory): Likewise.
10813
10814 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
10815             Nick Clifton  <nickc@redhat.com>
10816
10817         * config/rx/rx.md: Add peepholes to match a register move followed
10818         by a comparison of the moved register.  Replace these with an
10819         addition of zero that does both actions in one instruction.
10820
10821 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
10822
10823         PR target/48986
10824         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
10825         predicate to allow CONST_INT.
10826         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
10827
10828 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
10829
10830         * opts-common.c (opt_enum_arg_to_value): New.
10831         * opts.h (opt_enum_arg_to_value): Declare.
10832         * config/i386/i386.opt (fpmath): Remove.
10833         (mfpmath=): Use Enum, Init and Save.
10834         (fpmath_unit): New Enum and EnumValue entries.
10835         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
10836         name for function fpmath state.
10837         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
10838         * config/i386/i386.c: Include diagnostic.h.
10839         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
10840         (ix86_target_string): Take enum fpmath_unit value instead of string.
10841         (ix86_debug_options): Update call to ix86_target_string.
10842         (ix86_option_override_internal): Don't process fpmath strings here.
10843         (x86_function_specific_save, ix86_function_specific_restore):
10844         Don't handle fpmath state specially.
10845         (ix86_function_specific_print): Pass fpmath state to
10846         ix86_target_string instead of printing in this function.
10847         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
10848         Handle enum attributes.
10849         (IX86_ATTR_ENUM, ix86_opt_enum): New.
10850         (ix86_valid_target_attribute_tree): Update option_strings
10851         handling.  Handle fpmath as enum option.
10852         (ix86_can_inline_p): Update field names for function fpmath state.
10853         (ix86_expand_builtin): Update call to ix86_target_string.
10854         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
10855         (ix86_fpmath): Remove.
10856         * config/i386/t-i386 (i386.o): Update dependencies.
10857
10858 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
10859
10860         PR preprocessor/48677
10861         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
10862         from decoded_options[0], not from itself.
10863
10864 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
10865
10866         * config/i386/constraints.md (z): New constraint.
10867         * config/i386/i386.c (c): New mode attribute.
10868         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
10869         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
10870         constraint for operand 0.
10871         (*call_vzeroupper): Ditto.
10872         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
10873         (*call_rex64_ms_sysv_vzeroupper): Ditto.
10874         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
10875         Use "lzm" constraint for operand 0.
10876         (*call_pop_vzeroupper): Ditto.
10877         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
10878         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
10879         constraint for operand 0.
10880         (*sibcall_vzeroupper): Ditto.
10881         (*sibcall_rex64_ms_sysv): Ditto.
10882         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
10883         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
10884         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
10885         (*sibcall_pop_vzeroupper): Ditto.
10886         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
10887         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
10888         mode iterator.  Use "<c>zm" constraint for operand 1.
10889         (*call_value_vzeroupper): Ditto.
10890         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
10891         for operand 1.
10892         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
10893         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
10894         *call_value_pop_1.  Use "lzm" constraint for operand 1.
10895         (*call_value_pop_vzeroupper): Ditto.
10896         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
10897         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
10898         mode iterator.  Use "Uz" constraint for operand 1.
10899         (*sibcall_value_vzeroupper): Ditto.
10900         (*sibcall_value_rex64_ms_sysv): Ditto.
10901         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
10902         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
10903         constraint for operand 1.
10904         (*sibcall_value_pop_vzeroupper): Ditto.
10905         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
10906         and "z" constraint for operand 2.
10907         (*tls_global_dynamic_32_gnu): Ditto.
10908         (*tls_local_dynamic_base_32_gnu): Ditto.
10909         (*tls_local_dynamic_base_64): Ditto.
10910         (*tls_local_dynamic_32_once): Ditto.
10911         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
10912         Update all callers.
10913         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
10914
10915 2011-05-16  Richard Guenther  <rguenther@suse.de>
10916
10917         * gimple.c (gimple_types_compatible_p_1): Use names of the
10918         type itself, not its main variant.
10919         (iterative_hash_gimple_type): Likewise.
10920
10921 2011-05-16  Richard Guenther  <rguenther@suse.de>
10922
10923         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
10924         always visit pointer target and function result and argument types.
10925
10926 2011-05-16  Jason Merrill  <jason@redhat.com>
10927
10928         PR c++/48999
10929         * tree-inline.c (copy_statement_list): Put back recursion.
10930
10931 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
10932
10933         PR target/27663
10934         PR target/41076
10935         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
10936         * config/avr/avr.md ("*ior<mode>qi.byte0",
10937         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
10938
10939 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
10940
10941         PR target/45099
10942         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
10943         register is needed for a function argument.
10944
10945 2011-05-16  Richard Guenther  <rguenther@suse.de>
10946
10947         * gimple.c (struct type_hash_pair): New type.
10948         (type_hash_pair_compare): New function.
10949         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
10950
10951 2011-05-16  Revital Eres  <revital.eres@linaro.org>
10952
10953         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
10954
10955 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
10956
10957         * config/i386/i386.md (floating point move splitters): Fix
10958         usage of standard_80387_constant_p.
10959         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
10960
10961 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
10962
10963         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
10964
10965 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
10966
10967         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
10968         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
10969         (tree_ssa_lim_finalize): Likewise.
10970
10971 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
10972
10973         * config/i386/constraint.md (Yd, Yx): New register constraints.
10974         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
10975         Yd conditional register constraint.
10976         (*movtf_internal): Use standard_sse_constant_opcode.
10977         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
10978         Yx conditional register constraint.
10979         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
10980         Yd conditional register constraint.  Use standard_sse_constant_p to
10981         check for valid SSE constants and call standard_sse_constant_opcode to
10982         output SSE insn.
10983         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
10984         constants and call standard_sse_constant_opcode to output SSE insn.
10985         * config/i386/i386.c (ix86_option_ovverride_internal): Set
10986         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
10987         optimize_size is set.
10988         (standard_sse_constant_opcode): Output conditional AVX insn templates.
10989
10990 2011-05-14  Tobias Burnus  <burnus@net-b.de>
10991
10992         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
10993
10994 2011-05-13  Martin Jambor  <mjambor@suse.cz>
10995
10996         * ipa-prop.c (ipa_cst_from_jfunc): New function.
10997         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
10998         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
10999         (evaluate_conditions_for_ipcp_clone): Removed.
11000         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
11001         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
11002         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
11003
11004 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
11005
11006         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
11007         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
11008         lieu of MAY_HAVE_DEBUG_STMTS.
11009         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
11010         debug statements if !MAY_HAVE_DEBUG_STMTS.
11011
11012 2011-05-13  Martin Thuresson  <martint@google.com>
11013
11014         PR gcov-profile/47793
11015         * libgcov.c (gcov_exit): Support relative profile paths.
11016         * doc/invoke.texi (-fprofile-dir): Update for above change.
11017
11018 2011-05-13  Richard Guenther  <rguenther@suse.de>
11019
11020         * gimple.c (gimple_canonical_types_compatible_p): Do not use
11021         type-pair caching, do not compare hashes.
11022
11023 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
11024
11025         PR middle-end/48965
11026         * tree-cfg.c (edge_to_cases_cleanup): Return true.
11027         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
11028
11029 2011-05-13  Kai Tietz  <ktietz@redhat.com>
11030
11031         * gimplify.c (gimplify_expr): Make sure operand is boolified.
11032         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
11033         compatible type for TRUTH_NOT_EXPR.
11034
11035 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
11036
11037         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
11038         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
11039         can_create_pseudo_p ().
11040
11041 2011-05-13  Richard Guenther  <rguenther@suse.de>
11042
11043         PR lto/48978
11044         * gimple.c (iterative_hash_gimple_type): Revert change in
11045         pointer target and function result and argument hashing.
11046
11047 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
11048
11049         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
11050         (*movxf_internal_nointeger): Ditto.
11051         (*movdf_internal_rex64): Ditto.
11052         (*movdf_internal): Ditto.
11053         (*movdf_internal_nointeger): Ditto.
11054         (*movsf_internal): Ditto.
11055         (sincos splitters): Use can_create_pseudo ().
11056
11057 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
11058
11059         * config/i386/i386-opts.h: New.
11060         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
11061         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
11062         ix86_section_threshold): Remove.
11063         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
11064         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
11065         OPT_mbranch_cost_.
11066         (ix86_option_override_internal): Don't decode strings for options
11067         other than -march=, -mtune= and -mfpmath=.  Don't allow for
11068         __attribute__ uses in remaining diagnostics for options with
11069         string arguments.  Don't check for integer arguments being negative.
11070         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
11071         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
11072         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
11073         ix86_branch_cost, ix86_section_threshold): Remove.
11074         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
11075         HeaderInclude.
11076         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
11077         but not Var.
11078         (masm=): Use Enum and Init.
11079         (asm_dialect): New Enum and EnumValue entries.
11080         (mbranch-cost=): Use UInteger.
11081         (mlarge-data-threshold=): Use UInteger and Init.
11082         (mcmodel=): Use Enum and Init.
11083         (cmodel): New Enum and EnumValue entries.
11084         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
11085         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
11086         mregparm=): Use UInteger.
11087         (mstringop-strategy=): Use Enum and Init.
11088         (stringop_alg): New Enum and EnumValue entries.
11089         (mtls-dialect=): Use Enum and Init.
11090         (tls_dialect): New Enum and EnumValue entries.
11091         (mabi=): Use Enum and Init.
11092         (calling_abi): New Enum and EnumValue entries.
11093         (mveclibabi=): Use Enum and Init.
11094         (ix86_veclibabi): New Enum and EnumValue entries.
11095
11096 2011-05-13  Nick Clifton  <nickc@redhat.com>
11097
11098         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
11099         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
11100
11101 2011-05-13  Kai Tietz  <ktietz@redhat.com>
11102
11103         PR middle-end/48984
11104         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
11105         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
11106         (gimple_boolify): Check for cast for boolean_type_node instead for
11107         BOOLEAN_TYPE.
11108
11109 2011-05-13  Richard Guenther  <rguenther@suse.de>
11110
11111         PR tree-optimization/48172
11112         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
11113         multiplying by number of iterations for equal step.
11114         (vect_create_cond_for_alias_checks): Likewise.
11115
11116 2011-05-13  Andreas Schwab  <schwab@redhat.com>
11117
11118         * configure.ac: Use AS_HELP_STRING throughout.
11119         * configure: Regenerate.
11120
11121 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
11122
11123         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
11124         (ix86_emit_restore_regs_using_mov): Likewise.
11125         (ix86_emit_restore_sse_regs_using_mov): Likewise.
11126
11127 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
11128
11129         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
11130         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
11131         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
11132         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
11133         RTX_OK_FOR_OLO10_P): ...here.
11134         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
11135         SYMBOLIC_CONST.
11136
11137 2011-05-12  Kai Tietz  <ktietz@redhat.com>
11138
11139         * gimplify.c (gimple_boolify): Re-boolify expression
11140         arguments even if expression type is of kind BOOLEAN_TYPE.
11141         (gimplify_boolean_expr): Removed.
11142         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
11143         and XOR. Additional take care that we keep expression's type.
11144         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
11145         of TRUTH_AND|OR|XOR_EXPR.
11146
11147 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
11148
11149         PR tree-optimization/48975
11150         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
11151         on all bbs here and free and clear ifc_bbs at the end.
11152
11153 2011-05-12  Richard Guenther  <rguenther@suse.de>
11154
11155         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
11156         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
11157         until after simple checks.
11158         (gimple_types_compatible_p): Likewise.
11159         (iterative_hash_gimple_type): Always hash pointer targets
11160         and function return and argument types.
11161         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
11162         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
11163         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
11164         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
11165         completely in the simple compare section.
11166         (gimple_register_canonical_type): Query the cache again after
11167         registering.
11168
11169 2011-05-12  Richard Guenther  <rguenther@suse.de>
11170
11171         PR tree-optimization/48172
11172         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
11173         the number of iterations from the segment size calculation.
11174         (vect_create_cond_for_alias_checks): Adjust.
11175
11176 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
11177
11178         PR debug/48967
11179         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
11180         if validate_subreg fails.
11181
11182 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
11183
11184         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
11185         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
11186         early.
11187
11188 2011-05-12  DJ Delorie  <dj@redhat.com>
11189
11190         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
11191         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
11192         created builtin into rx_builtins array.
11193         (rx_builtin_decl): New function.
11194         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
11195
11196 2011-05-12  DJ Delorie  <dj@redhat.com>
11197             Nick Clifton  <nickc@redhat.com>
11198
11199         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
11200         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
11201         (rx_is_legitimate_address): Add pre-decrement and post-increment
11202         addressing in HImode and QImode.  Fix test for out of range
11203         REG+INT addressing.
11204         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
11205         (rx_align_for_label): Test label before extracting its usage count.
11206         (rx_adjust_insn_lengths): Fix selection of insn codes.
11207         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
11208
11209 2011-05-11  Jason Merrill  <jason@redhat.com>
11210
11211         * tree.c (type_hash_canon): Use struct tree_type_non_common.
11212
11213 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
11214
11215         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
11216         reindent the subsequent block.
11217
11218 2011-05-11  Satoru Takabayashi  <satorux@google.com>
11219             Paul Pluzhnikov  <ppluzhnikov@google.com>
11220
11221         * doc/install.texi (Configuration): Document --with-linker-hash-style.
11222         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
11223         * config.in: Add LINKER_HASH_STYLE.
11224         * configure.ac: Add --with-linker-hash-style.
11225         * configure: Regenerate.
11226
11227 2011-05-11  Richard Guenther  <rguenther@suse.de>
11228
11229         PR middle-end/48964
11230         * gimple.c (iterative_hash_canonical_type): Fix typo.
11231
11232 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
11233
11234         * config/i386/i386.c (legitimize_tls_address)
11235         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
11236         expanders directly for TARGET_GNU2_TLS.  Determine pic and
11237         __tls_get_addr symbol reference here.  Update call to
11238         gen_tls_global_dynamic_{32,64} for added arguments.
11239         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
11240         expanders directly for TARGET_GNU2_TLS.  Determine
11241         __tls_get_addr symbol reference here.  Update call to
11242         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
11243         unique UNSPEC REG_EQUIV to libcall block.
11244         (ix86_tls_get_addr): Declare static.
11245         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
11246         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
11247         Do not determine pic and __tls_get_addr symbol reference here. Do not
11248         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
11249         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
11250         (tls_global_dynamic_64): Add operand 2.  Do not determine
11251         __tls_get_addr symbol reference here.  Do not call
11252         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
11253         (tls_local_dynamic_base64): Ditto for operand 1.
11254
11255 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
11256
11257         * function.c (expand_function_start): Initialize stack_check_probe_note
11258         only if the generic stack checking mechanism is used.
11259
11260 2011-05-11  Richard Guenther  <rguenther@suse.de>
11261
11262         PR tree-optimization/15256
11263         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
11264         (A & B) | C, combine (A op CST1) op CST2.
11265         (tree_ssa_forward_propagate_single_use_vars): Only bother to
11266         visit assigns that have uses.
11267
11268 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
11269
11270         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
11271         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
11272         (unpack_ts_type_common_value_fields): ...this.  Update comment.
11273         (unpack_value_fields): Adjust for renaming.
11274         (lto_input_ts_type_tree_pointers): Split into...
11275         (lto_input_ts_type_common_tree_pointer): ...this and...
11276         (lto_input_ts_type_non_common_tree_pointers): ...this.
11277         (lto_input_tree_pointers): Adjust for above split.
11278         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
11279         (pack_ts_type_common_value_fields): ...this.  Update comment.
11280         (lto_output_ts_type_tree_pointers): Split into...
11281         (lto_output_ts_type_common_tree_pointers): ...this and...
11282         (lto_output_ts_type_non_common_tree_pointers): ...this.
11283         (lto_output_tree_pointers): Adjust for above split.
11284         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
11285         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
11286         * stor-layout.c (vector_type_mode): Adjust location of mode field.
11287         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
11288         Define.
11289         (struct tree_type): Split into...
11290         (struct tree_type_common: ...this and...
11291         (struct tree_type_with_lang_specific): ...this and...
11292         (struct tree_type_non_common): ...this.  Adjust accessor macros
11293         accordingly.
11294         (TYPE_VALUES_RAW): Define.
11295         (union tree_node): Update for above changes.
11296         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
11297         TS_TYPE_NON_COMMON.
11298         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
11299         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
11300         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
11301         * treestructu.def (TS_TYPE): Remove.
11302         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
11303         Define.
11304
11305 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
11306
11307         PR debug/48159
11308         * tree-ssa.c (reset_debug_uses): New function.
11309         * tree-flow.h (reset_debug_uses): New prototype.
11310         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
11311         * tree-loop-distribution.c (generate_loops_for_partition): Call
11312         reset_debug_uses on the stmts that will be removed.  Keep around
11313         all debug stmts, don't count them as bits in partition bitmap.
11314         (generate_builtin): Don't count debug stmts or labels as bits in
11315         partition bitmap.
11316
11317 2011-05-11  Richard Guenther  <rguenther@suse.de>
11318
11319         * gimple.c (gimple_type_hash_1): Merge with ...
11320         (gimple_type_hash): ... this.
11321         (gtc_visit): Remove mode parameter and simplify accordingly.
11322         (gimple_types_compatible_p_1): Likewise.
11323         (gimple_types_compatible_p): Likewise.
11324         (iterative_hash_gimple_type): Likewise.
11325         (visit): Likewise.
11326         (gimple_type_eq): Adjust.
11327
11328 2011-05-11  Revital Eres  <revital.eres@linaro.org>
11329
11330         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
11331         enters the branch create an anti edge in the opposite direction
11332         to prevent the creation of reg-moves.
11333         * modulo-sched.c: Adjust comment to reflect the fact we are
11334         scheduling closing branch.
11335         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
11336         (stage_count): New field in struct partial_schedule.
11337         (calculate_stage_count): New function.
11338         (normalize_sched_times): Rename to reset_sched_times and handle
11339         incrementing the sched time of the nodes by a constant value
11340         passed as parameter.
11341         (duplicate_insns_of_cycles): Skip closing branch.
11342         (sms_schedule_by_order): Schedule closing branch.
11343         (ps_insn_find_column): Handle closing branch.
11344         (sms_schedule): Call reset_sched_times and adjust the code to
11345         support scheduling of the closing branch.
11346         (ps_insert_empty_row): Update calls to normalize_sched_times
11347         and rotate_partial_schedule functions.
11348
11349 2011-05-11  Richard Guenther  <rguenther@suse.de>
11350
11351         PR middle-end/48953
11352         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
11353
11354 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
11355
11356         * opts.c (finish_options): Move warning settings from process_options.
11357         * toplev.c (process_options): Move warning settings to finish_options.
11358
11359 2011-05-11  Richard Guenther  <rguenther@suse.de>
11360
11361         PR tree-optimization/18041
11362         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
11363         (simplify_bitwise_binary): ... this.  Handle operand conversions
11364         by applying them to the result instead.
11365         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
11366
11367 2011-05-11  Richard Guenther  <rguenther@suse.de>
11368
11369         * gimple.c (gimple_canonical_types_compatible_p): Split out
11370         from gimple_types_compatible_p and friends.  Do not recurse
11371         to pointed-to types.
11372         (gimple_canonical_type_eq): Use it.
11373         (iterative_hash_canonical_type): Split out from
11374         iterative_hash_gimple_type and friends.  Do not recurse
11375         to pointed-to types.
11376         (gimple_canonical_type_hash): Use it, allocate the hash here.
11377
11378 2011-05-11  Revital Eres  <revital.eres@linaro.org>
11379
11380         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
11381         recognizing doloop.
11382
11383 2011-05-11  Revital Eres  <revital.eres@linaro.org>
11384
11385         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
11386         instead of PREV_INSN.
11387
11388 2011-05-11  Revital Eres  <revital.eres@linaro.org>
11389
11390         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
11391         * loop-doloop.c (doloop_condition_get): Likewise.
11392         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
11393         (doloop_end): New.
11394         * config/arm/arm.md (*addsi3_compare0): Remove "*".
11395
11396 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
11397
11398         * tree.def (CASE_LABEL_EXPR): Add an operand.
11399         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
11400
11401 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11402
11403         * c-decl.c (c_override_global_bindings_to_false): Remove.
11404         (global_bindings_p): Don't check
11405         c_override_global_bindings_to_false.
11406         * c-tree.h (c_override_global_bindings_to_false): Remove.
11407         * c-typeck.c (composite_type): Don't set
11408         c_override_global_bindings_to_false.
11409
11410 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
11411
11412         PR target/48857, 48495
11413         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
11414         (VSX_MODE): Ditto.
11415         (VSX_MOVE_MODE): Ditto.
11416         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
11417         VSX vector types.  Add V2DImode.
11418         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
11419         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
11420         (MODES_TIEABLE_P): Ditto.
11421
11422         * config/rs6000/rs6000.c (rs6000_emit_move): Use
11423         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
11424         VSX_VECTOR_MODE.
11425         (init_cumulative_args): Ditto.
11426         (rs6000_function_arg_boundary): Ditto.
11427         (rs6000_function_arg_advance_1): Ditto.
11428         (rs6000_function_arg): Ditto.
11429         (rs6000_function_ok_for_sibcall): Ditto.
11430         (emit_frame_save): Ditto.
11431         (rs6000_function_value): Ditto.
11432         (rs6000_libcall_value): Ditto.
11433
11434 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11435
11436         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
11437         i386/darwin-lib.h to $libgcc_tm_file.
11438         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
11439
11440 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11441
11442         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
11443
11444 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11445
11446         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
11447         * config/rs6000/rs6000-tables.opt: New file (generated).
11448         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
11449         rs6000/rs6000-tables.opt to extra_options.
11450         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
11451         * config/rs6000/rs6000.c (rs6000_select): Remove.
11452         (processor_target_table): Move contents to rs6000-cpus.def.
11453         (darwin_rs6000_override_options): Check
11454         global_options_set.x_rs6000_cpu_index instead of
11455         rs6000_select[1].string.
11456         (rs6000_option_override_internal): Likewise.
11457         (rs6000_handle_option): Don't assert that global structures are in
11458         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
11459         (rs6000_default_cpu): New variable.
11460         (rs6000_file_start): Set it instead of local default_cpu.  Check
11461         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
11462         global_options_set.x_rs6000_tune_index instead of rs6000_select.
11463         (rs6000_darwin_file_start): Check rs6000_default_cpu and
11464         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
11465         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
11466         rs6000_select): Remove.
11467         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
11468         Remove.
11469         (mcpu=, mtune=): Use Var, Init, Enum and Save.
11470         * config/rs6000/t-rs6000
11471         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
11472         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11473         global_options_set.x_rs6000_cpu_index instead of
11474         rs6000_select[1].string.
11475         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11476         global_options_set.x_rs6000_cpu_index instead of
11477         rs6000_select[1].string.
11478
11479 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11480
11481         * config.gcc (libgcc_tm_file): Define instead of including files
11482         from ../../libgcc/config/ in tm_file.
11483         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
11484         * configure: Regenerate.
11485         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
11486         libgcc_tm.h, cs-libgcc_tm.h): New.
11487         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
11488         (clean): Remove libgcc_tm.h.
11489         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
11490         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
11491         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
11492
11493 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
11494
11495         PR target/48896
11496         * config/avr/avr.c (avr_ret_register): Return unsigned int
11497         instead of int.
11498         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
11499         it to avr_libcall_value.
11500         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
11501         expand_expr.
11502         (avr_expand_binop_builtin): Ditto.
11503         (avr_expand_unop_builtin): Ditto.
11504
11505 2011-05-10  DJ Delorie  <dj@redhat.com>
11506
11507         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
11508         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
11509         * config/rx/rx.c (rx_align_for_label): Add label and
11510         uses_threshold parameters.  Do not align when the label is not
11511         used enough.
11512         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
11513
11514 2011-05-10  Richard Guenther  <rguenther@suse.de>
11515
11516         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
11517         a series of conversions and apply foldings similar to what
11518         fold-const does.
11519         (tree_ssa_forward_propagate_single_use_vars): Call it.
11520
11521 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
11522
11523         PR tree-optimization/48611
11524         PR tree-optimization/48794
11525         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
11526         referenced from RESX or EH_DISPATCH arguments.
11527
11528         PR debug/48928
11529         * dfp.c (decimal_to_decnumber): Handle conversion from
11530         dconst{1,2,m1,half}.
11531
11532 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11533
11534         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
11535         for !flag_prefer_avx128.
11536         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
11537
11538 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
11539
11540         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
11541         (fold_ternary_loc): Use expr_location_or.
11542
11543 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
11544
11545         PR debug/48853
11546         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
11547         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
11548         Pmode and mem_mode is not VOIDmode.
11549
11550 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
11551
11552         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
11553         TYPE_QUAL_RESTRICT): Convert to enum.
11554
11555 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11556
11557         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
11558         (const_pow2_1_to_8_operand): Ditto.
11559         (const_pow2_1_to_128_operand): Ditto.
11560         (const_pow2_1_to_32768_operand): Ditto.
11561         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
11562         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
11563         in insn constraint to check integer value of operand 3.
11564         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
11565
11566         (PINSR_MODE): New mode iterator.
11567         (sse2p4_1): New mode attribute.
11568         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
11569         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
11570         iterator.  Use const_int_operand instead of
11571         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
11572         exact_log2 in insn constraint to check integer value of operand 3.
11573
11574 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11575
11576         * config/i386/sse.md (blendbits): Remove mode attribute.
11577         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
11578         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
11579         Check integer value of operand 3 in insn constraint.
11580
11581 2011-05-09  Richard Guenther  <rguenther@suse.de>
11582
11583         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
11584         for diagnostics.
11585         (lto_symtab_merge): Likewise.  Do not register types here.
11586         (lto_symtab_merge_decls_2): Likewise.
11587         (lto_symtab_merge_decls_1): Likewise.
11588         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
11589         * gimple.c (enum gtc_mode): Declare.
11590         (gimple_types_compatible_p): Make static.
11591
11592 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11593
11594         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
11595         temporary register to match Pmode.
11596
11597 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11598
11599         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
11600         and *vec_concatv4si_1_avx.
11601
11602 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11603
11604         PR rtl-optimization/48927
11605         * ira-conflicts.c (commutative_constraint_p): Use
11606         recog_data.alternative_enabled_p to disable alternatives where
11607         "enabled" attribute is false.
11608         (get_dup_num): Ditto.
11609         * ira-lives.c (single_reg_class): Ditto.
11610         (ira_implicitly_set_insn_hard_regs): Ditto.
11611
11612 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
11613
11614         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
11615         (dataflow_set_preserve_mem_locs): Likewise.
11616
11617 2011-05-09  Philipp Thomas  <pth@suse.de>
11618
11619         * config/mep/mep.c (mep_validate_vliw): Syntax description
11620         should not be translated.
11621
11622 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
11623
11624         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
11625         * config/mips/mips-tables.opt: New file (generated).
11626         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
11627         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
11628         MIPS_ARCH_OPTION_NATIVE): Define.
11629         * config/mips/mips.c (mips_cpu_info_table): Move contents to
11630         mips-cpus.def.
11631         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
11632         mips_parse_cpu): Remove.
11633         (mips_cpu_info_from_opt, mips_default_arch): New.
11634         (mips_handle_option): Don't assert that global structures are in
11635         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
11636         (mips_option_override): Use new variables and functions to set
11637         state of these options.  Use strcmp to check for individual CPU names.
11638         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
11639         definition.
11640         * config/mips/mips.opt (march=): Use ToLower and Enum.
11641         (mips): Use ToLower, Enum and Var.
11642         (mtune=): Use ToLower and Enum.
11643         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
11644
11645 2011-05-08  Jan Hubicka  <jh@suse.cz>
11646
11647         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
11648         Arrange type pairs to be UID ordered.
11649         (gimple_lookup_type_leader): Make inline.
11650
11651 2011-05-09  Nick Clifton  <nickc@redhat.com>
11652
11653         PR target/48899
11654         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
11655         PROCESSOR_DEFAULT.
11656
11657         PR target/48897
11658         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
11659         variable 's'.
11660
11661 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
11662
11663         * combine.c (simplify_comparison): Abstract out parts into...
11664         (simplify_compare_const): ... new function.
11665         (try_combine): Generalize parallel arithmetic/compare combining
11666         to call simplify_compare_const() and CANONICALIZE_COMPARE().
11667
11668 2011-05-08  Jan Hubicka  <jh@suse.cz>
11669
11670         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
11671         (cgraph_create_virtual_clone): Call hooks once virtual clone
11672         is finished.
11673         * cgraph.h (cgraph_clone_node): Update prototype.
11674         * ipa-cp.c (ipcp_estimate_growth): Use
11675         estimate_ipcp_clone_size_and_time.
11676         * ipa-inline-transform.c (clone_inlined_nodes): Update.
11677         * lto-cgraph.c (input_node): Update.
11678         * ipa-inline.c (recursive_inlining): Update.
11679         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
11680         (evaluate_conditions_for_known_args): Break out from ...
11681         (evaluate_conditions_for_edge): ... here.
11682         (evaluate_conditions_for_ipcp_clone): New function.
11683         (inline_node_duplication_hook): Update clone summary based
11684         on parameter map.
11685         (estimate_callee_size_and_time): Rename to ...
11686         (estimate_node_size_and_time): take NODE instead of EDGE;
11687         take POSSIBLE_TRUTHS as argument.
11688         (estimate_callee_size_and_time): Update.
11689         (estimate_ipcp_clone_size_and_time): New function.
11690         (do_estimate_edge_time): Update.
11691
11692 2011-05-08  Richard Guenther  <rguenther@suse.de>
11693
11694         PR middle-end/48908
11695         PR middle-end/48905
11696         * expmed.c (expand_shift_1): Compute adjusted constant shift
11697         amount manually.
11698
11699 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
11700
11701         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
11702
11703 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
11704
11705         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
11706
11707 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
11708
11709         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
11710
11711 2011-05-07  Jan Hubicka  <jh@suse.cz>
11712
11713         * ipa-inline-transform.c (inline_call): Account when program size
11714         decreases.
11715         * ipa-inline.c (relative_time_benefit): New function.
11716         (edge_badness): Reorganize to be power 2 based; fix thinko when
11717         computing badness for negative growth; update comments to match
11718         reality; better dumps.
11719
11720 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
11721
11722         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
11723         type to bool and adjust comment.
11724         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
11725         (fold_mathfn_compare): Remove calls to global_bindings_p.
11726         (fold_inf_compare): Likewise.
11727         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
11728         * c-tree.h (global_bindings_p): Adjust prototype.
11729         * c-decl.c (global_bindings_p): Return bool and simplify.
11730
11731 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
11732
11733         PR tree-optimization/48837
11734         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
11735         when accumulator transformation is performed.
11736
11737 2011-05-06  Jan Hubicka  <jh@suse.cz>
11738
11739         * i386.h (ix86_tune_indices): Add
11740         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
11741         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
11742         * i386.c (initial_ix86_tune_features): Add
11743         X86_SOFTARE_PREFETCHING_BENEFICIAL.
11744         (software_prefetching_beneficial_p): Remove predicate.
11745         (ix86_option_override_internal): Use new macro.
11746
11747 2011-05-06  Jan Hubicka  <jh@suse.cz>
11748
11749         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
11750
11751 2011-05-06  Jan Hubicka  <jh@suse.cz>
11752
11753         * cgraph.c (cgraph_add_thunk): Create real function node instead
11754         of alias node; finalize it and mark needed/reachale; arrange visibility
11755         to be right and add it into the corresponding same comdat group list.
11756         (dump_cgraph_node): Dump thunks.
11757         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
11758         cgraph_function_with_gimple_body_p,
11759         cgraph_first_function_with_gimple_body,
11760         cgraph_next_function_with_gimple_body): New functions.
11761         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
11762         New macros.
11763         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
11764         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
11765         * cgraphunit.c (cgraph_finalize_function): Only look into possible
11766         devirtualization when optimizing.
11767         (verify_cgraph_node): Verify thunks.
11768         (cgraph_analyze_function): Analyze thunks.
11769         (cgraph_mark_functions_to_output): Output thunks only in combination
11770         with function they are assigned to.
11771         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
11772         alias into normal node.
11773         (assemble_thunks): New functoin.
11774         (cgraph_expand_function): Use it.
11775         * lto-cgraph.c (lto_output_node): Stream thunks.
11776         (input_overwrite_node): Stream in thunks.
11777         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
11778         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
11779         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
11780         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
11781         (inline_analyze_function): Do not care about thunk jump functions.
11782         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
11783         * ipa-prop.c (ipa_prop_write_jump_functions): Use
11784         cgraph_function_with_gimple_body_p.
11785         * passes.c (do_per_function_toporder): Use
11786         cgraph_function_with_gimple_body_p.
11787         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
11788         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
11789         (function_called_by_processed_nodes_p): Likewise.
11790
11791 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
11792
11793         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
11794         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
11795         entries.
11796         (mabi=): Replace with separate entries for mabi=altivec,
11797         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
11798         mabi=ieeelongdouble and mabi=ibmlongdouble.
11799         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
11800         check for -mabi=spe without SPE ABI support here.
11801         (rs6000_handle_option): Replace OPT_mabi_ handling with
11802         OPT_mabi_altivec and OPT_mabi_spe handling.
11803
11804 2011-05-06  Cary Coutant  <ccoutant@google.com>
11805
11806         * dwarf2out.c (contains_subprogram_definition): New function.
11807         (should_move_die_to_comdat): Call it.
11808
11809 2011-05-06  Jeff Law  <law@redhat.com>
11810
11811         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
11812         remove_ctrl_stmt_and_useless_edges.
11813         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
11814         (fixup_template_block, thread_single_edge): Likewise.
11815         (mark_threaded_blocks): Use THREAD_TARGET.
11816
11817 2011-05-06  Alan Modra  <amodra@gmail.com>
11818
11819         PR target/48900
11820         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
11821         const0_rtx as the arg to the dummy __tls_get_addr libcall.
11822
11823 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
11824
11825         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
11826         constraint modifier to "r".
11827
11828 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
11829
11830         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
11831         fall through for OPT_mcmodel_.
11832
11833 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11834
11835         * config/s390/s390.c (s390_asm_trampoline_template): Comment
11836         instruction sizes.
11837         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
11838
11839 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11840
11841         PR target/47930
11842         * config/arm/arm.opt (marm): Document it.
11843         (mthumb): Reject negative variant.
11844
11845 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
11846
11847         PR target/48898
11848         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
11849         Fix typo in "ccvt" variable name.
11850
11851 2011-05-06  Tristan Gingold  <gingold@adacore.com>
11852
11853         PR target/48895
11854         * config/vms/vms-ar.c (main): Remove cwd variable.
11855
11856 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
11857
11858         PR debug/48902
11859         * var-tracking.c (prepare_call_arguments): Move else before #endif.
11860
11861 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
11862
11863         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
11864         * gimplify.c (gimplify_switch_expr): Likewise.
11865         * omp-low.c (expand_omp_sections): Likewise.
11866         * tree-eh.c (lower_try_finally_switch): Likewise.
11867         (lower_eh_dispatch): Likewise.
11868         * tree.h (build_case_label): Declare.
11869         * tree.c (build_case_label): Define.
11870
11871 2011-05-05  Jason Merrill  <jason@redhat.com>
11872
11873         PR c++/40975
11874         * tree-inline.c (copy_tree_r): Use copy_statement_list.
11875         (copy_statement_list): Don't recurse.
11876         * stor-layout.c (copy_self_referential_tree_r): Don't allow
11877         STATEMENT_LIST.
11878
11879 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
11880
11881         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
11882         through from -mfpu= handling.
11883         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
11884
11885 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
11886
11887         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
11888         POST_MODIFY.
11889
11890 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
11891
11892         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
11893         for 11.31.
11894         (hppa[12]*-*-hpux11*): Ditto.
11895         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
11896         * config/ia64/hpux-unix2003.h: New.
11897         * config/pa/pa-hpux1131.opt: New.
11898         * config/pa/pa-hpux1131.h: New.
11899         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
11900         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
11901         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
11902
11903 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
11904
11905         PR debug/48853
11906         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
11907         instead of mode as 3rd argument to recursive call.
11908         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
11909         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
11910         VOIDmode.
11911         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
11912         don't give up if mode is Pmode and mem_mode is not VOIDmode.
11913         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
11914         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
11915
11916 2011-05-05  Julian Brown  <julian@codesourcery.com>
11917
11918         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
11919         parenthesis in D-register case.
11920
11921 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
11922
11923         * opt-functions.awk (var_type_struct): Handle Enum options.
11924         * optc-gen.awk: Don't check range of variables of character type.
11925         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
11926         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
11927         rs6000_sdata_name, rs6000_explicit_options): Remove.
11928         (rs6000_option_override_internal): Check for -malign-power here.
11929         Use global_options_set instead of rs6000_explicit_options.
11930         (rs6000_parse_fpu_option): Remove.
11931         (rs6000_handle_option): Access variables via opts and opts_set
11932         pointers.  Use error_at and warning_at.  Add fall-through
11933         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
11934         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
11935         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
11936         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
11937         here.  Don't use rs6000_parse_fpu_option.
11938         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
11939         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
11940         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
11941         (mrecip=): Use Var.
11942         (mspe): Use Var and Save.
11943         (mtraceback=): Use Enum and Var.
11944         (rs6000_traceback_type): New Enum and EnumValue entries.
11945         (mfloat-gprs=): Use Enum, Var and Save.
11946         (rs6000_float_gprs): New Enum and EnumValue entries.
11947         (mlong-double-): use Var and Save.
11948         (msched-costly-dep=, minsert-sched-nops=): Use Var.
11949         (malign-): Use Enum and Var.
11950         (rs6000_alignment_flags): New Enum and EnumValue entries.
11951         (mfpu=): Use Enum.
11952         (fpu_type_t): New Enum and EnumValue entries.
11953         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11954         global_options_set instead of rs6000_explicit_options.
11955         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11956         global_options_set instead of rs6000_explicit_options.
11957         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11958         global_options_set instead of rs6000_explicit_options.
11959         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11960         global_options_set instead of rs6000_explicit_options.
11961         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
11962         global_options_set instead of rs6000_explicit_options.
11963         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11964         global_options_set instead of rs6000_explicit_options.
11965         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
11966         definition.
11967         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11968         global_options_set instead of rs6000_explicit_options.
11969         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
11970         (rs6000_cmodel): New Enum and EnumValue entries.
11971         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11972         global_options_set instead of rs6000_explicit_options.
11973         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
11974         (mtls-size=): Use Enum and Var.
11975         (rs6000_tls_size): New Enum and EnumValue entries.
11976
11977 2011-05-05  Michael Matz  <matz@suse.de>
11978
11979         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
11980         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
11981         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
11982         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
11983         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
11984         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
11985         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
11986         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
11987         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
11988         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
11989         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
11990         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
11991         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
11992         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
11993         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
11994         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
11995
11996 2011-05-05  Richard Guenther  <rguenther@suse.de>
11997
11998         * expmed.c (expand_variable_shift): Rename to ...
11999         (expand_shift_1): ... this.  Take an expanded shift amount.
12000         For rotates recurse directly not building trees for the shift amount.
12001         (expand_variable_shift): Wrap around expand_shift_1.
12002         (expand_shift): Adjust.
12003
12004 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
12005
12006         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
12007
12008 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
12009
12010         * tree.h (get_pending_sizes): Remove prototype.
12011         (put_pending_size): Likewise.
12012         (put_pending_sizes): Likewise.
12013         * stor-layout.c (pending_sizes): Delete.
12014         (get_pending_sizes): Likewise.
12015         (put_pending_size): Likewise.
12016         (put_pending_sizes): Likewise.
12017         (variable_size): Do not call put_pending_size and tidy up.
12018         * function.h (struct function): Remove dont_save_pending_sizes_p.
12019         * lto-streamer-in.c (input_function): Do not stream it.
12020         * lto-streamer-out.c (output_function): Likewise.
12021         * tree-inline.c (initialize_cfun): Do not copy it.
12022         * c-decl.c (store_parm_decls): Do not set it.
12023         * omp-low.c (create_task_copyfn): Likewise.
12024         * tree-optimize.c (tree_rest_of_compilation): Likewise.
12025
12026 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
12027
12028         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
12029         conditions.
12030         (*movdf_internal): Ditto.
12031         (*movdf_internal_nointeger): Ditto.
12032         (*movsf_internal): Ditto.
12033
12034 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
12035
12036         * c-decl.c (finish_decl): Don't call get_pending_sizes.
12037         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
12038         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
12039         (c_variable_size): Remove.
12040         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
12041         call put_pending_sizes.
12042         (get_parm_info): Add parameter expr.  Use it to set
12043         arg_info->pending_sizes.
12044         (store_parm_decls): Use arg_info->pending_sizes instead or calling
12045         get_pending_sizes.
12046         * c-parser.c (c_parser_parms_declarator): Update call to
12047         c_parser_parms_list_declarator.
12048         (c_parser_parms_list_declarator): Take parameter expr.  Update
12049         call to push_parm_decl.  Update recursive call.  Don't call
12050         get_pending_sizes.  Update calls to get_parm_info.
12051         (c_parser_objc_method_definition): Update calls to
12052         c_parser_objc_method_decl and objc_start_method_definition.
12053         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
12054         (c_parser_objc_method_decl): Add parameter expr.  Update call to
12055         grokparm.
12056         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
12057         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
12058         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
12059
12060 2011-05-05  Michael Hope  <michael.hope@linaro.org>
12061
12062         PR pch/45979
12063         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
12064         __ARM_EABI__ hosts.
12065
12066 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12067
12068         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
12069         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
12070         (spu_output_mi_thunk): New function.
12071
12072 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12073
12074         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
12075         targetm.asm_out.print_operand.
12076         * config/sol2.c: Include target.h.
12077
12078 2011-05-04  Jan Hubicka  <jh@suse.cz>
12079
12080         * ipa-inline.c (reset_edge_caches): New function.
12081         (update_caller_keys): Add check_inlinablity_for; do not
12082         reset edge caches; remove now unnecesary loop.
12083         (update_callee_keys): Add comments; reset node_growth_cache of callee.
12084         (update_all_callee_keys): Likewise.
12085         (inline_small_functions): Sanity check cache; update code
12086         recomputing it.
12087
12088 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
12089
12090         PR rtl-optimization/47612
12091         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
12092         as the last insn of the sequence to be moved.
12093
12094 2011-05-04  Tobias Burnus  <burnus@net-b.de>
12095
12096         PR fortran/48864
12097         * doc/invoke.texi (Ofast): Document that it
12098         enables Fortran's -fno-protect-parens.
12099
12100 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
12101
12102         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
12103
12104 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
12105
12106         * stor-layout.c (variable_size): Do not issue errors.
12107
12108 2011-05-04  Richard Guenther  <rguenther@suse.de>
12109
12110         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
12111         for array-ref indices.
12112         (tree_coverage_counter_addr): Likewise.
12113         (build_fn_info_type): Use size_int for index types.
12114         (build_gcov_info): Likewise.
12115
12116 2011-05-04  Richard Guenther  <rguenther@suse.de>
12117
12118         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
12119         to build_int_cst.
12120         * c-typeck.c (really_start_incremental_init): Use bitsize_int
12121         for constructor indices.
12122         (push_init_level): Likewise.
12123
12124 2011-05-04  Richard Guenther  <rguenther@suse.de>
12125
12126         * explow.c (promote_mode): Move variable declarations before code.
12127
12128 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
12129
12130         * tree.h (build_function_type_array): Declare.
12131         (build_varargs_function_type_array): Declare.
12132         (build_function_type_vec, build_varargs_function_type_vec): Define.
12133         * tree.c (build_function_type_array_1): New function.
12134         (build_function_type_array): New function.
12135         (build_varargs_function_type_array): New function.
12136
12137 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
12138
12139         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
12140         before setting STMT_VINFO_TYPE.
12141
12142 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12143
12144         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
12145         instead of spu_pass_by_reference.
12146
12147 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12148
12149         * calls.c (emit_library_call_value_1): Invoke
12150         promote_function_mode hook on libcall arguments.
12151         * explow.c (promote_function_mode, promote_mode): Handle TYPE
12152         argument being NULL.
12153         * targhooks.c (default_promote_function_mode): Lisewise.
12154         * config/s390/s390.c (s390_promote_function_mode): Likewise.
12155         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
12156
12157         * doc/tm.texi: Document that TYPE argument might be NULL.
12158
12159 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12160
12161         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
12162
12163 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12164
12165         From Bernd Schmidt
12166         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
12167
12168 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12169
12170         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
12171         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
12172         Move ...
12173         * mips-tfile.c: ... here.
12174         Don't include coretypes.h, tm.h, filenames.h.
12175         (saber_stop): Remove definition and all calls.
12176         [__SABER__]: Remove.
12177         (__LINE__): Remove default.
12178         (Size_t, Ptrdiff_t): Remove definitions.
12179         Replace by size_t, ptrdiff_t.
12180         [!MIPS_DEBUGGING_INFO]: Remove.
12181         (SHASH_SIZE, THASH_SIZE): Remove defaults.
12182         (progname): Add const.
12183         (STATIC): Remove.
12184         Replace all uses by static.
12185         (ALIGN_SYMTABLE_OFFSET): Remove default.
12186         * mips-tdump.c: Don't include coretypes.h, tm.h.
12187         Remove !MIPS_IS_STAB guard.
12188         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
12189         $(TM_H), filenames.h dependencies.
12190         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
12191
12192 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12193
12194         From Jie Zhang
12195         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
12196         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
12197
12198 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12199
12200         From Bernd Schmidt
12201         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
12202         account and save/restore RETS.
12203         (PROFILE_BEFORE_PROLOGUE): Define.
12204         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
12205         the push insn to use predecrement.
12206
12207 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12208
12209         From Jie Zhang
12210         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
12211
12212 2011-05-04  Nick Clifton  <nickc@redhat.com>
12213
12214         * config/mn10300/mn10300.c: Include cfgloop.h.
12215         (DUMP): New macro.
12216         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
12217         Lcc or a FLcc insn into the instruction stream.
12218         (mn10300_block_contains_call): New function.  Returns true if the
12219         given basic block contains a CALL insn.
12220         (mn10300_loop_contains_call_insn): New function.  Returns true if
12221         the given loop contains a CALL insn.
12222         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
12223         to use the SETLB and Lcc or FLcc insns.
12224         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
12225         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
12226         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
12227         disable the SETLB optimization.
12228         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
12229         __SETLB__ or __NO_SETLB__.
12230         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
12231         (movsf_internal): Handle MDR register.
12232         (cmpsi): Make visible.
12233         (setlb): New pattern.
12234         (Lcc): New pattern.
12235         (FLcc): New pattern.
12236
12237 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
12238
12239         PR target/48860
12240         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
12241         for reg<->xmm moves.
12242         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
12243         (vec_concatv2di_rex64_sse): Ditto.
12244         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
12245         (*vec_extractv2di_1_rex64): Ditto.
12246
12247         Revert:
12248         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
12249
12250         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
12251         reg<->xmm moves.
12252         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
12253
12254 2011-05-04  Richard Guenther  <rguenther@suse.de>
12255
12256         * tree.h (int_const_binop): Remove notrunc argument.
12257         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
12258         create integer constants that are properly truncated.
12259         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
12260         (const_binop): Remove zero notrunc argument to int_const_binop.
12261         (size_binop_loc): Likewise.
12262         (fold_div_compare): Likewise.
12263         (maybe_canonicalize_comparison_1): Likewise.
12264         (fold_comparison): Likewise.
12265         (fold_binary_loc): Likewise.
12266         (multiple_of_p): Likewise.
12267         * expr.c (store_constructor): Likewise.
12268         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
12269         (maybe_fold_stmt_addition): Likewise.
12270         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
12271         * stor-layout.c (layout_type): Likewise.
12272         * tree-data-ref.c (tree_fold_divides_p): Likewise.
12273         * tree-sra.c (build_ref_for_offset): Likewise.
12274         (build_user_friendly_ref_for_offset): Likewise.
12275         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
12276         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
12277         * tree-ssa-loop-niter.c (inverse): Likewise.
12278         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12279         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
12280         * tree-switch-conversion.c (check_range): Likewise.
12281         (build_constructors): Likewise.
12282         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
12283         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
12284         (extract_range_from_assert): Likewise.
12285         (vrp_int_const_binop): Likewise.
12286         (extract_range_from_binary_expr): Likewise.
12287         (extract_range_from_unary_expr): Likewise.
12288         (check_array_ref): Likewise.
12289         (find_case_label_range): Likewise.
12290         (simplify_div_or_mod_using_ranges): Likewise.
12291         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
12292         comparing case labels for merging.
12293
12294 2011-05-03  Mark Wielaard  <mjw@redhat.com>
12295
12296         * dwarf2out.c (debug_str_hash_forced): Removed.
12297         (gen_label_for_indirect_string): Removed.
12298         (get_debug_string_label): Removed.
12299         (AT_string_form): Generate label directly.
12300         (output_indirect_string): Test indirect_string_node for
12301         DW_FORM_strp instead of checking label and refcount.
12302         (prune_indirect_string): Removed.
12303         (prune_unused_types): Don't check debug_str_hash_forced or
12304         call prune_indirect_string.
12305
12306 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
12307
12308         PR other/48093
12309         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
12310
12311 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
12312
12313         PR debug/47994
12314         PR debug/47919
12315         * combine.c (try_combine): Skip debug insns at m_split tests.
12316
12317 2011-04-26  Mark Wielaard  <mjw@redhat.com>
12318
12319         PR42288
12320         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
12321         when info_section_emitted.
12322
12323 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
12324
12325         * config/mips/mips-opts.h: New.
12326         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
12327         to mips-opts.h.
12328         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
12329         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
12330         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
12331         via opts pointer.
12332         * config/mips/mips.h (enum mips_code_readable_setting): Move to
12333         mips-opts.h.
12334         (mips_abi, mips_code_readable): Don't declare.
12335         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
12336         (mabi=): Use Enum and Var.
12337         (mips_abi): New Enum and EnumValue entries.
12338         (mcode-readable=): Use Enum and Var.
12339         (mips_code_readable_setting): New Enum and EnumValue entries.
12340         (mr10k-cache-barrier=): Use Enum and Var.
12341         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
12342
12343 2011-05-03  Jan Hubicka  <jh@suse.cz>
12344
12345         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
12346         replace hash by pointer map.
12347         (cgraph_node_set_element_def, cgraph_node_set_element,
12348         const_cgraph_node_set_element, varpool_node_set_element_def,
12349         varpool_node_set_element, const_varpool_node_set_element): Remove.
12350         (free_cgraph_node_set, free_varpool_node_set): New function.
12351         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
12352         * tree-emutls.c: Free varpool node set.
12353         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
12354         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
12355         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
12356         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
12357         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
12358         Move here from ipa.c; implement using pointer_map
12359         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
12360         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
12361         debug_cgraph_node_set, varpool_node_set_new,
12362         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
12363         dump_varpool_node_set, debug_varpool_node_set):
12364         Move to ipa-uitls.c.
12365         * passes.c (ipa_write_summaries): Update.
12366
12367 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12368
12369         From Mike Frysinger:
12370         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
12371         bf542/bf544/bf547/bf548/bf549.
12372
12373 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
12374
12375         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
12376
12377 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12378
12379         From Bernd Schmidt:
12380         * config/bfin/bfin.md (MOVCC): New mode_macro.
12381         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
12382         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
12383         comments from generated assembly.
12384
12385 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12386
12387         From Bernd Schmidt
12388         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
12389         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
12390         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
12391         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
12392         * config/bfin/lib1funcs.asm (___muldi3): New function.
12393
12394 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12395
12396         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
12397         build_function_type_list instead of build_function_type.
12398         Rearrange initialization of `args' to do so.
12399
12400 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12401
12402         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
12403         instead of build_function_type.
12404
12405 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12406
12407         * config/rs6000/rs6000.c (spe_init_builtins): Call
12408         build_function_type_list instead of build_function_type.
12409         (paired_init_builtins, altivec_init_builtins): Likewise.
12410         (builtin_function_type): Likewise.
12411
12412 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12413
12414         * config/sh/sh.c (sh_media_init_builtins): Call
12415         build_function_type_list instead of build_function_type.
12416
12417 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12418
12419         * config/sparc/sparc.c (sparc_file_end): Call
12420         build_function_type_list instead of build_function_type.
12421
12422 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12423
12424         * config/alpha/alpha.c (alpha_init_builtins): Call
12425         build_function_type_list instead of build_function_type.
12426
12427 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12428
12429         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
12430         build_function_type_list instead of build_function_type.
12431
12432 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12433
12434         * config/iq2000/i2000.c (iq2000_init_builtins): Call
12435         build_function_type_list instead of build_function_type.
12436         Delete `endlink' variable.
12437
12438 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12439
12440         * config/avr/avr.c (avr_init_builtins): Call
12441         build_function_type_list instead of build_function_type.
12442
12443 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12444
12445         * config/picochip/picochip.c (picochip_init_builtins): Call
12446         build_function_type_list instead of build_function_type.
12447         Delete `endlink' variable.
12448
12449 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12450
12451         * config/bfin/bfin.c (bfin_init_builtins): Call
12452         build_function_type_list instead of build_function_type.
12453
12454 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12455
12456         From Bernd Schmidt
12457         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
12458         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
12459
12460 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12461
12462         From Jie Zhang:
12463         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
12464         libbffastfp overrides libgcc when -mfast-fp.
12465
12466 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12467
12468         Originally from Bernd Schmidt
12469         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
12470         * config/bfin/bfin.c (override_options): Test it and error if
12471         TARGET_FDPIC.
12472
12473 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12474
12475         Originally From Bernd Schmidt
12476         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
12477         FD-PIC.
12478
12479 2011-05-03  Jeff Law  <law@redhat.com>
12480
12481         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
12482         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
12483         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
12484         than accessing AUX field directly.  Free the AUX field before
12485         clearing it.
12486         (thread_block, thread_through_loop_header): Likewise.
12487         (thread_single_edge, mark_threaded_blocks): Likewise.
12488         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
12489         (register_jump_thread): Do not attempt to thread to a NULL edge.
12490
12491 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
12492
12493         * function.c (init_function_start): Call decide_function_section.
12494         * varasm.c (decide_function_section): New function.
12495         (assemble_start_function): When not using
12496         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
12497         or first_function_block_is_cold.
12498         * rtl.h (decide_function_section): Declare.
12499
12500 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
12501             Jakub Jelinek  <jakub@redhat.com>
12502
12503         PR target/48774
12504         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
12505         only succeed if req_mode is the same as set_mode.
12506
12507 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
12508
12509         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
12510         * genemit.c (gen_exp): Handle RETURN.
12511         * emit-rtl.c (verify_rtx_sharing): Likewise.
12512         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
12513         * rtl.c (copy_rtx): RETURN is shared.
12514         * rtl.h (enum global_rtl_index): Add GR_RETURN.
12515         (ret_rtx): New.
12516         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
12517         * config/s390/s390.c (s390_emit_epilogue): Likewise.
12518         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
12519         * config/cris/cris.c (cris_expand_return): Likewise.
12520         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
12521         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
12522         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
12523         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
12524         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
12525         Likewise.
12526         * config/v850/v850.c (expand_epilogue): Likewise.
12527         * config/bfin/bfin.c (bfin_expand_call): Likewise.
12528         * config/arm/arm.md (epilogue): Likewise.
12529         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
12530         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
12531         variable to ret_reg.
12532
12533 2011-05-03  Richard Guenther  <rguenther@suse.de>
12534
12535         PR lto/48846
12536         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
12537         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
12538         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
12539
12540 2011-05-03  Richard Guenther  <rguenther@suse.de>
12541
12542         * c-decl.c (grokdeclarator): Instead of looking at
12543         TREE_OVERFLOW check if the constant fits in the index type.
12544
12545 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
12546
12547         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
12548         (vec_store_lanes<mode><mode>): Likewise.
12549
12550 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
12551
12552         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
12553         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
12554         convert_optab_index values.
12555         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
12556         * genopinit.c (optabs): Initialize the new optabs.
12557         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
12558         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
12559         (expand_STORE_LANES): New functions.
12560         * tree.h (build_array_type_nelts): Declare.
12561         * tree.c (build_array_type_nelts): New function.
12562         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
12563         (vect_model_load_cost): Likewise.
12564         (vect_store_lanes_supported, vect_load_lanes_supported)
12565         (vect_record_strided_load_vectors): Declare.
12566         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
12567         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
12568         (vect_transform_strided_load): Split out statement recording into...
12569         (vect_record_strided_load_vectors): ...this new function.
12570         * tree-vect-stmts.c (create_vector_array, read_vector_array)
12571         (write_vector_array, create_array_ref): New functions.
12572         (vect_model_store_cost): Add store_lanes_p argument.
12573         (vect_model_load_cost): Add load_lanes_p argument.
12574         (vectorizable_store): Try to use store-lanes functions for
12575         interleaved stores.
12576         (vectorizable_load): Likewise load-lanes and loads.
12577         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
12578         to vect_model_store_cost.
12579         (vect_build_slp_tree): Likewise vect_model_load_cost.
12580
12581 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
12582
12583         * hooks.h (hook_bool_mode_uhwi_false): Declare.
12584         * hooks.c (hook_bool_mode_uhwi_false): New function.
12585         * target.def (array_mode_supported_p): New hook.
12586         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
12587         * doc/tm.texi: Regenerate.
12588         * stor-layout.c (mode_for_array): New function.
12589         (layout_type): Use it.
12590         * config/arm/arm.c (arm_array_mode_supported_p): New function.
12591         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
12592
12593 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
12594
12595         PR target/48723
12596         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
12597         for -fstack-check if the size to allocate is negative.
12598
12599 2011-05-02  Lawrence Crowl  <crowl@google.com>
12600
12601         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
12602         (timevar_cond_start): New for starting a timer only when it is not
12603         already running.
12604         (timevar_cond_stop): New for stopping a timer when it was not already
12605         running.
12606
12607         * timevar.c (timevar_stop): Enable start/stop timers to start again.
12608         (timevar_cond_start): New as above.
12609         (timevar_cond_stop): New as above.
12610
12611         * timevar.def: Add start/stop timers for compiler phases,
12612         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
12613         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
12614         and TV_PHASE_FINALIZE.
12615         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
12616         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
12617         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
12618         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
12619         Make unused TV_OVERLOAD into a start/stop timer.
12620
12621         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
12622         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
12623         to indicate that they are start/stop timers.
12624
12625         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
12626         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
12627         Move initialization to do_compile.
12628         (do_compile): Add initialization from above.
12629         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
12630
12631         * c-decl.c (c_write_global_declarations): Add start/stop of
12632         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
12633
12634         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
12635         or TV_PARSE_INLINE, as appropriate.
12636         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
12637         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
12638
12639 2011-05-02  Jason Merrill  <jason@redhat.com>
12640
12641         PR c++/40975
12642         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
12643
12644 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
12645
12646         PR c/35445
12647         * c-decl.c (finish_decl): Only create a composite if the types are
12648         compatible.
12649
12650 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
12651
12652         * config/fr30/fr30-protos.h (Mmode): Don't define.
12653         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
12654         definition where used.
12655         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
12656         define.  Expand definitions where used.
12657         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
12658         Expand definitions where used.
12659         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
12660         rx_function_arg, rx_function_arg_advance,
12661         rx_function_arg_boundary): Expand definitions of those macros.
12662         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
12663         definition where used.
12664
12665 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
12666
12667         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
12668         reg<->xmm moves.
12669         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
12670         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
12671         with *movv2sf_internal_rex64_avx.
12672         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
12673         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
12674         Use %v prefix in insn mnemonic to handle TARGET_AVX.
12675         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
12676         "vex" in "prefix" attribute calculation.
12677         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
12678
12679 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
12680
12681         PR target/47951
12682         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
12683         inputs match the output.
12684
12685 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
12686
12687         PR target/47955
12688         * config/m68k/m68k.c (m68k_expand_prologue): Set
12689         current_function_static_stack_size.
12690
12691 2011-05-02   Jan Hubicka  <jh@suse.cz>
12692
12693         * lto-streamer.c (lto_streamer_cache_insert_1,
12694         lto_streamer_cache_lookup, lto_streamer_cache_create,
12695         lto_streamer_cache_delete): Use pointer map instead of hashtable.
12696         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
12697
12698 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
12699
12700         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
12701         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
12702         config/m68k/t-opts: New files.
12703         * config/m68k/m68k-tables.opt: New file (generated).
12704         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
12705         extra_options and m68k/t-opts to tmake_file.
12706         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
12707         (all_isas): Initialize using m68k-isas.def.
12708         (all_microarchs): Initialize using m68k-microarchs.def.
12709         (m68k_find_selection): Remove.
12710         (m68k_handle_option): Don't assert that global structures are in
12711         use.  Use error_at.  Access variables via opts pointer.  Don't
12712         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
12713         directly for -m68020-40 and -m68020-60.
12714         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
12715         m68k_tune_entry here.
12716         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
12717         to m68k-opts.h.
12718         (m68k_library_id_string): Remove declaration.
12719         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
12720         (m68k_library_id_string): New Variable.
12721         (march=, mcpu=, mtune=): Use Enum and Var.
12722
12723 2011-05-02  Richard Guenther  <rguenther@suse.de>
12724
12725         * varasm.c (output_constructor_regular_field): Compute zero-based
12726         index with double-ints.  Make sure to ICE instead of producing
12727         wrong code.
12728         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
12729         in asserts.  Properly use a signed type.
12730
12731 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
12732
12733         * config/i386/sse.md (V): New mode iterator.
12734         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
12735         TARGET_SSE2.
12736         (V_256): Rename from AVX256MODE.
12737         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
12738         condition to all users.
12739         (VF1): Ditto.
12740         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
12741         condition to all users.
12742         (VF_128): Make V4SF mode unconditional.
12743         (VF_256): Rename from AVX256MODEF2P.
12744         (VI4F_128): Rename from SSEMODE4S.
12745         (VI8F_128): Rename from SSEMODE2D.
12746         (VI4F_256): Rename from AVX256MODE8P.
12747         (VI8F_256): Rename from AVX256MODE4P.
12748         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
12749         (ssescalarmodesuffix): Remove SF and DF modes.
12750         (SSEMODE124): Remove.
12751         (SSEMODE1248): Ditto.
12752         (SSEMODEF2P): Ditto.
12753         (AVXMODEF2P): Ditto.
12754         (AVXMODEFDP): Ditto.
12755         (AVXMODEFSP): Ditto.
12756         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
12757         unconditional.
12758         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
12759         unconditional.
12760         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
12761         xop_pcmov_<mode>256.  Use V mode iterator.
12762
12763         Adjust RTX patterns globally for renamed mode attributes.
12764
12765 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12766
12767         * haifa-sched.c (sched_emit_insn): Emit insn before first
12768         non-scheduled insn.  Inform back-end about new insn.  Add
12769         new insn to scheduled_insns list.
12770
12771 2011-05-02  Richard Guenther  <rguenther@suse.de>
12772
12773         PR tree-optimization/48822
12774         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
12775         (process_scc): Indicate which iteration we start.
12776
12777 2011-05-02  Jan Hubicka  <jh@suse.cz>
12778
12779         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
12780         (lto_section_overrun): New.
12781         * lto-section-out.c (append_block): Rename to ...
12782         (lto_append_block): ... this one; export.
12783         (lto_output_1_stream): Move lto lto-streamer.h
12784         (lto_output_data_stream): Update.
12785         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
12786         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
12787         functions.
12788
12789 2011-05-02  Richard Guenther  <rguenther@suse.de>
12790
12791         * tree.c (tree_code_counts): New global array.
12792         (record_node_allocation_statistics): Count individual tree codes.
12793         (dump_tree_statistics): Dump individual code stats.
12794
12795 2011-05-01  Jan Hubicka  <jh@suse.cz>
12796
12797         * ipa-inline.c (caller_growth_limits): Fix thinko when
12798         looking for largest stack frame.
12799         * ipa-inline.h (dump_inline_summary): Declare.
12800         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
12801         on stack usage.
12802         (dump_inline_summary): Export.
12803         (debug_inline_summary): Declare as DEBUG_FUNCTION.
12804
12805 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
12806
12807         * reginfo.c (memory_move_cost): Change rclass argument type form
12808         'enum reg_class' to reg_class_t.
12809         * reload.h (memory_move_cost): Update prototype.
12810         * postreload.c reload_cse_simplify_set): Change type dclass var to
12811         reg_class_t.
12812         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
12813         Update prototype.
12814         (ira_allocate_and_set_costs): Change aclass argument type form
12815         'enum reg_class' to reg_class_t.
12816         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
12817         Change aclass argument type to reg_class_t.
12818         (update_conflict_hard_reg_costs): Change type aclass and pref vars
12819         to reg_class_t.
12820         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
12821         memory_move_cost call.
12822
12823         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
12824         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
12825         Change type tmp var to reg_class_t.
12826
12827 2011-04-30  Jan Hubicka  <jh@suse.cz>
12828
12829         * ipa-inline.c (can_inline_edge_p): Disregard limits when
12830         inlining into function with flatten attribute.
12831         (want_inline_small_function_p): Be more realistic about inlining
12832         cold calls where callee size grows.
12833
12834 2011-04-30  Jan Hubicka  <jh@suse.cz>
12835
12836         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
12837         flags.
12838
12839 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
12840
12841         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
12842         PRINT_OPERAND_PUNCT_VALID_P): Remove.
12843         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
12844         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
12845         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12846         (print_operand): Rename to...
12847         (sparc_print_operand): ...this. Make static. Adjust
12848         sparc_print_operand function call.
12849         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
12850         functions.
12851
12852 2011-04-30  Jan Hubicka  <jh@suse.cz>
12853
12854         PR middle-end/48752
12855         * ipa-inline.c (early_inliner): Disable when doing late
12856         addition of function.
12857
12858 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
12859
12860         * dwarf2out.c (get_address_mode): New inline.
12861         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
12862         if not dwarf_strict emit
12863         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
12864         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
12865         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
12866         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
12867         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
12868         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
12869         mem_loc_descriptor callers.
12870         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
12871         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
12872         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
12873         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
12874         (base_types): New variable.
12875         (get_base_type_offset, calc_base_type_die_sizes,
12876         base_type_for_mode, mark_base_types, base_type_cmp,
12877         move_marked_base_types): New functions.
12878         (calc_die_sizes): Assert that die_offset is 0 or equal to
12879         next_die_offset.
12880         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
12881         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
12882         callers.  If not dwarf_strict, call mem_loc_descriptor even for
12883         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
12884         (gen_subprogram_die): Don't give up on call site parameters
12885         with non-integral or large integral modes.  Adjust
12886         mem_loc_descriptor callers.
12887         (prune_unused_types): Call prune_unused_types_mark on base_types
12888         vector entries.
12889         (resolve_addr): Call mark_base_types.
12890         (dwarf2out_finish): Call move_marked_base_types.
12891
12892         PR tree-optimization/48809
12893         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
12894         type.
12895         (gen_inbound_check): Don't compute index_expr - range_min in utype
12896         again, instead reuse SSA_NAME initialized in build_arrays.
12897         Remove two useless gsi_for_stmt calls.
12898
12899 2011-04-29  Jeff Law  <law@redhat.com>
12900
12901         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
12902
12903 2011-04-29  Martin Jambor  <mjambor@suse.cz>
12904
12905         * cgraph.h (cgraph_postorder): Remove declaration.
12906         * ipa-utils.h (ipa_free_postorder_info): Declare.
12907         (ipa_reverse_postorder): Likewise.
12908         * cgraphunit.c: Include ipa-utils.h.
12909         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
12910         * ipa-inline.c: Include ipa-utils.h.
12911         (ipa_inline): Update call to ipa_reverse_postorder.
12912         * ipa-pure-const.c (propagate_pure_const): Update call to
12913         ipa_reduced_postorder and ipa_print_order.  Call
12914         ipa_free_postorder_info to clean up.
12915         (propagate_nothrow): Likewise.
12916         * ipa-reference.c (propagate): Removed a useless call to
12917         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
12918         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
12919         * ipa.c: Include ipa-utils.h.
12920         (ipa_profile): Update call to ipa_reverse_postorder.
12921         (cgraph_postorder): Moved to...
12922         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
12923         (ipa_utils_print_order): Renamed to ipa_print_order.
12924         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
12925         comments.
12926         (ipa_free_postorder_info): New function.
12927         * passes.c: Include ipa-utils.h.
12928         (do_per_function_toporder): Update call to ipa_reverse_postorder.
12929         (ipa_write_summaries): Likewise.
12930         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
12931         (cgraphunit.o): Likewise.
12932         (ipa.o): Likewise.
12933         (ipa-inline.o): Likewise.
12934
12935 2011-04-29  Jan Hubicka  <jh@suse.cz>
12936
12937         * gcc.dg/tree-ssa/inline-10.c: New testcase.
12938         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
12939         * ipa-inline.h (clause_t): Turn into unsigned int.
12940         * ipa-inline-analysis.c (add_clause): Do more simplification.
12941         (and_predicates): Shortcut more cases.
12942         (predicates_equal_p): Move forward; check that clauses are properly
12943         ordered.
12944         (or_predicates): Shortcut more cases.
12945         (edge_execution_predicate): Rewrite as...
12946         (set_cond_stmt_execution_predicate): ... this function; handle
12947         __builtin_constant_p.
12948         (set_switch_stmt_execution_predicate): New .
12949         (compute_bb_predicates): New.
12950         (will_be_nonconstant_predicate): Update TODO.
12951         (estimate_function_body_sizes): Use compute_bb_predicates
12952         and free them later, always try to estimate if stmt is constant.
12953         (estimate_time_after_inlining, estimate_size_after_inlining):
12954         Gracefully handle optimized out edges.
12955         (read_predicate): Fix off by one error.
12956
12957 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12958
12959         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
12960
12961 2011-04-27  Xinliang David Li  <davidxl@google.com>
12962
12963         * tree-profile.c (init_ic_make_global_vars): Set
12964         tls attribute on ic vars.
12965         * coverage.c (coverage_end_function): Initialize
12966         function_list with zero.
12967
12968 2011-04-29  Richard Guenther  <rguenther@suse.de>
12969
12970         * builtins.c (fold_builtin_classify_type): Use integer_type_node
12971         for the type of the result.
12972         (fold_builtin_isascii): Likewise.
12973         (fold_builtin_toascii): Use integer_type_node where appropriate.
12974         (fold_builtin_logb): Likewise.
12975         (fold_builtin_frexp): Likewise.
12976         (fold_builtin_strstr): Likewise.
12977         (fold_builtin_strpbrk): Likewise.
12978         (fold_builtin_fputs): Likewise.
12979         (fold_builtin_sprintf): Likewise.
12980         (fold_builtin_snprintf): Likewise.
12981         (fold_builtin_printf): Likewise.
12982         (do_mpfr_remquo): Use a proper type for the assigned constant.
12983         (do_mpfr_lgamma_r): Likewise.
12984         * dwarf2out.c (resolve_one_addr): Use size_int.
12985         * except.c (init_eh): Likewise.
12986         (assign_filter_values): Use integer_type_node for filter values.
12987         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
12988         indices.
12989         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
12990         for EH region numbers.
12991         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
12992         for the shift amount.
12993
12994 2011-04-29  Richard Guenther  <rguenther@suse.de>
12995
12996         * expr.h (expand_shift): Rename to ...
12997         (expand_variable_shift): ... this.
12998         (expand_shift): Take a constant shift amount.
12999         * expmed.c (expand_shift): Rename to ...
13000         (expand_variable_shift): ... this.
13001         (expand_shift): New wrapper around expand_variable_shift.
13002         * expr.c (convert_move, emit_group_load_1, emit_group_store,
13003         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
13004         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
13005         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
13006         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
13007         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
13008         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
13009         emit_store_flag_1, emit_store_flag): Likewise.
13010         * builtins.c (expand_builtin_signbit): Likewise.
13011         * calls.c (load_register_parameters): Likewise.
13012         * function.c (assign_parm_setup_block): Likewise.
13013         * lower-subreg.c (resolve_shift_zext): Likewise.
13014         * optabs.c (widen_bswap, expand_abs_nojump,
13015         expand_one_cmpl_abs_nojump, expand_float): Likewise.
13016         * spu/spu.c (spu_expand_extv): Likewise.
13017         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
13018
13019 2011-04-29  Richard Guenther  <rguenther@suse.de>
13020
13021         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
13022         for the remapped region number.
13023         * predict.c (build_predict_expr): Use integer_type_node for the
13024         predict kind.
13025         * fold-const.c (fold_binary_loc): Use integer_type_node for
13026         the shift amount.  Use a proper type for the PLUS_EXPR operand.
13027
13028 2011-04-29  Michael Matz  <matz@suse.de>
13029
13030         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
13031         other trees that just builtins.
13032         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
13033
13034 2011-04-29  Richard Guenther  <rguenther@suse.de>
13035
13036         * tree-nested.c (get_trampoline_type): Use size_int.
13037         (get_nl_goto_field): Likewise.
13038         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
13039         for all indexes.
13040         (lower_eh_constructs_2): Likewise.
13041         (lower_resx): Likewise.
13042         (lower_eh_dispatch): Likewise.
13043         * tree-mudflap.c (mf_build_string): Use size_int.
13044         (mudflap_register_call): Use integer_type_node for the flag.
13045         (mudflap_enqueue_constant): Use size_int.
13046         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
13047         instead of rebuilding it.
13048
13049 2011-04-29  Richard Guenther  <rguenther@suse.de>
13050
13051         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
13052         Handle OBJ_TYPE_REF.
13053         (find_func_aliases_for_call): Use it more consistently.
13054
13055 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
13056
13057         * haifa-sched.c (last_nondebug_scheduled_insn): New.
13058         (rank_for_schedule): Use it.
13059         (schedule_block): Set it.
13060
13061 2011-04-28  David Li  <davidxl@google.com>
13062
13063         * tree.c (crc32_string): Use crc32_byte.
13064         (crc32_byte): New function.
13065         * tree.h (crc32_byte): New function.
13066         * gcov.c (read_graph_file): Handle new cfg_cksum.
13067         (read_count_file): Ditto.
13068         * profile.c (instrument_values): Ditto.
13069         (get_exec_counts): Ditto.
13070         (read_profile_edge_counts): Ditto.
13071         (compute_branch_probabilities): Ditto.
13072         (compute_value_histograms): Ditto.
13073         (branch_prob): Ditto.
13074         (end_branch_prob): Ditto.
13075         * coverage.c (read_counts_file): Ditto.
13076         (get_coverage_counts): Ditto.
13077         (tree_coverage_counter_addr): Ditto.
13078         (coverage_checksum_string): Ditto.
13079         (coverage_begin_output): Ditto.
13080         (coverage_end_function): Ditto.
13081         (build_fn_info_type): Ditto.
13082         (build_fn_info_value): Ditto.
13083         * libgcov.c (gcov_exit): Ditto.
13084         * gcov-dump.c (tag_function): Ditto.
13085         (compute_checksum): Remove.
13086
13087 2011-04-29  Alan Modra  <amodra@gmail.com>
13088
13089         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
13090         unspec plus offset.  Tidy macho code.
13091
13092 2011-04-29  Martin Jambor  <mjambor@suse.cz>
13093
13094         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
13095         node instead of a decl.  Update all callers.
13096         * cgraph.h: Update declaration.
13097
13098 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
13099
13100         PR tree-optimization/48765
13101         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
13102         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
13103         to indicate if loop aware SLP is being used.  Scan the statements
13104         and update the vectorization factor according to the type of
13105         vectorization before statement analysis.
13106         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
13107         pass it to vect_analyze_loop_operations.
13108         (vectorizable_reduction): Set number of copies to 1 in case of pure
13109         SLP statement.
13110         * tree-vect-stmts.c (vectorizable_conversion,
13111         vectorizable_assignment, vectorizable_shift,
13112         vectorizable_operation, vectorizable_type_demotion,
13113         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
13114         Likewise.
13115         (vectorizable_condition): Move the check that it is not SLP
13116         vectorization before the number of copies check.
13117         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
13118         to vectorize the loop using SLP.
13119
13120 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
13121
13122         PR middle-end/48597
13123         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
13124         inline asm.
13125
13126 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
13127
13128         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
13129         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
13130         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
13131         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
13132         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
13133         linux*.h headers.
13134         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
13135         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13136         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13137         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13138         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13139         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
13140         REG_NAME.
13141         * config/i386/linux.h (REG_NAME): Don't define.
13142         * config/i386/linux64.h (REG_NAME): Don't define.
13143         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
13144         Undefine before defining.
13145
13146 2011-04-28  Jan Hubicka  <jh@suse.cz>
13147
13148         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
13149         nonconstant_names array.
13150         (estimate_function_body_sizes): Build nonconstant_names array; handle
13151         BUILT_IN_CONSTANT_P.
13152
13153 2011-04-28  Richard Guenther  <rguenther@suse.de>
13154
13155         PR bootstrap/48804
13156         Revert
13157         2011-04-28  Richard Guenther  <rguenther@suse.de>
13158
13159         * tree-ssa-structalias.c (solve_constraints): Build succ graph
13160         as late as possible.
13161
13162 2011-04-28  Richard Guenther  <rguenther@suse.de>
13163
13164         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
13165         (debug_constraint): Do it here.
13166         (dump_constraints): And here.
13167         (rewrite_constraints): And here.
13168         (dump_constraint_edge): Remove.
13169         (dump_constraint_graph): Rewrite to produce DOT output.
13170         (solve_constraints): Build succ graph as late as possible.
13171         Dump constraint graphs before and after solving.
13172
13173 2011-04-28  Richard Guenther  <rguenther@suse.de>
13174
13175         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
13176         New function split out from ...
13177         (find_func_aliases): ... here.  Call it.
13178         (find_func_aliases_for_call): Likewise.
13179
13180 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13181
13182         * internal-fn.h (internal_fn_name_array): Declare.
13183         (internal_fn_flags_array): Likewise.
13184
13185 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
13186
13187         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
13188         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
13189         Move from sse.md.
13190         (ssemodefsuffix): Remove.
13191         (ssevecmodesuffix): New mode attribute.
13192         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
13193         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
13194         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
13195         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
13196         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
13197         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
13198         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
13199         ssemodesuffix mode attribute.
13200         (float splitters): Use ssevecmodesuffix mode attribute.
13201         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
13202         (sseinsmode): Rename from avxvecmode.
13203         (avxsizesuffix): Rename from avxmodesuffix.
13204         (sseintvecmode): Rename from avxpermvecmode.
13205         (ssedoublevecmode): Rename from ssedoublesizemode.
13206         (ssehalfvecmode): Rename from avxhalfvecmode.
13207         (ssescalarmode): Rename from avxscalarmode.
13208         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
13209         templates for ssemodesuffix mode attribute.
13210         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
13211         mode attribute.
13212
13213         Adjust RTX patterns globally for renamed mode attributes.
13214
13215 2011-04-27  Jan Hubcika  <jh@suse.cz>
13216
13217         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
13218         * ipa-inline-analysis.c: Include alloc-pool.h.
13219         (edge_predicate_pool): New.
13220         (trye_predicate_p): New function
13221         (false_predicate_p): New function.
13222         (add_clause): Sanity check that false clauses are "optimized";
13223         never add clauses to predicate that is already known to be false.
13224         (and_predicate): Use flase_predicate_p.
13225         (evaulate_predicate): Rename to ...
13226         (evaluate_predicate): ... this one; update all callers; assert
13227         that false is not listed among possible truths.
13228         (dump_predicate): Use true_predicate_p.
13229         (account_size_time): Use false_predicate_p.
13230         (evaulate_conditions_for_edge): Rename to ...
13231         (evaluate_conditions_for_edge) ... this one.
13232         (edge_set_predicate): New function.
13233         (inline_edge_duplication_hook): Duplicate edge predicates.
13234         (inline_edge_removal_hook): Free edge predicates.
13235         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
13236         (dump_inline_summary): Update.
13237         (estimate_function_body_sizes): Set edge predicates.
13238         (estimate_calls_size_and_time): Handle predicates.
13239         (estimate_callee_size_and_time): Update.
13240         (remap_predicate): Add toplev_predicate; update comment.
13241         (remap_edge_predicates): New function.
13242         (inline_merge_summary): Compute toplev predicate; update.
13243         (read_predicate): New function.
13244         (read_inline_edge_summary): Use it.
13245         (inline_read_section): Likewise.
13246         (write_predicate): New function.
13247         (write_inline_edge_summary): Use it.
13248         (inline_write_summary): Likewise.
13249         (inline_free_summary): Free alloc pool and edge summary vec.
13250
13251 2011-04-27  Richard Guenther  <rguenther@suse.de>
13252
13253         * tree-ssa-structalias.c (changed_count): Remove.
13254         (changed): Use a bitmap.
13255         (unify_nodes): Adjust.
13256         (do_sd_constraint): Likewise.
13257         (do_ds_constraint): Likewise.
13258         (do_complex_constraint): Likewise.
13259         (solve_graph): Likewise.
13260
13261 2011-04-27  Jan Hubicka  <jh@suse.cz>
13262
13263         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
13264
13265 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
13266
13267         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
13268         (avx_vperm2f128_*_operand): Ditto.
13269         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
13270         Use avx_vpermilp_parallel in insn condition.
13271         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
13272         Use avx_vperm2f128_parallel in insn condition.
13273
13274 2011-04-27  Richard Guenther  <rguenther@suse.de>
13275
13276         * Makefile.in (tree-ssa-structalias.o): Remove
13277         gt-tree-ssa-structalias.h dependency.
13278         (GTFILES): Remove tree-ssa-structalias.c.
13279         * tree.c (allocate_decl_uid): New function.
13280         (make_node_stat): Use it.
13281         (copy_node_stat): Likewise.
13282         * tree.h (allocate_decl_uid): Declare.
13283         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
13284         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
13285         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
13286         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
13287         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
13288         (struct heapvar_map): Likewise.
13289         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
13290         heapvar_insert): Likewise.
13291         (make_heapvar_for): Rename to ...
13292         (make_heapvar): ... this.  Simplify.
13293         (fake_var_decl_obstack): New global var.
13294         (build_fake_var_decl): New function.
13295         (make_constraint_from_heapvar): Adjust.
13296         (handle_lhs_call): Likewise.
13297         (create_function_info_for): Likewise.
13298         (intra_create_variable_infos): Likewise.
13299         (init_alias_vars): Allocate fake_var_decl_obstack.
13300         (init_alias_heapvars, delete_alias_heapvars): Remove.
13301         (compute_points_to_sets): Do not call init_alias_heapvars.
13302         (ipa_pta_execute): Likewise.
13303         (delete_points_to_sets): Free fake_var_decl_obstack.
13304
13305 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13306
13307         * config/spu/divmovti4.c (union qword_UTItype): New data type.
13308         (si_from_UTItype, si_to_UTItype): New functions.
13309         (__udivmodti4): Use them to implement type-punning.
13310         * config/spu/multi3.c (union qword_TItype): New data type.
13311         (si_from_TItype, si_to_TItype): New functions.
13312         (__multi3): Use them to implement type-punning.
13313
13314 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13315
13316         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
13317
13318 2011-04-27  Jan Hubicka  <jh@suse.cz>
13319
13320         * ipa-prop.c (function_insertion_hook_holder): New holder.
13321         (ipa_add_new_function): New function.
13322         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
13323         Register/deregister holder.
13324
13325 2011-04-27  Richard Guenther  <rguenther@suse.de>
13326
13327         PR tree-optimization/48772
13328         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
13329
13330 2011-04-27  Richard Guenther  <rguenther@suse.de>
13331
13332         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
13333         TARGET_MEM_REF handling.
13334
13335 2011-04-27  Nick Clifton  <nickc@redhat.com>
13336
13337         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
13338         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
13339         (REG_CLASS_NAMES): Likewise.
13340         (REG_CLASS_CONTENTS): Likewise.
13341         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
13342         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
13343         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
13344         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
13345         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
13346         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
13347         duplicate register classes.
13348         (frv_class_likely_spilled_p): Likewise.
13349         (frv_register_move_cost): Likewise.
13350
13351         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
13352         end of the regno_reg_class array.
13353
13354 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
13355
13356         PR c/48742
13357         * c-typeck.c (build_binary_op): Don't wrap arguments if
13358         int_operands is true.
13359
13360 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
13361
13362         PR target/48767
13363         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
13364         targetm.calls.must_pass_in_stack for void type.
13365
13366 2011-04-26  Jan Hubicka  <jh@suse.cz>
13367
13368         * cgraphbuild.c (build_cgraph_edges): Update call
13369         of cgraph_create_edge and cgraph_create_indirect_edge.
13370         * cgraph.c (cgraph_create_edge_including_clones,
13371         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
13372         cgraph_update_edges_for_call_stmt_node): Do not take nest
13373         argument; do not initialize call_stmt_size/time.
13374         (dump_cgraph_node): Do not dump nest.
13375         (cgraph_clone_edge): Do not take loop_nest argument;
13376         do not propagate it; do not clone call_stmt_size/time.
13377         (cgraph_clone_node): Likewise.
13378         (cgraph_create_virtual_clone): Update.
13379         * cgraph.h (struct cgraph_edge): Remove
13380         call_stmt_size/call_stmt_time/loop_nest.
13381         (cgraph_create_edge, cgraph_create_indirect_edge,
13382         cgraph_create_edge_including_clones, cgraph_clone_node): Update
13383         prototype.
13384         * tree-emutls.c (gen_emutls_addr): Update.
13385         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
13386         loop_nest; handle indirect calls, too.
13387         (clone_inlined_nodes): Do not care about updating inline summaries.
13388         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
13389         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
13390         stream call_stmt_size/call_stmt_time/loop_nest.
13391         * ipa-inline.c (edge_badness): Update.
13392         (ipa_inline): dump summaries after inlining.
13393         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
13394         New.
13395         (inline_edge_summary): New function.
13396         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
13397         (inline_edge_removal_hook): Handle edge summaries.
13398         (inline_edge_duplication_hook): New hook.
13399         (inline_summary_alloc): Alloc hooks.
13400         (initialize_growth_caches): Do not register removal hooks.
13401         (free_growth_caches); Do not free removal hook.
13402         (dump_inline_edge_summary): New function.
13403         (dump_inline_summary): Use it.
13404         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
13405         (inline_update_callee_summaries): New function.
13406         (inline_merge_summary): Use it.
13407         (do_estimate_edge_time, do_estimate_edge_growth): Update.
13408         (read_inline_edge_summary): New function.
13409         (inline_read_section): Use it.
13410         (write_inline_edge_summary): New function.
13411         (inline_write_summary): Use it.
13412         (inline_free_summary): Free edge new holders.
13413         * tree-inline.c (copy_bb): Update.
13414
13415 2011-04-26  Jason Merrill  <jason@redhat.com>
13416
13417         * tree-eh.c (lower_try_finally_switch): Create the label along with
13418         the CASE_LABEL_EXPR.
13419
13420 2011-04-26  David S. Miller  <davem@davemloft.net>
13421             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13422
13423         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
13424         * configure: Regenerate.
13425
13426 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13427
13428         PR target/48258
13429         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
13430         reduction.
13431         (VEC_reduc): New code iterator and splitters for vector reduction.
13432         (VEC_reduc_name): Ditto.
13433         (VEC_reduc_rtx): Ditto.
13434         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
13435         (reduc_<VEC_reduc_name>_v4sf): Ditto.
13436
13437         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
13438         support for extracting SF on VSX.
13439
13440         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
13441         generating xscvspdp.
13442         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
13443         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
13444         double add, minimum, maximum vector reduction.
13445         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
13446         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
13447         optimize double vector reduction.
13448         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
13449
13450 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
13451
13452         * config/fr30/fr30.h (inhibit_libc): Don't define.
13453         * config/m32r/m32r-protos.h: Correct comment.
13454         * config/v850/v850.h (GHS_default_section_names,
13455         GHS_current_section_names): Use tree, not union tree_node *.
13456
13457 2011-04-26  Xinliang David Li  <davidxl@google.com>
13458
13459         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
13460         * c-family/c-opts.c (c_common_handle_option): Set
13461         warn_maybe_uninitialized.
13462         * opts.c (common_handle_option): Ditto.
13463         * common.opt:  New option.
13464         * tree-ssa.c (warn_uninit): Add one more parameter.
13465         (warn_uninitialized_var): Pass warning code.
13466         * tree-flow.h: Interface change.
13467
13468 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13469
13470         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
13471         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
13472         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
13473
13474 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13475
13476         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
13477         * config/mips/mips.opt (mmips-tfile): Remove.
13478
13479         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
13480         mips-tdump reference to ...
13481         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
13482         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
13483         reference by Tru64 UNIX.
13484
13485 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
13486
13487         PR debug/48768
13488         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
13489         is error_mark_node, set value to NULL.
13490
13491         PR tree-optimization/48734
13492         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
13493         if return value from maybe_fold_*_comparsions isn't something
13494         the code is prepared to handle.
13495
13496 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
13497
13498         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
13499         mode check.
13500         (ext_QIreg_nomode_operands): Remove.
13501         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
13502         (*andsi_1): Ditto.
13503         (*andhi_1): Ditto.
13504
13505 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
13506
13507         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
13508
13509 2011-04-26  Richard Guenther  <rguenther@suse.de>
13510
13511         * c-typeck.c (build_unary_op): Do not expand array-refs via
13512         pointer arithmetic.  Only adjust qualifiers for function types.
13513
13514 2011-04-26  Richard Guenther  <rguenther@suse.de>
13515
13516         PR middle-end/48694
13517         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
13518         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
13519         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
13520         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
13521
13522 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
13523
13524         * doc/extend.texi: Document __underlying_type.
13525
13526 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
13527
13528         * config/rs6000/titan.md (automata_option "progress"): Remove.
13529
13530 2011-04-25  Jeff Law  <law@redhat.com>
13531
13532         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
13533
13534 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
13535
13536         * system.h (ENUM_BITFIELD): Remove.
13537
13538 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
13539             Eric Botcazou  <ebotcazou@adacore.com>
13540
13541         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
13542         for STORE_FLAG_VALUE==-1 case.
13543
13544 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
13545
13546         PR target/43804
13547         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
13548         LEGITIMATE_PIC_OPERAND_P.
13549
13550 2011-04-24  Jan Hubicka  <jh@suse.cz>
13551
13552         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
13553         WPA hack.
13554         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
13555         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
13556         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
13557         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
13558         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
13559         Sanity check predicate length.
13560         (remap_predicate): Likewise; sanity check jump functions.
13561         (inline_read_section, inline_write_summary): Sanity check
13562         predicate length.
13563
13564 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
13565
13566         PR other/48748
13567         * doc/extend.texi (Type Traits): Document __is_standard_layout,
13568         __is_literal_type, and __is_trivial; update throughout about
13569         possibly cv-qualified void types.
13570
13571 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
13572
13573         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
13574         testsuite and make it version agnostic.
13575
13576 2011-04-22  Jan Hubicka  <jh@suse.cz>
13577
13578         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
13579
13580 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
13581
13582         PR c/48685
13583         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
13584         to VOID_TYPE even around MODIFY_EXPR.
13585
13586 2011-04-22  Mike Stump  <mikestump@comcast.net>
13587
13588         * gensupport.c (read_md_rtx): Fix typo in comment.
13589         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
13590         comment.
13591
13592 2011-04-22  Jan Hubicka  <jh@suse.cz>
13593
13594         * gengtype.c (open_base_files): Add ipa-inline.h include.
13595         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
13596         ipa-prop.c; update all uses.
13597         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
13598         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
13599         merge summary of inlined function into former caller.
13600         * ipa-inline.c (max_benefit): Remove.
13601         (edge_badness): Compensate for removal of benefits.
13602         (update_caller_keys): Use
13603         reset_node_growth_cache/reset_edge_growth_cache.
13604         (update_callee_keys): Likewise.
13605         (update_all_callee_keys): Likewise.
13606         (inline_small_functions): Do not collect max_benefit; do not reset
13607         estimated_growth; call free_growth_caches and initialize_growth_caches.
13608         * ipa-inline.h (struct condition, type clause_t, struct predicate,
13609         struct size_time_entry): New structures.
13610         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
13611         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
13612         and estimated_growth.
13613         (edge_growth_cache_entry): New structure.
13614         (node_growth_cache, edge_growth_cache): New global vars.
13615         (estimate_growth): Turn into inline.
13616         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
13617         initialize_growth_caches, free_growth_caches): Declare.
13618         (estimate_edge_growth): Rewrite.
13619         (estimate_edge_time): Implement as inline cache lookup.
13620         (reset_node_growth_cache, reset_edge_growth_cache): New inline
13621         functions.
13622         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
13623         (NUM_CONDITIONS): New constant.
13624         (predicate_conditions): New enum.
13625         (IS_NOT_CONSTANT): New constant.
13626         (edge_removal_hook_holder): New var.
13627         (node_growth_cache, edge_growth_cache): New global vars.
13628         (true_predicate, single_cond_predicate, false_predicate,
13629         not_inlined_predicate, add_condition, add_clause, and_predicates,
13630         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
13631         dump_clause, dump_predicate, account_size_time,
13632         evaulate_conditions_for_edge): New functions.
13633         (inline_summary_alloc): Move to heap.
13634         (inline_node_removal_hook): Clear condition and entry vectors.
13635         (inline_edge_removal_hook): New function.
13636         (initialize_growth_caches, free_growth_caches): New function.
13637         (dump_inline_summary): Update.
13638         (edge_execution_predicate): New function.
13639         (will_be_nonconstant_predicate): New function.
13640         (estimate_function_body_sizes): Compute BB and constantness predicates.
13641         (compute_inline_parameters): Do not clear estimated_growth.
13642         (estimate_edge_size_and_time): New function.
13643         (estimate_calls_size_and_time): New function.
13644         (estimate_callee_size_and_time): New function.
13645         (remap_predicate): New function.
13646         (inline_merge_summary): New function.
13647         (do_estimate_edge_time): New function based on...
13648         (estimate_edge_time): ... this one.
13649         (do_estimate_edge_growth): New function.
13650         (do_estimate_growth): New function based on....
13651         (estimate_growth): ... this one.
13652         (inline_analyze_function): Analyze after deciding on jump functions.
13653         (inline_read_section): New function.
13654         (inline_read_summary): Use it.
13655         (inline_write_summary): Write all the new data.
13656         * ipa-prop.c (ipa_get_param_decl_index): Export.
13657         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
13658         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
13659         Declare.
13660         (ipa_get_lattice): Move here from ipa-cp.c
13661         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
13662         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
13663         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
13664         cgraph_edge_inlinable_p): Remove.
13665         * cgraphunit.c: Include ipainline.h
13666         (cgraph_process_new_functions): Update call of
13667         compute_inline_parameters.
13668
13669 2011-04-22  Richard Guenther  <rguenther@suse.de>
13670
13671         * tree.c (build_int_cst): Properly create canonicalized integer
13672         constants.
13673         (build_int_cst_type): Remove scary comments.
13674
13675 2011-04-22  Xinliang David Li  <davidxl@google.com>
13676
13677         * toplev.c (process_options): Enable -Werror=coverage-mismatch
13678         by default when -Wno-error is not specified.
13679         * opts-global.c (decode_options): Remove call to
13680         control_warning_options.
13681
13682 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
13683
13684         PR tree-optimization/48717
13685         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
13686         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
13687
13688 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
13689
13690         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
13691         definition where used.
13692
13693 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
13694
13695         PR c/48716
13696         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
13697         TREE_STATIC variables declared inside of some OpenMP construct.
13698
13699 2011-04-22  Martin Jambor  <mjambor@suse.cz>
13700
13701         PR middle-end/48585
13702         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
13703
13704 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
13705
13706         PR c/36750
13707         * c-typeck.c (pop_init_level): Do not warn about initializing
13708         with ` = {0}'.
13709
13710 2011-04-22  Alan Modra  <amodra@gmail.com>
13711
13712         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
13713         when returning call_cookie.
13714         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
13715         pointers, to functions with no more vector args than the current
13716         function, and some non-local calls for ABI_V4.
13717         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
13718         sibcall_nonlocal_aix64): Combine to ..
13719         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
13720         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
13721         (sibcall_value_nonlocal_aix<mode>): ..likewise.
13722         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
13723         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
13724         operand.
13725         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
13726         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
13727         sibcall_value_symbolic_64): Delete.
13728
13729 2011-04-21  Xinliang David Li  <davidxl@google.com>
13730
13731         * cgraph.h: Remove pid.
13732         * cgraph.c: Remove pid.
13733         * value-prof.c (init_node_map): New function.
13734         (del_node_map): New function.
13735         (find_func_by_funcdef_no): New function.
13736         (gimple_ic_transform): Call new function.
13737         * cgraphunit.c (cgraph_finalize_function): Remove pid.
13738         * function.c (get_last_funcdef_no): New function.
13739         * function.h (get_last_funcdef_no): New function.
13740         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
13741         to libgcov function.
13742         (tree-profiling): Call node map init and delete function.
13743
13744 2011-04-21  Ian Lance Taylor  <iant@google.com>
13745
13746         * godump.c (go_format_type): Use exported Go name for anonymous
13747         field name.
13748
13749 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
13750
13751         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
13752         Call builtin_function_type_list instead of builtin_function_type.
13753         (UNARY, BINARY, TRINARY, QUAD): Likewise.
13754
13755 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
13756
13757         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
13758         build_function_type_list instead of build_function_type.
13759         Delete variable `endlink'.
13760
13761 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
13762
13763         * config/s390/s390.c (s390_init_builtins): Call
13764         build_function_type_list instead of build_function_type.
13765
13766 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
13767
13768         * config/ia64/ia64.c (ia64_init_builtins): Call
13769         build_function_type_list instead of builtin_function_type.
13770
13771 2011-04-21  Easwaran Raman  <eraman@google.com>
13772
13773         * cfgexpand.c (stack_var): Remove OFFSET...
13774         (add_stack_var): ...and its reference here...
13775         (expand_stack_vars): ...and here.
13776         (stack_var_cmp): Sort by descending order of size.
13777         (partition_stack_vars): Change heuristic.
13778         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
13779         (dump_stack_var_partition): Add newline after each partition.
13780
13781 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
13782             Jeff Law  <law@redhat.com>
13783
13784         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
13785         * gengtype.c (matching_file_name_substitute): Likewise.
13786
13787 2011-04-21  Richard Guenther  <rguenther@suse.de>
13788
13789         PR lto/48703
13790         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
13791
13792 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
13793
13794         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
13795
13796 2011-04-21  Richard Guenther  <rguenther@suse.de>
13797
13798         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
13799         file name.
13800
13801 2011-04-21  Richard Guenther  <rguenther@suse.de>
13802
13803         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
13804         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
13805         Use DECL_P, not SSA_VAR_P.
13806         (ptr_derefs_may_alias_p): Likewise.
13807         (ptr_deref_may_alias_ref_p_1): Likewise.
13808         (decl_refs_may_alias_p): Likewise.
13809         (refs_may_alias_p_1): Likewise.
13810         (ref_maybe_used_by_call_p_1): Likewise.
13811         (call_may_clobber_ref_p_1): Likewise.
13812         (indirect_ref_may_alias_decl_p): Assume indirect refrences
13813         are either MEM_REF or TARGET_MEM_REF.
13814         (indirect_refs_may_alias_p): Likewise.
13815         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
13816         for MEM_EXPR of indirect calls.
13817
13818 2011-04-21  Tristan Gingold  <gingold@adacore.com>
13819
13820         * vmsdbgout.c (write_srccorr): Compute file length from the string.
13821         (dst_file_info_struct): Remove flen field.
13822         (lookup_filename): Remove code that set flen field.
13823
13824 2011-04-21  Tristan Gingold  <gingold@adacore.com>
13825
13826         * config/ia64/ia64.c (ia64_start_function): Add a guard.
13827
13828 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
13829
13830         PR target/48708
13831         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
13832         vec_extract and vec_concat for non-SSE4_1 targets.
13833
13834 2011-04-21  Richard Guenther  <rguenther@suse.de>
13835
13836         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
13837         return statements.
13838
13839 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
13840
13841         * config/i386/cygming.h (union tree_node, TREE): Don't define or
13842         undefine.
13843         (FILE): Don't undefine.
13844
13845 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
13846
13847         * config/alpha/alpha.c (struct machine_function): Use rtx, not
13848         struct rtx_def *.
13849         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
13850         struct rtx_def *.
13851         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
13852         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
13853         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
13854         rtx_def *.
13855         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
13856         definitions where used.
13857         * config/microblaze/microblaze.h (struct microblaze_args): Use
13858         rtx, not struct rtx_def *.
13859         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
13860         rtx_def *.
13861         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
13862         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
13863         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
13864         not struct rtx_def *.
13865         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
13866         struct rtx_def *.
13867         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
13868         rtx_def *.
13869         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
13870
13871 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
13872
13873         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
13874         operand_equal_p to compare DR_BASE_ADDRESSes.
13875         (vect_check_interleaving): Likewise.
13876
13877 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
13878
13879         PR target/46329
13880         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
13881         for all Neon struct constants.
13882
13883 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
13884
13885         * target.def (legitimate_constant_p): New hook.
13886         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
13887         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
13888         * doc/tm.texi: Regenerate.
13889         * hooks.h (hook_bool_mode_rtx_true): Declare.
13890         * hooks.c (hook_bool_mode_rtx_true): Define.
13891         * system.h (LEGITIMATE_CONSTANT_P): Poison.
13892         * calls.c (precompute_register_parameters): Replace uses of
13893         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
13894         (emit_library_call_value_1): Likewise.
13895         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
13896         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
13897         * ira-costs.c (scan_one_insn): Likewise.
13898         * recog.c (general_operand, immediate_operand): Likewise.
13899         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
13900         * reload1.c (init_eliminable_invariants): Likewise.
13901
13902         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
13903         mode argument.
13904         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
13905         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
13906         argument.
13907         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13908         * config/alpha/predicates.md (input_operand): Update call to
13909         alpha_legitimate_constant_p.
13910
13911         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
13912         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
13913         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
13914         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13915         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
13916         (arm_legitimate_constant_p): New functions.
13917         (arm_cannot_force_const_mem): Make static.
13918
13919         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
13920
13921         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
13922         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
13923         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
13924         instead of bfin_legitimate_constant_p.
13925         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
13926         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13927
13928         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
13929
13930         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
13931
13932         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
13933         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
13934         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13935         (frv_legitimate_constant_p): Make static.  Add a mode argument.
13936
13937         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
13938         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
13939         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
13940
13941         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
13942         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
13943         * config/i386/i386.c (legitimate_constant_p): Rename to...
13944         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
13945         argument.
13946         (ix86_cannot_force_const_mem): Update accordingly.
13947         (ix86_legitimate_address_p): Likewise.
13948         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13949         * config/i386/i386.md: Update commentary.
13950
13951         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
13952         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
13953         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13954         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
13955
13956         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
13957
13958         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
13959         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
13960         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13961         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
13962
13963         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
13964         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
13965         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
13966
13967         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
13968         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13969         (m32r_legitimate_constant_p): New function.
13970
13971         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
13972         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
13973         LEGITIMATE_CONSTANT_P.
13974         (LEGITIMATE_CONSTANT_P): Delete.
13975         * config/m68k/m68k.c (m68k_expand_prologue): Call
13976         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
13977         (m68k_legitimate_constant_p): New function.
13978         * config/m68k/m68k.md: Update comments.
13979
13980         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
13981         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13982         (mcore_legitimate_constant_p): New function.
13983
13984         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
13985         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
13986         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
13987         Add a mode argument.
13988         (mep_legitimate_address): Update accordingly.
13989         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13990
13991         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
13992         Delete.
13993         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
13994         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
13995         static.  Check OP's mode for VOIDmode.
13996         (microblaze_legitimate_constant_p): New function.
13997         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13998
13999         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
14000         * config/mips/mips.c (mips_legitimate_constant_p): New function.
14001         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
14002         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14003         * config/mips/predicates.md: Update comments.
14004
14005         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
14006         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
14007         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14008         (mmix_legitimate_constant_p): Make static, return a bool, and take
14009         a mode argument.
14010         (mmix_print_operand_address): Update accordingly.
14011
14012         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
14013         Delete.
14014         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
14015         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
14016         static.  Add a mode argument.
14017         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14018
14019         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
14020
14021         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
14022         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14023         (pa_legitimate_constant_p): New function.
14024
14025         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
14026
14027         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
14028         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14029         (pdp11_legitimate_constant_p): New function.
14030
14031         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
14032         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14033         (rs6000_legitimate_constant_p): New function.
14034
14035         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
14036         (rx_legitimate_constant_p): ...this.
14037         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
14038         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
14039         (rx_legitimate_constant_p): ...this.
14040         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14041         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
14042
14043         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
14044         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
14045         * config/s390/s390.c (legitimate_constant_p): Rename to...
14046         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
14047         and add a mode argument.
14048         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14049
14050         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
14051
14052         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
14053         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14054         (sh_legitimate_constant_p): New function.
14055
14056         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
14057         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
14058         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14059         (legitimate_constant_p): Rename to...
14060         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
14061         argument.
14062         (constant_address_p): Update accordingly.
14063
14064         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
14065         argument and return a bool.
14066         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
14067         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14068         (spu_legitimate_constant_p): Add a mode argument and return a bool.
14069         (spu_rtx_costs): Update accordingly.
14070         * config/spu/predicates.md (vec_imm_operand): Likewise.
14071
14072         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
14073
14074         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
14075         * config/v850/v850.c (v850_legitimate_constant_p): New function.
14076         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14077
14078         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
14079         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
14080         * config/vax/vax.c (legitimate_constant_p): Likewise.
14081
14082         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
14083         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14084         (xtensa_legitimate_constant_p): New function.
14085
14086 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
14087
14088         * target.def (cannot_force_const_mem): Add a mode argument.
14089         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
14090         * doc/tm.texi: Regenerate.
14091         * hooks.h (hook_bool_mode_rtx_false): Declare.
14092         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
14093         (hook_bool_mode_const_rtx_true): Likewise.
14094         (hook_bool_mode_rtx_false): New function.
14095         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
14096         to be non-VOID.  Update call to cannot_force_const_mem.
14097         (find_reloads): Update accordingly.
14098         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
14099         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
14100         argument.
14101         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
14102         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
14103         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
14104         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
14105         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
14106         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
14107         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
14108         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
14109         (m68k_cannot_force_const_mem): ...this new function.
14110         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
14111         argument.
14112         (mips_const_insns, mips_legitimize_const_move): Update calls.
14113         (mips_secondary_reload_class): Likewise.
14114         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
14115         (pa_cannot_force_const_mem): ...this new function.
14116         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
14117         (rs6000_cannot_force_const_mem): ...this new function.
14118         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
14119         argument.
14120         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
14121         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
14122         to...
14123         (xtensa_cannot_force_const_mem): ...this new function.
14124
14125 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
14126
14127         * config/mips/mips.c (mips16_build_function_stub): Call
14128         build_function_type_list instead of build_function_type.
14129         (mips16_build_call_stub): Likewise.
14130
14131 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
14132
14133         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
14134         instead of build_function_type.
14135
14136 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
14137
14138         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
14139         instead of build_function_type.
14140
14141 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
14142
14143         PR target/48678
14144         * config/i386/i386.md (insv): Change operand 0 constraint to
14145         "register_operand".  Change operand 1 and 2 constraint to
14146         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
14147         * config/i386/sse.md (sse4_1_pinsrb): Export.
14148         (sse2_pinsrw): Ditto.
14149         (sse4_1_pinsrd): Ditto.
14150         (sse4_1_pinsrq): Ditto.
14151         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
14152         * config/i386/i386.c (ix86_expand_pinsr): New.
14153
14154 2011-04-20  Easwaran Raman  <eraman@google.com>
14155
14156         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
14157         containing union type only with -fstrict-aliasing.
14158
14159 2011-04-20  Jim Meyering  <meyering@redhat.com>
14160
14161         Remove useless if-before-free tests.
14162         * calls.c (expand_call, save_area): Likewise.
14163         * cfgcleanup.c (try_forward_edges): Likewise.
14164         * collect2.c (collect_execute): Likewise.
14165         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
14166         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
14167         * coverage.c (coverage_checksum_string): Likewise.
14168         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
14169         * cselib.c (cselib_init): Likewise.
14170         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
14171         (df_set_clean_cfg): Likewise.
14172         * function.c (free_after_compilation): Likewise.
14173         * gcc.c (do_spec_1, main): Likewise.
14174         * gcov.c (create_file_names): Likewise.
14175         * gensupport.c (identify_predicable_attribute): Likewise.
14176         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
14177         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
14178         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
14179         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
14180         * ipa-pure-const.c (local_pure_const): Likewise.
14181         * ipa-reference.c (propagate): Likewise.
14182         * ira-costs.c (free_ira_costs): Likewise.
14183         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
14184         * matrix-reorg.c (mat_free): Likewise.
14185         * prefix.c (get_key_value): Likewise.
14186         * profile.c (compute_value_histograms): Likewise.
14187         * reload1.c (free_reg_equiv): Likewise.
14188         * sched-deps.c (free_deps): Likewise.
14189         * sel-sched-ir.c (fence_clear): Likewise.
14190         * sese.c (set_rename, if_region_set_false_region): Likewise.
14191         * tree-data-ref.c (free_rdg): Likewise.
14192         * tree-eh.c (lower_try_finally): Likewise.
14193         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
14194         * tree-ssa-live.c (delete_var_map): Likewise.
14195         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
14196         * tree-ssa-pre.c (phi_trans_add): Likewise.
14197
14198 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
14199
14200         PR tree-optimization/48611
14201         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
14202         beyond ERT_MUST_NOT_THROW region.
14203
14204 2011-04-20  Catherine Moore  <clm@codesourcery.com>
14205
14206         * config/mips/mips.opt (mfix-24k): New.
14207         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
14208         * config/mips/mips.md (length): Increase by 4 for stores if
14209         fixing 24K errata.
14210         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
14211         all noreorder if fixing 24K errata.
14212         * doc/invoke.texi: Document mfix-24k.
14213
14214 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
14215
14216         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
14217         quad-word modes, reduce to 9-bit index range when above 1016 limit.
14218
14219 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
14220
14221         * config/arm/arm.c (arm_gen_constant): Move movw support ....
14222         (const_ok_for_op): ... to here.
14223
14224 2011-04-20  Kai Tietz  <ktietz@redhat.com>
14225
14226         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
14227         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
14228
14229 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
14230
14231         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
14232
14233 2011-04-20  Richard Guenther  <rguenther@suse.de>
14234
14235         PR tree-optimization/47892
14236         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
14237         are if-convertible.
14238
14239 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
14240
14241         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
14242
14243 2011-04-20  Tristan Gingold  <gingold@adacore.com>
14244
14245         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
14246
14247 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
14248
14249         PR target/18145
14250
14251         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
14252         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
14253         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
14254         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
14255         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
14256
14257         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
14258         New prototype.
14259
14260         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
14261         (avr_asm_named_section, avr_asm_output_aligned_common,
14262         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
14263         New functions to update...
14264         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
14265         (avr_asm_init_sections): Overwrite section callbacks for
14266         data_section, bss_section.
14267         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
14268         from here to...
14269         (avr_file_end): ...here.
14270
14271 2011-04-20  Richard Guenther  <rguenther@suse.de>
14272
14273         PR middle-end/48695
14274         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
14275         objects and types here.  Adjust for their offset before comparing.
14276
14277 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
14278
14279         * tree-vect-stmts.c (vectorizable_store): Only chain one related
14280         statement per copy.
14281
14282 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
14283
14284         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
14285         (GIMPLE_H): Include $(INTERNAL_FN_H).
14286         (OBJS-common): Add internal-fn.o.
14287         (internal-fn.o): New rule.
14288         * internal-fn.def: New file.
14289         * internal-fn.h: Likewise.
14290         * internal-fn.c: Likewise.
14291         * gimple.h: Include internal-fn.h.
14292         (GF_CALL_INTERNAL): New gf_mask.
14293         (gimple_statement_call): Put fntype into a union with a new
14294         internal_fn field.
14295         (gimple_build_call_internal): Declare.
14296         (gimple_build_call_internal_vec): Likewise.
14297         (gimple_call_same_target_p): Likewise.
14298         (gimple_call_internal_p): New function.
14299         (gimple_call_internal_fn): Likewise.
14300         (gimple_call_fntype): Return null for internal calls.
14301         (gimple_call_set_fntype): Assert that the function is not internal.
14302         (gimple_call_set_fn): Likewise.
14303         (gimple_call_set_fndecl): Likewise.
14304         (gimple_call_set_internal_fn): New function.
14305         (gimple_call_addr_fndecl): Handle null functions.
14306         (gimple_call_return_type): Likewise null types.
14307         * gimple.c (gimple_build_call_internal_1): New function.
14308         (gimple_build_call_internal): Likewise.
14309         (gimple_build_call_internal_vec): Likewise.
14310         (gimple_call_same_target_p): Likewise.
14311         (gimple_call_flags): Handle calls to internal functions.
14312         (gimple_call_fnspec): New function.
14313         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
14314         (gimple_has_side_effects): Handle null functions.
14315         (gimple_rhs_has_side_effects): Likewise.
14316         (gimple_call_copy_skip_args): Handle calls to internal functions.
14317         * cfgexpand.c (expand_call_stmt): Likewise.
14318         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
14319         * gimple-fold.c (gimple_fold_call): Handle null functions.
14320         (gimple_fold_stmt_to_constant_1): Don't fold
14321         calls to internal functions.
14322         * gimple-low.c (gimple_check_call_args): Handle calls to internal
14323         functions.
14324         * gimple-pretty-print.c (dump_gimple_call): Likewise.
14325         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
14326         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
14327         (do_warn_unused_result): Likewise.
14328         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
14329         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
14330         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
14331         the target of a call.
14332         (initialize_hash_element): Update accordingly.
14333         (hashable_expr_equal_p): Use gimple_call_same_target_p.
14334         (iterative_hash_hashable_expr): Handle calls to internal functions.
14335         (print_expr_hash_elt): Likewise.
14336         * tree-ssa-pre.c (can_value_number_call): Likewise.
14337         (eliminate): Handle null functions.
14338         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
14339         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
14340         (find_func_aliases): Likewise.
14341         * value-prof.c (gimple_ic_transform): Likewise.
14342         (gimple_indirect_call_to_profile): Likewise.
14343         * lto-streamer-in.c (input_gimple_stmt): Likewise.
14344         * lto-streamer-out.c (output_gimple_stmt): Likewise.
14345
14346 2011-04-19  Jan Hubicka  <jh@suse.cz>
14347
14348         * ipa-inline-transform.c (save_inline_function_body): Add comments.
14349         * ipa-inline.c (inline_small_functions): Compute summaries first,
14350         populate heap later.
14351
14352 2011-04-19  Jan Hubicka  <jh@suse.cz>
14353
14354         * cgraph.h (save_inline_function_body): Remove.
14355         * ipa-inline-transform.c: New file, broke out of...
14356         * ipa-inline.c: ... this one; Update toplevel comment.
14357         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
14358         make global.
14359         (update_noncloned_frequencies): Move to ipa-inline-transform.c
14360         (cgraph_mark_inline_edge): Rename to inline_call; move to
14361         ipa-inline-transform.c.
14362         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
14363         move to ipa-inline-transform.c
14364         (recursive_inlining, inline_small_functions, flatten_function,
14365         ipa_inline, inline_always_inline_functions,
14366         early_inline_small_functions): Update.
14367         (inline_transform): Move to ipa-inline-transform.c.
14368         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
14369         Declare.
14370         * Makefile.in (ipa-inline-transform.o): New file.
14371         * cgraphunit.c (save_inline_function_body): Move to
14372         ipa-inline-transform.c
14373
14374 2011-04-19  DJ Delorie  <dj@redhat.com>
14375
14376         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
14377         registers if we already know there aren't any.
14378         (m32c_emit_epilogue): Don't emit a barrier here.
14379         (m32c_emit_eh_epilogue): Likewise.
14380         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
14381         operands at expand time.
14382         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
14383         int" wchar type.
14384         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
14385         duplicates.  Provide aliases instead.
14386         * config/m32c/prologue.md (eh_return): Emit a barrier here.
14387         (eh_epilogue): Add a "(return)" here as a hint to other parts of
14388         the compiler.
14389
14390 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
14391
14392         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
14393         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
14394         (general_or_i64_p, sparc_register_move_cost): New function.
14395
14396 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14397
14398         * doc/install.texi (Configuration, --enable-threads): Remove mach.
14399         Add lynx, mipssde.  Sort table.
14400
14401 2011-04-19  Xinliang David Li  <davidxl@google.com>
14402
14403         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
14404         not negative.
14405
14406 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
14407
14408         PR target/48678
14409         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
14410         is a SUBREG with non-MODE_INT mode inside of it.
14411
14412 2011-04-19  Martin Jambor  <mjambor@suse.cz>
14413
14414         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
14415         also according to actual contants.
14416         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
14417         (gimple_fold_call): Use it.
14418         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
14419
14420 2011-04-19  Martin Jambor  <mjambor@suse.cz>
14421
14422         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
14423         non-pointer assignments.
14424
14425 2011-04-19  Martin Jambor  <mjambor@suse.cz>
14426
14427         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
14428         account anc_offset and otr_type from the indirect edge info.
14429         * ipa-prop.c (get_ancestor_addr_info): New function.
14430         (compute_complex_ancestor_jump_func): Assignment analysis moved to
14431         get_ancestor_addr_info, call it.
14432         (ipa_note_param_call): Do not initialize information about polymorphic
14433         calls, return the indirect call graph edge.  Remove the last
14434         parameter, adjust all callers.
14435         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
14436         parameters.  Initialize polymorphic information in the indirect edge.
14437
14438 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
14439
14440         PR lto/48148
14441         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
14442         the types if they have different enumeration identifiers.
14443
14444 2011-04-19  Jan Hubicka  <jh@suse.cz>
14445
14446         * cgraph.h (cgraph_optimize_for_size_p): Declare.
14447         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
14448         * predict.c (cgraph_optimize_for_size_p): Break out from ...
14449         (optimize_function_for_size_p) ... here.
14450
14451 2011-04-19  Richard Guenther  <rguenther@suse.de>
14452
14453         PR lto/48207
14454         * tree.c (free_lang_data): Do not reset the decl-assembler-name
14455         langhook.
14456
14457 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
14458
14459         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
14460         if DECL_NO_INLINE_WARNING_P is set on the function.
14461
14462 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
14463
14464         PR fortran/47976
14465         * reload1.c (inc_for_reload): Return void. All callers changed.
14466         (emit_input_reload_insns): Don't try to delete previous output
14467         reloads to a register, or record spill_reg_store for autoincs.
14468
14469 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
14470
14471         * gengtype.h: Updated copyright year.
14472         (struct input_file_st): Add inpisplugin field.
14473         (type_fileloc): New function.
14474         * gengtype.c
14475         (write_typed_struct_alloc_def): Add gcc_assert.
14476         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
14477         (write_typed_alloc_defns): Don't output for plugin files.
14478         (input_file_by_name): Clear inpisplugin field.
14479         (main): Set inpisplugin field for plugin files.
14480
14481 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
14482
14483         * gengtype-state.c (string_eq): New.
14484         (read_state): Use string_eq instead of strcmp when creating the
14485         state_ident_tab.
14486
14487 2011-04-19  Wei Guozhi  <carrot@google.com>
14488
14489         PR target/47855
14490         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
14491         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
14492         linkage.
14493         * config/arm/constraints.md (Uu): New constraint.
14494         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
14495
14496 2011-04-19  Tristan Gingold  <gingold@adacore.com>
14497
14498         * config.gcc (-*-*-*vms): Added.
14499         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
14500         definitions moved.
14501         * config/vms/vms-ld.c: New file.
14502         * config/vms/vms-ar.c: New file.
14503         * config/vms/t-vmsnative: New file.
14504
14505 2011-04-18  Xinliang David Li  <davidxl@google.com>
14506
14507         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
14508
14509 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
14510
14511         PR middle-end/48661
14512         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
14513         if TREE_TYPE (v) is non-NULL.
14514
14515         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
14516         gimple_get_virt_mehtod_for_binfo.
14517         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
14518         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
14519         callers.
14520         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
14521
14522 2011-04-18  Michael Matz  <matz@suse.de>
14523             Steve Ellcey  <sje@cup.hp.com>
14524
14525         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
14526         use its mode as source mode if it isn't VOIDmode.
14527
14528 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
14529
14530         * doc/passes.texi: Fill crossref nodes.
14531
14532 2011-04-18  Jim Meyering  <meyering@redhat.com>
14533
14534         Fix doubled-word typos in comments and strings
14535         * config/alpha/vms-unwind.h: s/for for/for/
14536         * config/arm/unwind-arm.h: Likewise.
14537         * config/microblaze/microblaze.c: Likewise.
14538         * config/sh/constraints.md: s/in in/in/
14539         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
14540
14541 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
14542
14543         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
14544         (AVX_FLOAT_MODE_P): Ditto.
14545         (AVX128_VEC_FLOAT_MODE_P): Ditto.
14546         (AVX256_VEC_FLOAT_MODE_P): Ditto.
14547         (AVX_VEC_FLOAT_MODE_P): Ditto.
14548         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
14549         (UNSPEC_MASKSTORE): Ditto.
14550         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
14551         Merge from <sse>_movmsk<ssemodesuffix> and
14552         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
14553         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
14554         iterator.
14555         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
14556         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
14557         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
14558
14559 2011-04-18  Jan Hubicka  <jh@suse.cz>
14560
14561         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
14562
14563         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
14564         (want_inline_function_called_once_p): Break out the logic from
14565         ipa_inline.
14566         (edge_badness): Ensure that profile is not misupdated.
14567         (lookup_recursive_calls): Prioritize by call frequencies.
14568         (inline_small_functions): Move program size estimates here;
14569         actually process whole queue even when unit growth has been
14570         met. (to properly compute inline_failed reasons and for the
14571         case unit size decrease.) Revisit comments on recursive inlining.
14572         (ipa_inline): Remove unit summary code; first inline hot calls
14573         of functions called once, cold calls next.
14574         (order, nnodes): Remove unused variables.
14575         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
14576         (GTFILES): Remove ipa-inline.c
14577         * sel-sched.c (fill_insns): Silence uninitialized var warning.
14578
14579 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
14580
14581         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
14582
14583 2011-04-18  Jie Zhang  <jie@codesourcery.com>
14584             Richard Earnshaw  <rearnsha@arm.com>
14585
14586         * arm.c (neon_builtin_type_bits): Remove.
14587         (typedef enum neon_builtin_mode): New.
14588         (T_MAX): Don't define.
14589         (typedef enum neon_builtin_datum): Remove bits, codes[],
14590         num_vars and base_fcode.  Add mode, code and fcode.
14591         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
14592         VAR10): Change accordingly.
14593         (neon_builtin_data[]): Change accordingly
14594         (arm_init_neon_builtins): Change accordingly.
14595         (neon_builtin_compare): Remove.
14596         (locate_neon_builtin_icode): Remove.
14597         (arm_expand_neon_builtin): Change accordingly.
14598
14599         * arm.h (enum arm_builtins): Move to ...
14600         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
14601
14602         * arm.c (arm_builtin_decl): Declare.
14603         (TARGET_BUILTIN_DECL): Define.
14604         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
14605         (arm_builtin_decls[]): New.
14606         (arm_init_neon_builtins): Store builtin declarations in
14607         arm_builtin_decls[].
14608         (arm_init_tls_builtins): Likewise.
14609         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
14610         (arm_builtin_decl): New.
14611
14612 2011-04-18  Richard Guenther  <rguenther@suse.de>
14613
14614         * tree.c (upper_bound_in_type): Build properly canonicalized
14615         INTEGER_CSTs.
14616         (lower_bound_in_type): Likewise.
14617
14618 2011-04-18  Richard Guenther  <rguenther@suse.de>
14619
14620         * gimple.h (gimple_call_addr_fndecl): New function.
14621         (gimple_call_fndecl): Use it.
14622         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
14623         for direct calls.
14624         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
14625         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
14626
14627 2011-04-18  Richard Guenther  <rguenther@suse.de>
14628
14629         PR middle-end/48650
14630         * tree.c (build_string): STRING_CST is now derived from tree_typed.
14631
14632 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
14633
14634         PR lto/48492
14635         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
14636         DECL_IN_CONSTANT_POOL without RTL.
14637
14638 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
14639             Ira Rosen  <ira.rosen@linaro.org>
14640
14641         PR target/48252
14642         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
14643         to match neon_vzip/vuzp/vtrn_internal.
14644         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
14645         outputs explicitly dependent on both inputs.
14646         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
14647
14648 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
14649
14650         PR tree-optimization/48616
14651         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
14652         whether the shift is by scalar or vector based on whether all SLP
14653         scalar stmts have the same rhs.
14654
14655 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
14656
14657         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
14658         memory operands.
14659
14660 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
14661
14662         PR target/43700
14663         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
14664         registers.
14665
14666 2011-04-17  Jan Hubicka  <jh@suse.cz>
14667
14668         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
14669         * cgrpahunit.c (cgraph_finalize_function): Do not set
14670         finalized_by_frontend.
14671         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
14672         finalized_by_frontend.
14673
14674 2011-04-17  Jan Hubicka  <jh@suse.cz>
14675
14676         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
14677         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
14678         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
14679         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
14680         method.
14681         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
14682         gimple-fold.c
14683         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
14684
14685 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
14686
14687         PR lto/48538
14688         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
14689         is non-null before accessing it.
14690         (input_cgraph): Remove trailing spaces.
14691
14692 2011-04-17  Revital Eres  <revital.eres@linaro.org>
14693
14694         * params.def (sms-min-sc): New param flag.
14695         * modulo-sched.c (sms_schedule): Use it.
14696         * doc/invoke.texi (sms-min-sc): Document it.
14697
14698 2011-04-17  Jan Hubicka  <jh@suse.cz>
14699
14700         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
14701         present, also set gimple_call_set_cannot_inline.
14702         * ipa-inline.c: Update toplevel comment.
14703         (MAX_TIME): Remove.
14704         (cgraph_clone_inlined_nodes): Fix linebreaks.
14705         (cgraph_check_inline_limits): Restructure to ...
14706         (caller_growth_limits): ... this one; be more tolerant
14707         on growth in nested inline chains; add explanatory comment;
14708         fix stack accounting thinko introduced by previous patch.
14709         (cgraph_default_inline_p): Remove.
14710         (report_inline_failed_reason): New function.
14711         (can_inline_edge_p): New function.
14712         (can_early_inline_edge_p): New function.
14713         (leaf_node_p): Move upwards in file.
14714         (want_early_inline_function_p): New function.
14715         (want_inline_small_function_p): New function.
14716         (want_inline_self_recursive_call_p): New function.
14717         (cgraph_edge_badness): Rename to ...
14718         (edge_badness) ... this one; fix linebreaks.
14719         (update_edge_key): Update call of edge_baddness; add
14720         detailed dump about queue updates.
14721         (update_caller_keys): Use can_inline_edge_p and
14722         want_inline_small_function_p.
14723         (cgraph_decide_recursive_inlining): Rename to...
14724         (recursive_inlining): Use can_inline_edge_p and
14725         want_inline_self_recursive_call_p; simplify and remove no longer
14726         valid FIXME.
14727         (cgraph_set_inline_failed): Remove.
14728         (add_new_edges_to_heap): Use can_inline_edge_p and
14729         want_inline_small_function_p.
14730         (cgraph_decide_inlining_of_small_functions): Rename to ...
14731         (inline_small_functions): ... this one; cleanup; use
14732         can/want predicates; cleanup debug ouput; work edges till fibheap
14733         is exhausted and do not stop once unit growth is reached; remove
14734         later loop processing remaining edges.
14735         (cgraph_flatten): Rename to ...
14736         (flatten_function): ... this one; use can_inline_edge_p
14737         and can_early_inline_edge_p predicates.
14738         (cgraph_decide_inlining): Rename to ...
14739         (ipa_inline): ... this one; remove unreachable nodes before
14740         inlining functions called once; simplify the pass.
14741         (cgraph_perform_always_inlining): Rename to ...
14742         (inline_always_inline_functions): ... this one; use
14743         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
14744         (cgraph_decide_inlining_incrementally): Rename to ...
14745         (early_inline_small_functions): ... this one; simplify
14746         using new predicates; cleanup; make dumps prettier.
14747         (cgraph_early_inlining): Rename to ...
14748         (early_inliner): newer inline regular functions into always-inlines;
14749         fix updating of call stmt summaries.
14750         (pass_early_inline): Update for new names.
14751         (inline_transform): Fix formating.
14752         (gate_cgraph_decide_inlining): Rename to ...
14753         (pass_ipa_inline): ... this one.
14754         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
14755         * ipa-inline-analysis.c (dump_inline_summary): Update.
14756         (compute_inline_parameters): Do not compute disregard_inline_limits;
14757         look for mismatching arguments.
14758         (estimate_growth): Fix handlig of non-trivial self recursion.
14759         (inline_read_summary): Do not read info->disregard_inline_limits.
14760         (inline_write_summary): Do not write info->disregard_inline_limits.
14761         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
14762         and move all checks into can_inline_edge_p predicate; re-enable code
14763         comparing optimization levels.
14764         (expand_call_inline): Do not test inline_forbidden_into_p.
14765         * Makefile.in (ipa-inline.o): Update arguments.
14766
14767 2011-04-17  Revital Eres  <revital.eres@linaro.org>
14768
14769         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
14770
14771 2011-04-17  Revital Eres  <revital.eres@linaro.org>
14772
14773         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
14774
14775 2011-04-17  Michael Matz  <matz@suse.de>
14776
14777         PR tree-optimization/48622
14778         PR lto/48645
14779         * ipa-inline-analysis.c (inline_read_summary): Read size/time
14780         in same order as they're written.
14781
14782 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14783
14784         * config/pa/predicates.md: Reorganize and simplify predicates.
14785         Eliminate duplicate code checks.
14786         (arith_operand): Rename to arith14_operand
14787         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
14788         * config/pa/pa.md: Use renamed operands.
14789         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
14790         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
14791         arith11_operand, adddi3_operand, indexed_memory_operand,
14792         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
14793         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
14794         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
14795         move_dest_operand, move_src_operand, prefetch_cc_operand,
14796         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
14797         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
14798         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
14799         div_operand, int5_operand, movb_comparison_operator,
14800         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
14801         arith_double_operand, ireg_operand, lhs_lshift_operand,
14802         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
14803         integer_store_memory_operand): Likewise.
14804         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
14805         (integer_store_memory_operand, read_only_operand,
14806         function_label_operand, borx_reg_operand,
14807         non_hard_reg_operand): Likewise.
14808         (eq_neq_comparison_operator): Delete unused operator.
14809         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
14810         function_label_operand.
14811         (emit_move_sequence): Likewise.
14812
14813 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
14814
14815         * config/i386/sse.md (sseunpackmode): New mode attribute.
14816         (ssepackmode): Ditto.
14817         (vec_pack_trunc_<mode>): Macroize expander from
14818         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
14819         (vec_unpacks_lo_<mode>): Macroize expander from
14820         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14821         (vec_unpacks_hi_<mode>): Macroize expander from
14822         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14823         (vec_unpacku_lo_<mode>): Macroize expander from
14824         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14825         (vec_unpacku_hi_<mode>): Macroize expander from
14826         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14827         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
14828         ix86_expand_sse4_unpack.
14829         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
14830
14831 2011-04-16  Jan Hubicka  <jh@suse.cz>
14832
14833         * cgraphbuild.c: Include ipa-inline.h.
14834         (reset_inline_failed): Use initialize_inline_failed.
14835         * cgraph.c: Include ipa-inline.h.
14836         (cgraph_create_node_1): Do not initialize estimated_growth.
14837         (initialize_inline_failed): More to ipa-inline-analysis.c
14838         (dump_cgraph_node): Do not dump inline flags.
14839         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
14840         and disregard_inline_limits flags.
14841         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
14842         time, size, estimated_growth.
14843         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
14844         Update.
14845         * cgraphunit.c (cgraph_decide_is_function_needed): Use
14846         DECL_DISREGARD_INLINE_LIMITS.
14847         (cgraph_analyze_function): Do not initialize
14848         node->local.disregard_inline_limits.
14849         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
14850         inlinable, versionable and disregard_inline_limits.
14851         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
14852         cgraph_check_inline_limits, cgraph_default_inline_p,
14853         cgraph_edge_badness, update_caller_keys, update_callee_keys,
14854         add_new_edges_to_heap): Update.
14855         (cgraph_decide_inlining_of_small_function): Update; set
14856         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
14857         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
14858         cgraph_decide_inlining_incrementally): Update.
14859         * ipa-inline.h (inline_summary): Add inlinable, versionable,
14860         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
14861         time, size and estimated_growth parameters.
14862         (estimate_edge_growth): Update.
14863         (initialize_inline_failed): Declare.
14864         * ipa-split.c: Include ipa-inline.h
14865         (execute_split_functions): Update.
14866         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
14867         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
14868         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
14869         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
14870         estimated_growth to INT_MIN.
14871         (inline_node_duplication_hook): Likewise.
14872         (dump_inline_summary): Dump new fields.
14873         (compute_inline_parameters): Update.
14874         (estimate_edge_time, estimate_time_after_inlining,
14875         estimate_size_after_inlining, estimate_growth, inline_read_summary,
14876         inline_write_summary):
14877         (initialize_inline_failed): Move here from cgraph.c.
14878         * tree-sra.c: Include ipa-inline.h.
14879         (ipa_sra_preliminary_function_checks): Update.
14880         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
14881         ipa-inline.h.
14882
14883 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
14884
14885         * config/i386/sse.md (V16): New mode iterator.
14886         (VI1, VI8): Ditto.
14887         (AVXMODEQI, AVXMODEDI): Remove.
14888         (sse2, sse3): New mode attribute.
14889         (mov<mode>): Use V16 mode iterator.
14890         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
14891         (push<mode>1): Use V16 mode iterator.
14892         (movmisalign<mode>): Ditto.
14893         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
14894         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
14895         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
14896         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
14897         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
14898         avx_movdqu<avxmodesuffix>.
14899         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
14900         *avx_movdqu<avxmodesuffix>.
14901         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
14902         avx_lddqu<avxmodesuffix>.
14903         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
14904         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
14905         avx_movnt<AVXMODEDI:mode>.
14906         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
14907         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
14908
14909 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
14910
14911         PR target/48629
14912         * haifa-sched.c (prune_ready_list, schedule_block): Use
14913         sched_pressure_p rather than flag_sched_pressure.
14914
14915 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
14916
14917         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
14918         cgraph_get_node instead of cgraph_get_create_node.
14919
14920 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
14921
14922         * cfgexpand.c (expand_debug_expr): Use
14923         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
14924
14925 2011-04-15  Michael Matz  <matz@suse.de>
14926
14927         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
14928         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
14929         * function.c (gimplify_parameters): Ditto.
14930         * gimplify.c (gimplify_vla_decl): Ditto.
14931
14932         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
14933         (gimple_call_set_alloca_for_var): New inline function.
14934         (gimple_call_alloca_for_var_p): Ditto.
14935         * gimple.c (gimple_build_call_from_tree): Remember
14936         CALL_ALLOCA_FOR_VAR_P state.
14937         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
14938
14939         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
14940         calls if they were for VLA objects.
14941
14942 2011-04-15  Martin Jambor  <mjambor@suse.cz>
14943
14944         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
14945         of ADR_EXPRs.
14946
14947 2011-04-15  Martin Jambor  <mjambor@suse.cz>
14948
14949         PR middle-end/48601
14950         * tree-emutls.c (lower_emutls_function_body): Call
14951         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
14952         result is non-NULL.
14953
14954 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
14955
14956         * c-decl.c (detect_field_duplicates): Call
14957         objc_detect_field_duplicates instead of objc_get_interface_ivars.
14958
14959 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
14960
14961         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
14962         * gimple.c (gimple_asm_clobbers_memory_p): Define.
14963         * ipa-pure-const.c (check_stmt): Call it.
14964         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
14965
14966 2011-04-15  Richard Guenther  <rguenther@suse.de>
14967
14968         PR tree-optimization/48290
14969         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
14970         Properly decide inhibiting propagation based on the valueized
14971         operand.  Do loop-closed SSA form preserving here ...
14972         (init_copy_prop): ... not here.
14973
14974 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
14975
14976         PR target/48612
14977         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
14978         (*ieee_smax<mode>3): Likewise.
14979
14980 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14981
14982         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
14983         Replace match_operand with match_dup for the third operand in
14984         these expanders.
14985
14986 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
14987
14988         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
14989         to track processing of conditionals.  Update all callers.
14990         (try_combine, simplify_if_then_else): Update.
14991
14992 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
14993
14994         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
14995         -fsched-pressure.
14996
14997 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
14998
14999         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
15000         instead of match_operand for operand 3.
15001
15002 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
15003
15004         * recog.h (insn_operand_data): Add an "allows_mem" field.
15005         * genoutput.c (output_operand_data): Initialize it.
15006         * optabs.c (maybe_legitimize_operand_same_code): New function.
15007         (maybe_legitimize_operand): Use it when matching the original
15008         op->value.
15009
15010 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
15011
15012         * gimplify.c: Fix issues in comments throughout.
15013         (voidify_wrapper_expr): Fix long line.
15014         (build_stack_save_restore): Likewise.
15015         (gimplify_loop_expr): Likewise.
15016         (gimplify_compound_lval): Likewise.
15017         (gimplify_init_ctor_eval): Likewise.
15018         (gimplify_modify_expr_rhs): Likewise.
15019         (omp_notice_threadprivate_variable): Likewise.
15020
15021 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
15022
15023         * cfgexpand.c (expand_call_stmt): Convert the function type to the
15024         original one if this is not a builtin function.
15025
15026 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
15027
15028         PR target/48605
15029         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
15030         offset it as needed based on top 2 bits in operands[3], change
15031         MEM mode to SFmode and mask those 2 bits away from operands[3].
15032
15033 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
15034
15035         * c-parser.c (c_parser_objc_protocol_definition): Updated for
15036         change from objc_declare_protocols() to objc_declare_protocol().
15037
15038 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
15039
15040         * config/i386/sse.md (sse4_1): New mode attribute.
15041         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
15042         avx_blend<ssemodesuffix><avxmodesuffix> and
15043         sse4_1_blend<ssemodesuffix> using VF mode iterator.
15044         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
15045         avx_blendv<ssemodesuffix><avxmodesuffix> and
15046         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
15047         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
15048         avx_dp<ssemodesuffix><avxmodesuffix> and
15049         sse4_1_dp<ssemodesuffix> using VF mode iterator.
15050         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
15051         (sse4_1_packusdw): Merge with *avx_packusdw.
15052         (sse4_1_pblendvb): Merge with *avx_pblendvb.
15053         (sse4_1_pblendw): Merge with *avx_pblendw.
15054         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
15055         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
15056         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
15057         VF mode iterator.
15058         (sse4_1_round<ssescalarmodesuffix>): Merge with
15059         *avx_round<ssescalarmodesuffix>.
15060         (aesenc): Merge with *avx_aesenc.
15061         (aesenclast): Merge with *avx_aesenclast.
15062         (aesdec): Merge with *avx_aesdec.
15063         (aesdeclast): Merge with *avx_aesdeclast.
15064         (pclmulqdq): Merge with *pclmulqdq.
15065         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
15066         New predicate.
15067         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
15068
15069 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
15070
15071         PR middle-end/48608
15072         * cfgexpand.c (get_decl_align_unit): Renamed to ...
15073         (align_local_variable): This.  Update DECL_ALIGN.
15074         (add_stack_var): Updated.
15075         (expand_one_stack_var): Likewise.
15076
15077 2011-04-14  Richard Guenther  <rguenther@suse.de>
15078
15079         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
15080         Remove.
15081         (dse_initialize_block_local_data, dse_leave_block,
15082         record_voperand_set, get_stmt_uid): Likewise.
15083         (dse_possible_dead_store_p): Allow any kind of killing stmt.
15084         (dse_optimize_stmt): Remove voperand set handling code.
15085         Simplify and improve to handle any kind of killing stmt.
15086         (dse_record_phi): Remove.
15087         (dse_enter_block): Simplify.
15088         (tree_ssa_dse): Likewise.
15089         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
15090
15091 2011-04-14  Jan Hubicka  <jh@suse.cz>
15092
15093         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
15094         * cgraph.h (struct inline_summary): Move to ipa-inline.h
15095         (cgraph_local_info): Remove inline_summary.
15096         * ipa-cp.c: Include ipa-inline.h.
15097         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
15098         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
15099         accesor.
15100         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
15101         (input_overwrite_node): Do not set inline summary.
15102         (input_node): Do not stream inline summary.
15103         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
15104         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
15105         growth; we do not have inline parameters computed for that anyway.
15106         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
15107         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
15108         (inline_summary_t): New type and VECtor.
15109         (debug_inline_summary, dump_inline_summaries): Declare.
15110         (inline_summary): Use VOCtor.
15111         (estimate_edge_growth): Kill hack computing call stmt size directly.
15112         * lto-section-in.c (lto_section_name): Add inline section.
15113         * ipa-inline-analysis.c: Include lto-streamer.h
15114         (node_removal_hook_holder, node_duplication_hook_holder): New holders
15115         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
15116         (inline_summary_vec): Define.
15117         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
15118         dump_inline_summaries): New functions.
15119         (estimate_function_body_sizes): Properly compute size/time of outgoing
15120         calls.
15121         (compute_inline_parameters): Alloc inline_summary; do not compute
15122         size/time of incomming calls.
15123         (estimate_edge_time): Avoid missing time summary hack.
15124         (inline_read_summary): Read inline summary info.
15125         (inline_write_summary): Write inline summary info.
15126         (inline_free_summary): Free all hooks and inline summary vector.
15127         * lto-streamer.h: Add LTO_section_inline_summary section.
15128         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
15129         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
15130
15131 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15132
15133         * tree-vectorizer.h (vect_strided_store_supported): Add a
15134         HOST_WIDE_INT argument.
15135         (vect_strided_load_supported): Likewise.
15136         (vect_permute_store_chain): Return void.
15137         (vect_transform_strided_load): Likewise.
15138         (vect_permute_load_chain): Delete.
15139         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
15140         count argument.  Check that the count is a power of two.
15141         (vect_strided_load_supported): Likewise.
15142         (vect_permute_store_chain): Return void.  Update after above changes.
15143         Assert that the access is supported.
15144         (vect_permute_load_chain): Likewise.
15145         (vect_transform_strided_load): Return void.
15146         * tree-vect-stmts.c (vectorizable_store): Update calls after
15147         above interface changes.
15148         (vectorizable_load): Likewise.
15149         (vect_analyze_stmt): Don't check for strided powers of two here.
15150
15151 2011-04-14  Richard Guenther  <rguenther@suse.de>
15152
15153         PR tree-optimization/48590
15154         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
15155         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
15156         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
15157         BUILT_IN_STACK_SAVE.
15158         * tree-ssa-dce.c (propagate_necessity): Handle
15159         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
15160
15161 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
15162
15163         * c-parser.c (c_parser_objc_class_declaration): Updated call to
15164         objc_declare_class.
15165
15166 2011-04-14  Richard Guenther  <rguenther@suse.de>
15167
15168         * tree.h (get_object_alignment_1): Declare.
15169         * builtins.c (get_object_alignment_1): Split out worker from ...
15170         (get_object_alignment): ... here.
15171         * fold-const.c (get_pointer_modulus_and_residue): Use
15172         get_object_alignment_1.
15173
15174 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15175
15176         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
15177         type parameter.
15178         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
15179         parameter.  Generalise code to handle arrays as well as vectors.
15180         (vect_setup_realignment): Update accordingly.
15181         * tree-vect-stmts.c (vectorizable_store): Likewise.
15182         (vectorizable_load): Likewise.
15183
15184 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15185
15186         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
15187         within the per-copy loop.
15188
15189 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15190
15191         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
15192         in the dump file.
15193
15194 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15195
15196         * doc/options.texi (Negative): Explicitly mention that the
15197         Negative chain must be circular.
15198
15199 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
15200
15201         * function.h (block_chainon): Declare.
15202         * function.c (block_chainon): Define.
15203
15204 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
15205             Eric Weddington  <eric.weddington@atmel.com>
15206             Georg-Johann Lay  <avr@gjlay.de>
15207
15208         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
15209         New Includes
15210         (avr_init_builtins, avr_expand_builtin,
15211         avr_expand_delay_cycles, avr_expand_unop_builtin,
15212         avr_expand_binop_builtin ): New functions.
15213         (avr_builtin_id): New enum
15214         (struct avr_builtin_description): New struct
15215         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
15216         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
15217
15218         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
15219         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
15220         UNSPECV_DELAY_CYCLES): new enumeration values
15221         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
15222         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
15223         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
15224         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
15225         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
15226         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
15227         "fmulsu"): New insns
15228
15229         * config/avr/avr-c.c: fix line endings
15230         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
15231         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
15232         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
15233         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
15234         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
15235
15236         * doc/extend.texi (AVR Built-in Functions): New node
15237         (Target Builtins): Add documentation of AVR
15238         built-in functions.
15239
15240 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
15241
15242         PR target/44643
15243         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
15244         alone. Error if non-const data has attribute progmem.
15245
15246 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
15247
15248         * tree.h (struct tree_constructor): Include tree_typed instead of
15249         tree_common.
15250         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
15251         TS_TYPED instead of TS_COMMON.
15252
15253 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
15254
15255         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
15256         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
15257         (sse2_psadbw): Merge with *avx_psadbw.
15258         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
15259         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
15260         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
15261         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
15262         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
15263         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
15264         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
15265         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
15266         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
15267         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
15268         (ssse3_palignrti): Merge with *avx_palignrti.
15269
15270 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
15271
15272         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
15273         * tree-ssanames.c (fini_ssanames): VEC_free it.
15274         (make_ssa_name_fn): Update for VECness of free_ssanames.
15275         (release_ssa_name, release_dead_ssa_names): Likewise.
15276         * tree.h (struct tree_ssa_name): Include tree_typed instead of
15277         tree_common.
15278         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
15279         TS_TYPED instead of TS_COMMON.
15280
15281 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
15282
15283         * postreload-gcse.c (gcse_after_reload_main): Add calls to
15284         statistics_counter_event.
15285         * tree-ssa-copyrename.c (stats): Define.
15286         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
15287         statistics_counter_event.
15288         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
15289         (bswap_stats, widen_mul_stats): Define.
15290         (insert_reciprocals): Increment rdivs_inserted.
15291         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
15292         rfuncs_inserted.  Add calls to statistics_counter_event.
15293         (execute_cse_sincos_1): Increment inserted.
15294         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
15295         statistics_counter_event.
15296         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
15297         of bswap_stats.  Add calls to statistics_counter_event.
15298         (convert_mult_to_widen): Increment widen_mults_inserted.
15299         (convert_plusminus_to_widen): Increment maccs_inserted.
15300         (convert_mult_to_fma): Increment fmas_inserted.
15301         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
15302         calls to statistics_counter_event.
15303
15304 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
15305
15306         PR rtl-optimization/48455
15307         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
15308         `temp_costs->mem_cost'.
15309
15310 2011-04-13  Jan Hubicka  <jh@suse.cz>
15311
15312         * ipa-inline.h: New file.
15313         * ipa-inline-analysis.c: New file. Broken out of ...
15314         * ipa-inline.c: ... this file; update toplevel comment;
15315         include ipa-inline.h
15316         (inline_summary): Move to ipa-inline.h
15317         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
15318         ipa-inline-analysis.c.
15319         (cgraph_estimate_time_after_inlining): Rename to
15320         estiamte_time_after_inlining; move to ipa-inline-analysis.c
15321         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
15322         to estimate_edge_growth.
15323         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
15324         rename to estimate_size_after_inlining.
15325         (cgraph_mark_inline_edge): Update for new naming convention.
15326         (cgraph_check_inline_limits): Likewise.
15327         (cgraph_edge_badness): Likewise.
15328         (cgraph_decide_recursive_inlining): Likewise.
15329         (cgraph_decide_inlining_of_small_functions): Likewise.
15330         (cgraph_decide_inlining_incrementally): Likewise.
15331         (cgraph_estimate_growth): Rename to estimate_growth; move to
15332         ipa-inline-analysis.c.
15333         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
15334         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
15335         (compute_inline_parameters): Likewise.
15336         (compute_inline_parameters_for_current): Likewise.
15337         (pass_inline_parameters): Likewise.
15338         (inline_indirect_intraprocedural_analysis): Likewise.
15339         (analyze_function): Rename to inline_analyze_function; likewise.
15340         (add_new_function): Move to ipa-inline-analysis.c.
15341         (inline_generate_summary): Likewise.
15342         (inline_read_summary): Likewise.
15343         (inline_write_summary): Likewise.
15344         * Makefile.in (ipa-inline-analysis.c): New file.
15345
15346 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15347
15348         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
15349         * configure: Regenerate.
15350
15351 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
15352
15353         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
15354         instead of tree_common.
15355         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
15356         Likewise.
15357         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
15358         TS_TYPED rather than TS_COMMON.
15359         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
15360
15361 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
15362
15363         PR target/45263
15364         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
15365         r20 around calls of __tablejump_elpm__
15366
15367 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
15368
15369         PR middle-end/48591
15370         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
15371         NULL.
15372         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
15373
15374 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
15375
15376         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
15377         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
15378         (cfi_vec): New typedef.
15379         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
15380         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
15381         (cie_cfi_vec): New static variable.
15382         (cie_cfi_head): Delete.
15383         (add_cfi): Accept a cfi_vec * as first argument. All callers and
15384         declaration changed. Use vector rather than list operations.
15385         (new_cfi): Don't initialize the dw_cfi_next field.
15386         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
15387         rather than list operations.
15388         (lookup_cfa): Use vector rather than list operations.
15389         (output_cfis): New argument upto. Accept a cfi_vec rather than
15390         a dw_cfi_ref list head as argument. All callers changed.
15391         Iterate over the vector using upto as a maximum index.
15392         (output_all_cfis): New static function.
15393         (output_fde): Use vector rather than list operations. Use the
15394         new upto argument for output_cfis rather than manipulating a
15395         list.
15396         (dwarf2out_begin_prologue): Change initializations to match
15397         new struct members.
15398         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
15399         from the vector length rather than searching for the end of a list.
15400         Use output_all_cfis.
15401         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
15402
15403 2011-04-13  Nick Clifton  <nickc@redhat.com>
15404
15405         * config/rx/rx.md (movmemsi): Do not use this pattern when
15406         volatile pointers are involved.
15407
15408 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
15409
15410         * config/i386/sse.md (pinsrbits): Remove.
15411         (sse2_packsswb): Merge with *avx_packsswb.
15412         (sse2_packssdw): Merge with *avx_packssdw.
15413         (sse2_packuswb): Merge with *avx_packuswb.
15414         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
15415         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
15416         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
15417         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
15418         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
15419         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
15420         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
15421         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
15422         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
15423         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
15424         (sse2_loadld): Merge with *avx_loadld.
15425         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
15426         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
15427         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
15428         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
15429         (vec_concatv2di): Merge with *vec_concatv2di_avx.
15430
15431 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
15432
15433         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
15434         calling TREE_CHAIN.
15435         * print-tree.c (print_node): Likewise.
15436         * tree-inline.c (copy_tree_r): Likewise.
15437         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
15438         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
15439         instead of TS_COMMON.
15440         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
15441         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
15442         (copy_node_stat): Zero TREE_CHAIN only if necessary.
15443         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
15444         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
15445         ...and these...
15446         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
15447         * tree.h: ...here.
15448         (TREE_CHAIN): Check for a TS_COMMON structure.
15449         (TREE_TYPE): Check for a TS_TYPED structure.
15450
15451 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
15452
15453         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
15454         cgraph_get_create_node instead of cgraph_node.
15455
15456 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15457
15458         * c-parser.c (c_parser_initelt): Updated call to
15459         objc_build_message_expr.
15460         (c_parser_postfix_expression): Likewise.
15461
15462 2011-04-12  Kai Tietz  <ktietz@redhat.com>
15463
15464         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
15465         MASK_MS_BITFIELD_LAYOUT bit.
15466
15467 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
15468
15469         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
15470         assert it is always true.
15471         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
15472         moves.
15473
15474 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15475
15476         * c-parser.c (c_lex_one_token): Rewritten conditional used when
15477         compiling Objective-C to be more efficient.
15478
15479 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
15480
15481         * opts-common.c (decode_cmdline_options_to_array): Remove variable
15482         argv_copied.
15483
15484 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
15485
15486         * recog.h, genoutput.c, optabs.c: Revert last patch.
15487
15488 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15489
15490         PR target/48090
15491         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
15492
15493 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
15494
15495         * recog.h (insn_operand_data): Add an "allows_mem" field.
15496         * genoutput.c (output_operand_data): Initialize it.
15497         * optabs.c (maybe_legitimize_operand_same_code): New function.
15498         (maybe_legitimize_operand): Use it when matching the original
15499         op->value.
15500
15501 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
15502
15503         * genpreds.c (process_define_predicate): Move most processing
15504         to gensupport.c.  Continue to validate the expression.
15505         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
15506         (process_define_predicate): Move processing to gensupport.c.
15507         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
15508         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
15509         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
15510         argument.
15511         (valid_predicate_name_p): New function, split out from old
15512         genpreds.c:process_define_predicate.
15513         (process_define_predicate): New function, combining code from
15514         old genpreds.c and genrecog.c functions.
15515         (process_rtx): Call it for DEFINE_PREDICATE and
15516         DEFINE_SPECIAL_PREDICATE.
15517
15518 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
15519
15520         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
15521         size of a '%A' memory reference.
15522         (T_DREG, T_QREG): New neon_builtin_type_bits.
15523         (arm_init_neon_builtins): Assert that the load and store operands
15524         are neon_struct_operands.
15525         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
15526         (NEON_ARG_MEMORY): New builtin_arg.
15527         (neon_dereference_pointer): New function.
15528         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
15529         Handle NEON_ARG_MEMORY.
15530         (arm_expand_neon_builtin): Update after above interface changes.
15531         Use NEON_ARG_MEMORY for loads and stores.
15532         * config/arm/predicates.md (neon_struct_operand): New predicate.
15533         * config/arm/iterators.md (V_two_elem): Tweak formatting.
15534         (V_three_elem): Use BLKmode for accesses that have no associated mode.
15535         (V_four_elem): Tweak formatting.
15536         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
15537         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
15538         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
15539         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
15540         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
15541         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
15542         (neon_vst4<mode>): Replace pointer operand with a memory operand.
15543         Use %A in the output template.
15544         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
15545         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
15546         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
15547         the width of the memory access.  Remove post-increment.
15548         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
15549
15550 2011-04-12  Nick Clifton  <nickc@redhat.com>
15551
15552         * config/v850/v850.c (expand_prologue): Do not use the CALLT
15553         instruction for interrupt handlers if the target is the basic V850
15554         architecture.
15555         (expand_epilogue): Likewise.
15556
15557 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
15558
15559         PR rtl-optimization/48549
15560         * combine.c (propagate_for_debug): Also stop after BB_END of
15561         this_basic_block.  Process LAST and just stop processing after it.
15562         (combine_instructions): If last_combined_insn has been deleted,
15563         set last_combined_insn to its PREV_INSN.
15564
15565 2011-04-12  Richard Guenther  <rguenther@suse.de>
15566
15567         PR tree-optimization/46076
15568         * gimple.h (struct gimple_statement_call): Add fntype field.
15569         (gimple_call_fntype): Adjust.
15570         (gimple_call_set_fntype): New function.
15571         * gimple.c (gimple_build_call_1): Set the call function type.
15572         * gimplify.c (gimplify_call_expr): Preserve the function
15573         type the frontend used for the call.
15574         (gimplify_modify_expr): Likewise.
15575         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
15576         function type.
15577         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
15578         function type.
15579         * tree-ssa.c (useless_type_conversion_p): Function pointer
15580         conversions are useless.
15581
15582 2011-04-12  Martin Jambor  <mjambor@suse.cz>
15583
15584         * cgraph.h (cgraph_node): Remove function declaration.
15585         (cgraph_create_node): Declare.
15586         (cgraph_get_create_node): Likewise.
15587         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
15588         Updated all callers.
15589         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
15590         the decl does not already exist.  Call cgraph_get_create_node instead
15591         of cgraph_node.
15592         (cgraph_get_create_node): New function.
15593         (cgraph_same_body_alias): Update comment.
15594         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
15595         assert it does not return NULL.
15596         (cgraph_update_edges_for_call_stmt): Likewise.
15597         (cgraph_clone_edge): Likewise.
15598         (cgraph_create_virtual_clone): Likewise.
15599         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
15600         instead of cgraph_node.
15601         (cgraph_add_new_function): Call cgraph_create_node or
15602         cgraph_get_create_node instead of cgraph_node.
15603         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
15604         instead of cgraph_node.
15605         (record_eh_tables): Likewise.
15606         (mark_address): Likewise.
15607         (mark_load): Likewise.
15608         (build_cgraph_edges): Call cgraph_get_create_node instead
15609         of cgraph_node.
15610         (rebuild_cgraph_edges): Likewise.
15611         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
15612         instead of cgraph_node.
15613         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
15614         cgraph_node.
15615         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
15616         cgraph_create_node instead of cgraph_node.
15617         * c-decl.c (finish_function): Call cgraph_get_create_node instead
15618         of cgraph_node.
15619         * lto-cgraph.c (input_node): Likewise.
15620         * lto-streamer-in.c (input_function): Likewise.
15621         * varasm.c (mark_decl_referenced): Likewise.
15622         (assemble_alias): Likewise.
15623
15624 2011-04-12  Martin Jambor  <mjambor@suse.cz>
15625
15626         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
15627         instead of cgraph_node and assert it does not return NULL.
15628         * lto-streamer-in.c (lto_read_body): Likewise.
15629         * omp-low.c (new_omp_context): Likewise.
15630         (create_task_copyfn): Likewise.
15631         * tree-emutls.c (lower_emutls_function_body): Likewise.
15632         * matrix-reorg.c (transform_allocation_sites): Likewise.
15633
15634 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
15635
15636         PR c/48552
15637         * c-typeck.c (build_asm_expr): Error out on attempts to use
15638         void type outputs or inputs for constraints that allow reg or
15639         don't allow memory.
15640
15641 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
15642             Richard Earnshaw  <rearnsha@arm.com>
15643
15644         PR target/48250
15645         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
15646         to use sign-magnitude offsets. Reject unsupported unaligned
15647         cases. Add detailed description in comments.
15648         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
15649         condition from TARGET_32BIT to TARGET_ARM.
15650
15651 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
15652
15653         * tree.h (struct typed_tree): New.
15654         (struct tree_common): Include it instead of tree_base.
15655         (TREE_TYPE): Update for new location of type field.
15656         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
15657         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
15658         (union tree_node): Add typed field.
15659         * treestruct.def (TS_TYPED): New.
15660         * lto-streamer.c (check_handled_ts_structures): Handle it.
15661         * tree.c (MARK_TS_TYPED): New macro.
15662         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
15663
15664 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
15665
15666         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
15667         (force_nonfallthru): Do not alter the loop nest if no basic block
15668         was created.
15669
15670 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
15671
15672         * config/i386/sse.md (VI): New mode iterator.
15673         (SSEMODEI): Remove.
15674         (AVX256MODEI): Ditto.
15675         (AVXMODEF4P): Ditto.
15676         (avxvecpsmode): Ditto.
15677         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
15678         (sse2_andnot<mode>3): New expander.
15679         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
15680         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
15681         (<any_logic:code><mode>3): Use VI mode iterator.
15682         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
15683         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
15684         (*andnottf3): Handle AVX three-operand constraints.
15685         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
15686
15687 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
15688             Robert Millan  <rmh@gnu.org>
15689
15690         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
15691         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
15692         GNU_USER_DYNAMIC_LINKER64): Define.
15693         (REG_NAME): Don't undefine.
15694         (MD_UNWIND_SUPPORT): Undefine.
15695         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
15696         (REG_NAME): Don't undefine.
15697         (MD_UNWIND_SUPPORT): Undefine.
15698         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
15699
15700 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
15701
15702         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
15703         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
15704
15705 2011-04-11  Xinliang David Li  <davidxl@google.com>
15706
15707         * value-profile.c (check_ic_target): New function.
15708         (gimple_ic_transform): Sanity check indirect call target.
15709         * gimple-low.c (gimple_check_call_args): Interface change.
15710         (gimple_check_call_matching_types): New function.
15711         * tree-inline.c (tree_can_inline_p): Call new function.
15712
15713 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
15714
15715         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
15716         tree-pretty-print.h & realmpfr.h.
15717
15718 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
15719
15720         PR middle-end/48464
15721         * ira.c (setup_pressure_classes): Fix typo in loop condition.
15722         (setup_allocno_and_important_classes): Ditto.
15723
15724 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
15725
15726         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
15727         GNU_USER_DYNAMIC_LINKER.
15728         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
15729         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15730         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
15731         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15732         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15733         GNU_USER_TARGET_OS_CPP_BUILTINS.
15734         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
15735         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15736         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15737         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15738         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
15739         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15740         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15741         GNU_USER_TARGET_OS_CPP_BUILTINS.
15742         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15743         GNU_USER_DYNAMIC_LINKER.
15744         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15745         GNU_USER_TARGET_OS_CPP_BUILTINS.
15746         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
15747         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15748         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
15749         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15750         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
15751         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
15752         GNU_USER_DYNAMIC_LINKER64): Remove.
15753         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
15754         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15755         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15756         GNU_USER_DYNAMIC_LINKER.
15757         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15758         GNU_USER_TARGET_OS_CPP_BUILTINS.
15759         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15760         GNU_USER_TARGET_OS_CPP_BUILTINS.
15761         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
15762         to GNU_USER_TARGET_OS_CPP_BUILTINS.
15763         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15764         GNU_USER_TARGET_OS_CPP_BUILTINS.
15765         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
15766         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
15767         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
15768         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
15769         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15770         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15771         GNU_USER_DYNAMIC_LINKER.
15772         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15773         GNU_USER_TARGET_OS_CPP_BUILTINS.
15774         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
15775         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15776         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15777         GNU_USER_DYNAMIC_LINKER.
15778         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15779         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15780         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
15781         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15782         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15783         GNU_USER_DYNAMIC_LINKER.
15784         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
15785         GNU_USER_DYNAMIC_LINKERN32.
15786         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
15787         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
15788         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
15789         GNU_USER_DYNAMIC_LINKER32.
15790         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
15791         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15792         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15793         GNU_USER_DYNAMIC_LINKER.
15794         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15795         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15796         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
15797         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15798         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15799         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
15800         GNU_USER_DYNAMIC_LINKER32.
15801         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
15802         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
15803         GNU_USER_DYNAMIC_LINKER.
15804         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
15805         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15806         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
15807         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
15808         GNU_USER_DYNAMIC_LINKER64.
15809         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
15810         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15811         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15812         GNU_USER_DYNAMIC_LINKER.
15813         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
15814         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15815         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15816         GNU_USER_DYNAMIC_LINKER.
15817         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
15818         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15819         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
15820         GNU_USER_DYNAMIC_LINKER32.
15821         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
15822         GNU_USER_DYNAMIC_LINKER64.
15823         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
15824         GNU_USER_DYNAMIC_LINKER64.
15825         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
15826         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15827         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
15828         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15829         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15830
15831 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
15832
15833         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
15834         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
15835         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
15836         GNU_USER_DYNAMIC_LINKER.
15837         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
15838         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
15839         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
15840         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
15841         GNU_USER_DYNAMIC_LINKER64.
15842         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
15843         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
15844         GNU_USER_LINK_EMULATION.
15845         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
15846         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
15847         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
15848         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
15849         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
15850         CPP_SPEC, CC1_SPEC): Remove.
15851         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
15852         (GNU_USER_DYNAMIC_LINKER): Define.
15853         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
15854         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
15855         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
15856         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
15857         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
15858         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
15859         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
15860         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
15861         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
15862         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
15863         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
15864         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
15865         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
15866         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
15867         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
15868         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
15869         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15870         GNU_USER_DYNAMIC_LINKER.
15871         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15872         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
15873         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15874         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
15875         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15876         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
15877         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
15878         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
15879         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
15880         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
15881
15882 2011-04-11  Kai Tietz  <ktietz@redhat.com>
15883
15884         PR target/9601
15885         PR target/11772
15886         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
15887         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
15888         comment.
15889         (ix86_is_msabi_thiscall): Removed.
15890         (ix86_is_type_thiscall): Likewise.
15891         (ix86_get_callcvt): New function.
15892         (ix86_comp_type_attributes): Simplify check.
15893         (ix86_function_regparm): Use ix86_get_callcvt for calling
15894         convention attribute checks.
15895         (ix86_return_pops_args): Likewise.
15896         (ix86_static_chain): Likewise.
15897         (x86_this_parameter): Likewise.
15898         (x86_output_mi_thunk): Likewise.
15899         (ix86_function_type_abi): Optimize check for types without attributes.
15900         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
15901         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
15902         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
15903         by flag-values.
15904         (IX86_BASE_CALLCVT): Helper macro.
15905         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
15906         Use ix86_get_callcvt for calling convention attribute checks and avoid
15907         symbol-decoration for stdcall in TARGET_RTD case.
15908         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
15909         Likewise.
15910         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
15911         for declaration.
15912
15913 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
15914
15915         * config/i386/sse.md (VI_128): New mode iterator.
15916         (VI12_128): Rename from SSEMODE12.
15917         (VI14_128): Rename from SSEMODE14.
15918         (VI124_128): New mode iterator.
15919         (VI24_128): Rename from SSEMODE248.
15920         (VI248_128): Rename from SSEMODE248.
15921         (SSEMODE124C8): Remove.
15922         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
15923         (*sse2_<plusminus_insn><mode>3): Merge with
15924         *avx_<plusminus_insn><mode>3.
15925         (*mulv8hi3): Merge with *avx_mulv8hi3.
15926         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
15927         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
15928         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
15929         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
15930         (ashr<mode>3): Merge with *avx_ashr<mode>3.
15931         (lshr<mode>3): Merge with *avx_lshr<mode>3.
15932         (ashl<mode>3): Merge with *avx_ashl<mode>3.
15933         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
15934         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
15935         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15936         (*<smaxmin:code>v8hi3): Ditto.
15937         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
15938         (*<smaxmin:code>v16qi3): Ditto.
15939         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
15940         (*sse2_eq<mode>3): Ditto.
15941         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
15942         (*sse2_gt<mode>3): Ditto.
15943         (vcondv2di): Split out of vcond<mode>.
15944         (vconduv2di): Split out of vcondu<mode>.
15945
15946 2011-04-11  Richard Guenther  <rguenther@suse.de>
15947
15948         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
15949         before calling tree_low_cst.
15950
15951 2011-04-11  Richard Guenther  <rguenther@suse.de>
15952
15953         * stor-layout.c (layout_type): Compute all array index size operations
15954         in the original type.
15955         (initialize_sizetypes): Add comment.
15956         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
15957
15958 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
15959
15960         * common.opt (Tbss=, Tdata=, Ttext=): New options.
15961
15962 2011-04-11  Martin Jambor  <mjambor@suse.cz>
15963
15964         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
15965         of cgraph_node, handle NULL return value.
15966         (cgraph_global_info): Likewise.
15967         (cgraph_rtl_info): Likewise.
15968         * tree-inline.c (estimate_num_insns): Likewise.
15969         * gimplify.c (unshare_body): Likewise.
15970         (unvisit_body): Likewise.
15971         (gimplify_body): Likewise.
15972         * predict.c (optimize_function_for_size_p): Likewise.
15973         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
15974         (call_may_clobber_ref_p_1): Likewise.
15975         * varasm.c (function_section_1): Likewise.
15976         (assemble_start_function): Likewise.
15977
15978 2011-04-11  Martin Jambor  <mjambor@suse.cz>
15979
15980         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
15981         of cgraph_node.
15982         * final.c (rest_of_clean_state): Likewise.
15983         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
15984         * passes.c (pass_init_dump_file): Likewise.
15985         (execute_all_ipa_transforms): Likewise.
15986         (function_called_by_processed_nodes_p): Likewise.
15987         * predict.c (maybe_hot_frequency_p): Likewise.
15988         (probably_never_executed_bb_p): Likewise.
15989         (compute_function_frequency): Likewise.
15990         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
15991         (unnest_nesting_tree_1): Likewise.
15992         (lower_nested_functions): Likewise.
15993         * tree-optimize.c (execute_fixup_cfg): Likewise.
15994         (tree_rest_of_compilation): Likewise.
15995         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
15996         * tree-sra.c (ipa_early_sra): Likewise.
15997         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
15998         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
15999         * ipa.c (record_cdtor_fn): Likewise.
16000         * ipa-inline.c (cgraph_early_inlining): Likewise.
16001         (compute_inline_parameters_for_current): Likewise.
16002         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
16003         * ipa-pure-const.c (local_pure_const): Likewise.
16004         * ipa-split.c (split_function): Likewise.
16005         (execute_split_functions): Likewise.
16006         * cgraphbuild.c (build_cgraph_edges): Likewise.
16007         (rebuild_cgraph_edges): Likewise.
16008         (cgraph_rebuild_references): Likewise.
16009         (remove_cgraph_callee_edges): Likewise.
16010         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
16011         (verify_cgraph_node): Likewise.
16012         (cgraph_analyze_functions): Likewise.
16013         (cgraph_preserve_function_body_p): Likewise.
16014         (save_inline_function_body): Likewise.
16015         (save_inline_function_body): Likewise.
16016         * tree-inline.c (copy_bb): Likewise.
16017         (optimize_inline_calls): Likewise.
16018
16019 2011-04-11  Martin Jambor  <mjambor@suse.cz>
16020
16021         PR tree-optimization/48195
16022         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
16023         ipa_check_create_edge_args.
16024         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
16025         ipa_check_create_edge_args.
16026         * ipa-inline.c (inline_generate_summary): Do not call
16027         ipa_check_create_node_params and ipa_check_create_edge_args.
16028         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
16029         ipa_check_create_edge_args.
16030
16031 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
16032
16033         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
16034         instead of loop.
16035         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
16036         * function.c (record_hard_reg_sets): Likewise.
16037         * ira.c (compute_regs_asm_clobbered): Likewise.
16038         * sched-deps.c (sched_analyze_1): Likewise.
16039         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
16040
16041 2011-04-09  Xinliang David Li  <davidxl@google.com>
16042
16043         PR tree-optimization/PR48484
16044         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
16045         has_valid_pred lazily
16046
16047 2011-04-09  Duncan Sands  <baldrick@free.fr>
16048
16049         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
16050
16051 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
16052
16053         * combine.c (combine_validate_cost): Adjust comments.  Set registered
16054         cost of I0 to zero at the end, if any.
16055
16056 2011-04-08  Xinliang David Li  <davidxl@google.com>
16057
16058         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
16059         to insane profile data.
16060
16061 2011-04-08  Xinliang David Li  <davidxl@google.com>
16062
16063         * ipa-cp.c (ipcp_update_profiling): Correct
16064          negative scale factor due to insane profile data.
16065
16066 2011-04-08  Xinliang David Li  <davidxl@google.com>
16067
16068         * final.c (dump_basic_block_info): New function.
16069         (final): Dump basic block.
16070         (final_scan_insn): Remove old dump.
16071
16072 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
16073
16074         PR target/47829
16075         * config.gcc (i386-*-freebsd): Disable unwind table generation for
16076         crtbegin/crtend.
16077
16078 2011-04-08  Michael Matz  <matz@suse.de>
16079
16080         PR middle-end/48389
16081         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
16082         functions.
16083         (rebuild_jump_labels): Call rebuild_jump_labels_1.
16084         * rtl.h (rebuild_jump_labels_chain): Declare.
16085         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
16086         insns inserted on edges.
16087
16088 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
16089
16090         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
16091         * config/arm/arm-arches.def: New.
16092         * config/arm/arm-opts.h: New.
16093         * config/arm/genopt.sh: New.
16094         * config/arm/arm-tables.opt: New (generated).
16095         * config/arm/arm.c (arm_handle_option, arm_target_help,
16096         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
16097         (all_architectures): Get most table contents from arm-arches.def.
16098         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
16099         arm_selected_tune here.
16100         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
16101         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
16102         (march=, mcpu=, mtune=): Use Enum and Var.
16103         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
16104         (arm.o): Update dependencies.
16105
16106 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
16107
16108         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
16109         of header_file.
16110         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
16111         (write_typed_alloc_defns): Likewise.
16112         (main): Calls write_typed_alloc_defns with output_header.
16113
16114 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
16115
16116         PR inline-asm/48435
16117         * ira-color.c (setup_profitable_hard_regs): Add comments.
16118         Don't take prohibited hard regs into account.
16119         (setup_conflict_profitable_regs): Rename to
16120         get_conflict_profitable_regs.
16121         (check_hard_reg_p): Check prohibited hard regs.
16122
16123 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
16124
16125         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
16126         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
16127         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
16128
16129 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16130
16131         PR target/48366
16132         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
16133         move from floating point to shift amount register.
16134         (emit_move_sequence): Remove secondary reload support for floating
16135         point to shift amount amount register copies.
16136         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
16137         amount register copies.
16138         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
16139         register, return false if mode isn't a scalar integer mode.
16140         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
16141
16142 2011-04-08  Richard Guenther  <rguenther@suse.de>
16143
16144         * gimple.c (gimple_call_flags): Remove kludge.
16145
16146 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
16147
16148         * sel-sched.c (sel_region_init): Move call to
16149         sel_setup_region_sched_flags after setup_current_loop_nest.
16150
16151 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
16152
16153         PR rtl-optimization/48272
16154         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
16155         init_insn_reg_pressure_info.  Adjust a caller.
16156         * sched-int.h (init_insn_reg_pressure_info): Declare.
16157         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
16158         when sched-pressure is enabled.
16159
16160 2011-04-08  Richard Guenther  <rguenther@suse.de>
16161
16162         * gimple.c (gimple_set_modified): Do not queue calls to
16163         MODIFIED_NORETURN_CALLS here ...
16164         * tree-ssa-operands.c (update_stmt_operands): ... but here.
16165
16166 2011-04-08  Richard Guenther  <rguenther@suse.de>
16167
16168         PR lto/48467
16169         * toplev.c (lang_dependent_init): Do not open asm_out_file
16170         in WPA mode, nor perform debug machinery initialization.
16171         (finalize): Do not unlink asm_out_file in WPA mode.
16172
16173 2011-04-08  Richard Guenther  <rguenther@suse.de>
16174
16175         * gimple.h (gimple_call_fntype): New function.
16176         (gimple_call_return_type): Use it.
16177         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
16178         * gimple-low.c (gimple_check_call_args): Likewise.
16179         * gimple.c (gimple_call_flags): Likewise.
16180         (gimple_call_arg_flags): Likewise.
16181         (gimple_call_return_flags): Likewise.
16182         * tree-cfg.c (verify_gimple_call): Likewise.
16183         (do_warn_unused_result): Likewise.
16184         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
16185         * value-prof.c (gimple_ic_transform): Fix fndecl check.
16186
16187 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
16188
16189         PR rtl-optimization/48235
16190         * sel-sched.c (code_motion_process_successors): Recompute the last
16191         insn in basic block if control flow changed.
16192         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
16193         Update condition for ilist_remove.
16194
16195 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
16196
16197         PR rtl-optimization/48302
16198         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
16199         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
16200         it to record added preheader blocks.
16201         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
16202         on to sel_add_loop_preheaders.
16203         (sel_region_init): Move call to setup_current_loop_nest after
16204         sel_init_bbs.
16205
16206 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
16207
16208         PR target/48273
16209         * cfgloop.h (loop_has_exit_edges): New helper.
16210         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
16211         non-clonable.
16212         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
16213         that have no exit edges.
16214
16215 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
16216
16217         PR rtl-optimization/48442
16218         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
16219         all callers.  Adjust assert.
16220
16221 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
16222
16223         PR tree-optimization/48377
16224         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
16225         is_packed to true even for types with smaller TYPE_ALIGN than
16226         TYPE_SIZE.
16227
16228 2011-04-08  Richard Guenther  <rguenther@suse.de>
16229
16230         PR bootstrap/48513
16231         * doc/tm.texi: Re-generate.
16232
16233 2011-04-08  Wei Guozhi  <carrot@google.com>
16234
16235         PR target/47855
16236         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
16237         * config/arm/arm.c (arm_attr_length_push_multi): New function.
16238         * config/arm/arm.md (*push_multi): Change the length computation to
16239         call a C function.
16240
16241 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
16242
16243         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
16244         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
16245         * doc/tm.texi: Regenerate.
16246         * system.h (ASM_OUTPUT_BSS): Poison.
16247         * varasm.c (asm_output_bss): Remove function.
16248         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
16249
16250         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
16251         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
16252         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
16253         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16254         Likewise.
16255         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16256         Likewise.
16257         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16258         Likewise.
16259         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
16260
16261 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
16262
16263         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
16264         EnumValue lines.
16265
16266 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
16267
16268         * config/m68k/m68k.c (m68k_handle_option): Don't handle
16269         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
16270         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
16271         OPT_mcpu32.
16272         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
16273         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
16274         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
16275         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
16276         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
16277         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
16278         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
16279         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
16280         options.  Don't map other m68k options manually.  Don't handle
16281         old-style options as canonical.
16282         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
16283         * doc/install.texi (m68k-*-*): Document binutils version requirement.
16284
16285 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
16286
16287         * basic-block.h (force_nonfallthru): Move to...
16288         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
16289         (force_nonfallthru): ...here.
16290         * cfghooks.c (force_nonfallthru): New function.
16291         * cfgrtl.c (force_nonfallthru): Rename into...
16292         (rtl_force_nonfallthru): ...this.
16293         (commit_one_edge_insertion): Do not set AUX field.
16294         (commit_edge_insertions): Do not discover new basic blocks.
16295         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
16296         (cfg_layout_rtl_cfg_hooks): Likewise.
16297         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
16298         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
16299         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
16300
16301 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
16302
16303         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
16304         Remove macros.
16305
16306 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
16307
16308         * config/i386/sse.md: Update copyright year.
16309         (avxcvtvecmode): Remove.
16310         (sse_movhlps): Merge with *avx_movhlps.
16311         (sse_movlhps): Merge with *avx_movlhps.
16312         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
16313         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
16314         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
16315         (sse_loadhps): Merge with *avx_loadhps.
16316         (sse_storelps): Merge with *avx_storelps.
16317         (sse_loadlps): Merge with *avx_loadlps.
16318         (sse_movss): Merge with *avx_movss.
16319         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
16320         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
16321         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
16322         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
16323         (vec_set<mode>_0): Ditto.
16324         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
16325         (sse4_1_insertps): Merge with *avx_insertps.
16326         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
16327         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
16328         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
16329         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
16330         (sse2_storehpd): Merge with *avx_storehpd.
16331         (sse2_loadhpd): Merge with *avx_loadhpd.
16332         (sse2_loadlpd): Merge with *avx_loadlpd.
16333         (sse2_movsd): Merge with *avx_movsd.
16334         (*vec_concatv2df): Merge with *vec_concatv2df.
16335
16336 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
16337
16338         PR debug/48343
16339         * combine.c (combine_instructions): Add last_combined_insn,
16340         update it if insn is after it, pass it to all try_combine calls.
16341         (try_combine): Add last_combined_insn parameter, pass it instead of
16342         i3 to propagate_for_debug.
16343
16344 2011-04-07  Nick Clifton  <nickc@redhat.com>
16345
16346         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
16347         to handle MDR <-> data register transfers.
16348         (movhi_internal): Likewise.
16349
16350 2011-04-07  Alan Modra  <amodra@gmail.com>
16351
16352         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
16353         previous stack info.
16354
16355 2011-04-07  Tom de Vries  <tom@codesourcery.com>
16356
16357         PR target/43920
16358         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
16359         flow_find_cross_jump.  Swap variables to implement backward replacement.
16360         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
16361
16362 2011-04-07  Tom de Vries  <tom@codesourcery.com>
16363
16364         PR target/43920
16365         * cfgcleanup.c (walk_to_nondebug_insn): New function.
16366         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
16367         and bb2.
16368         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
16369         src1 or src2.  Redirect edges to the last basic block.  Update
16370         frequency and count on multiple basic blocks in case of fallthru.
16371
16372 2011-04-07  Tom de Vries  <tom@codesourcery.com>
16373
16374         PR target/43920
16375         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
16376         function.
16377         (old_insns_match_p): Change return type.  Replace return false/true
16378         with return dir_none/dir_both.  Use can_replace_by.
16379         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
16380         direction from dir_p.  Register replacement direction in dir, last_dir
16381         and afterlast_dir.  Handle new return type of old_insns_match_p using
16382         merge_dir.  Return replacement direction in dir_p.
16383         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
16384         return type of old_insns_match_p.
16385         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
16386         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
16387         flow_find_cross_jump.
16388         * basic-block.h (enum replace_direction): New type.
16389         (flow_find_cross_jump): Add parameter to declaration.
16390
16391 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
16392
16393         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
16394         (AVXMODEDCVTPS2DQ): Ditto.
16395         (VEC_FLOAT_MODE): Ditto.
16396         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
16397         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
16398         (<any_logic:code><mode>3): Use VF mode iterator.
16399         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
16400         Use VF mode iterator.
16401         (copysign<mode>3): Use VF mode iterator.
16402         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
16403         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
16404         (*<any_logic:code><MODEF:mode>3): Merge with
16405         *avx_<any_logic:code><MODEF:mode>3.
16406         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
16407         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
16408         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
16409         (avx_cvtdq2ps<avxmodesuffix>): Remove.
16410         (sse2_cvtdq2ps): Use %v modifier.
16411         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
16412         (avx_cvtps2dq<avxmodesuffix>): Remove.
16413         (sse2_cvtps2dq): Use %v modifier.
16414         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
16415         (avx_cvttps2dq<avxmodesuffix>): Remove.
16416         (sse2_cvttps2dq): Use %v modifier.
16417         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
16418         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
16419         (sse2_cvtsd2siq): Fix insn template.
16420         (sse2_cvtsd2siq_2): Ditto.
16421         (sse2_cvttsd2siq): Ditto.
16422         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
16423         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
16424
16425 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
16426
16427         * gcov-io.c: Use GCC Runtime Library Exception.
16428
16429 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
16430
16431         PR debug/48466
16432         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
16433         as base_reg whatever register reg has been eliminated to, instead
16434         of hardcoding STACK_POINTER_REGNUM.
16435
16436 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
16437
16438         * doc/tm.texi.in: Document C target hooks as separate from general
16439         target hooks.
16440         * doc/tm.texi: Regenerate.
16441         * genhooks.c (struct hook_desc): Add docname field.
16442         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
16443         docname field.
16444         (hook_array): Include c-target.def.
16445         (emit_documentation): Use docname field in output.
16446         (emit_init_macros): Take docname argument.  Only emit definitions
16447         for hooks matching docname.
16448         (main): Expect additional arguments in all cases.  Pass argument
16449         to emit_init_macros.
16450         * target.def: Move initial macro definitions and comments to
16451         target-hooks-macros.h.
16452         (gcc_targetcm): Move to c-family/c-target.def.
16453         * target.h (targetcm): Move declaration to c-family/c-target.h.
16454         * targhooks.c (default_handle_c_option): Move to
16455         c-family/c-opts.c.
16456         * targhooks.h (default_handle_c_option): Move declaration to
16457         c-family/c-common.h.
16458         * target-hooks-macros.h: New file.
16459         * config.gcc (target_has_targetcm): Define and use to add to
16460         c_target_objs and cxx_target_objs.
16461         * config/default-c.c: New file.
16462         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
16463         of target.h and target-def.h.
16464         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
16465         (darwin_objc_construct_string, darwin_cfstring_ref_p,
16466         darwin_check_cfstring_format_arg): Make static.
16467         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
16468         TARGET_STRING_OBJECT_REF_TYPE_P,
16469         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
16470         * config/darwin-protos.h (darwin_objc_construct_string,
16471         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
16472         declare.
16473         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
16474         TARGET_STRING_OBJECT_REF_TYPE_P,
16475         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
16476         * config/t-darwin (darwin-c.o): Update dependencies.
16477         * system.h (TARGET_HAS_TARGETCM): Poison.
16478         * Makefile.in (TARGET_H): Update.
16479         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
16480         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
16481         (default-c.o): New target.
16482         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
16483         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
16484         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
16485         c-target.def.
16486         (build/genhooks.o): Update dependencies.
16487
16488 2011-04-06  Richard Guenther  <rguenther@suse.de>
16489
16490         * ipa-inline.c (enum inlining_mode): Remove.
16491         (cgraph_flatten): Use some other token.
16492         (cgraph_edge_early_inlinable_p): New function, split out from ...
16493         (cgraph_perform_always_inlining): New function, split out from ...
16494         (cgraph_decide_inlining_incrementally): ... here.
16495         (cgraph_mark_inline_edge): Adjust.
16496         (cgraph_early_inlining): Re-structure.
16497         (pass_early_inline): Require SSA form.
16498
16499 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
16500             Julian Brown  <julian@codesourcery.com>
16501             Mark Shinwell  <shinwell@codesourcery.com>
16502
16503         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
16504         LO_REGS only for Thumb-1.
16505         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
16506         be used in short instructions when optimising for size on Thumb-2.
16507
16508 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
16509
16510         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
16511         associated with user returns to be preserved.
16512
16513 2011-04-06  Tristan Gingold  <gingold@adacore.com>
16514
16515         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
16516         symbol_queue_size, DBXOUT_DECR_NESTING,
16517         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
16518         if XCOFF_DEBUGGING_INFO.
16519
16520 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
16521
16522         * config/i386/i386.md (attribute isa): New.
16523         (attribute enabled): New.
16524         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
16525         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
16526         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
16527         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
16528         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
16529         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16530         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
16531         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
16532
16533         * config/i386/sse.md (VF): New mode iterator.
16534         (VF1): Ditto.
16535         (VF2): Ditto.
16536         (VF_128): Ditto.
16537         (SSEMODEF4): Remove.
16538         (attribute sse): Handle V8SF and V4DF modes.
16539         (<absneg:code><mode>2): Use VF mode iterator.
16540         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
16541         mode iterator.
16542         (<plusminus_insn><mode>3): Use VF mode iterator.
16543         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
16544         Use VF mode iterator.
16545         (<sse>_vm<plusminus_insn><mode>3): Merge with
16546         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
16547         (mul<mode>3): Use VF mode iterator.
16548         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
16549         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
16550         mode iterator.
16551         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
16552         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
16553         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
16554         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
16555         mode iterator.
16556         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
16557         Use VF1 mode iterator.
16558         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
16559         (sqrt<VF2:mode>2): New expander.
16560         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
16561         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
16562         and sqrtv2df2.  Use VF mode iterator.
16563         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
16564         mode iterator.
16565         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
16566         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
16567         Use VF1 mode iterator.
16568         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
16569         (<smaxmin:code><mode>3): Use VF mode iterator.
16570         (*<smaxmin:code><mode>3_finite): Merge with
16571         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
16572         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16573         (<sse>_vm<smaxmin:code><mode>2): Merge with
16574         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
16575         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
16576         mode iterator.
16577         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
16578         mode iterator.
16579         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
16580         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
16581         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
16582         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
16583         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
16584         VF mode iterator.
16585         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
16586         Use VF_128 mode iterator.
16587         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
16588         mode iterator.
16589         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
16590         VF_128 mode iterator.
16591         (vcond<mode>): Use VF mode iterator.
16592         * config/i386/predicates.md (sse_comparison_operator): Merge with
16593         avx_comparison_float_operator.  Do not declare as special_predicate.
16594         * config/i386/i386.c (struct builtin_description): Update for renamed
16595         compare patterns.
16596         (ix86_expand_args_builtin): Ditto.
16597         (ix86_expand_sse_compare_mask): Ditto.
16598
16599 2011-04-06  Richard Guenther  <rguenther@suse.de>
16600
16601         * tree-inline.c (estimate_num_insns): For calls simply account
16602         for all passed arguments and a used return value.
16603
16604 2011-04-06  Richard Guenther  <rguenther@suse.de>
16605
16606         PR tree-optimization/47663
16607         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
16608         call_stmt_time fields.
16609         (cgraph_edge_inlinable_p): Declare.
16610         (cgraph_edge_recursive_p): New inline function.
16611         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
16612         (cgraph_clone_edge): Copy it.
16613         * ipa-inline.c (cgraph_estimate_edge_time): New function.
16614         Account for call stmt time.
16615         (cgraph_estimate_time_after_inlining): Take edge argument.
16616         (cgraph_estimate_edge_growth): Account call stmt size.
16617         (cgraph_estimate_size_after_inlining): Take edge argument.
16618         (cgraph_mark_inline_edge): Adjust.
16619         (cgraph_check_inline_limits): Likewise.
16620         (cgraph_recursive_inlining_p): Remove.
16621         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
16622         (cgraph_decide_recursive_inlining): Take edge argument and
16623         adjust.
16624         (cgraph_decide_inlining_of_small_functions): Do not avoid
16625         diags for recursive inlining here.
16626         (cgraph_flatten): Adjust.
16627         (cgraph_decide_inlining_incrementally): Likewise.
16628         (estimate_function_body_sizes): Remove call cost handling.
16629         (compute_inline_parameters): Initialize caller edge call costs.
16630         (cgraph_estimate_edge_growth): New function.
16631         (cgraph_estimate_growth): Use it.
16632         (cgraph_edge_badness): Likewise.
16633         (cgraph_check_inline_limits): Take an edge argument.
16634         (cgraph_decide_inlining_of_small_functions): Adjust.
16635         (cgraph_decide_inlining): Likewise.
16636         * tree-inline.c (estimate_num_insns): Only account for call
16637         return value if it is used.
16638         (expand_call_inline): Avoid diagnostics on recursive inline
16639         functions here.
16640         * lto-cgraph.c (lto_output_edge): Output edge call costs.
16641         (input_edge): Input edge call costs.
16642
16643 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16644
16645         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
16646
16647 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
16648
16649         * doc/invoke.texi (Spec Files): Fix typo.
16650
16651 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
16652
16653         * profile.c (branch_prob): Move declaration of local variable.  Remove
16654         obsolete ??? comment.  Expand the location explicitly instead of using
16655         the LOCATION_FILE and LOCATION_LINE macros.
16656
16657 2011-04-06  Wei Guozhi  <carrot@google.com>
16658
16659         PR target/47855
16660         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
16661         (arm_cond_branch): Likewise.
16662         (arm_cond_branch_reversed): Likewise.
16663         (arm_jump): Likewise.
16664         (push_multi): Likewise.
16665         * config/arm/constraints.md (Py): New constraint.
16666
16667 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16668
16669         PR bootstrap/48471
16670         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
16671         Move these...
16672         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
16673         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
16674         #ifdef DBX_DEBUGGING_INFO.
16675
16676 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
16677
16678         PR bootstrap/48403
16679         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
16680         if old and new states differ.
16681
16682 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
16683
16684         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
16685         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
16686         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
16687         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
16688         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
16689         mcfv4e): Use Alias.
16690         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
16691         ColdFire options to -mcpu= options.
16692
16693 2011-04-05  Jeff Law  <law@redhat.com>
16694
16695         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
16696         check if BB is a successor of LOOP->header and return
16697         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
16698
16699 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
16700
16701         * cprop.c (struct reg_use): Remove.
16702         (reg_use_table): Make an array of RTX.
16703         (find_used_regs, constprop_register, local_cprop_pass,
16704         bypass_block): Simplify users of reg_use_table.
16705         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
16706         on one of the uses found by find_used_regs.
16707
16708 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16709
16710         PR bootstrap/48469
16711         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
16712         declaration.
16713
16714 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16715
16716         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
16717         as an rtx.
16718         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
16719
16720 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
16721
16722         PR middle-end/48441
16723         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
16724
16725 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16726
16727         * combine.c: Include obstack.h.
16728         (struct insn_link): Define.
16729         (uid_log_links): Adjust type.
16730         (FOR_EACH_LOG_LINK): New macro.
16731         (insn_link_obstack): Declare.
16732         (alloc_insn_link): Define.
16733         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
16734         type of link variables.
16735         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
16736         (try_combine, record_promoted_values, distribute_notes): Likewise.
16737         (distribute_links): Likewise.  Tweak prototype.
16738         (clear_log_links): Delete.
16739         (adjust_for_new_dest): Call alloc_insn_link.
16740         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
16741
16742 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16743
16744         * gcse.c (modify_mem_list): Convert to an array of VECs.
16745         (canon_modify_mem_list, compute_transp): Tweak formatting.
16746         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
16747         (load_killed_in_block_p): Likewise.
16748         (record_last_mem_set_info): Likewise.
16749         (clear_modify_mem_tables): Likewise.
16750
16751 2011-04-05  Tom de Vries  <tom@codesourcery.com>
16752
16753         PR middle-end/48461
16754         * function.c (emit_use_return_register_into_block): Only define if
16755         HAVE_return.
16756
16757 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
16758
16759         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
16760
16761 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
16762
16763         * config/rx/rx-opts.h: New.
16764         * config/rx/rx.c (rx_cpu_type): Remove.
16765         (rx_handle_option): Don't assert that global structures are in
16766         use.  Access variables via opts pointer.  Defer most handling of
16767         OPT_mint_register_.  Use error_at.
16768         (rx_option_override): Handle deferred OPT_mint_register_ here.
16769         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
16770         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
16771         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
16772         (rx_cpu_types): New Enum and EnumValue entries.
16773         (mint-register=): Use Defer and use Var accordingly.
16774
16775 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16776
16777         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
16778         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
16779         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
16780         Move these...
16781         (debug_free_queue, debug_nesting, symbol_queue_index):
16782         ...and these...
16783         * dbxout.c: ...to here.  Make static.
16784
16785 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
16786
16787         * gcse.c (modify_pair): Define.  Define a VEC of it.
16788         (canon_modify_mem_list): Convert to an array of VECs.
16789         (free_insn_expr_list_list): Delete.
16790         (clear_modify_mem_tables): Call VEC_free instead.
16791         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
16792         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
16793         (canon_list_insert, compute_transp): Likewise.
16794
16795 2011-04-05  Tom de Vries  <tom@codesourcery.com>
16796
16797         PR target/43920
16798         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
16799         for size.
16800
16801 2011-04-05  Tom de Vries  <tom@codesourcery.com>
16802
16803         PR target/43920
16804         * function.c (emit_use_return_register_into_block): New function.
16805         (thread_prologue_and_epilogue_insns): Use
16806         emit_use_return_register_into_block.
16807
16808 2011-04-05  Tom de Vries  <tom@codesourcery.com>
16809
16810         PR target/43920
16811         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
16812         insn.
16813
16814 2011-04-05  Tom de Vries  <tom@codesourcery.com>
16815
16816         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
16817
16818 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
16819
16820         * config/arm/arm.md (define_constants for unspec): Replace with
16821         define_c_enum.
16822         (define_constants for unspecv): Replace with define_c_enum.
16823         * config/arm/neon.md (define_constants for unspec): Replace with
16824         define_c_enum.
16825
16826 2011-04-04  Richard Henderson  <rth@redhat.com>
16827
16828         PR bootstrap/48400
16829         * dwarf2out.c (output_line_info): Always emit line info from
16830         at least one section.
16831         (dwarf2out_init): Create text_section_line_info here ...
16832         (set_cur_line_info_table): ... not here.
16833
16834 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
16835
16836         PR target/48380
16837         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
16838         not called.
16839
16840         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
16841
16842 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
16843
16844         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
16845         (expr_equiv_p): Remove.
16846         (insert_set_in_table): Look at <dest, src> pair instead of expr.
16847         (hash_scan_set): Update call to insert_set_in_table.
16848         (dump_hash_table): Dump <dest, src> pair.
16849         (lookup_set): Simplify.  Lookup <dest, src> pair.
16850         (compute_transp): Remove, fold heavily simplified code into...
16851         (compute_local_properties): ...here.  Expect COMP and TRANSP
16852         unconditionally.
16853         (find_avail_set): Take set directly from struct expr.
16854         (find_bypass-set): Likewise.
16855         (bypass_block): Likewise.
16856         (cprop_insn): Likewise.  Remove redundant INSN_P test.
16857
16858         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
16859         checks on form of COND from find_implicit_sets to here.
16860         (find_implicit_sets): Cleanup control flow. Split critical edges
16861         if it exposes implicit sets.  Allocate/resize implicit_sets as
16862         necessary.
16863         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
16864         changed something.  Run df_analyze after find_implicit_sets if any
16865         edges were split.  Do not allocate implicit_sets here.
16866
16867         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
16868         (gcse_obstack): Renamed to cprop_obstack.
16869         (GNEW, GNEWVEC, GNEWVAR): Remove.
16870         (gmalloc): Remove.
16871         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
16872         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
16873         (gcse_alloc): Likewise, and rename to cprop_alloc.
16874         (alloc_gcse_men, free_gcse_mem): Remove.
16875         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
16876         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
16877         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
16878
16879         * cprop.c (oprs_not_set_p): Remove.
16880         (mark_set, mark_clobber): Remove.
16881         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
16882         (reg_not_set_p): New function.
16883         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
16884         (cprop_insn): Likewise.
16885         (cprop_jump): Use FOR_EACH_EDGE.
16886
16887 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
16888
16889         PR bootstrap/48403
16890         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
16891         (rank_for_schedule): Use scheduled_insns vector instead of
16892         last_scheduled_insn.
16893         (ok_for_early_queue_removal): Likewise.
16894         (queue_to_ready): Search forward in nonscheduled_insns_begin if
16895         we have a dbg_cnt.
16896         (choose_ready): Likewise.
16897         (commit_schedule): Use VEC_iterate.
16898         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
16899         a dbg_cnt, use it and ensure the first insn is in the ready list.
16900         (haifa_sched_init): Allocate scheduled_insns.
16901         (sched_extend_ready_list): Don't allocate it; reserve space.
16902         (haifa_sched_finish): Free it.
16903
16904 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
16905
16906         * optc-gen.awk: Always remove type from Variable entry before
16907         recording in var_seen.
16908
16909 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
16910
16911         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
16912         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
16913         call to tidy_fallthru_edges.
16914
16915 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
16916
16917         * doc/options.texi (ToLower): Document.
16918         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
16919         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
16920         * opts.h (cl_option): Add cl_tolower field.
16921         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
16922         arguments with lowercase strings.
16923         * config/rx/rx.opt (mcpu=): Add ToLower.
16924         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
16925         argument.
16926
16927 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
16928
16929         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
16930
16931 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
16932
16933         * config/vax/vax.c: Include reload.h.
16934
16935 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
16936
16937         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
16938         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
16939         (sparc_preferred_reload_class): New function.
16940
16941 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
16942
16943         PR debug/48401
16944         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
16945         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
16946
16947 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
16948
16949         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
16950         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
16951
16952 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
16953
16954         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
16955         (ASM_OUTPUT_ALIGNED_BSS): Define.
16956
16957 2011-04-03  Michael Matz  <matz@suse.de>
16958
16959         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
16960         and next_slot members.
16961         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
16962         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
16963         (lto_streamer_cache_append): Declare.
16964         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
16965         unsigned index, remove offset parameter, ensure that we append
16966         or update existing entries.
16967         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
16968         parameter, update next_slot for append.
16969         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
16970         parameter.
16971         (lto_streamer_cache_insert_at): Likewise.
16972         (lto_streamer_cache_append): New function.
16973         (lto_streamer_cache_lookup): Use unsigned index.
16974         (lto_streamer_cache_get): Likewise.
16975         (lto_record_common_node): Don't test tree_node_can_be_shared.
16976         (preload_common_node): Adjust call to lto_streamer_cache_insert.
16977         (lto_streamer_cache_delete): Don't free offsets member.
16978         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
16979         (lto_output_string_with_length): Use lto_output_data_stream.
16980         (lto_output_tree_header): Remove ix parameter, don't write it.
16981         (lto_output_builtin_tree): Likewise.
16982         (lto_write_tree): Adjust callers to above, don't track and write
16983         offset, write unsigned index.
16984         (output_unreferenced_globals): Don't emit all global vars.
16985         (write_global_references): Use unsigned indices.
16986         (lto_output_decl_state_refs): Likewise.
16987         (write_symbol): Likewise.
16988         * lto-streamer-in.c (lto_input_chain): Move earlier.
16989         (input_function): Use unsigned index.
16990         (input_alias_pairs): Don't read and then ignore all global vars.
16991         (lto_materialize_tree): Remove ix_p parameter, don't read index,
16992         don't pass it back, use lto_streamer_cache_append.
16993         (lto_register_var_decl_in_symtab): Use unsigned index.
16994         (lto_register_function_decl_in_symtab): Likewise.
16995         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
16996         index.
16997         (lto_get_builtin_tree): Don't read index, use
16998         lto_streamer_cache_append.
16999         (lto_read_tree): Adjust call to lto_materialize_tree.
17000
17001         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
17002         don't use function calls in arguments to MIN.
17003
17004         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
17005         twice.
17006
17007         * gimple.c (gimple_type_leader_entry): Mark deletable.
17008
17009 2011-04-03  Alan Modra  <amodra@gmail.com>
17010
17011         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
17012
17013 2011-04-03  Michael Matz  <matz@suse.de>
17014
17015         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
17016         an integer.
17017         * tree.h (tree_decl_non_common.vindex): Adjust comment.
17018
17019 2011-04-03  Michael Matz  <matz@suse.de>
17020
17021         * cgraphbuild.c (record_reference): Canonicalize constructor values.
17022         * gimple-fold.c (canonicalize_constructor_val): Accept being called
17023         without function context.
17024         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
17025         current_function_decl and cfun.
17026
17027 2011-04-03  Michael Matz  <matz@suse.de>
17028
17029         * tree.c (decl_init_priority_insert): Don't create entry for
17030         default priority.
17031         (decl_fini_priority_insert): Ditto.
17032         (fields_compatible_p, find_compatible_field): Remove.
17033         * tree.h (fields_compatible_p, find_compatible_field): Remove.
17034         * gimple.c (gimple_compare_field_offset): Adjust block comment.
17035
17036 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
17037
17038         * combine.c (try_combine): Remove useless local variable.
17039
17040 2011-04-03  Richard Guenther  <rguenther@suse.de>
17041             Ira Rosen  <ira.rosen@linaro.org>
17042
17043         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
17044         non-variable offsets and compare the remaining bases of the two
17045         accesses instead of looking for exact same data-ref.
17046
17047 2011-04-02  Kai Tietz  <ktietz@redhat.com>
17048
17049         PR target/48416
17050         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
17051
17052         * i386.c (ix86_is_msabi_thiscall): New helper function.
17053         (ix86_is_type_thiscall): New helper function.
17054         (ix86_comp_type_attributes): Handle thiscall for method-functions
17055         special.
17056         (init_cumulative_args): Likewise.
17057         (find_drap_reg): Likewise.
17058         (ix86_static_chain): Likewise.
17059         (x86_this_parameter): Likewise.
17060         (x86_output_mi_thunk): Likewise.
17061
17062 2011-04-01  Olivier Hainque  <hainque@adacore.com>
17063             Nicolas Setton  <setton@adacore.com>
17064             Eric Botcazou  <ebotcazou@adacore.com>
17065
17066         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
17067         (add_gnat_descriptive_type_attribute): New function.
17068         (gen_array_type_die): Call it.
17069         (gen_enumeration_type_die): Likewise.
17070         (gen_struct_or_union_type_die): Likewise.
17071         (modified_type_die): Likewise.
17072         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
17073         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
17074         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
17075
17076 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
17077
17078         PR bootstrap/48148
17079         * dwarf2out.c (resolve_addr): Don't call force_decl_die
17080         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
17081
17082         Revert:
17083         2011-03-17  Richard Guenther  <rguenther@suse.de>
17084
17085         PR bootstrap/48148
17086         * lto-cgraph.c (input_overwrite_node): Clear the abstract
17087         origin for decls in other ltrans units.
17088         (input_varpool_node): Likewise.
17089
17090 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
17091
17092         PR middle-end/48335
17093         * expr.c (expand_assignment): Handle all possibilities
17094         if TO_RTX is CONCAT.
17095         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
17096         (store_split_bit_field): If SUBREG_REG (op0) or
17097         op0 itself has smaller mode than word, return it
17098         for offset 0 and const0_rtx for out-of-bounds stores.
17099         If word is const0_rtx, skip it.
17100
17101 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
17102
17103         * config/h8300/h8300.c (print_operand_address): Rename to...
17104         (h8300_print_operand_address): ...this. Make static. Adjust comments.
17105         Call h8300_print_operand and h8300_print_operand_address instead of
17106         print_operand and print_operand_address. Declare.
17107         (print_operand): Renake to...
17108         (h8300_print_operand): ...this. Make static. Adjust comments.
17109         Call h8300_print_operand instead of print_operand. Declare.
17110         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
17111         (h8300_register_move_cost): Likewise.
17112         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
17113         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
17114         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
17115         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
17116         * config/h8300/h8300-protos.h (print_operand): Delete.
17117         (print_operand_address): Delete.
17118
17119 2011-04-01  Richard Henderson  <rth@redhat.com>
17120
17121         PR 48400
17122         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
17123         in strict mode before dwarf4.  Re-order tests to early out
17124         before switching sections.
17125
17126 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
17127
17128         * config/h8300/constraints.md: New file.
17129         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
17130         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
17131         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
17132         * config/h8300/predicates.md (bit_operand): Likewise.
17133         (incdec_operand): Use satisfies_constraint_M and
17134         satisfies_constraint_O.  Don't use C code block.
17135         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
17136         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
17137         (compute_mov_length): Use satisfies_constraint_G.
17138         (fix_bit_operand): Use satisfies_constraint_U.
17139         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
17140         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
17141         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
17142         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
17143         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
17144         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
17145         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17146         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
17147         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
17148         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
17149         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
17150         (EXTRA_MEMORY_CONSTRAINT): Delete.
17151
17152 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
17153             Michael Meissner  <meissner@linux.vnet.ibm.com>
17154
17155         PR target/48262
17156         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
17157         operands, as per the specifications.
17158
17159         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
17160         (vec_extract_evenv4sf): Ditto.
17161         (vec_extract_evenv8hi): Ditto.
17162         (vec_extract_evenv16qi): Ditto.
17163         (vec_extract_oddv4si): Ditto.
17164
17165 2011-03-31  Mark Wielaard  <mjw@redhat.com>
17166
17167         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
17168         high_pc attribute if the CU has no associated code. Only output
17169         DW_AT_entry_pc for CU if not generating strict dwarf and
17170         dwarf_version < 4.
17171
17172 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
17173
17174         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
17175         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
17176         out of ...
17177         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
17178         * final.c (final_start_function): Call the new function rather
17179         than using a NULL argument for dwarf2out_frame_debug.
17180
17181         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
17182         that contains the prologue.
17183
17184         * haifa-sched.c (queue_insn): New arg REASON.  All callers
17185         changed.  Print it in debugging output.
17186
17187         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
17188
17189         * sched-ebb.c (begin_schedule_ready): Remove second argument.
17190         Split most of the code into...
17191         (begin_move_insn): ... here.  New function.
17192         (ebb_sched_info): Add a pointer to it.
17193         * haifa-sched.c (scheduled_insns): New static variable.
17194         (sched_extend_ready_list): Allocate it.
17195         (schedule_block): Use it to record the order of scheduled insns.
17196         Perform RTL changes to move insns only after all scheduling
17197         decisions have been made.
17198         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
17199         begin_move_insn field.
17200         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
17201         * sched-int.h (struct haifa_sched_info): Remove second argument
17202         from begin_schedule_ready hook.  Add new member begin_move_insn.
17203         * sched-rgn.c (begin_schedule_ready): Remove second argument.
17204         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
17205
17206         * haifa-sched.c (prune_ready_list): New function, broken out of
17207         schedule_block.
17208         (schedule_block): Use it.
17209
17210 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17211
17212         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
17213
17214 2011-04-01  Kai Tietz  <ktietz@redhat.com>
17215
17216         * config.gcc (*-*-mingw*): Allow as option the
17217         posix threading model.
17218         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
17219         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
17220         definition.
17221         (CPP_SPEC): Add pthread/no-pthread handling.
17222         (LIB_SPEC): Likewise.
17223         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
17224         (LIB_SPEC): Likewise.
17225         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
17226         flag to pass -pthread option for shared libgcc build.
17227         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
17228         for shared libgcc build.
17229         * config/i386/t-mingw-pthread: New file.
17230         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
17231         New define to enable use of library pthread by default.
17232         * config/i386/mingw.opt (pthread): New driver option.
17233         (no-pthread): New driver option.
17234         * config/i386/cygming.opt: Make sure trailing empty line is retained.
17235         * config/i386/mingw-w64.opt: Likewise.
17236
17237 2011-04-01  Gary Funck  <gary@intrepid.com>
17238
17239         * c-decl.c (grokdeclarator): Fix formatting.
17240
17241 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
17242
17243         * expr.c (emit_block_move_via_movmem): Use n_generator_args
17244         instead of n_operands.
17245         (set_storage_via_setmem): Likewise.
17246         * optabs.c (maybe_gen_insn): Likewise.
17247         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
17248         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
17249         (mips_expand_builtin_direct): Likewise.
17250         * config/spu/spu.c (expand_builtin_args): Likewise.
17251
17252 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
17253
17254         * recog.h (insn_data_d): Add n_generator_args.
17255         * genoutput.c (data): Likewise.
17256         (output_insn_data): Print it.
17257         (max_opno, num_dups): Delete.
17258         (scan_operands): Just fill in "d->operand[...]".
17259         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
17260
17261 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
17262
17263         * gensupport.h (pattern_stats): New structure.
17264         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
17265         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
17266         (max_operand_1, max_operand_vec): Delete.
17267         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
17268
17269 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
17270
17271         * emit-rtl.c (emit_pattern_after_setloc): New function.
17272         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
17273         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
17274         (emit_pattern_after): New function.
17275         (emit_insn_after, emit_jump_insn_after): Call it.
17276         (emit_call_insn_after, emit_debug_insn_after): Likewise.
17277         (emit_pattern_before_setloc): New function.
17278         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
17279         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
17280         Likewise.
17281         (emit_pattern_before): New function.
17282         (emit_insn_before, emit_jump_insn_before): Call it.
17283         (emit_call_insn_before, emit_debug_insn_before): Likewise.
17284
17285 2011-03-31  Richard Henderson  <rth@redhat.com>
17286
17287         * dwarf2out.c (dw_separate_line_info_ref): Remove.
17288         (dw_separate_line_info_entry): Remove.
17289         (enum dw_line_info_opcode): New.
17290         (dw_line_info_entry): Use it.
17291         (dw_line_info_table, dw_line_info_table_p): New.
17292         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
17293         (line_info_table, line_info_label_num): Remove.
17294         (line_info_table_in_use): Remove.
17295         (separate_line_info_table): Remove.
17296         (separate_line_info_table_allocated): Remove.
17297         (separate_line_info_table_in_use): Remove.
17298         (LINE_INFO_TABLE_INCREMENT): Remove.
17299         (line_info_label_num): New.
17300         (cur_line_info_table): New.
17301         (text_section_line_info, cold_text_section_line_info): New.
17302         (separate_line_info): New.
17303         (SEPARATE_LINE_CODE_LABEL): Remove.
17304         (print_dwarf_line_table): Remove.
17305         (debug_dwarf): Don't dump it.
17306         (output_one_line_info_table): New.
17307         (output_line_info): Use it.
17308         (new_line_info_table): New.
17309         (set_cur_line_info_table): New.
17310         (dwarf2out_switch_text_section): Use it.
17311         (dwarf2out_begin_function): Likewise.
17312         (push_dw_line_info_entry): New.
17313         (dwarf2out_source_line): Rewrite for new line info tables.
17314         (dwarf2out_init): Remove dead initailizations.
17315
17316 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
17317
17318         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
17319         various flags.
17320         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
17321         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
17322         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
17323         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
17324         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
17325         * opt-functions.awk (flag_init, switch_bit_fields): New.
17326         (switch_flags): Don't handle flags moved to bit-fields.  Don't
17327         generate CL_MISSING_OK or CL_SAVE.
17328         * optc-gen.awk: Update to generate bit-field output as well as
17329         flags field.
17330         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
17331         bit-field instead of CL_REJECT_DRIVER flag.
17332         * opts-common.c (generate_canonical_option,
17333         decode_cmdline_option): Use bit-fields instead of CL_* flags.
17334         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
17335         instead of CL_REJECT_NEGATIVE flag.
17336         * toplev.c (print_switch_values): Use cl_report bit-field instead
17337         of CL_REPORT flag.
17338
17339 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
17340
17341         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
17342         a zero minimum index only if it is redundant.
17343
17344 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
17345
17346         PR rtl-optimization/48381
17347         * ira-color.c (assign_hard_reg): Use hard reg set intersection
17348         instead of ira_class_hard_reg_index for calculating conflicting
17349         hard registers.
17350
17351 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
17352
17353         * cprop.c: Clean up hash table building.
17354         (reg_avail_info): Remove.
17355         (oprs_available_p): Remove.
17356         (record_last_reg_set_info): Remove.
17357         (record_last_set_info): Remove.
17358         (reg_available_p): New function.
17359         (gcse_constant_p): Do not treat unfolded conditions as constants.
17360         (make_set_regs_unavailable): New function.
17361         (hash_scan_set): Simplify with new reg_available_p.
17362         (compute_hash_table_work): Traverse insns stream only once.
17363         Do not compute reg_avail_info. Traverse insns in reverse order.
17364         Record implicit sets after recording explicit sets from the block.
17365
17366 2011-03-31  Michael Matz  <matz@suse.de>
17367
17368         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
17369
17370 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
17371
17372         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
17373         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
17374         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17375         (h8300_mode_dependent_address_p): New function.
17376         (h8300_get_index): Make static.
17377
17378 2011-03-31  Jeff Law  <law@redhat.com>
17379
17380         * reload1.c (elimination_effects): Fix typo in recent change.
17381
17382         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
17383         typo potentially leading to null pointer dereference.
17384
17385         * caller-save.c (new_saved_hard_reg): Eliminate return value.
17386         (setup_save_areas): Corresponding changes to avoid useless
17387         assignments.
17388
17389         * jump.c (reversed_comparison_code_parts): Avoid successive return
17390         statements when REVERSE_CONDITION is defined.
17391
17392         * expr.c (expand_assignment): Avoid useless assignments.
17393         (expand_expr_real_1): Likewise.
17394         (expand_expr_real_2): Avoid useless statements.
17395
17396         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
17397
17398         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
17399
17400         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
17401         statements.
17402
17403         * stmt.c (expand_expr_stmt): Avoid useless assignment.
17404
17405 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
17406
17407         PR target/47109
17408         * doc/tm.texi.in (TARGET_VERSION): Remove.
17409         * doc/tm.texi: Regenerate.
17410         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
17411         * collect2.c (main): Don't use TARGET_VERSION.
17412         * mips-tdump.c (main): Don't use TARGET_VERSION.
17413         * mips-tfile.c (main): Don't use TARGET_VERSION.
17414         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
17415         * config/rs6000/vxworksae.h: Remove.
17416         * config/alpha/alpha.h (TARGET_VERSION): Remove.
17417         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
17418         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
17419         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
17420         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
17421         * config/arm/arm.h (TARGET_VERSION): Remove.
17422         * config/arm/coff.h (TARGET_VERSION): Remove.
17423         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
17424         * config/arm/elf.h (TARGET_VERSION): Remove.
17425         * config/arm/freebsd.h (TARGET_VERSION): Remove.
17426         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
17427         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
17428         * config/arm/pe.h (TARGET_VERSION): Remove.
17429         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
17430         * config/arm/semi.h (TARGET_VERSION): Remove.
17431         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
17432         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
17433         * config/arm/vxworks.h (TARGET_VERSION): Remove.
17434         * config/avr/avr.h (TARGET_VERSION): Remove.
17435         * config/bfin/bfin.h (TARGET_VERSION): Remove.
17436         * config/fr30/fr30.h (TARGET_VERSION): Remove.
17437         * config/frv/frv.h (TARGET_VERSION): Remove.
17438         * config/h8300/h8300.h (TARGET_VERSION): Remove.
17439         * config/i386/cygwin.h (TARGET_VERSION): Remove.
17440         * config/i386/darwin.h (TARGET_VERSION): Remove.
17441         * config/i386/darwin64.h (TARGET_VERSION): Remove.
17442         * config/i386/djgpp.h (TARGET_VERSION): Remove.
17443         * config/i386/freebsd.h (TARGET_VERSION): Remove.
17444         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
17445         * config/i386/gnu.h (TARGET_VERSION): Remove.
17446         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
17447         * config/i386/i386elf.h (TARGET_VERSION): Remove.
17448         * config/i386/linux.h (TARGET_VERSION): Remove.
17449         * config/i386/linux64.h (TARGET_VERSION): Remove.
17450         * config/i386/lynx.h (TARGET_VERSION): Remove.
17451         * config/i386/mingw32.h (TARGET_VERSION): Remove.
17452         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
17453         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
17454         * config/i386/netware.h (TARGET_VERSION): Remove.
17455         * config/i386/nto.h (TARGET_VERSION): Remove.
17456         * config/i386/openbsd.h (TARGET_VERSION): Remove.
17457         * config/i386/vxworks.h (TARGET_VERSION): Remove.
17458         * config/ia64/elf.h (TARGET_VERSION): Remove.
17459         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
17460         * config/ia64/hpux.h (TARGET_VERSION): Remove.
17461         * config/ia64/linux.h (TARGET_VERSION): Remove.
17462         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
17463         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
17464         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
17465         * config/lm32/lm32.h (TARGET_VERSION): Remove.
17466         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
17467         * config/m32c/m32c.h (TARGET_VERSION): Remove.
17468         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
17469         * config/m32r/m32r.h (TARGET_VERSION): Remove.
17470         * config/m68k/linux.h (TARGET_VERSION): Remove.
17471         * config/m68k/m68k.h (TARGET_VERSION): Remove.
17472         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
17473         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
17474         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
17475         * config/mep/mep.h (TARGET_VERSION): Remove.
17476         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
17477         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
17478         * config/mips/iris6.h (MACHINE_TYPE): Remove.
17479         * config/mips/linux.h (TARGET_VERSION): Remove.
17480         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
17481         * config/mips/vxworks.h (TARGET_VERSION): Remove.
17482         * config/mmix/mmix.h (TARGET_VERSION): Remove.
17483         * config/mn10300/linux.h (TARGET_VERSION): Remove.
17484         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
17485         * config/pa/pa.h (TARGET_VERSION): Remove.
17486         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
17487         * config/picochip/picochip.h (TARGET_VERSION): Remove.
17488         * config/rs6000/aix.h (TARGET_VERSION): Remove.
17489         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
17490         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
17491         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
17492         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
17493         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
17494         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
17495         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
17496         * config/rs6000/linux.h (TARGET_VERSION): Remove.
17497         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
17498         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
17499         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
17500         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
17501         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
17502         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
17503         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
17504         * config/s390/linux.h (TARGET_VERSION): Remove.
17505         * config/s390/s390.h (TARGET_VERSION): Remove.
17506         * config/s390/tpf.h (TARGET_VERSION): Remove.
17507         * config/score/score.h (TARGET_VERSION): Remove.
17508         * config/sh/linux.h (TARGET_VERSION): Remove.
17509         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
17510         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
17511         * config/sh/sh.h (TARGET_VERSION): Remove.
17512         * config/sh/sh64.h (TARGET_VERSION): Remove.
17513         * config/sh/superh.h (TARGET_VERSION): Remove.
17514         * config/sh/vxworks.h (TARGET_VERSION): Remove.
17515         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
17516         * config/sparc/linux.h (TARGET_VERSION): Remove.
17517         * config/sparc/linux64.h (TARGET_VERSION): Remove.
17518         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
17519         TARGET_NAME32, TARGET_NAME): Remove.
17520         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
17521         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
17522         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
17523         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
17524         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
17525         * config/spu/spu.h (TARGET_VERSION): Remove.
17526         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
17527         * config/v850/v850.h (TARGET_VERSION): Remove.
17528         * config/vax/linux.h (TARGET_VERSION): Remove.
17529         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
17530         * config/xtensa/elf.h (TARGET_VERSION): Remove.
17531         * config/xtensa/linux.h (TARGET_VERSION): Remove.
17532
17533 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
17534
17535         PR target/48142
17536         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
17537         frame-related from frame-unrelated adjustments to the stack pointer.
17538
17539 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
17540
17541         * common.opt (fdebug-types-section): Move earlier.
17542         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
17543
17544 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
17545
17546         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
17547         var.
17548
17549 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
17550
17551         * tree.h (CASE_CHAIN): Define.
17552         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
17553         (gimple_redirect_edge_and_branch): Likewise.
17554
17555 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
17556
17557         PR middle-end/48367
17558         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
17559         calculation.
17560
17561 2011-03-30  Jeff Law  <law@redhat.com>
17562
17563         * PR bootstrap/48371
17564         * reload1.c (reload): Fix botch in last change.
17565
17566         * reload.h (struct reload): Fix typo introduced in last change.
17567
17568 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
17569
17570         * config/arm/arm.opt (mhard-float, msoft-float): Mark
17571         Undocumented.  Remove help text.
17572         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
17573         -mhard-float.
17574
17575 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
17576
17577         * doc/options.texi (NegativeAlias): Document.
17578         (Alias): Mention NegativeAlias.
17579         * opt-functions.awk: Handle NegativeAlias.
17580         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
17581         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
17582         * opts.h (CL_NEGATIVE_ALIAS): Define.
17583         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
17584         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
17585         OPT_mspe_.
17586         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
17587         Alias entries.
17588         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17589         mno-spe and mno-isel instead of mspe=no and -misel=no.
17590
17591 2011-03-29  Mark Wielaard  <mjw@redhat.com>
17592
17593         * common.opt (fdebug-types-section): New flag.
17594         * doc/invoke.texi: Document new -fno-debug-types-section flag.
17595         * dwarf2out.c (use_debug_types): New define.
17596         (struct die_struct): Mark die_id with GTY desc use_debug_types.
17597         (print_die): Guard output of type unit signatures using
17598         use_debug_types.
17599         (build_abbrev_table): Replace assert of dwarf_version >= 4
17600         with assert on use_debug_types.
17601         (size_of_die): Likewise.
17602         (unmark_dies): Likewise.
17603         (value_format): Decide AT_ref_external form on use_debug_types.
17604         (output_die): Replace dwarf_version version check guard with
17605         use_debug_types where appropriate.
17606         (modified_type_die): Likewise.
17607         (gen_reference_type_die): Likewise.
17608         (dwarf2out_start_source_file): Likewise.
17609         (dwarf2out_end_source_file): Likewise.
17610         (prune_unused_types_walk_attribs): Likewise.
17611         (dwarf2out_finish): Likewise.
17612
17613 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
17614
17615         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
17616
17617 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
17618
17619         PR rtl-optimization/48332
17620         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
17621         mode of input operand N and modeN to its actual mode.
17622
17623 2011-03-30  Jeff Law  <law@redhat.com>
17624
17625         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
17626         define accessor macro.
17627         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
17628         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
17629         (reg_equiv_init): Likewise.
17630         (reg_equivs_size): New variable.
17631         (reg_equiv_init_size): Remove.
17632         (allocate_initial_values): Move prototype to here from....
17633         * integrate.h (allocate_initial_values): Remove prototype.
17634         * integrate.c: Include reload.h.
17635         (allocate_initial_values): Corresponding changes.
17636         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
17637         (fix_reg_equiv_init, no_equiv): Corresponding changes.
17638         (update_equiv_regs): Corresponding changes.
17639         (ira): Corresponding changes.
17640         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
17641         (push_secondary_reload): Corresponding changes.
17642         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
17643         (make_memloc, find_reloads_address): Corresponding changes.
17644         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
17645         (find_reloads_address_1): Corresponding changes.
17646         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
17647         (refers_to_regno_for_reload_p): Corresponding changes.
17648         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
17649         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
17650         * reload1.c: Include ggc.h.
17651         (grow_reg_equivs): New function.
17652         (replace_pseudos_in, reload): Corresponding changes.
17653         (calculate_needs_all_insns, alter_regs): Corresponding changes.
17654         (eliminate_regs_1, elimination_effects): Corresponding changes.
17655         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
17656         (delete_output_reload): Likewise.
17657         * caller-save.c (mark_referenced_regs): Corresponding changes.
17658         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
17659         * frv/predicates.md (frv_load_operand): Corresponding changes.
17660         * microblaze/microblaze.c (double_memory_operand): Corresponding
17661         changes.
17662         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
17663         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
17664         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
17665         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
17666         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
17667         changes.
17668         * pa/pa.c (emit_move_sequence): Corresponding changes.
17669         * vax/vax.c (nonindexed_address_p): Corresponding changes.
17670
17671 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
17672
17673         PR target/47551
17674         * config/arm/arm.c (coproc_secondary_reload_class): Handle
17675         structure modes.  Don't check neon_vector_mem_operand for
17676         vector or structure modes.
17677
17678 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
17679             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17680
17681         PR target/43590
17682         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
17683         operand 1 and reshuffle the operands to match.
17684         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
17685
17686 2011-03-30  Christian Schüler  <cschueler@gmx.de>
17687
17688         PR driver/48208
17689         * config/c.opt (F): Added 'Driver' to -F option.
17690
17691         PR driver/48260
17692         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
17693           handler function.
17694         * config/darwin.opt: Added '-arch' option.
17695
17696 2011-03-30  Nick Clifton  <nickc@redhat.com>
17697
17698         * config/rx/rx.md: Add peepholes and patterns to combine
17699         extending loads and simple arithmetic instructions.
17700         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
17701         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
17702         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
17703         modes to use pre-decrement and post-increment addressing.
17704         (rx_is_restricted_memory_address): Add range checking of REG+INT
17705         addresses.
17706         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
17707         (rx_memory_move_cost): Adjust cost of stores.
17708         (rx_adjust_insn_length): New function.
17709
17710 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
17711
17712         PR c/48305
17713         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
17714         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
17715         matching arg00/arg01 types.
17716
17717 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
17718
17719         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
17720         last_location to UNKNOWN_LOCATION.
17721
17722 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
17723
17724         PR target/48349
17725         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
17726         FLOAT_SSE_REGS.
17727
17728 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
17729             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17730
17731         PR bootstrap/48337
17732         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
17733         Init(PROCESSOR_V7).
17734         (sparc_cpu): Likewise.
17735         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
17736         PROCESSOR_V7.
17737
17738 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
17739
17740         PR target/48336
17741         PR middle-end/48342
17742         PR rtl-optimization/48345
17743         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
17744         hard regs for given mode from profitable regs when doing secondary
17745         allocation.
17746
17747 2011-03-29  Jeff Law  <law@redhat.com>
17748
17749         PR bootstrap/48327
17750         * tree-ssa-threadupdate.c (struct redirection_data): Remove
17751         do_not_duplicate field.
17752         (lookup_redirection_data): Corresponding changes.
17753         (create_duplicates): Always create a template block.
17754         (redirect_edges): Remove code which reused the original block
17755         when it was going to become unreachable code.
17756         (thread_block): Don't set do_not_duplicate field.
17757
17758 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
17759
17760         * lto-opts.c (register_user_option_p, lto_register_user_option):
17761         Make type argument unsigned.
17762         * lto-streamer.h (lto_register_user_option): Make type argument
17763         unsigned.
17764         * opth-gen.awk: Make CL_* macros unsigned.
17765         * opts-common.c (find_opt): Make lang_mask argument unsigned.
17766         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
17767         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
17768         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
17769         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
17770         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
17771         (find_opt): Make lang_mask argument unsigned.
17772
17773 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
17774
17775         PR rtl-optimization/48331
17776         PR rtl-optimization/48334
17777         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
17778         for any used algorithm.
17779
17780 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
17781
17782         * ira-conflicts.c (build_object_conflicts): Add unused attribute
17783         to parent_max.
17784
17785 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
17786
17787         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
17788         (alpha_option_override): Don't set alpha_sr_alias_set.
17789         (emit_frame_store_1): Use gen_frame_mem rather than calling
17790         set_mem_alias_set.
17791         (alpha_expand_epilogue): Ditto.
17792
17793 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
17794
17795         PR tree-optimization/48290
17796         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
17797         vectorization, check that relevant phis in the basic block after
17798         the inner loop are really inner loop's exit phis.
17799
17800 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
17801
17802         PR debug/48190
17803         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
17804         (cached_dw_loc_list_def): New structure.
17805         (cached_dw_loc_list): New typedef.
17806         (cached_dw_loc_list_table): New variable.
17807         (cached_dw_loc_list_table_hash): New function.
17808         (cached_dw_loc_list_table_eq): Likewise.
17809         (add_location_or_const_value_attribute): Take a bool cache_p.
17810         Cache the list when the parameter is true.
17811         (gen_formal_parameter_die): Update caller.
17812         (gen_variable_die): Likewise.
17813         (dwarf2out_finish): Likewise.
17814         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
17815         while generating debug info for the decl.
17816         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
17817         (dwarf2out_init): Initialize cached_dw_loc_list_table.
17818         (resolve_addr): Cache the result of resolving a chain of
17819         location lists.
17820
17821 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
17822
17823         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
17824         conflict object hard regset nodes have intersecting hard reg sets.
17825
17826         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
17827         after regstat_init_n_sets_and_refs.
17828
17829         * ira.c: Add more comments at the top.
17830         (setup_stack_reg_pressure_class, setup_pressure_classes):
17831         Add comments how we compute the register pressure classes.
17832         (setup_allocno_and_important_classes): Add more comments.
17833         (setup_class_translate_array, reorder_important_classes)
17834         (setup_reg_class_relations): Add comments.
17835
17836         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
17837         start of the file.
17838
17839         * ira-color.c: Add 2011 to the Copyright line.
17840         (assign_hard_reg):  Add more comments.
17841         (improve_allocation): Ditto.
17842
17843         * ira-costs.c: Add 2011 to the Copyright line.
17844         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
17845         comments.
17846         (setup_regno_cost_classes_by_mode): Ditto.
17847
17848         Initial patches from ira-improv branch:
17849
17850         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
17851
17852         * ira-build.c (ira_create_object): Remove initialization of
17853         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
17854         (ira_create_allocno): Remove initialization of
17855         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
17856         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
17857         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
17858         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
17859         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
17860         Initialize ALLOCNO_ADD_DATA.
17861         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
17862         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
17863         ALLOCNO_REG.
17864         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
17865         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
17866
17867         * ira.c (ira_reallocate): Remove.
17868         (setup_pressure_classes): Call
17869         ira_init_register_move_cost_if_necessary.  Use
17870         ira_register_move_cost instead of ira_get_register_move_cost.
17871         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
17872         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
17873
17874         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
17875         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
17876         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
17877         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
17878         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
17879         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
17880         Fix formatting.
17881         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
17882         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
17883         (struct allocno_color_data): New.
17884         (allocno_color_data_t): New typedef.
17885         (allocno_color_data): New definition.
17886         (ALLOCNO_COLOR_DATA): New macro.
17887         (struct object_color_data): New.
17888         (object_color_data_t): New typedef.
17889         (object_color_data): New definition.
17890         (OBJECT_COLOR_DATA): New macro.
17891         (update_copy_costs, calculate_allocno_spill_cost): Call
17892         ira_init_register_move_cost_if_necessary.  Use
17893         ira_register_move_cost instead of ira_get_register_move_cost.
17894         (move_spill_restore, update_curr_costs): Ditto.
17895         (allocno_spill_priority): Make it inline.
17896         (color_pass): Allocate and free allocno_color_dat and object_color_data.
17897         (struct coalesce_data, coalesce_data_t): New.
17898         (allocno_coalesce_data): New definition.
17899         (ALLOCNO_COALESCE_DATA): New macro.
17900         (merge_allocnos, coalesced_allocno_conflict_p): Use
17901         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
17902         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
17903         (coalesce_allocnos): Ditto.
17904         (setup_coalesced_allocno_costs_and_nums): Ditto.
17905         (collect_spilled_coalesced_allocnos): Ditto.
17906         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
17907         (setup_slot_coalesced_allocno_live_ranges): Ditto.
17908         (coalesce_spill_slots): Ditto.
17909         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
17910         free allocno_coalesce_data.
17911
17912         * ira-conflicts.c: Fix formatting.
17913         (process_regs_for_copy): Call
17914         ira_init_register_move_cost_if_necessary.  Use
17915         ira_register_move_cost instead of ira_get_register_move_cost.
17916         (build_object_conflicts): Optimize.
17917
17918         * ira-costs.c (record_reg_classes): Optimize.  Call
17919         ira_init_register_move_cost_if_necessary.  Use
17920         ira_register_move_cost, ira_may_move_in_cost, and
17921         ira_may_move_out_cost instead of ira_get_register_move_cost and
17922         ira_get_may_move_cost.
17923         (record_address_regs): Ditto.
17924         (scan_one_insn): Optimize.
17925         (find_costs_and_classes): Optimize.
17926         (process_bb_node_for_hard_reg_moves): Call
17927         ira_init_register_move_cost_if_necessary.  Use
17928         ira_register_move_cost instead of ira_get_register_move_cost.
17929
17930         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
17931         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
17932         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
17933         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
17934         definitions.
17935         (ira_initiate_emit_data, ira_finish_emit_data)
17936         (create_new_allocno): New functions.
17937         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
17938         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
17939         Use ira_register_move_cost instead of ira_get_register_move_cost.
17940
17941         * ira-int.h: Fix some comments.
17942         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
17943         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
17944         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
17945         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
17946         add_data.
17947         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
17948         bitfield after mode.  Make hard_regno a short int.  Make
17949         hard_regno short.  Remove first_coalesced_allocno and
17950         next_coalesced_allocno.  Move mem_optimized_dest_p,
17951         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
17952         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
17953         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
17954         temp, colorable_p.  Add new member add_data.
17955         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
17956         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
17957         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
17958         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
17959         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
17960         (ALLOCNO_ADD_DATA): New macro.
17961         (ira_emit_data_t): New typedef.
17962         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
17963         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
17964         from struct ira_allocno.
17965         (ALLOCNO_EMIT_DATA): New macro.
17966         (ira_allocno_emit_data, allocno_emit_reg): New.
17967         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
17968         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
17969         (OBJECT_ADD_DATA): New macro.
17970         (ira_reallocate): Remove.
17971         (ira_initiate_emit_data, ira_finish_emit_data): New.
17972         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
17973         (ira_init_register_move_cost_if_necessary): New.
17974         (ira_object_conflict_iter_next): Merge into
17975         ira_object_conflict_iter_cond.
17976         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
17977
17978         * ira-live.c (process_single_reg_class_operands): Call
17979         ira_init_register_move_cost_if_necessary.  Use
17980         ira_register_move_cost instead of ira_get_register_move_cost.
17981
17982         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
17983
17984         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
17985
17986         * ira-costs.c: Fix formatting.
17987         (cost_classes, cost_classes_num): Remove.
17988         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
17989         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
17990         (cost_classes_del, cost_classes_htab): New.
17991         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
17992         (initiate_regno_cost_classes, setup_cost_classes): New.
17993         (setup_regno_cost_classes_by_aclass): New.
17994         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
17995         (record_reg_classes): Use regno_cost_classes instead of
17996         cost_classes.  Move checking opposite operand up.
17997         (record_address_regs): Use regno_cost_classes
17998         instead of cost_classes.
17999         (scan_one_insn): Ditto.  Use always general register.
18000         (print_allocno_costs): Use regno_cost_classes instead of
18001         cost_classes.
18002         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
18003         (find_costs_and_classes): Set up cost classes for each registers.
18004         Use also their mode for this.  Use regno_cost_classes instead of
18005         cost_classes.
18006         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
18007         cost_classes.
18008         (free_ira_costs, ira_init_costs): Don't use cost_classes.
18009         (ira_costs, ira_set_pseudo_classes): Call
18010         initiate_regno_cost_classes and finish_regno_cost_classes.
18011
18012         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
18013
18014         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
18015
18016         * target.def (ira_cover_classes): Remove.
18017
18018         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
18019
18020         * doc/tm.texi.in: Ditto.
18021
18022         * ira-conflicts.c: Remove mentioning cover classes from the file.
18023         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
18024         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
18025
18026         * targhooks.c (default_ira_cover_classes): Remove.
18027
18028         * targhooks.h (default_ira_cover_classes): Ditto.
18029
18030         * haifa-sched.c: Remove mentioning cover classes from the file.
18031         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
18032         ira_pressure_classes and ira_pressure_classes_num instead of
18033         ira_reg_class_cover_size and ira_reg_class_cover.  Use
18034         sched_regno_pressure_class instead of sched_regno_cover_class.
18035         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
18036         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18037
18038         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
18039         classes from the file.
18040         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
18041         (struct object_hard_regs, struct object_hard_regs_node): New.
18042         (struct ira_object): New members profitable_hard_regs,
18043         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
18044         (struct ira_allocno): Rename cover_class to aclass.  Rename
18045         cover_class_cost and updated_cover_class_cost to class_cost and
18046         updated_class_cost.  Remove splay_removed_p and
18047         left_conflict_size.  Add new members colorable_p.
18048         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
18049         (ALLOCNO_COLORABLE_P): New macro.
18050         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
18051         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
18052         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
18053         (OBJECT_...): Rename parameter C to O.
18054         (OBJECT_PROFITABLE_HARD_REGS): New macro.
18055         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
18056         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
18057         (struct target_ira_int): New members x_ira_max_memory_move_cost,
18058         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
18059         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
18060         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
18061         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
18062         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
18063         x_ira_reg_class_subunion.
18064         (ira_max_memory_move_cost, ira_max_register_move_cost)
18065         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
18066         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
18067         (ira_important_class_nums, ira_reg_class_superunion): New macros.
18068         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
18069         (ira_reg_class_union): Rename to ira_reg_class_subunion.
18070         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
18071         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
18072         (ira_tune_allocno_costs_and_cover_classes): Rename to
18073         ira_tune_allocno_costs.
18074         (ira_debug_hard_regs_forest): New.
18075         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
18076         (ira_object_conflict_iter_next): Fix comments.
18077         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
18078         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
18079         cover_class to aclass.
18080         (ira_allocate_and_accumulate_costs): Ditto.
18081         (ira_allocate_and_set_or_copy_costs): Ditto.
18082
18083         * opts.c (decode_options): Remove ira_cover_class check.
18084
18085         * ira-color.c: Remove mentioning cover classes from the file.  Use
18086         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
18087         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
18088         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
18089         (splay-tree.h): Remove include.
18090         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
18091         before copy_freq_compare_func.
18092         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
18093         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
18094         New definitions.
18095         (hard_regs_roots, hard_regs_node_vec): Ditto.
18096         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
18097         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
18098         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
18099         (create_new_object_hard_regs_node): Ditto.
18100         (add_new_object_hard_regs_node_to_forest): Ditto.
18101         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
18102         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
18103         Ditto.
18104         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
18105         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
18106         (remove_unused_object_hard_regs_nodes): Ditto.
18107         (enumerate_object_hard_regs_nodes): Ditto.
18108         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
18109         (object_hard_regs_subnode_t): Ditto.
18110         (struct object_hard_regs_subnode): Ditto.
18111         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
18112         (setup_object_hard_regs_subnode_index): Ditto.
18113         (get_object_hard_regs_subnodes_num): Ditto.
18114         (form_object_hard_regs_nodes_forest): Ditto.
18115         (finish_object_hard_regs_nodes_tree): Ditto.
18116         (finish_object_hard_regs_nodes_forest): Ditto.
18117         (allocnos_have_intersected_live_ranges_p): Rename to
18118         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
18119         (pseudos_have_intersected_live_ranges_p): Rename to
18120         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
18121         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
18122         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
18123         (update_copy_costs): Remove assert.  Skip cost update if the hard
18124         reg does not belong the class.
18125         (assign_hard_reg): Process only profitable hard regs.
18126         (uncolorable_allocnos_num): Make it scalar.
18127         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18128         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
18129         and ira_reg_class_max_nregs.
18130         (bucket_allocno_compare_func): Check frequency first.
18131         (sort_bucket): Add compare function as a parameter.
18132         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
18133         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
18134         (push_allocno_to_stack): Rewrite for checking new allocno
18135         colorability.
18136         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
18137         (push_only_colorable): Pass new parameter to sort_bucket.
18138         (push_allocno_to_spill): Remove.
18139         (allocno_spill_priority_compare): Make it inline and rewrite.
18140         (splay_tree_allocate, splay_tree_free): Remove.
18141         (allocno_spill_sort_compare): New function.
18142         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
18143         build and use splay tree.  Choose first allocno in uncolorable
18144         allocno bucket to spill.  Remove setting spill cost.
18145         (all_conflicting_hard_regs): Remove.
18146         (setup_allocno_available_regs_num): Check only profitable hard
18147         regs.  Print info about hard regs nodes.
18148         (setup_allocno_left_conflicts_size): Remove.
18149         (put_allocno_into_bucket): Don't call
18150         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
18151         (improve_allocation): New.
18152         (color_allocnos): Call setup_profitable_hard_regs,
18153         form_object_hard_regs_nodes_forest, improve_allocation,
18154         finish_object_hard_regs_nodes_forest.  Setup spill cost.
18155         (print_loop_title): Use pressure classes.
18156         (color_allocnso): Ditto.
18157         (do_coloring): Remove allocation and freeing splay_tree_node_pool
18158         and allocnos_for_spilling.
18159         (ira_sort_regnos_for_alter_reg): Don't setup members
18160         {first,next}_coalesced_allocno.
18161         (color): Remove allocating and freeing removed_splay_allocno_vec.
18162         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
18163         prohibited_class_mode_regs.
18164
18165         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
18166         formatting.
18167         (update_allocno_pressure_excess_length): Use pressure classes.
18168         (inc_register_pressure, dec_register_pressure): Check for pressure
18169         class.
18170         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
18171         pressure class.  Use ira_reg_class_nregs instead of
18172         ira_reg_class_max_nregs.
18173         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
18174         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
18175         (single_reg_class): Use ira_reg_class_nregs instead of
18176         ira_reg_class_max_nregs.
18177         (process_bb_node_lives): Use pressure classes.
18178
18179         * ira-emit.c: Remove mentioning cover classes from the file.  Use
18180         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
18181         (change_loop): Use pressure classes.
18182         (modify_move_list): Call ira_set_allocno_class instead of
18183         ira_set_allocno_cover_class.
18184
18185         * ira-build.c: Remove mentioning cover classes from the file.  Use
18186         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
18187         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
18188         ALLOCNO_UPDATED_CLASS_COST instead of
18189         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
18190         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
18191         (ira_create_allocno): Remove initialization of
18192         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
18193         ALLOCNO_COLORABLE_P.
18194         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
18195         Update conflict regs for the objects.
18196         (create_cap_allocno): Remove assert.  Don't propagate
18197         ALLOCNO_AVAILABLE_REGS_NUM.
18198         (ira_free_allocno_costs): New function.
18199         (finish_allocno): Change a part of code into call of
18200         ira_free_allocno_costs.
18201         (low_pressure_loop_node_p): Use pressure classes.
18202         (object_range_compare_func): Don't compare classes.
18203         (setup_min_max_conflict_allocno_ids): Ditto.
18204
18205         * loop-invariant.c: Remove mentioning cover classes from the file.
18206         Use ira_pressure_classes and ira_pressure_classes_num instead of
18207         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
18208         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
18209         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18210         Use reg_allocno_class instead of reg_cover_class.
18211         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
18212         STACK_REG_COVER_CLASS.
18213         (get_regno_cover_class): Rename to get_regno_pressure_class.
18214         (move_loop_invariants): Initialize and finalize regstat.
18215
18216         * ira.c: Remove mentioning cover classes from the file.  Add
18217         comments about coloring without cover classes.  Use ALLOCNO_CLASS
18218         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
18219         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
18220         setup_class_subset_and_memory_move_costs.
18221         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
18222         (setup_cover_and_important_classes): Rename to
18223         setup_allocno_and_important_classes.
18224         (setup_class_translate_array): New.
18225         (setup_class_translate): Call it for allocno and pressure classes.
18226         (cover_class_order): Rename to allocno_class_order.
18227         (comp_reg_classes_func): Use ira_allocno_class_translate instead
18228         of ira_class_translate.
18229         (reorder_important_classes): Set up ira_important_class_nums.
18230         (setup_reg_class_relations): Set up ira_reg_class_superunion.
18231         (print_class_cover): Rename to print_classes.  Add parameter.
18232         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
18233         Print pressure classes too.
18234         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
18235         setup_reg_subclasses.
18236         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
18237         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
18238         (setup_prohibited_class_mode_regs): Use
18239         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
18240         (clarify_prohibited_class_mode_regs): New function.
18241         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
18242         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
18243         (ira_init_once): Initialize them.
18244         (free_register_move_costs): Process them.
18245         (ira_init): Move calls of find_reg_classes and
18246         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
18247         Call clarify_prohibited_class_mode_regs.
18248         (ira_no_alloc_reg): Remove.
18249         (too_high_register_pressure_p): Use pressure classes.
18250
18251         * sched-deps.c: Remove mentioning cover classes from the file.
18252         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
18253         ira_pressure_classes and ira_pressure_classes_num instead of
18254         ira_reg_class_cover_size and ira_reg_class_cover.
18255         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
18256         sched_regno_pressure_class instead of sched_regno_cover_class.
18257         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
18258         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18259
18260         * ira.h: Add 2010 to Copyright.
18261         (ira_no_alloc_reg): Remove external.
18262         (struct target_ira): Rename x_ira_hard_regno_cover_class,
18263         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
18264         x_ira_class_translate to x_ira_hard_regno_allocno_class,
18265         x_ira_allocno_classes_num, x_ira_allocno_classes, and
18266         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
18267         x_ira_pressure_classes, x_ira_pressure_class_translate, and
18268         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
18269         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
18270         x_ira_no_alloc_regs.
18271         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
18272         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
18273         ira_allocno_classes_num and ira_allocno_classes.
18274         (ira_class_translate): Rename to ira_allocno_class_translate.
18275         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
18276         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
18277         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
18278         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
18279         (ira_no_alloc_regs): New.
18280
18281         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
18282         classes from the file.  Use ALLOCNO_CLASS instead of
18283         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
18284         ALLOCNO_COVER_CLASS_COST.
18285         (regno_cover_class): Rename to regno_aclass.
18286         (record_reg_classes): Use ira_reg_class_subunion instead of
18287         ira_reg_class_union.
18288         (record_address_regs): Check overflow.
18289         (scan_one_insn): Ditto.
18290         (print_allocno_costs): Print total mem cost fore regional allocation.
18291         (print_pseudo_costs): Use REG_N_REFS.
18292         (find_costs_and_classes): Use classes intersected with them on the
18293         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
18294         ira_reg_class_union.  Use ira_allocno_class_translate and
18295         regno_aclass instead of ira_class_translate and regno_cover_class.
18296         Modify code for finding regno_aclass.  Setup preferred classes for
18297         the next pass.
18298         (setup_allocno_cover_class_and_costs): Rename to
18299         setup_allocno_class_and_costs.  Use regno_aclass instead of
18300         regno_cover_class.  Use ira_set_allocno_class instead of
18301         ira_set_allocno_cover_class.
18302         (init_costs, finish_costs): Use regno_aclass instead of
18303         regno_cover_class.
18304         (ira_costs): Use setup_allocno_class_and_costs instead of
18305         setup_allocno_cover_class_and_costs.
18306         (ira_tune_allocno_costs_and_cover_classes): Rename to
18307         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
18308         by processing objects.  Use ira_reg_class_max_nregs instead of
18309         ira_reg_class_nregs.
18310
18311         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
18312
18313         * sched-int.h: Remove mentioning cover classes from the file.
18314         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
18315
18316         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
18317         classes from the file.
18318         (struct reg_pref): Rename coverclass into allocnoclass.
18319         (reg_cover_class): Rename to reg_allocno_class.
18320
18321         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
18322
18323         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
18324
18325         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
18326
18327         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
18328
18329         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
18330
18331         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
18332
18333         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
18334
18335         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
18336
18337         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
18338
18339         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
18340
18341         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
18342         (i386_ira_cover_classes): Ditto.
18343
18344         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
18345
18346         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
18347
18348         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
18349
18350         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
18351
18352         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
18353
18354         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
18355
18356         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
18357         (mips_ira_cover_classes): Ditto.
18358
18359         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
18360
18361         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
18362
18363         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
18364
18365         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
18366
18367         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
18368
18369         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
18370         (IRA_COVER_CLASSES_VSX): Ditto.
18371
18372         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
18373         (rs6000_ira_cover_classes): Ditto.
18374
18375         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
18376
18377         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
18378
18379         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
18380
18381         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
18382
18383         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
18384
18385         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
18386
18387         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
18388
18389         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
18390
18391         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
18392
18393         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
18394
18395 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
18396
18397         PR debug/48253
18398         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
18399         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
18400         dw_fde_unlikely_section_end_label, cold_in_std_section,
18401         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
18402         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
18403         fields.
18404         (output_fde): Use dw_fde_second_{begin,end} if second is
18405         true, otherwise dw_fde_{begin,end}.
18406         (output_call_frame_info): Test dw_fde_second_begin != NULL
18407         instead of dw_fde_switched_sections.
18408         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
18409         fields, initialize new fields.  Initialize in_std_section
18410         unconditionally from the first partition.
18411         (dwarf2out_end_epilogue): Don't override dw_fde_end when
18412         dw_fde_second_begin is non-NULL.
18413         (dwarf2out_switch_text_section): Stop initializing removed
18414         dw_fde_struct fields, initialize new fields, initialize
18415         also dw_fde_end here.  Set dw_fde_switch_cfi even when
18416         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
18417         (struct var_loc_list_def): Add last_before_switch field.
18418         (arange_table, arange_table_allocated, arange_table_in_use,
18419         ARANGE_TABLE_INCREMENT, add_arange): Removed.
18420         (size_of_aranges): Count !in_std_section and !second_in_std_section
18421         hunks in fdes, instead of looking at arange_table_in_use.
18422         (output_aranges): Add aranges_length argument, don't call
18423         size_of_aranges here.  Instead of using aranges_table*
18424         emit ranges for fdes when !in_std_section resp.
18425         !second_in_std_section.
18426         (dw_loc_list): Break ranges crossing section switch.
18427         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
18428         use dw_fde_second_end instead of dw_fde_end as end of last range.
18429         (gen_subprogram_die): Don't call add_arange.  Use
18430         dw_fde_{begin,end} for first partition and if switched
18431         section dw_fde_second_{begin,end} for the second.
18432         (var_location_switch_text_section_1,
18433         var_location_switch_text_section): New functions.
18434         (dwarf2out_begin_function): Initialize cold_text_section even
18435         when function_section () isn't text_section.
18436         (prune_unused_types): Don't walk arange_table.
18437         (dwarf2out_finish): Don't needlessly test
18438         flag_reorder_blocks_and_partition when testing cold_text_section_used.
18439         If info_section_emitted, call size_of_aranges and if it indicates
18440         non-empty .debug_aranges, call output_aranges with the computed
18441         size.  Stop using removed dw_fde_struct fields, use
18442         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
18443         for second.
18444
18445         PR debug/48203
18446         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
18447         create ENTRY_VALUE if incoming or address of incoming's MEM
18448         is a hard REG.
18449         * dwarf2out.c (mem_loc_descriptor): Don't emit
18450         DW_OP_GNU_entry_value of DW_OP_fbreg.
18451         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
18452         on ENTRY_VALUE is able to find the canonical parameter VALUE.
18453         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
18454         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
18455         ENTRY_VALUE_EXPs.
18456         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
18457         is a REG_P or MEM_P with REG_P address, compute hash directly
18458         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
18459         (preserve_only_constants): Don't clear VALUES forwaring
18460         ENTRY_VALUE to some other VALUE.
18461
18462 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
18463
18464         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
18465         instead of GEN_INT.
18466
18467 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
18468
18469         * cfgexpand.c (expand_gimple_cond): Always set the source location and
18470         block before expanding the statement.
18471         (expand_gimple_stmt_1): Likewise.  Set them here...
18472         (expand_gimple_stmt): ...and not here.  Tidy.
18473         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
18474         unknown.
18475
18476 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
18477
18478         * Makefile.in: New rule for cprop.o.
18479         * gcse.c: Move constant/copy propagation to cprop.c.
18480         (compute_local_properties): Only handle expression tables.
18481         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
18482         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
18483         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
18484         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
18485         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
18486         compute_cprop_data, find_used_regs, try_replace_reg,
18487         find_avail_set, cprop_jump, constprop_register, cprop_insn,
18488         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
18489         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
18490         find_bypass_set, reg_killed_on_edge, bypass_block,
18491         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
18492         execute_rtl_cprop, pass_rtl_cprop): Move to...
18493         * cprop.c: ...here.  New file, constant/copy propagation for RTL
18494         moved from gcse.c to here with minor cleanups in duplicated code.
18495
18496 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
18497
18498         * config/i386/i386.c (flag_opts): Fix a typo in
18499         -mavx256-split-unaligned-store.
18500
18501 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
18502
18503         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
18504         LIBCALL_VALUE): Remove macros.
18505         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18506         TARGET_FUNCTION_VALUE_REGNO_P): Define.
18507         (h8300_function_value, h8300_libcall_value,
18508         h8300_function_value_regno_p): New functions.
18509
18510 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
18511
18512         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
18513
18514 2011-03-28  Jeff Law  <law@redhat.com>
18515
18516         * tree-ssa-threadupdate.c (redirect_edges): Call
18517         create_edge_and_update_destination_phis as needed.
18518         (create_edge_and_update_destination_phis): Accept new BB argument.
18519         All callers updated.
18520         (thread_block): Do not update the profile when threading around
18521         intermediate blocks.
18522         (thread_single_edge): Likewise.
18523         (determine_bb_domination_status): If BB is not a successor of the
18524         loop header, return NONDOMINATING.
18525         (register_jump_thread): Note when we register a jump thread around
18526         an intermediate block.
18527         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
18528         (thread_across_edge): Use it.
18529
18530 2011-03-28  Tristan Gingold  <gingold@adacore.com>
18531
18532         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
18533         when for_return is 2.
18534
18535 2011-03-28  Jeff Law  <law@redhat.com>
18536
18537         * var-tracking.c (canonicalize_values_mark): Delete unused
18538         lhs assignment.
18539         (canonicalize_values_star, set_variable_part): Likewise.
18540         (clobber_variable_part, delete_variable_part): Likewise.
18541
18542 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
18543
18544         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
18545
18546 2011-03-28  Martin Jambor  <mjambor@suse.cz>
18547
18548         * tree-inline.c (expand_call_inline): Do not check that destination
18549         node is analyzed.
18550         (optimize_inline_calls): Assert that destination node is analyzed.
18551         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
18552         not call tree_lowering_passes.
18553         * cgraph.h (cgraph_analyze_function): Declare.
18554         * cgraphunit.c (cgraph_analyze_function): Make public.
18555
18556 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
18557
18558         * config/sparc/sparc-opts.h: New.
18559         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
18560         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
18561         (sparc_option_override): Store processor_type enumeration rather
18562         than string in cpu_default.  Remove name and enumeration from
18563         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
18564         without using sparc_select.  Use target_flags_explicit instead of
18565         fpu_option_set.
18566         * config/sparc/sparc.h (enum processor_type): Move to
18567         sparc-opts.h.
18568         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
18569         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
18570         HeaderInclude entry.
18571         (mcpu=, mtune=): Use Var and Enum.
18572         (sparc_processor_type): New Enum and EnumValue entries.
18573
18574 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18575             Iain Sandoe  <iains@gcc.gnu.org>
18576
18577         PR target/48245
18578         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
18579
18580 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
18581
18582         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
18583         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
18584         Insert new statements at it in lieu of STMT.
18585         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
18586         * tree-vect-stmts.c (vectorizable_store): Likewise.
18587         (vectorizable_load): Likewise.
18588
18589 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
18590
18591         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
18592         (divtf3): Ditto.
18593         (multf3): Ditto.
18594         (subtf3): Ditto.
18595
18596 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
18597
18598         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
18599         unaligned 256bit load/store.
18600         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
18601         (*avx_movdqu<avxmodesuffix>): Likewise.
18602
18603 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18604
18605         PR target/48288
18606         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
18607         * config/pa/pa.md (iordi3): Use new predicate in expander.
18608         (iorsi3): Likewise.
18609
18610 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
18611
18612         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
18613         FUNCTION_VALUE_REGNO_P): Remove macros.
18614         * config/mips/mips-protos.h (mips_function_value): Remove.
18615         * config/mips/mips.c (mips_function_value): Rename to...
18616         (mips_function_value_1): ... this. Make static.  Handle receiving
18617         the function type in 'fn_decl_or_type' argument.
18618         (mips_function_value, mips_libcall_value,
18619         mips_function_value_regno_p): New function.
18620         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18621         TARGET_FUNCTION_VALUE_REGNO_P): Define.
18622
18623 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
18624
18625         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
18626         and -mavx256-split-unaligned-store.
18627         (ix86_option_override_internal): Split 32-byte AVX unaligned
18628         load/store by default.
18629         (ix86_avx256_split_vector_move_misalign): New.
18630         (ix86_expand_vector_move_misalign): Use it.
18631
18632         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
18633         -mavx256-split-unaligned-store.
18634
18635         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
18636         256bit load/store.  Generate unaligned store on misaligned memory
18637         operand.
18638         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
18639         256bit load/store.
18640         (*avx_movdqu<avxmodesuffix>): Likewise.
18641
18642         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
18643         -mavx256-split-unaligned-store.
18644
18645 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
18646
18647         PR target/38598
18648         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
18649         Update commentary.
18650
18651 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
18652
18653         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
18654         opno arguments with an expand_operand.  Use create_input_operand.
18655         (mips_prepare_builtin_target): Delete.
18656         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
18657         functions.
18658         (mips_expand_builtin_direct): Use create_output_operand and
18659         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
18660         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
18661         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
18662
18663 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
18664
18665         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
18666         function.
18667         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
18668
18669 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
18670
18671         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
18672         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
18673         basic blocks and call commit_edge_insertions directly.
18674         (fixup_abnormal_edges): Move from here to...
18675         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
18676         on the edges and return whether some have actually been inserted.
18677         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
18678         compensation code.
18679
18680 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
18681
18682         PR rtl-optimization/48144
18683         * sel-sched-ir.c (merge_history_vect): Factor out from ...
18684         (merge_expr_data): ... here.
18685         (av_set_intersect): Rename to av_set_code_motion_filter.
18686         Update all callers.  Call merge_history_vect when an expression
18687         is found in both sets.
18688         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
18689
18690 2011-03-26  Alan Modra  <amodra@gmail.com>
18691
18692         * config/rs6000/predicates.md (word_offset_memref_op): Handle
18693         cmodel medium addresses.
18694         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
18695         64-bit gpr loads and stores.
18696         (rs6000_secondary_reload_ppc64): New function.
18697         * config/rs6000/rs6000-protos.h: Declare it.
18698         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
18699
18700 2011-03-26  Alan Modra  <amodra@gmail.com>
18701
18702         PR target/47487
18703         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
18704         GNU Go in traceback table.
18705
18706 2011-03-25  Richard Henderson  <rth@redhat.com>
18707
18708         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
18709         if there are exactly 6 operands.
18710         (set_storage_via_setmem): Similarly.
18711
18712 2011-03-25  Kai Tietz  <ktietz@redhat.com>
18713
18714         * collect2.c (write_c_file_stat): Handle backslash
18715         as right-hand directory separator.
18716         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
18717         checking just for slash.
18718         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
18719         instead of checking for trailing slash.
18720         * gcc.c (record_temp_file): Use filename_cmp instead
18721         of strcmp.
18722         (do_spec_1): Likewise.
18723         (replace_outfile_spec_function): Likewise.
18724         (is_directory): Use filename_ncmp instead of strncmp.
18725         (print_multilib_info): Likewise.
18726         * gcov.c (find_source): Use filename_cmp instead
18727         instead of strcmp.
18728         (make_gcov_file_name): Fix order of slash/backslash
18729         checks.
18730         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
18731         (add_standard_paths): Likewise.
18732         * mips-tfile.c (saber_stop): Handle backslash.
18733         * prefix.c (update_path): Use filename_ncmp instead of
18734         strncmp.
18735         * profile.c (output_location): Use filename_cmp instead
18736         of strcmp.
18737         * read-md.c (handle_toplevel_file): Handle backslash.
18738         * tlink.c (frob_extension):  Likewise.
18739         * tree-cfg.c (same_line_p): Use filename_cmp instead of
18740         strcmp.
18741         * tree-dump.c (dequeue_and_dump): Handle backslash.
18742         * tree.c (get_file_function_name): Likewise.
18743         * gengtype.c (read_input_list): Likewise.
18744         (get_file_realbasename): Likewise.
18745         (get_output_file_with_visibility): Use filename_cmp
18746         instead of strcmp.
18747
18748 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
18749
18750         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
18751         case to VFPv1.
18752
18753 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
18754
18755         * fold-const.c (expr_location_or): New function.
18756         (fold_truth_not_expr): Call it.
18757
18758 2011-03-25  Jeff Law  <law@redhat.com>
18759
18760         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
18761         va_end.
18762         * c-family/c-common.c (def_fn_type): Likewise.
18763         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
18764         * emit-rtl.c (gen_rtvec): Likewise.
18765         * lto/lto-lang.c (def_fn_type): Likewise.
18766
18767 2011-03-25  Richard Guenther  <rguenther@suse.de>
18768
18769         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
18770         also generate copies.
18771         (fini_copy_prop): Handle constant values properly.
18772
18773 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
18774
18775         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
18776         mode size instead of bitsize with DWARF2_ADDR_SIZE.
18777         (hash_loc_operands, compare_loc_operands): Handle
18778         DW_OP_GNU_entry_value.
18779
18780 2011-03-25  Kai Tietz  <ktietz@redhat.com>
18781
18782         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
18783         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
18784         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
18785         comment and use macro TARGET_64BIT_MS_ABI instead.
18786         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
18787         and change default behavior for 32-bit MS_ABI.
18788         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
18789         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
18790         32-bit, too.
18791         (ix86_cfun_abi): Likewise.
18792         (ix86_maybe_switch_abi): Adjust comment.
18793         (init_cumulative_args): Check for bit-ness in MS_ABI case.
18794         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
18795         instead of checking for SYSV_ABI.
18796         (ix86_nsaved_sseregs): Likewise.
18797         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
18798         to 16 bytes.
18799         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
18800         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
18801         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
18802         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
18803         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
18804
18805 2011-03-25  Richard Guenther  <rguenther@suse.de>
18806
18807         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
18808         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
18809         (verify_gimple): Remove.
18810         * tree-cfg.c (verify_gimple_call): Merge verification
18811         from verify_stmts.
18812         (verify_gimple_phi): Merge verification from verify_stmts.
18813         (verify_gimple_label): New function.
18814         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
18815         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
18816         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
18817         (verify_stmts): Rename to verify_gimple_in_cfg.
18818         (verify_gimple_in_cfg): New function.
18819         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
18820         * tree-ssa.c (verify_ssa): Likewise.
18821         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
18822
18823 2011-03-25  Richard Guenther  <rguenther@suse.de>
18824
18825         * passes.c (init_optimization_passes): Add FRE pass after
18826         early SRA.
18827
18828 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
18829             Andrew Stubbs  <ams@codesourcery.com>
18830
18831         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
18832         for Cortex-A8.
18833         (arm_movdi_vfp_cortexa8): New pattern.
18834         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
18835         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
18836         instructions when tuning for Cortex-A8.  Set attribute "arch".
18837         * config/arm/arm.md: Move include arm-tune.md up a bit.
18838         (define_attr "arch"): Add "onlya8" and "nota8" values.
18839         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
18840
18841 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
18842
18843         PR bootstrap/48282
18844         Revert:
18845         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
18846
18847         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
18848         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
18849         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
18850         * passes.c (init_optimization_passes): Move
18851         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
18852
18853 2011-03-25  Kai Tietz  <ktietz@redhat.com>
18854
18855         * c-typeck.c (comptypes_internal): Replace target
18856         hook call of comp_type_attributes by version in tree.c file.
18857         * gimple.c (gimple_types_compatible_p_1): Likewise.
18858         * tree-ssa.c (useless_type_conversion_p): Likewise.
18859         * tree.c (build_type_attribute_qual_variant): Likewise.
18860         (attribute_value_equal): New static helper function.
18861         (comp_type_attributes): New function.
18862         (merge_attributes): Use attribute_value_equal for comparison.
18863         (attribute_list_contained): Likewise.
18864         * tree.h (comp_type_attributes): New prototype.
18865
18866 2011-03-25  Richard Guenther  <rguenther@suse.de>
18867
18868         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
18869         of complex types at -O0.
18870         (verify_gimple_assign_binary): Likewise.
18871         (verify_gimple_assign_ternary): Likewise.
18872
18873 2011-03-24  Mark Wielaard  <mjw@redhat.com>
18874
18875         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
18876         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
18877
18878 2011-03-24  Mark Wielaard  <mjw@redhat.com>
18879
18880         PR debug/48041
18881         * dwarf2out.c (output_abbrev_section): Only write table when
18882         abbrev_die_table_in_use > 1.
18883
18884 2011-02-24  Richard Henderson  <rth@redhat.com>
18885
18886         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
18887         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
18888         (alpha_expand_unaligned_load_words): Use extql.
18889         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
18890         (emit_insxl): Handle all modes for consistency.
18891
18892 2011-02-24  Richard Henderson  <rth@redhat.com>
18893
18894         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
18895         (alpha_expand_unaligned_load): Likewise.
18896         (alpha_expand_unaligned_store): Likewise.
18897         (alpha_expand_unaligned_load_words): Likewise.
18898         (alpha_expand_unaligned_store_words): Likewise.
18899         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
18900         (alpha_split_lock_test_and_set_12): Likewise.
18901         (print_operand, alpha_fold_builtin_extxx): Likewise.
18902         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
18903         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
18904         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
18905         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
18906         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
18907         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
18908         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
18909         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
18910         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
18911         (extwl, extll, extql): Similarly.
18912         (inswh, inslh, insqh): Similarly.
18913         (mskbl, mskwl, mskll, mskql): Similarly.
18914         (mskwh, msklh, mskqh): Similarly.
18915
18916 2011-02-24  Richard Henderson  <rth@redhat.com>
18917
18918         * config/alpha/alpha.md (attribute isa): Add er, ner.
18919         (attribute enabled): Handle them.
18920         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
18921
18922 2011-02-24  Richard Henderson  <rth@redhat.com>
18923
18924         * config/alpha/alpha.md (attribute isa): Add vms.
18925         (attribute enabled): Handle it.
18926         (*movsf): Merge *movsf_{nofix,fix,nofp}.
18927         (*movdf): Merge *movdf_{nofix,fix,nofp}.
18928         (*movtf): Rename from *movtf_internal for consistency.
18929         (*movsi): Merge with *movsi_nt_vms.
18930         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
18931         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
18932         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
18933         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
18934
18935 2011-02-24  Richard Henderson  <rth@redhat.com>
18936
18937         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
18938         (extendqisi2, extendhisi2): Likewise.
18939         (extendqidi2): Simplify BWX/non-BWX expansions.
18940         (extendhidi2): Similarly.
18941
18942 2011-02-24  Richard Henderson  <rth@redhat.com>
18943
18944         * config/alpha/alpha.md (attribute isa): New.
18945         (attribute enabled): New.
18946         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
18947         (zero_extendqisi2, zero_extendqidi2): Similarly.
18948         (zero_extendhisi2, zero_extendhidi2): Similarly.
18949         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
18950
18951 2011-02-24  Richard Henderson  <rth@redhat.com>
18952
18953         * config/alpha/predicates.md (input_operand): Revert last change;
18954         update comment to mention 32-bit VMS rather than Windows.
18955
18956 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
18957
18958         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
18959         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
18960         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
18961         * passes.c (init_optimization_passes): Move
18962         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
18963
18964 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
18965
18966         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
18967
18968 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
18969
18970         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
18971         correctly.
18972
18973 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
18974
18975         PR debug/48204
18976         * simplify-rtx.c (simplify_const_unary_operation): Call
18977         real_convert when changing mode class with FLOAT_EXTEND.
18978
18979 2011-03-24  Nick Clifton  <nickc@redhat.com>
18980
18981         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
18982         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
18983         * config/rx/rx.c (rx_option_override): Set align_jumps,
18984         align_loops and align_labels if not set by the user.
18985         (rx_align_for_label): New function.
18986         (rx_max_skip_for_label): New function.
18987         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
18988         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
18989         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
18990         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
18991         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
18992
18993 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
18994
18995         PR rtl-optimization/48263
18996         * optabs.c (expand_binop_directly): Reinstate convert_modes code
18997         and original commutative_p handling.  Use maybe_gen_insn.
18998
18999 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19000
19001         * reload.c (find_reloads_subreg_address): Add address_reloaded
19002         parameter and return true there if the full address has been
19003         reloaded.
19004         (find_reloads_toplev): Pass address_reloaded flag.
19005         (find_reloads_address_1): Don't use address_reloaded parameter.
19006
19007 2011-03-24  Jeff Law  <law@redhat.com>
19008
19009         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
19010         unused variable "ann".
19011         (remove_unused_locals): Likewise.
19012
19013         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
19014         statement.
19015
19016         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
19017         after it is freed.
19018
19019 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19020
19021         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
19022         for invalid symbolic addresses.
19023         (s390_secondary_reload): Don't use s390_check_symref_alignment for
19024         larl operands.
19025
19026 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
19027
19028         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
19029         the argument in calls to fold_truth_not_expr.
19030
19031 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
19032
19033         * tree.c (record_node_allocation_statistics): New function.
19034         (make_node_stat, copy_node_stat, build_string): Call it.
19035         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
19036         (build1_stat, build_omp_clause): Likewise.
19037
19038 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
19039
19040         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
19041         last commit.
19042
19043 2011-03-24  Richard Guenther  <rguenther@suse.de>
19044
19045         PR tree-optimization/48271
19046         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
19047         blocks that still exist.
19048
19049 2011-03-24  Richard Guenther  <rguenther@suse.de>
19050
19051         PR tree-optimization/48270
19052         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
19053         not free datarefs before ddrs.
19054
19055 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
19056
19057         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
19058         from the address built for a reference with variable offset.
19059
19060 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
19061
19062         PR target/48237
19063         * config/i386/i386.md (*movdf_internal_rex64): Do not split
19064         alternatives that can be handled with movq or movabsq insn.
19065         (*movdf_internal): Disable for !TARGET_64BIT.
19066         (*movdf_internal_nointeger): Ditto.
19067         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
19068
19069 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
19070
19071         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
19072         (FUNCTION_ARG_ADVANCE): Likewise.
19073         * tm.texi.in: Change references to them to hook references.
19074         * tm.texi: Regenerate.
19075         * targhooks.c (default_function_arg): Eliminate check for target macro.
19076         (default_function_incoming_arg): Likewise.
19077         (default_function_arg_advance): Likewise.
19078         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
19079         (function_arg_advance): Likewise.
19080         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
19081
19082 2011-03-24  Richard Guenther  <rguenther@suse.de>
19083
19084         PR middle-end/48269
19085         * tree-object-size.c (addr_object_size): Do not double-account
19086         for MEM_REF offsets.
19087
19088 2011-03-24  Diego Novillo  <dnovillo@google.com>
19089
19090         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
19091         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
19092         (lto_input_data_block): Move from lto-opts.c.  Make extern.
19093         Update all users.
19094         (lto_input_string): Rename from input_string.  Make extern.
19095         Update all users.
19096         * lto-streamer-out.c (lto_output_string_with_length): Rename from
19097         output_string_with_length.
19098         Output 0 to indicate a non-NULL string.  Update all callers to
19099         not emit 0.
19100         (lto_output_string): Rename from output_string.  Make extern.
19101         Update all users.
19102         (lto_output_decl_state_streams): Make extern.
19103         (lto_output_decl_state_refs): Make extern.
19104         * lto-streamer.h (lto_input_string): Declare.
19105         (lto_input_data_block): Declare.
19106         (lto_output_string): Declare.
19107         (lto_output_string_with_length): Declare.
19108         (lto_output_decl_state_streams): Declare.
19109         (lto_output_decl_state_refs): Declare.
19110
19111 2011-03-24  Richard Guenther  <rguenther@suse.de>
19112
19113         PR tree-optimization/46562
19114         * tree.c (build_invariant_address): New function.
19115         * tree.h (build_invariant_address): Declare.
19116         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
19117         a renamed function moved ...
19118         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
19119         Take valueization callback parameter.
19120         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
19121         * gimple-fold.h: New file.
19122         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
19123         (ccp_fold, fold_const_aggregate_ref,
19124         fold_ctor_reference, fold_nonarray_ctor_reference,
19125         fold_array_ctor_reference, fold_string_cst_ctor_reference,
19126         get_base_constructor): Move ...
19127         * gimple-fold.c: ... here.
19128         (gimple_fold_stmt_to_constant_1): New function
19129         split out from ccp_fold.  Take a valueization callback parameter.
19130         Valueize all operands.
19131         (gimple_fold_stmt_to_constant): New wrapper function.
19132         (fold_const_aggregate_ref_1): New function split out from
19133         fold_const_aggregate_ref.  Take a valueization callback parameter.
19134         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
19135         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
19136         invariant POINTER_PLUS_EXPRs to invariant form.
19137         (vn_valueize): New function.
19138         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
19139         * tree-vrp.c (vrp_valueize): New function.
19140         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
19141         to fold statements to constants.
19142         * tree-ssa-pre.c (eliminate): Properly guard propagation of
19143         function declarations.
19144         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
19145         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
19146
19147 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
19148
19149         * config/h8300/predicates.md (jump_address_operand): Fix register
19150         mode check.
19151
19152 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
19153
19154         * doc/invoke.texi (max-stores-to-sink): Document.
19155         * params.h (MAX_STORES_TO_SINK): Define.
19156         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
19157         if either vectorization or if-conversion is disabled.
19158         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
19159         tree-vect-data-refs.c vect_equal_offsets.
19160         (dr_equal_offsets_p): New function.
19161         (find_data_references_in_bb): Remove static.
19162         * tree-data-ref.h (find_data_references_in_bb): Declare.
19163         (dr_equal_offsets_p): Likewise.
19164         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
19165         (vect_drs_dependent_in_basic_block): Update calls to
19166         vect_equal_offsets.
19167         (vect_check_interleaving): Likewise.
19168         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
19169         (cond_if_else_store_replacement): Rename to...
19170         (cond_if_else_store_replacement_1): ... this.  Change arguments and
19171         documentation.
19172         (cond_if_else_store_replacement): New function.
19173         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
19174         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
19175
19176 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
19177
19178         PR target/46934
19179         * config/arm/arm.md (casesi): Use the gen_int_mode() function
19180         to subtract lower bound instead of GEN_INT().
19181
19182 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
19183
19184         PR other/48179
19185         PR other/48221
19186         PR other/48234
19187         * doc/extend.texi (Alignment): Move section to match order in TOC.
19188         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
19189         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
19190
19191 2011-03-23  Jeff Law  <law@redhat.com>
19192
19193         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
19194         before removing the edge.
19195
19196         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
19197         it may have been freed by redirect_branch_edge or
19198         redirect_edge_succ_nodup.
19199
19200 2011-03-23  Richard Guenther  <rguenther@suse.de>
19201
19202         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
19203         (check_va_list_escapes): Likewise.
19204         (check_all_va_list_escapes): Likewise.
19205
19206 2011-03-23  Richard Guenther  <rguenther@suse.de>
19207
19208         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
19209         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
19210         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
19211         (alias.o): Likewise.
19212         (ipa-type-escape.o): Remove.
19213         (ipa-struct-reorg.o): Likewise.
19214         (GTFILES): Remove ipa-struct-reorg.c.
19215         * alias.c: Do not include ipa-type-escape.h.
19216         * tree-ssa-alias.c: Likewise.
19217         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
19218         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
19219         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
19220         and ipa-type-escape passes.
19221         * tree-pass.h (pass_ipa_type_escape): Remove.
19222         (pass_ipa_struct_reorg): Likewise.
19223         * ipa-struct-reorg.h: Remove.
19224         * ipa-struct-reorg.c: Likewise.
19225         * ipa-type-escape.h: Likewise.
19226         * ipa-type-escape.c: Likewise.
19227         * doc/invoke.texi (-fipa-struct-reorg): Remove.
19228         (--param struct-reorg-cold-struct-ratio): Likewise.
19229         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
19230         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
19231         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
19232
19233 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19234
19235         * config/s390/2084.md: Enable all insn reservations also for z9_ec
19236         cpu attribute value.
19237         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
19238         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
19239         * config/s390/s390.c (processor_flags_table): New constant array.
19240         (s390_handle_arch_option): Remove.
19241         (s390_handle_option): Remove s390_handle_arch_option invocations
19242         and OPT_mwarn_framesize_ handling.
19243         (s390_option_override): Remove s390_handle_arch_option invocation.
19244         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
19245         warnings.
19246         * config/s390/s390.md (cpu attribute): Add z9_ec value.
19247         * config/s390/s390.opt (s390_tune, s390_arch)
19248         (march=): Replace s390_arch_option enum and values with
19249         processor_type.  Set variable name to s390_arch.  Set
19250         initialization value.
19251         (mtune=): Replace s390_arch_option with processor_type.  Set
19252         variable name to s390_tune.  Set initialization value.
19253
19254 2011-03-23  Julian Brown  <julian@codesourcery.com>
19255
19256         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
19257         accesses which are not naturally aligned.
19258
19259 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
19260
19261         PR target/47553
19262         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
19263
19264 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
19265
19266         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
19267         parameter from "int" to "enum insn_code".
19268         (expand_operand_type): New enum.
19269         (expand_operand): New structure.
19270         (create_expand_operand): New function.
19271         (create_fixed_operand, create_output_operand): Likewise
19272         (create_input_operand, create_convert_operand_to): Likewise.
19273         (create_convert_operand_from, create_address_operand): Likewise.
19274         (create_integer_operand): Likewise.
19275         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
19276         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
19277         (expand_insn, expand_jump_insn): Likewise.
19278         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
19279         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
19280         (expand_movstr, expand_builtin___clear_cache): Likewise.
19281         (expand_builtin_lock_release): Likewise.
19282         * explow.c (allocate_dynamic_stack_space): Likewise.
19283         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
19284         and use the default handling in that case.
19285         * expmed.c (check_predicate_volatile_ok): Delete.
19286         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
19287         (emit_cstore): Likewise.
19288         * expr.c (emit_block_move_via_movmem): Likewise.
19289         (set_storage_via_setmem, expand_assignment): Likewise.
19290         (emit_storent_insn, try_casesi): Likewise.
19291         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
19292         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
19293         (expand_vec_shift_expr, expand_binop_directly): Likewise.
19294         (expand_twoval_unop, expand_twoval_binop): Likewise.
19295         (expand_unop_direct, emit_indirect_jump): Likewise.
19296         (emit_conditional_move, vector_compare_rtx): Likewise.
19297         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
19298         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
19299         (expand_sync_lock_test_and_set): Likewise.
19300         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
19301         (emit_unop_insn): Likewise.
19302         (expand_copysign_absneg): Change icode to an insn_code.
19303         (create_convert_operand_from_type): New function.
19304         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
19305         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
19306         (expand_insn, expand_jump_insn): Likewise.
19307         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
19308         than const_int_operand for operand 2.
19309
19310 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19311
19312         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
19313         if possible.
19314
19315 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
19316
19317         * emit-rtl.c (emit_pattern_before_noloc): New function.
19318         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
19319         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
19320         (emit_pattern_after_noloc): New function.
19321         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
19322         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
19323
19324 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
19325
19326         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
19327         (__ffsDI2): Likewise.
19328
19329 2011-03-22  Richard Henderson  <rth@redhat.com>
19330
19331         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
19332         of !TARGET_ABI_OPEN_VMS.
19333         (alpha_trampoline_init, alpha_start_function): Likewise.
19334         (alpha_expand_epilogue, alpha_file_start): Likewise.
19335         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
19336         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
19337         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
19338         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
19339         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
19340
19341 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19342
19343         * config/s390/s390-opts.h: New.
19344         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
19345         s390_arch_flags, s390_warn_framesize, s390_stack_size,
19346         s390_stack_guard): Remove.
19347         (s390_handle_arch_option): Return void.  Take enum
19348         s390_arch_option value instead of string and searching array.
19349         (s390_handle_option): Don't assert that global structures are in
19350         use.  Access variables via opts pointer.  Use error_at.  Don't use
19351         sscanf for -mstack-guard= or -mstack-size=.  Update call to
19352         s390_handle_arch_option.
19353         (s390_option_override): Update call to s390_handle_arch_option.
19354         (s390_emit_prologue): Use %d format for s390_stack_size in
19355         diagnostic.  Use %wd for HOST_WIDE_INT.
19356         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
19357         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
19358         * config/s390/s390.opt (config/s390/s390-opts.h): New
19359         HeaderInclude entry.
19360         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
19361         s390_arch_flags, s390_warn_framesize): New Variable entries.
19362         (s390_arch_option): New Enum and EnumValue entries.
19363         (march=): Use Enum instead of Var.
19364         (mstack-guard=, mstack-size=): Use UInteger and Var.
19365         (mtune=): Use Enum.
19366
19367 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19368
19369         * config/score/score.c (score_handle_option): Don't assert that
19370         global structures are in use.  Access target_flags via opts
19371         pointer.  Use value of -march= option to determine target_flags
19372         settings.
19373         * config/score/score.opt (march=): Use Enum.
19374         (score_arch): New Enum and EnumValue entries.
19375
19376 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19377
19378         * config/mep/mep.c (option_mtiny_specified): Remove.
19379         (mep_option_override): Move register handling for -mivc2 from
19380         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
19381         instead of option_mtiny_specified.
19382         (mep_handle_option): Access target_flags via opts pointer.  Don't
19383         assert that global structures are in use.  Defer part of -mivc2
19384         handling and move it to mep_option_override.
19385         * config/mep/mep.opt (IVC2): New Mask entry.
19386         (mivc2): Use Var and Defer instead of Mask.
19387
19388 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19389
19390         * config/v850/v850-opts.h: New.
19391         * config/v850/v850.c (small_memory): Replace with
19392         small_memory_physical_max array.  Make that array static const.
19393         (v850_handle_memory_option): Take integer value of argument.  Take
19394         gcc_options pointer, option text and location.  Return void.
19395         Update for changes to small memory structures.
19396         (v850_handle_option): Access target_flags via opts pointer.  Don't
19397         assert that global structures are in use.  Update calls to
19398         v850_handle_memory_option.
19399         (v850_encode_data_area): Update references to small memory settings.
19400         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
19401         (enum small_memory_type): Move to v850-opts.h.
19402         * config/v850/v850.opt (config/v850/v850-opts.h): New
19403         HeaderInclude entry.
19404         (small_memory_max): New Variable entry.
19405         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
19406         (mtda, mzda): Likewise.
19407
19408 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19409
19410         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
19411         pointer.  Don't assert that global structures are in use.
19412
19413 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19414
19415         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
19416         via opts pointer.  Don't assert that global structures are in use.
19417
19418 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19419
19420         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
19421         (munix=93): Use Var.
19422         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
19423         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
19424         * config/pa/pa-opts.h: New.
19425         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
19426         (pa_handle_option): Don't assert that global structures are in
19427         use.  Access target_flags via opts pointer.  Don't handle
19428         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
19429         OPT_munix_98 here.
19430         (pa_option_override): Handle deferred OPT_mfixed_range_.
19431
19432 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19433
19434         * config/mn10300/mn10300-opts.h: New.
19435         * config/mn10300/mn10300.c (mn10300_processor,
19436         mn10300_tune_string): Remove.
19437         (mn10300_handle_option): Don't assert that global structures are
19438         in use.  Access mn10300_processor via opts pointer.  Don't handle
19439         OPT_mtune_ here.
19440         * config/mn10300/mn10300.h (enum processor_type): Move to
19441         mn10300-opts.h.
19442         (mn10300_processor): Remove.
19443         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
19444         HeaderInclude entry.
19445         (mn10300_processor): New Variable entry.
19446         (mtune=): Use Var.
19447
19448 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19449
19450         * config/microblaze/microblaze.c: Don't include opts.h.
19451         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
19452         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
19453         (mno-clearbss): Use Var and Warn.
19454
19455 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19456
19457         * config/m32r/m32r-opts.h: New.
19458         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
19459         (m32r_handle_option): Don't assert that global structures are in
19460         use.  Access target_flags and m32r_cache_flush_func via opts
19461         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
19462         OPT_mno_flush_trap here.
19463         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
19464         include of m32r-opts.h.
19465         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
19466         HeaderInclude entry.
19467         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
19468         (mmodel=): Use Enum and Var.
19469         (m32r_model): New Enum and EnumValue entries.
19470         (mno-flush-trap): Use Var.
19471         (msdata=): Use Enum and Var.
19472         (m32r_sdata): New Enum and EnumValue entries.
19473
19474 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19475
19476         * config/m32c/m32c.c: Don't include opts.h.
19477         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
19478         m32c_handle_option): Remove.
19479         (m32c_option_override): Check global_options_set.x_target_memregs
19480         instead of target_memregs_set.
19481         * config/m32c/m32c.h (target_memregs): Remove.
19482         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
19483         variable.
19484
19485 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19486
19487         * config/iq2000/iq2000-opts.h: New.
19488         * config/iq2000/iq2000.c: Don't include opts.h.
19489         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
19490         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
19491         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
19492         HeaderInclude entry.
19493         (iq2000_tune): New Variable entry.
19494         (march=): Add comment.  Use Enum.
19495         (iq2000_arch): New Enum and EnumValue entries.
19496         (mcpu=): Use Enum and Var.
19497         (iq2000_tune): New Enum and EnumValue entries.
19498
19499 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19500
19501         * config/ia64/ia64-opts.h: New.
19502         * config/ia64/ia64.c (ia64_tune): Remove.
19503         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
19504         here.  Use error_at.
19505         (ia64_option_override): Handle deferred OPT_mfixed_range_.
19506         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
19507         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
19508         HeaderInclude entry.
19509         (ia64_tune): New Variable entry.
19510         (mfixed-range=): Use Defer and Var.
19511         (mtune=): Use Enum and Var.
19512         (ia64_tune): New Enum and EnumValue entries.
19513
19514 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19515
19516         * config/frv/frv-opts.h: New.
19517         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
19518         frv-opts.h.
19519         (frv_cpu_type): Remove.
19520         * config/frv/frv.c: Don't include opts.h.
19521         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
19522         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
19523         (frv_cpu_type): New Variable entry.
19524         (frv_cpu): New Enum and EnumValue entries.
19525
19526 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19527
19528         * config/cris/cris.c (cris_handle_option): Access target_flags via
19529         opts pointer.  Don't assert that global structures are in use.
19530         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
19531         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
19532
19533 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19534
19535         * config/bfin/bfin-opts.h: New.
19536         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
19537         bfin_si_revision, bfin_workarounds): Remove.
19538         (bfin_cpus): Make static const.
19539         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
19540         not bfin_lib_id_given.
19541         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
19542         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
19543         pointer. Use error_at.  Don't assert that global structures are in use.
19544         * config/bfin/bfin.h: Include bfin-opts.h.
19545         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
19546         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
19547         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
19548         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
19549         entries.
19550
19551 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19552
19553         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
19554         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
19555         or -msoft-float here.
19556         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
19557         -msoft-float and -mhard-float.
19558         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
19559         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
19560         msoft-float.
19561         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
19562         -msoft-float.
19563         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
19564         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
19565         not mhard-float.
19566         (LIBGCC_SPEC): Don't handle -msoft-float.
19567         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
19568         -mhard-float.
19569         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
19570         msoft-float.
19571         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
19572         -mfloat-abi=*, not -msoft-float and -mhard-float.
19573         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
19574         -msoft-float.
19575         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
19576         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
19577         mhard-float and msoft-float.
19578         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
19579         mfloat-abi=soft in comments, not mhard-float and msoft-float.
19580         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
19581         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
19582         mhard-float.
19583         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
19584         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
19585         msoft-float.
19586         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
19587         not mhard-float.
19588         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
19589         not msoft-float.
19590
19591 2011-03-22  Richard Henderson  <rth@redhat.com>
19592
19593         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
19594         TARGET_ABI_WINDOWS_NT.
19595         (alpha_output_function_end_prologue): Likewise.
19596         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
19597         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19598         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
19599         (trap, *movsi_nt_vms): Likewise.
19600         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
19601         (*tablejump_osf_nt_internal): Remove.
19602         * config/alpha/predicates.md (input_operand): Only test Pmode.
19603
19604 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19605
19606         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
19607         via opts pointer.  Use error_at.  Don't assert that global
19608         structures are in use.
19609
19610 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19611
19612         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
19613         (ix86_handle_option): Access ix86_isa_flags and
19614         ix86_isa_flags_explicit via opts pointer.  Don't assert that
19615         global structures are in use.
19616         (ix86_function_specific_save, ix86_function_specific_restore):
19617         Update ix86_isa_flags_explicit field name.
19618         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
19619         (ix86_isa_flags_explicit): Rename TargetSave entry to
19620         x_ix86_isa_flags_explicit.
19621
19622 2011-03-22  Richard Henderson  <rth@redhat.com>
19623
19624         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
19625         (alpha_option_override, direct_return): Likewise.
19626         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
19627         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
19628         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
19629         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
19630         (alpha_expand_epilogue, alpha_end_function): Likewise.
19631         (alpha_init_libfuncs): Likewise.
19632         (struct machine_function): Remove unicosmk members.
19633         (print_operand) ['t']: Remove.
19634         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
19635         unicosmk_output_module_name, unicosmk_output_common,
19636         current_section_align, unicosmk_output_text_section_asm_op,
19637         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
19638         unicosmk_section_type_flags, unicosmk_unique_section,
19639         unicosmk_asm_named_section, unicosmk_insert_attributes,
19640         unicosmk_output_align, unicosmk_defer_case_vector,
19641         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
19642         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
19643         unicosmk_output_ssib, unicosmk_add_call_info_word,
19644         unicosmk_extern_head, unicosmk_output_default_externs,
19645         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
19646         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
19647         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
19648         * config/alpha/alpha-protos.h: Update.
19649         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
19650         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
19651         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
19652         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
19653         (*mulsi_se, mulvsi3): Likewise.
19654         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
19655         (*divmodsi_internal, call, call_value, realign): Likewise.
19656         (moddi3, umoddi3): Likewise; remove duplicate expander.
19657         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
19658         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
19659         (*movdi_nofix): Remove r/U alternative.
19660         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
19661         * config/alpha/constraints.md ("U"): Remove.
19662         * config/alpha/predicates.md (call_operand"): Don't test
19663         TARGET_ABI_UNICOSMK.
19664
19665 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19666
19667         * target.def (handle_option): Take gcc_options and
19668         cl_decoded_option pointers and location_t.
19669         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
19670         * doc/tm.texi: Regenerate.
19671         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
19672         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
19673         * lto-opts.c (lto_reissue_options): Generate option structure for
19674         targetm.handle_option call.
19675         * opts.c (target_handle_option): Update call to
19676         targetm.handle_option.  Remove assertions about values now passed
19677         down to hook.
19678         * targhooks.c (default_target_handle_option): New.
19679         * targhooks.h (default_target_handle_option): Declare.
19680         * config/alpha/alpha.c: Include opts.h.
19681         (alpha_handle_option): Update to new hook interface.
19682         * config/arm/arm.c: Include opts.h.
19683         (arm_handle_option): Update to new hook interface.
19684         * config/arm/t-arm (arm.o): Update dependencies.
19685         * config/bfin/bfin.c: Include opts.h.
19686         (bfin_handle_option): Update to new hook interface.
19687         * config/cris/cris.c: Include opts.h.
19688         (cris_handle_option): Update to new hook interface.
19689         * config/frv/frv.c: Include opts.h.
19690         (frv_handle_option): Update to new hook interface.
19691         * config/i386/i386.c: Include opts.h.
19692         (ix86_handle_option): Update to new hook interface.
19693         (ix86_valid_target_attribute_inner_p): Generate option structure
19694         for call to ix86_handle_option.
19695         * config/i386/t-i386 (i386.o): Update dependencies.
19696         * config/ia64/ia64.c: Include opts.h.
19697         (ia64_handle_option): Update to new hook interface.
19698         * config/ia64/t-ia64 (ia64.o): Update dependencies.
19699         * config/iq2000/iq2000.c: Include opts.h.
19700         (iq2000_handle_option): Update to new hook interface.
19701         * config/m32c/m32c.c: Include opts.h.
19702         (m32c_handle_option): Update to new hook interface.
19703         * config/m32r/m32r.c: Include opts.h.
19704         (m32r_handle_option): Update to new hook interface.
19705         * config/m68k/m68k.c: Include opts.h.
19706         (m68k_handle_option): Update to new hook interface.
19707         * config/mep/mep.c: Include opts.h.
19708         (mep_handle_option): Update to new hook interface.
19709         * config/microblaze/microblaze.c: Include opts.h.
19710         (microblaze_handle_option): Update to new hook interface.
19711         * config/mips/mips.c: Include opts.h.
19712         (mips_handle_option): Update to new hook interface.
19713         * config/mn10300/mn10300.c: Include opts.h.
19714         (mn10300_handle_option): Update to new hook interface.
19715         * config/pa/pa.c: Include opts.h.
19716         (pa_handle_option): Update to new hook interface.
19717         * config/pdp11/pdp11.c: Include opts.h.
19718         (pdp11_handle_option): Update to new hook interface.
19719         * config/rs6000/rs6000.c: Include opts.h.
19720         (rs6000_handle_option): Update to new hook interface.
19721         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
19722         * config/rx/rx.c: Include opts.h.
19723         (rx_handle_option): Update to new hook interface.
19724         * config/s390/s390.c: Include opts.h.
19725         (s390_handle_option): Update to new hook interface.
19726         * config/score/score.c: Include opts.h.
19727         (score_handle_option): Update to new hook interface.
19728         * config/sh/sh.c: Include opts.h.
19729         (sh_handle_option): Update to new hook interface.
19730         * config/sparc/sparc.c: Include opts.h.
19731         (sparc_handle_option): Update to new hook interface.
19732         * config/v850/v850.c: Include opts.h.
19733         (v850_handle_option): Update to new hook interface.
19734
19735 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19736
19737         * gcc.c (driver_unknown_option_callback): Only permit and save
19738         unknown -Wno- options.
19739         (driver_wrong_lang_callback): Save options directly instead of via
19740         driver_unknown_option_callback.
19741
19742 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
19743
19744         * combine.c (simplify_set): Try harder to find the best CC mode when
19745         simplifying a nested COMPARE on the RHS.
19746
19747 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19748
19749         * config/alpha/gnu.h: Remove.
19750         * config/arc: Remove directory.
19751         * config/arm/netbsd.h: Remove.
19752         * config/arm/t-pe: Remove.
19753         * config/crx: Remove directory.
19754         * config/i386/netbsd.h: Remove.
19755         * config/m68hc11: Remove directory.
19756         * config/m68k/uclinux-oldabi.h: Remove.
19757         * config/mcore/mcore-pe.h: Remove.
19758         * config/mcore/t-mcore-pe: Remove.
19759         * config/netbsd-aout.h: Remove.
19760         * config/rs6000/gnu.h: Remove.
19761         * config/sh/sh-symbian.h: Remove.
19762         * config/sh/symbian-base.c: Remove.
19763         * config/sh/symbian-c.c: Remove.
19764         * config/sh/symbian-cxx.c: Remove.
19765         * config/sh/symbian-post.h: Remove.
19766         * config/sh/symbian-pre.h: Remove.
19767         * config/sh/t-symbian: Remove.
19768         * config/svr3.h: Remove.
19769         * config/vax/netbsd.h: Remove.
19770         * config.build: Don't handle i[34567]86-*-pe.
19771         * config.gcc: Remove handling of deprecations for most deprecated
19772         targets.
19773         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
19774         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
19775         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
19776         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
19777         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
19778         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
19779         Remove cases.
19780         * config.host: Don't handle i[34567]86-*-pe.
19781         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
19782         (ASM_SPEC32): Don't handle -mcall-gnu.
19783         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
19784         -mcall-gnu.
19785         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
19786         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
19787         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
19788         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
19789         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
19790         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
19791         conditional on SYMBIAN.
19792         * configure.ac: Don't handle powerpc*-*-gnu*.
19793         * configure: Regenerate.
19794         * doc/extend.texi (interrupt attribute): Don't mention CRX.
19795         * doc/install-old.texi (m6811, m6812): Don't mention.
19796         * doc/install.texi (arc-*-elf*): Don't document multilib option.
19797         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
19798         (m68k-uclinuxoldabi): Don't mention.
19799         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
19800         Remove.
19801         (-mcall-gnu): Remove.
19802         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
19803         families): Remove constraint documentation.
19804
19805 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
19806
19807         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
19808         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
19809         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
19810
19811 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
19812
19813         PR target/48226
19814         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
19815         vector when peeking at the next token for vector, don't expand the
19816         keywords.
19817
19818 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
19819
19820         * config/avr/avr-protos.h (expand_epilogue): Change prototype
19821         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
19822         * config/avr/avr.c (init_cumulative_args)
19823         (avr_function_arg_advance): Use it.
19824         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
19825         sibcall epilogues.
19826         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
19827         (avr_function_ok_for_sibcall): ...this new function.
19828         (avr_lookup_function_attribute1): New static Function.
19829         (avr_naked_function_p, interrupt_function_p)
19830         (signal_function_p, avr_OS_task_function_p)
19831         (avr_OS_main_function_p): Use it.
19832         * config/avr/avr.md ("sibcall", "sibcall_value")
19833         ("sibcall_epilogue"): New expander.
19834         ("*call_insn", "*call_value_insn"): New insn.
19835         ("call_insn", "call_value_insn"): Remove
19836         ("call", "call_value", "epilogue"): Change expander to handle
19837         sibling calls.
19838
19839 2011-03-21  Nick Clifton  <nickc@redhat.com>
19840
19841         * doc/invoke.texi (Overall Options): Move closing brace to end of
19842         options list.
19843         (Optimization Options): Add missing @gol.
19844         (Directory Options): Likewise.
19845         (i386 and x86-64 Options): Likewise.
19846         (RS6000 and PowerPC Options): Likewise.
19847         (i386 and x86-64 Windows Options): Likewise.
19848         (V850 Options): Add text missing from descriptions.
19849
19850 2011-03-22  Richard Henderson  <rth@redhat.com>
19851
19852         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
19853         (avr_incoming_return_addr_rtx): New.
19854         (emit_push_byte): New.
19855         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
19856         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
19857         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
19858         (emit_pop_byte): New.
19859         (expand_epilogue): Use it.  Pop frame pointer by bytes.
19860         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
19861         (INCOMING_RETURN_ADDR_RTX): New.
19862         (INCOMING_FRAME_SP_OFFSET): New.
19863         (ARG_POINTER_CFA_OFFSET): New.
19864         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
19865         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
19866         (pophi): Remove.
19867
19868         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
19869
19870 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
19871
19872         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
19873         (FUNCTION_ARG_ADVANCE): Likewise.
19874         * tm.texi.in: Change references to them to hook references.
19875         * tm.texi: Regenerate.
19876         * targhooks.c (default_function_arg): Eliminate check for target
19877         macro.
19878         (default_function_incoming_arg): Likewise.
19879         (default_function_arg_advance): Likewise.
19880         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
19881         (function_arg_advance): Likewise.
19882         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
19883
19884 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
19885
19886         * tree.c (build_call_1): New function.
19887         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
19888
19889 2011-03-22  Richard Guenther  <rguenther@suse.de>
19890
19891         PR tree-optimization/48228
19892         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
19893         for single-arg PHIs.
19894
19895 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
19896
19897         PR rtl-optimization/48143
19898         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
19899         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
19900         sse2_cvtps2pd): Likewise.
19901
19902 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19903
19904         * recog.c (canonicalize_change_group): Use validate_unshare_change.
19905
19906 2011-03-22  Richard Guenther  <rguenther@suse.de>
19907
19908         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
19909         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
19910         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
19911         and REALIGN_LOAD_EXPR.
19912         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
19913         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
19914         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
19915         DOT_PROD_EXPR case ...
19916         (expand_expr_real_2): ... here.
19917         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
19918         and REALIGN_LOAD_EXPR.
19919         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
19920         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
19921         (vect_create_epilog_for_reduction): Likewise.
19922         (vectorizable_reduction): Likewise.
19923         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
19924         * tree-vect-stmts.c (vectorizable_load): Likewise.
19925
19926 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
19927
19928         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
19929
19930 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19931
19932         * config/s390/s390.c (s390_delegitimize_address): Fix offset
19933         handling for PLTOFF/GOTOFF.
19934
19935 2011-03-22  Nick Clifton  <nickc@redhat.com>
19936
19937         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
19938         trailing backslash from the end of the macro definition.
19939
19940 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19941
19942         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
19943         and PLT unspecs.
19944
19945 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
19946
19947         * expr.h (prepare_operand): Move to...
19948         * optabs.h (prepare_operand): ...here and change the insn code
19949         parameter from "int" to "enum insn_code".
19950         (insn_operand_matches): Declare.
19951         * expr.c (init_expr_target): Use insn_operand_matches.
19952         (compress_float_constant): Likewise.
19953         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
19954         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
19955         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
19956         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
19957         Likewise.
19958         (gen_cond_trap): Likewise.
19959         (prepare_operand): Likewise.  Change icode to an insn_code.
19960         (insn_operand_matches): New function.
19961         * reload.c (find_reloads_address_1): Use insn_operand_matches.
19962         * reload1.c (gen_reload): Likewise.
19963         * targhooks.c (default_secondary_reload): Likewise.
19964
19965 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
19966
19967         * config/alpha/alpha.md (unspec): New define_c_enum.
19968         (unspecv): Ditto.
19969
19970 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
19971
19972         PR debug/48214
19973         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
19974         between a call and its CALL_ARG_LOCATION note.
19975
19976 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
19977
19978         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
19979
19980 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
19981
19982         PR c/42544
19983         PR c/48197
19984         * c-common.c (shorten_compare): If primopN is first sign-extended
19985         to opN and then zero-extended to result type, set primopN to opN.
19986
19987 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
19988
19989         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
19990         for barrier handlers.
19991
19992 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
19993
19994         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
19995         UNSPEC constants to be in the unspec enumeration, and redefine
19996         all UNSPECV constants to be in the unspecv enumeration, so that
19997         dumps print which unspec/unspec_volatile this is.
19998         * config/rs6000/vector.md (UNSPEC_*): Ditto.
19999         * config/rs6000/paired.md (UNSPEC_*): Ditto.
20000         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
20001         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
20002         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
20003
20004         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
20005         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
20006         UNSPECV_LWSYNC, since these are used as unspec_volatile.
20007         * config/rs6000/sync.md (isync, lwsync): Ditto.
20008
20009 2011-03-21  Richard Guenther  <rguenther@suse.de>
20010
20011         * params.def (lto-min-partition): Fix typo.
20012
20013 2011-03-21  Richard Guenther  <rguenther@suse.de>
20014
20015         PR c/47939
20016         * c-decl.c (grokdeclarator): Drop to the main variant only
20017         for array types.  Drop flag_gen_aux_info check.
20018
20019 2011-03-21  Richard Guenther  <rguenther@suse.de>
20020
20021         PR translation/47911
20022         * params.def (lto-partitions): Fix typo.
20023         (lto-min-partition): Fix wording.
20024
20025 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
20026
20027         * config/rs6000/t-freebsd: Remove duplication from file.
20028
20029 2011-03-21  Richard Guenther  <rguenther@suse.de>
20030
20031         PR middle-end/47661
20032         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
20033
20034 2011-03-21  Richard Guenther  <rguenther@suse.de>
20035
20036         PR lto/48210
20037         * params.def (lto-partitions): Require at least 1 partition.
20038
20039 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20040
20041         * gthr-solaris.h: Remove.
20042         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
20043         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
20044         (LIB_SPEC): Likewise.
20045         * config/sol2.opt (threads): Remove.
20046         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
20047         (sparc*-*-solaris2*): Likewise.
20048         * configure.ac (enable_threads): Enable solaris support.
20049         * configure: Regenerate.
20050         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
20051         * doc/install.texi (Configuration, --enable-threads=lib): Remove
20052         solaris.
20053
20054 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20055
20056         * config.gcc: Obsolete *-*-solaris2.8*.
20057         * doc/install.texi (Specific, *-*-solaris2*): Document it.
20058
20059 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20060
20061         PR bootstrap/48135
20062         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
20063         reference.  Solaris 8 perl works.
20064
20065 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20066
20067         PR bootstrap/48135
20068         * doc/install.texi (Prerequisites): Move jar etc. up.
20069         Explain support library version requirements.
20070
20071 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20072
20073         PR bootstrap/48135
20074         * doc/install.texi (Prerequisites): Move Perl to build
20075         requirements.  Always necessary on Solaris 2 with Sun ld.
20076
20077 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20078
20079         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
20080         binutils 2.21.
20081         (Specific, i?86-*-solaris2.[89]): Likewise.
20082         (Specific, i?86-*-solaris2.10): Likewise.
20083         (Specific, mips-sgi-irix6): Likewise.
20084         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
20085         Update for binutils 2.21.
20086
20087 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20088
20089         * configure.ac (gcc_cv_lto_plugin): Fix typo.
20090         Allow -fuse-linker-plugin for non-default plugin linker.
20091         * configure: Regenerate.
20092
20093 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
20094
20095         PR bootstrap/48167
20096         * gengtype.c (files_rules): Added rule for cp/parser.h.
20097
20098 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
20099
20100         PR target/48213
20101         * config/s390/s390.c (s390_delegitimize_address): Don't call
20102         lowpart_subreg if orig_x has BLKmode.
20103
20104 2011-03-21  Kai Tietz  <ktietz@redhat.com>
20105
20106         PR target/12171
20107         * doc/plugins.texi: Adjust documentation for plugin register_callback.
20108         * tree.h (attribute_spec): Add new member affects_type_identity.
20109         * attribs.c (empty_attribute_table): Adjust attribute_spec
20110         initializers.
20111         * config/alpha/alpha.c: Likewise.
20112         * config/arc/arc.c: Likewise.
20113         * config/arm/arm.c: Likewise.
20114         * config/avr/avr.c: Likewise.
20115         * config/bfin/bfin.c: Likewise.
20116         * config/crx/crx.c: Likewise.
20117         * config/darwin.h: Likewise.
20118         * config/h8300/h8300.c: Likewise.
20119         * config/i386/cygming.h: Likewise.
20120         * config/i386/i386.c: Likewise.
20121         * config/ia64/ia64.c: Likewise.
20122         * config/m32c/m32c.c: Likewise.
20123         * config/m32r/m32r.c: Likewise.
20124         * config/m68hc11/m68hc11.c: Likewise.
20125         * config/m68k/m68k.c: Likewise.
20126         * config/mcore/mcore.c: Likewise.
20127         * config/mep/mep.c: Likewise.
20128         * config/microblaze/microblaze.c: Likewise.
20129         * config/mips/mips.c: Likewise.
20130         * config/rs6000/rs6000.c: Likewise.
20131         * config/rx/rx.c: Likewise.
20132         * config/sh/sh.c: Likewise.
20133         * config/sol2.h: Likewise.
20134         * config/sparc/sparc.c: Likewise.
20135         * config/spu/spu.c: Likewise.
20136         * config/stormy16/stormy16.c: Likewise.
20137         * config/v850/v850.c: Likewise.
20138
20139 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
20140
20141         * simplify-rtx.c (simplify_binary_operation_1): Handle
20142         (xor (and A B) C) case when B and C are both constants.
20143
20144 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
20145
20146         * tree-dfa.c (add_referenced_var): Fix typo in comment.
20147
20148 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
20149
20150         PR bootstrap/48168
20151         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
20152
20153 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
20154
20155         PR rtl-optimization/48156
20156         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
20157         assume df and df_lr are not NULL.
20158
20159 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20160
20161         PR debug/48023
20162         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
20163         between a call and its CALL_ARG_LOCATION note.
20164
20165 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
20166
20167         PR debug/48178
20168         * config/sh/sh.c (find_barrier): Don't emit a constant pool
20169         between a call and its corresponding CALL_ARG_LOCATION note.
20170
20171 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
20172
20173         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
20174         instead of loop. Use HARD_REGISTER_NUM_P predicate.
20175         * haifa-sched.c (setup_ref_regs): Ditto.
20176         * caller-save.c (add_used_regs_1): Ditto.
20177         * dse.c (look_for_hardregs): Ditto.
20178         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
20179         * sched-rgn.c (check_live_1): Ditto.
20180
20181 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
20182
20183         * c-decl.c (diagnose_mismatched_decls): Give an error for
20184         redefining a typedef with variably modified type.
20185
20186 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
20187
20188         * c-decl.c (grokfield): Don't allow typedefs for structures or
20189         unions with no tag by default.
20190         * doc/extend.texi (Unnamed Fields): Update.
20191
20192 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
20193
20194         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
20195         Rewrite using indirect functions.
20196         (lwp_slwpcb): Ditto.
20197         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
20198         (avx_vinsertf128<mode>): Ditto.
20199
20200 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20201
20202         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
20203         unspecs.
20204
20205 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20206
20207         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
20208         splitting between a call and its corresponding CALL_ARG_LOCATION note.
20209
20210 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
20211
20212         PR rtl-optimization/48170
20213         * gcse.c (hoist_code): Remove bogus asserts.
20214
20215 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
20216
20217         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
20218         computation for prologue/epilogue.
20219
20220 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20221
20222         * Makefile.in (check-consistency): Remove.
20223
20224 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
20225
20226         PR debug/48176
20227         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
20228         arange_table_in_use is 0, but either text_section_used or
20229         cold_text_section_used is true.  Don't call it if
20230         !info_section_emitted.
20231
20232 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
20233
20234         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
20235         FUNCTION_VALUE_REGNO_P): Remove.
20236         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
20237         Remove.
20238         * config/avr/avr.c (avr_ret_register): Make static inline.
20239         (avr_function_value_regno_p): New function.
20240         (avr_libcall_value): Make static. Add 'func' argument.
20241         (avr_function_value): Make static. Rename 'func' argument to
20242         'fn_decl_or_type', forward it to avr_libcall_value. Call
20243         avr_ret_register function instead of RET_REGISTER macro.
20244         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
20245
20246 2011-03-18  Jason Merrill  <jason@redhat.com>
20247
20248         PR c++/23372
20249         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
20250
20251 2011-03-18  Richard Guenther  <rguenther@suse.de>
20252
20253         * doc/install.texi (--enable-gold): Remove.
20254         (--with-plugin-ld): Document.
20255         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
20256
20257 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
20258
20259         PR middle-end/47790
20260         * expr.c (optimize_bitfield_assignment_op): Revamp to work
20261         again after expansion changes.
20262
20263 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
20264
20265         * combine.c (try_combine): Do simplification only call of
20266         subst() on i2 even when i1 is present. Update comments.
20267
20268 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
20269
20270         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
20271         and UNSPEC_PCREL_SYMOFF.
20272
20273 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20274
20275         * config/s390/s390.md: Use define_c_enum for the unspec constant
20276         definitions.
20277
20278 2011-03-18  Richard Henderson  <rth@redhat.com>
20279             Jakub Jelinek  <jakub@redhat.com>
20280
20281         PR bootstrap/48161
20282         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
20283         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
20284
20285 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
20286
20287         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
20288         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
20289         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
20290         Change return type to bool.
20291         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
20292
20293 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
20294
20295         PR debug/48163
20296         * var-tracking.c (prepare_call_arguments): If CALL target
20297         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
20298         pc instead of looking it up using cselib_lookup and use
20299         Pmode for it if x has VOIDmode.
20300         * dwarf2out.c (gen_subprogram_die): If also both first and
20301         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
20302
20303         PR debug/48163
20304         * function.c (assign_parms): For data.passed_pointer parms
20305         use MEM of data.entry_parm instead of data.entry_parm itself
20306         as DECL_INCOMING_RTL.
20307         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
20308         also when passed and declared mode is the same, DECL_RTL
20309         is a MEM with pseudo as address and DECL_INCOMING_RTL is
20310         a MEM too.
20311
20312 2011-03-16  Jeff Law  <law@redhat.com>
20313
20314         PR rtl-optimization/37273
20315         * ira-costs.c (scan_one_insn): Detect constants living in memory and
20316         handle them like argument loads from stack slots.  Do not double
20317         count memory for memory constants and argument loads from stack slots.
20318
20319 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
20320
20321         PR debug/48160
20322         * var-tracking.c (prepare_call_arguments): Check SUBREG.
20323
20324 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
20325
20326         PR target/48171
20327         * config/i386/i386.opt: Add Save to -mavx and -mfma.
20328
20329 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
20330
20331         PR bootstrap/48153
20332         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
20333         if dwarf_strict.
20334         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
20335         Clear call_arg_locations and call_arg_loc_last always.
20336
20337         PR middle-end/48152
20338         * var-tracking.c (prepare_call_arguments): If argument needs to be
20339         passed by reference, adjust argtype and mode.
20340
20341 2011-03-17  Richard Guenther  <rguenther@suse.de>
20342
20343         PR middle-end/48134
20344         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
20345         a value make sure to fold the statement.
20346
20347 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
20348
20349         PR target/43872
20350         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
20351         return condition with !cfun->calls_alloca.
20352
20353 2011-03-17  Richard Guenther  <rguenther@suse.de>
20354
20355         PR bootstrap/48148
20356         * lto-cgraph.c (input_overwrite_node): Clear the abstract
20357         origin for decls in other ltrans units.
20358         (input_varpool_node): Likewise.
20359
20360 2011-03-17  Richard Guenther  <rguenther@suse.de>
20361
20362         PR middle-end/48165
20363         * tree-object-size.c (compute_object_offset): Properly return
20364         the offset operand of MEM_REFs as sizetype.
20365
20366 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
20367
20368         PR rtl-optimization/48141
20369         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
20370         * dse.c: Include params.h.
20371         (active_local_stores_len): New variable.
20372         (add_wild_read, dse_step1): Clear it when setting active_local_stores
20373         to NULL.
20374         (record_store, check_mem_read_rtx): Decrease it when removing
20375         from the chain.
20376         (scan_insn): Likewise.  Increase it when adding to chain, if it
20377         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
20378         set active_local_stores to NULL before the addition.
20379         * Makefile.in (dse.o): Depend on $(PARAMS_H).
20380
20381         PR rtl-optimization/48141
20382         * dse.c (record_store): If no positions are needed in an insn
20383         that cannot be deleted, at least unchain it from active_local_stores.
20384
20385 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
20386
20387         PR debug/47510
20388         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
20389         (lookup_type_die_strip_naming_typedef): ... here.
20390         (get_context_die): Use it.
20391         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
20392         the anonymous struct named by the naming typedef.
20393
20394 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
20395
20396         PR target/48154
20397         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
20398         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
20399
20400 2011-03-16  Jeff Law  <law@redhat.com>
20401
20402         * tree-vrp.c (identify_jump_threads): Slightly simplify type
20403         check for operands of conditional.  Allow type to be a pointer.
20404
20405 2011-03-16  Richard Guenther  <rguenther@suse.de>
20406
20407         PR tree-optimization/48149
20408         * fold-const.c (fold_binary_loc): Fold
20409         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
20410
20411 2011-03-16  Richard Guenther  <rguenther@suse.de>
20412
20413         PR tree-optimization/26134
20414         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
20415         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
20416         (non_rewritable_mem_ref_base): Handle complex type component
20417         accesses, constrain offsets for vector and complex extracts
20418         more properly.
20419
20420 2011-03-16  Richard Guenther  <rguenther@suse.de>
20421
20422         PR tree-optimization/48146
20423         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
20424         operands avoiding the need for renaming.
20425
20426 2011-03-16  Richard Guenther  <rguenther@suse.de>
20427
20428         * gimple-fold.c (maybe_fold_reference): Open-code relevant
20429         constant folding.  Move MEM_REF canonicalization first.
20430         Rely on fold_const_aggregate_ref for initializer folding.
20431         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
20432
20433 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
20434
20435         PR middle-end/48136
20436         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
20437         arg0/arg1 or their arguments are always fold converted to matching
20438         types.
20439
20440         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
20441         to nargs.
20442
20443 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20444
20445         PR lto/46944
20446         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
20447         Handle in-tree gold.
20448         (ld_vers): Extract binutils version for gold.
20449         (gcc_cv_ld_hidden): Handle gold here.
20450         (gcc_cv_lto_plugin): Determine level of linker plugin support.
20451         * configure: Regenerate.
20452         * config.in: Regenerate.
20453         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
20454         -fuse-linker-plugin otherwise.
20455         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
20456         (LINK_COMMAND_SPEC): Use it.
20457         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
20458
20459 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
20460
20461         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
20462         * calls.c: Remove debug.h include.
20463         (emit_call_1): Don't call virtual_call_token debug hook.
20464         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
20465         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
20466         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
20467         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
20468         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
20469         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
20470         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
20471         dwarf2out_virtual_call): Remove.
20472         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
20473         copy_call_info and virtual_call hooks.
20474         (dwarf2out_init): Don't initialize vcall_insn_table,
20475         debug_dcall_section and debug_vcall_section.
20476         (prune_unused_types): Don't mark nodes from dcall_table.
20477         (dwarf2out_finish): Don't output dcall or vcall tables.
20478         * final.c (final_scan_insn): Don't call direct_call or
20479         virtual_call debug hooks.
20480         * debug.h (struct gcc_debug_hooks): Remove direct_call,
20481         virtual_call_token, copy_call_info and virtual_call hooks.
20482         (debug_nothing_uid): Remove prototype.
20483         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
20484         copy_call_info and virtual_call hooks.
20485         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
20486         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
20487         * debug.c (do_nothing_debug_hooks): Likewise.
20488         (debug_nothing_uid): Remove.
20489         * doc/invoke.texi (-fenable-icf-debug): Remove.
20490         * common.opt (-fenable-icf-debug): Likewise.
20491
20492         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
20493         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
20494         call's MEM.  Handle functions returning aggregate through a hidden
20495         first pointer.  For virtual calls add clobbered pc to call arguments
20496         chain.
20497         * dwarf2out.c (gen_subprogram_die): Emit
20498         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
20499         can't be emitted.
20500
20501         PR debug/45882
20502         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
20503         * rtl.h (ENTRY_VALUE_EXP): Define.
20504         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
20505         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
20506         * print-rtl.c (print_rtx): Likewise.
20507         * gengtype.c (adjust_field_rtx_def): Likewise.
20508         * var-tracking.c (vt_add_function_parameter): Adjust
20509         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
20510         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
20511         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
20512         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
20513         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
20514
20515         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
20516         Call var_location debug hook even on CALL_INSNs.
20517         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
20518         * rtl.def (ENTRY_VALUE): New.
20519         * dwarf2out.c: Include cfglayout.h.
20520         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
20521         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
20522         (struct call_arg_loc_node): New type.
20523         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
20524         tail_call_site_count): New variables.
20525         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
20526         DW_TAG_GNU_call_site_parameter.
20527         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
20528         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
20529         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
20530         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
20531         and DW_AT_GNU_all_source_call_sites.
20532         (mem_loc_descriptor): Handle ENTRY_VALUE.
20533         (add_src_coords_attributes): Don't add enything if
20534         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
20535         (dwarf2out_abstract_function): Save and clear call_arg_location,
20536         call_site_count and tail_call_site_count around dwarf2out_decl call.
20537         (gen_call_site_die): New function.
20538         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
20539         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
20540         (dwarf2out_function_decl): Clear call_arg_locations,
20541         call_arg_loc_last, set call_site_count and tail_call_site_count
20542         to -1 and free block_map.
20543         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
20544         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
20545         followed by any real instructions.
20546         (dwarf2out_begin_function): Set call_site_count and
20547         tail_call_site_count to 0.
20548         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
20549         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
20550         attempt to force a DIE for it and worst case remove the attribute.
20551         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
20552         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
20553         the decl itself.
20554         * var-tracking.c: Include tm_p.h.
20555         (vt_stack_adjustments): For calls call note_register_arguments.
20556         (argument_reg_set): New variable.
20557         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
20558         ensure the VALUE is resolved.
20559         (call_arguments): New variable.
20560         (prepare_call_arguments): New function.
20561         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
20562         (struct expand_loc_callback_data): Add ignore_cur_loc field.
20563         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
20564         always use the best expression.
20565         (vt_expand_loc): Add ignore_cur_loc argument.
20566         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
20567         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
20568         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
20569         note for all calls.
20570         (vt_add_function_parameter): Use cselib_lookup_from_insn.
20571         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
20572         argument.  Don't call cselib_preserve_only_values and
20573         cselib_reset_table.
20574         (note_register_arguments): New function.
20575         (vt_initialize): Compute argument_reg_set.  Call
20576         vt_add_function_parameters before processing basic blocks instead of
20577         afterwards.  For calls call prepare_call_arguments before calling
20578         cselib_process_insn.
20579         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
20580         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
20581         (var-tracking.o): Depend on $(TM_P_H).
20582         * cfglayout.h (insn_scope): New prototype.
20583         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
20584         * cfglayout.c (insn_scope): No longer static.
20585         * insn-notes.def (CALL_ARG_LOCATION): New.
20586         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
20587         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
20588         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
20589         nothing for DECL_EXTERNAL BLOCK_VARS.
20590
20591 2011-03-16  Alan Modra  <amodra@gmail.com>
20592
20593         PR target/45844
20594         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
20595         create invalid offset address for vsx splat insn.
20596         * config/rs6000/predicates.md (splat_input_operand): New.
20597         * config/rs6000/vsx.md (vsx_splat_*): Use it.
20598
20599 2011-03-15  Xinliang David Li  <davidxl@google.com>
20600
20601         PR c/47837
20602         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
20603         (normalize_preds): New function.
20604         (is_use_properly_guarded): Normalize def predicates.
20605
20606 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20607
20608         PR target/46788
20609         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
20610         in the output template.
20611
20612 2011-03-15  Richard Guenther  <rguenther@suse.de>
20613
20614         PR middle-end/47650
20615         * tree-pretty-print.c (dump_function_declaration): Properly
20616         dump unprototyped and varargs function types.
20617
20618 2011-03-15  Richard Guenther  <rguenther@suse.de>
20619
20620         PR tree-optimization/13954
20621         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
20622         and friends.
20623
20624 2011-03-15  Richard Guenther  <rguenther@suse.de>
20625
20626         PR tree-optimization/48037
20627         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
20628         selects into BIT_FIELD_REFs.
20629         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
20630         vector select.
20631
20632 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
20633
20634         PR tree-optimization/48129
20635         * builtins.c (fold_builtin_snprintf): Convert to type of
20636         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
20637         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
20638
20639 2011-03-15  Richard Guenther  <rguenther@suse.de>
20640
20641         PR tree-optimization/41490
20642         * tree-ssa-dce.c (propagate_necessity): Handle returns without
20643         value but with VUSE.
20644         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
20645         return statements.
20646         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
20647         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
20648         * tree-tailcall.c (find_tail_calls): Ignore returns.
20649
20650 2011-03-15  Richard Guenther  <rguenther@suse.de>
20651
20652         PR middle-end/48031
20653         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
20654         or variable-indexed array accesses when in gimple form.
20655
20656 2011-03-15  Richard Guenther  <rguenther@suse.de>
20657
20658         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
20659
20660 2011-03-15  Alan Modra  <amodra@gmail.com>
20661
20662         PR target/48032
20663         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
20664         presume symbol_refs without a symbol_ref_decl are suitably
20665         aligned, nor other trees we may see here.  Handle anchor symbols.
20666         (legitimate_constant_pool_address_p): Comment.  Add mode param.
20667         Check cmodel=medium addresses.  Adjust all calls.
20668         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
20669         creating cmodel=medium optimized access to locals.
20670         * config/rs6000/constraints.md (R): Pass QImode to
20671         legitimate_constant_pool_address_p.
20672         * config/rs6000/predicates.md (input_operand): Pass mode to
20673         legitimate_constant_pool_address_p.
20674         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
20675         Update prototype.
20676
20677 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
20678
20679         PR target/48053
20680         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
20681         64-bit constants being loaded into registers other than GPRs such
20682         as loading 0 into a VSX register.
20683
20684 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20685
20686         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
20687
20688 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
20689
20690         PR middle-end/47917
20691         * builtins.c (fold_builtin_snprintf): New function.
20692         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
20693         (fold_builtin_4): Likewise.
20694
20695         PR middle-end/38878
20696         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
20697         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
20698         and C - X == X also strip nops from +/-/p+ operand.
20699         When optimizing -X == C, fold C to arg0's type.
20700
20701         PR debug/47946
20702         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
20703         emit it as add_AT_int instead of add_AT_unsigned.
20704
20705 2011-03-14  Tom Tromey  <tromey@redhat.com>
20706
20707         * unwind-dw2.c: Include sys/sdt.h if it exists.
20708         (_Unwind_DebugHook): Use STAP_PROBE2.
20709         * config.in, configure: Rebuild.
20710         * configure.ac: Check for sys/sdt.h.
20711
20712 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
20713
20714         * config/i386/i386.md (ROUND_FLOOR): New constant.
20715         (ROUND_CEIL): Ditto.
20716         (ROUND_TRUNC): Ditto.
20717         (ROUND_MXCSR): Ditto.
20718         (ROUND_NO_EXC): Ditto.
20719         (rint<mode>2): Use new defines instead of numerical constants.
20720         (floor<mode>2): Ditto.
20721         (ceil<mode>2): Ditto.
20722         (btrunc<mode>2): Ditto.
20723         * config/i386/i386-builtin-types.def: Define ROUND function type
20724         aliases.
20725         * config/i386/i386.c (enum ix86_builtins): Add
20726         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
20727         (struct builtin_description): Add
20728         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
20729         (ix86_expand_sse_round): New static function.
20730         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
20731         function types.
20732         (ix86_builtin_vectorized_function): Handle
20733         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
20734
20735 2011-03-14  Tom Tromey  <tromey@redhat.com>
20736
20737         * c-parser.c (c_parser_asm_string_literal): Clear
20738         warn_overlength_strings.
20739
20740 2011-03-14  Tom Tromey  <tromey@redhat.com>
20741
20742         * c-parser.c (disable_extension_diagnostics): Save
20743         warn_overlength_strings.
20744         (restore_extension_diagnostics): Restore warn_overlength_strings.
20745
20746 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
20747
20748         * BASE-VER: Change to 4.7.0.
20749
20750 2011-03-14  Richard Guenther  <rguenther@suse.de>
20751
20752         PR middle-end/48098
20753         * tree.c (build_vector_from_val): Adjust assert to requirements
20754         and reality.
20755
20756 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
20757
20758         PR bootstrap/48102
20759         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
20760
20761 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
20762
20763         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
20764         terms of target_flags_explicit. Adjust copyright year.
20765
20766         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
20767         * config/rs6000/t-freebsd: New file. Add override for
20768         LIB2FUNCS_EXTRA.
20769
20770 2011-03-13  Chris Demetriou  <cgd@google.com>
20771
20772         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
20773         (-fno-diagnostics-show-option): this, to reflect current default.
20774         (-Werror=): Update text about -fno-diagnostics-show-option.
20775
20776 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
20777
20778         PR target/48053
20779         * config/rs6000/predicates.md (easy_vector_constant_add_self,
20780         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
20781         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
20782         mode is not V2DImode or V2DFmode.
20783         (vspltis_constant): Do not handle V2DImode and V2DFmode.
20784         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
20785         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
20786         registers to 0.
20787         (movdi_internal64): Likewise.
20788
20789 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
20790
20791         PR tree-optimization/47127
20792         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
20793         parameter.
20794         (set_cloog_options): Same.
20795         (scop_to_clast): Same.
20796         (print_clast_stmt): Do not call cloog_state_malloc and
20797         cloog_state_free.
20798         (print_generated_program): Same.
20799         (gloog): Same.
20800         * graphite-clast-to-gimple.h (cloog_state): Declared.
20801         (scop_to_clast): Adjust declaration.
20802         * graphite.c (cloog_state): Defined here.
20803         (graphite_initialize): Call cloog_state_malloc.
20804         (graphite_finalize): Call cloog_state_free.
20805
20806 2011-03-11  Jason Merrill  <jason@redhat.com>
20807
20808         * attribs.c (lookup_attribute_spec): Take const_tree.
20809         * tree.h: Adjust.
20810
20811 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
20812
20813         * config/sparc/sparc.c (sparc_option_override): Use
20814         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
20815
20816 2011-03-11  Richard Guenther  <rguenther@suse.de>
20817
20818         PR tree-optimization/48067
20819         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
20820         multiplication result will be only used once on the target
20821         stmt.
20822
20823 2011-03-11  Richard Guenther  <rguenther@suse.de>
20824
20825         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
20826
20827 2011-03-11  Richard Guenther  <rguenther@suse.de>
20828
20829         PR lto/48073
20830         * tree.c (find_decls_types_r): Do not walk types only reachable
20831         from IDENTIFIER_NODEs.
20832
20833 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
20834
20835         PR middle-end/48044
20836         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
20837         all vnode->force_output nodes as needed.
20838
20839 2011-03-11  Jason Merrill  <jason@redhat.com>
20840
20841         PR c++/48069
20842         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
20843         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
20844
20845 2011-03-11  Martin Jambor  <mjambor@suse.cz>
20846
20847         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
20848         cgraph_node.
20849
20850 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
20851
20852         PR tree-optimization/48063
20853         * ipa-inline.c (cgraph_decide_inlining): Don't try to
20854         inline functions called once if !tree_can_inline_p (node->callers).
20855
20856 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
20857
20858         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
20859         extra_objs.
20860         * config/score/score3.c: Delete.
20861         * config/score/score3.h: Delete.
20862         * config/score/mul-div.S: Delete.
20863         * config/score/sfp-machine.h: Add new file.
20864         * config/score/constraints.md: Add new file.
20865         * config/score/t-score-softfp: Add new file.
20866         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
20867         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
20868         (score7_extra_constraint): Delete.
20869         (score7_option_override): Remove unused code.
20870         * config/score/score.c: Remove score3 and score5 define and code.
20871         * config/score/score.h: Remove score3 and score5 define and code.
20872         * config/score/score.md: Remove score3 template and unusual insn.
20873         * config/score/score.opt: Remove score3 and score5 options.
20874
20875 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20876
20877         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
20878         when _HPUX_SOURCE is defined.
20879         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
20880
20881 2011-03-10  Jason Merrill  <jason@redhat.com>
20882
20883         PR c++/48029
20884         * stor-layout.c (layout_type): Don't set structural equality
20885         on arrays of incomplete type.
20886         * tree.c (type_hash_eq): Handle comparing them properly.
20887
20888 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
20889
20890         PR debug/48043
20891         * config/s390/s390.c (s390_delegitimize_address): Make sure the
20892         result mode matches original rtl mode.
20893
20894 2011-03-10  Nick Clifton  <nickc@redhat.com>
20895
20896         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
20897         (andsi3, andsi3_flags): Fix timings for three operand alternative.
20898
20899 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
20900
20901         PR rtl-optimization/47866
20902         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
20903         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
20904         if target wasn't scalar.
20905         * function.c (assign_stack_temp_for_type): Assert that neither
20906         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
20907         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
20908         macro.
20909         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
20910
20911 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20912
20913         * config/s390/s390-protos.h (s390_label_align): New prototype.
20914         * config/s390/s390.c (s390_label_align): New function.
20915         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
20916
20917 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
20918
20919         PR target/47755
20920         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
20921         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
20922         (output_vec_const_move): Ditto.
20923
20924 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
20925
20926         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
20927         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
20928         * config/mips/mips.c (mips_preferred_reload_class): Make static.
20929         Change 'rclass' argument and result type to reg_class_t.
20930         (TARGET_PREFERRED_RELOAD_CLASS): Define.
20931
20932 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
20933
20934         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
20935         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
20936         (TARGET_MEMORY_MOVE_COST): Define.
20937         (avr_register_move_cost, avr_memory_move_cost): New Functions.
20938
20939 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
20940
20941         PR debug/47881
20942         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
20943         removed anything.
20944
20945         PR tree-optimization/48022
20946         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
20947         for EQ/NE_EXPR.
20948
20949 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
20950
20951         PR debug/47991
20952         * var-tracking.c (find_use_val): Return NULL for
20953         cui->sets && cui->store_p BLKmode MEMs.
20954
20955 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
20956
20957         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
20958         Remove.
20959         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
20960         xstormy16_print_operand_address): Remove.
20961         * config/stormy16/stormy16.c (xstormy16_print_operand,
20962         xstormy16_print_operand_address): Make static.
20963         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20964
20965 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
20966
20967         PR target/47862
20968         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
20969         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
20970         before definition.
20971
20972 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
20973
20974         PR bootstrap/48000
20975         * cfgloopmanip.c (fix_bb_placements): Return immediately
20976         if FROM is BASE_LOOP's header.
20977
20978 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
20979
20980         * gimplify.c (gimplify_function_tree): Fix building calls
20981         to __builtin_return_address.
20982
20983 2011-03-07  Alan Modra  <amodra@gmail.com>
20984
20985         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
20986         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
20987         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
20988         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
20989         return_mode args.
20990         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
20991         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
20992         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
20993         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
20994         * config/rs6000/rs6000.c
20995         (rs6000_elf_end_indicate_exec_stack): Rename to..
20996         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
20997         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
20998         (rs6000_file_start): ..here.
20999         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
21000         file scope variables.
21001         (call_ABI_of_interest): New function.
21002         (init_cumulative_args): Set above vars when function return value
21003         is a float, vector, or small struct.
21004         (rs6000_function_arg_advance_1): Likewise for function args.
21005         (rs6000_va_start): Set rs6000_passes_float if variable arg function
21006         references float args.
21007
21008 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
21009
21010         * doc/cfg.texi: Remove "See" before @ref.
21011         * doc/invoke.texi: Likewise.
21012
21013 2011-03-05  Jason Merrill  <jason@redhat.com>
21014
21015         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
21016
21017 2011-03-05  Anthony Green  <green@moxielogic.com>
21018
21019         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
21020
21021 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
21022
21023         PR rtl-optimization/47899
21024         * cfgloopmanip.c (fix_bb_placements): Fix first argument
21025         to flow_loop_nested_p when moving the loop upward.
21026
21027 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
21028
21029         PR target/47719
21030         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
21031
21032 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
21033
21034         PR tree-optimization/47967
21035         * ipa-cp.c (build_const_val): Return NULL instead of creating
21036         VIEW_CONVERT_EXPR for mismatching sizes.
21037         (ipcp_create_replace_map): Return NULL if build_const_val failed.
21038         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
21039         give up on versioning.
21040
21041 2011-03-05  Alan Modra  <amodra@gmail.com>
21042
21043         PR target/47986
21044         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
21045         full cmodel medium/large lo_sum + high addresses.
21046
21047 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21048
21049         * config/s390/s390.c (s390_decompose_address): Reject non-literal
21050         pool references in UNSPEC_LTREL_OFFSET.
21051
21052 2011-03-04  Jan Hubicka  <jh@suse.cz>
21053
21054         PR lto/47497
21055         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
21056         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
21057         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
21058         Add node pointers.
21059         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
21060         cgraph_add_thunk): Add node pointers.
21061         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
21062         associated to right node.
21063         (input_node): Update use of cgraph_same_body_alias
21064         and cgraph_add_thunk.
21065
21066 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
21067
21068         * config/i386/i386.opt (mprefer-avx128): New flag.
21069         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
21070         modes when the flag -mprefer-avx128 is on.
21071
21072 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
21073
21074         * dwarf2out.c (compare_loc_operands): Fix address handling.
21075
21076 2011-03-04  Alan Modra  <amodra@gmail.com>
21077
21078         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
21079
21080 2011-03-04  Richard Guenther  <rguenther@suse.de>
21081
21082         PR middle-end/47968
21083         * expmed.c (extract_bit_field_1): Prefer vector modes that
21084         vec_extract patterns can handle.
21085
21086 2011-03-04  Richard Guenther  <rguenther@suse.de>
21087
21088         PR middle-end/47975
21089         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
21090
21091 2011-03-04  Richard Henderson  <rth@redhat.com>
21092
21093         * explow.c (emit_stack_save): Remove 'after' parameter.
21094         (emit_stack_restore): Likewise.
21095         * expr.h: Update to match.
21096         * builtins.c, calls.c, stmt.c: Likewise.
21097         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
21098         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
21099         * function.c (expand_function_end): Insert the emit_stack_save
21100         sequence before parm_birth_insn instead of after.
21101
21102 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
21103
21104         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
21105         (ssse3_pmaddubsw128): Ditto.
21106         (ssse3_pmaddubsw): Ditto.
21107
21108 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
21109
21110         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
21111
21112 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
21113
21114         PR c/47963
21115         * gimplify.c (omp_add_variable): Only call omp_notice_variable
21116         on TYPE_SIZE_UNIT if it is a DECL.
21117
21118         PR debug/47283
21119         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
21120         first operand is not is_gimple_mem_ref_addr, try to fold it.
21121         If the operand still isn't is_gimple_mem_ref_addr, clear
21122         MEM_EXPR on op0.
21123
21124 2011-03-03  Richard Guenther  <rguenther@suse.de>
21125
21126         PR middle-end/47283
21127         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
21128         match comment.
21129         (refs_may_alias_p_1): For release branches return true if
21130         we are confused by our input.
21131
21132 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21133
21134         * config/s390/s390.c (s390_function_value): Rename to ...
21135         (s390_function_and_libcall_value): ... this.
21136         (s390_function_value): New function.
21137         (s390_libcall_value): New function.
21138         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
21139         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
21140         target macro definitions.
21141         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
21142
21143 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
21144
21145         * config/i386/freebsd64.h (CC1_SPEC): Define.
21146         * config/i386/linux64.h (CC1_SPEC): Define.
21147         * config/i386/x86-64.h (CC1_SPEC): Don't define.
21148
21149 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
21150
21151         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21152         Remove.
21153         * config/stormy16/stormy16.c: Include reload.h.
21154         (xstormy16_memory_move_cost): New function.
21155         (TARGET_MEMORY_MOVE_COST): Define.
21156
21157 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
21158
21159         PR rtl-optimization/47925
21160         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
21161         with side effects.  Remove the more-specific check for volatile asms.
21162
21163 2011-03-02  Alan Modra  <amodra@gmail.com>
21164
21165         PR target/47935
21166         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
21167         toc relative addresses for valid offsets.
21168
21169 2011-03-01  Richard Guenther  <rguenther@suse.de>
21170
21171         PR tree-optimization/47890
21172         * tree-vect-loop.c (get_initial_def_for_induction): Set
21173         related stmt properly.
21174
21175 2011-03-01  Richard Guenther  <rguenther@suse.de>
21176
21177         PR lto/47924
21178         * lto-streamer.c (lto_record_common_node): Also register
21179         the canonical type.
21180
21181 2011-03-01  Richard Guenther  <rguenther@suse.de>
21182
21183         PR lto/46911
21184         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
21185         Do not stream DECL_ABSTRACT_ORIGIN.
21186         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
21187         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
21188         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
21189         Do not stream DECL_ABSTRACT_ORIGIN.
21190         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
21191         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
21192
21193 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
21194
21195         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
21196         FUNCTION_VALUE_REGNO_P): Remove.
21197         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
21198         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
21199         Add 'outgoing' argument.
21200         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
21201         function.
21202         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21203         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21204
21205 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
21206
21207         PR debug/28047
21208         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
21209         (lookup_filename): Likewise.
21210         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
21211
21212 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
21213             Jakub Jelinek  <jakub@redhat.com>
21214
21215         PR middle-end/47893
21216         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
21217         (assign_stack_local_1): Change last argument type to int.
21218         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
21219         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
21220         don't record padding space into frame_space_list nor use those areas.
21221         (assign_stack_local): Adjust caller.
21222         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
21223         of assign_stack_local, pass 0 as last argument.
21224         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
21225         callers.
21226
21227 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
21228
21229         PR debug/47283
21230         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
21231         Use target address_mode and pointer_mode hooks instead of hardcoded
21232         Pmode and ptr_mode.  Handle some simple cases of extending if
21233         POINTERS_EXTEND_UNSIGNED < 0.
21234         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
21235         Call convert_debug_memory_address.
21236         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
21237         convert_debug_memory_address.
21238
21239         PR middle-end/46790
21240         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
21241         * configure: Regenerated.
21242         * config.in: Regenerated.
21243         * varasm.c (default_function_section): Return NULL
21244         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
21245
21246 2011-02-28  Martin Jambor  <mjambor@suse.cz>
21247
21248         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
21249         the description to match the printed values.
21250
21251 2011-02-28  Richard Guenther  <rguenther@suse.de>
21252
21253         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
21254         of the copied scope tree.
21255
21256 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21257
21258         * doc/extend.texi (Function Attributes): Avoid deeply (and
21259         wrongly) nested tables.
21260
21261 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
21262
21263         PR middle-end/47903
21264         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
21265         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
21266         r isn't op0 nor op1.
21267
21268 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
21269
21270         * config/avr/avr.md: Remove magic comment for emacs.
21271
21272 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
21273
21274         PR target/45261
21275         * config/avr/avr.c (avr_option_override): Use error on bad options.
21276         (avr_help): New function.
21277         (TARGET_HELP): Define.
21278
21279 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
21280
21281         PR target/42240
21282         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
21283         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
21284
21285 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
21286
21287         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
21288         (ARM Options): Ditto.
21289         (i386 and x86-64 Options): Ditto.
21290         (RX Options): Ditto.
21291         (SPARC Options): Ditto.
21292
21293 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
21294
21295         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
21296         FreeBSD 6 and later.  Generally use cpu generic.
21297
21298 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
21299
21300         * doc/cpp.texi: Update copyright years.
21301
21302 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
21303
21304         PR target/46898
21305         * config/lm32/lm32.md (ashrsi3): Added needed variable.
21306
21307 2011-02-25  Jon Beniston  <jon@beniston.com>
21308
21309         PR target/46898
21310         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
21311         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
21312         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
21313         (lm32_block_move_inline): Add type cast to remove warning.
21314         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
21315         (gen_int_relational): Move declarations to start of function.
21316
21317 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
21318
21319         PR tree-optimization/45470
21320         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
21321         can throw internally only.
21322         * tree-vect-stmts.c (vectorizable_call): Likewise.
21323
21324 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
21325
21326         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
21327         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
21328         * config/stormy16/stormy16-protos.h
21329         (xstormy16_preferred_reload_class): Remove.
21330         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
21331         static. Change 'rclass' argument and return type to reg_class_t.
21332         (TARGET_PREFERRED_RELOAD_CLASS,
21333         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
21334
21335 2011-02-24  Richard Guenther  <rguenther@suse.de>
21336
21337         * lto-streamer-in.c (input_bb): Do not find referenced vars
21338         in debug statements.
21339
21340 2011-02-23  Jason Merrill  <jason@redhat.com>
21341
21342         * common.opt (fabi-version): Document v5 and v6.
21343
21344 2011-02-23  Richard Guenther  <rguenther@suse.de>
21345
21346         PR tree-optimization/47849
21347         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
21348
21349 2011-02-23  Jie Zhang  <jie@codesourcery.com>
21350
21351         * opts-common.c (decode_cmdline_option): Print empty string
21352         argument as "" in decoded->orig_option_with_args_text.
21353         * gcc.c (execute): Print empty string argument as ""
21354         in the verbose output.
21355         (do_spec_1): Keep empty string argument.
21356
21357 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
21358
21359         * config.gcc: Declare score-* and crx-* obsolete.
21360
21361 2011-02-23  Jie Zhang  <jie@codesourcery.com>
21362
21363         PR rtl-optimization/47763
21364         * web.c (web_main): Ignore naked clobber when replacing register.
21365
21366 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
21367
21368         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
21369         Remove.
21370
21371 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
21372
21373         PR doc/47848
21374         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
21375
21376 2011-02-22  Mike Stump  <mikestump@comcast.net>
21377
21378         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
21379         assembler.
21380         * configure: Regenerate.
21381
21382 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
21383
21384         PR rtl-optimization/46002
21385         * ira-color.c (update_copy_costs): Change class intersection
21386         test to reg_class_contents[] test of 'hard_regno'.
21387
21388 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
21389
21390         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
21391         than Driver option.
21392         * config/hpux11.opt (mt): Likewise.
21393         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
21394         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
21395         * config/vax/elf.opt (mno-asm-pic): Likewise.
21396         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
21397
21398 2011-02-21  Mike Stump  <mikestump@comcast.net>
21399
21400         PR target/47822
21401         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
21402         tree so we can get save the type.
21403         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
21404         for CFString instead of trying to use past the end of the builtins.
21405         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
21406         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
21407         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
21408         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
21409         Rename to darwin_builtin_cfstring.
21410         (darwin_init_cfstring_builtins): Return the built type.
21411
21412 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
21413
21414         PR target/47840
21415         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
21416         (_mm256_insert_epi64): Use _mm_insert_epi64.
21417
21418 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
21419
21420         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21421         * config/stormy16/stormy16-protos.h
21422         (xstormy16_mode_dependent_address_p): Remove.
21423         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
21424         Make static. Change return type to bool. Change argument type to
21425         const_rtx. Remove dead code.
21426         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21427
21428 2011-02-21  Richard Guenther  <rguenther@suse.de>
21429
21430         PR lto/47820
21431         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
21432         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
21433         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
21434         TUs context.
21435         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
21436         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
21437
21438 2011-02-20  Richard Guenther  <rguenther@suse.de>
21439
21440         PR lto/47822
21441         * tree.c (free_lang_data_in_decl): Clean builtins from
21442         the TU decl BLOCK_VARS.
21443
21444 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
21445
21446         PR debug/47620
21447         PR debug/47630
21448         * haifa-sched.c (fix_tick_ready): Skip tick computation
21449         for debug insns.
21450
21451 2011-02-19  Richard Guenther  <rguenther@suse.de>
21452
21453         PR lto/47647
21454         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
21455         Remove lazy BLOCK_VARS streaming.
21456         (lto_input_ts_block_tree_pointers): Likewise.
21457         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
21458
21459 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
21460
21461         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
21462
21463 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
21464
21465         * config/i386/biarch32.h, config/i386/mach.h,
21466         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
21467
21468 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
21469
21470         PR target/47800
21471         * config/i386/i386.md (peephole2 for shift and plus): Use
21472         operands[1] original mode in the first insn.
21473
21474 2011-02-18  Mike Stump  <mikestump@comcast.net>
21475
21476         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
21477
21478 2011-02-18  Jan Hubicka  <jh@suse.cz>
21479
21480         PR middle-end/47788
21481         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
21482         to zero when the function is not inlinable at all.
21483
21484 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21485
21486         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
21487         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
21488         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
21489         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
21490         * config/pa/t-pa64: Likewise.
21491         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
21492
21493 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
21494
21495         PR driver/47787
21496         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
21497
21498 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21499
21500         PR target/47792
21501         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
21502
21503 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
21504
21505         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
21506         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
21507         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
21508         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
21509         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
21510         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
21511         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
21512         m32r_load_postinc_p, m32r_store_preinc_predec_p,
21513         m32r_legitimate_address_p): New functions.
21514         * config/m32r/constraints.md (constraint "S"): Don't use
21515         STORE_PREINC_PREDEC_P.
21516         (constraint "U"): Don't use LOAD_POSTINC_P.
21517
21518 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
21519
21520         PR rtl-optimization/46178
21521         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
21522         compute ira_hard_regno_cover_class[].
21523
21524 2011-02-18  Richard Guenther  <rguenther@suse.de>
21525
21526         PR lto/47798
21527         * lto-streamer.h (lto_global_var_decls): Declare.
21528         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
21529         statics for global var processing.
21530
21531 2011-02-18  Richard Guenther  <rguenther@suse.de>
21532
21533         PR tree-optimization/47737
21534         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
21535         edge dominance check.
21536
21537 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
21538
21539         PR debug/47780
21540         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
21541         avoid invalid rtx sharing.
21542
21543 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
21544
21545         * doc/cpp.texi (Obsolete Features): Add background on the
21546         origin of assertions.
21547
21548 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
21549
21550         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
21551         objc_abi == 2.
21552         * config/darwin.c (output_objc_section_asm_op): Added support for
21553         ABI v1 and v2.
21554         (is_objc_metadata): New.
21555         (darwin_objc2_section): New.
21556         (darwin_objc1_section): New.
21557         (machopic_select_section): Added support for ABI v1 and v2.
21558         (darwin_emit_objc_zeroed): New.
21559         (darwin_output_aligned_bss): Detect objc metadata and treat it
21560         appropriately.
21561         (darwin_asm_output_aligned_decl_common): Same.
21562         (darwin_asm_output_aligned_decl_local): Same.
21563         * config/darwin-sections.def: Updated for ABI v1 and v2.
21564         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
21565         compiling Objective-C code for the NeXT runtime, default to using
21566         ABI version 0 for 32-bit, and version 2 for 64-bit.
21567
21568 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21569
21570         * common.opt (optimize_fast): New Variable.
21571         * opts.c (default_options_optimization): Use opts->x_optimize_fast
21572         instead of local variable ofast.
21573
21574 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
21575
21576         * doc/invoke.texi (fobjc-abi-version): Documented.
21577         (fobjc-nilcheck): Documented.
21578         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
21579         version.
21580
21581 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21582
21583         PR driver/47390
21584         * common.opt (export-dynamic): New Driver option.
21585         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
21586
21587 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21588
21589         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
21590
21591 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
21592             Jan Hubicka  <jh@suse.cz>
21593
21594         PR debug/47106
21595         PR debug/47402
21596         * cfgexpand.c (account_used_vars_for_block): Remove.
21597         (estimated_stack_frame_size): Use referenced vars.
21598         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
21599         that were referenced in the original function.  Test src_fn
21600         rather than cfun.  Drop redundant get_var_ann.
21601         (setup_one_parameter): Drop redundant get_var_ann.
21602         (declare_return_variable): Likewise.
21603         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
21604         (copy_arguments_for_versioning): Drop redundant get_var_ann.
21605         * ipa-inline.c (compute_inline_parameters): Do not compute
21606         disregard_inline_limits here.
21607         (compute_inlinable_for_current, pass_inlinable): New.
21608         (pass_inline_parameters): Require PROP_referenced_vars.
21609         * cgraphunit.c (cgraph_process_new_functions): Don't run
21610         compute_inline_parameters explicitly unless function is in SSA form.
21611         (cgraph_analyze_function): Set .disregard_inline_limits.
21612         * tree-sra.c (convert_callers): Compute inliner parameters
21613         only for functions already in SSA form.
21614
21615 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21616
21617         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
21618         -mlittle-endian-data.
21619
21620 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21621
21622         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
21623         -mno-fpu, not -fpu and -no-fpu.
21624         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
21625         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
21626
21627 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
21628
21629         PR target/43653
21630         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
21631         input reload with PLUS RTX.
21632
21633 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21634
21635         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
21636         of InverseVar(MDMX).
21637
21638 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21639
21640         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
21641         --m4-340.
21642
21643 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21644
21645         * config/mn10300/mn10300.opt (mno-crt0): New.
21646
21647 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21648
21649         * config/m68k/uclinux.opt (static-libc): New Driver option.
21650
21651 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21652
21653         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
21654
21655 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21656
21657         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
21658         %{muser-extend-enabled}.
21659
21660 2011-02-16  Richard Guenther  <rguenther@suse.de>
21661
21662         PR tree-optimization/47738
21663         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
21664         the TODO from tree_predictive_commoning.
21665
21666 2011-02-15  Jeff Law  <law@redhat.com>
21667
21668         Revert
21669         2011-01-25  Jeff Law  <law@redhat.com>
21670
21671         PR rtl-optimization/37273
21672         * ira-costs.c (scan_one_insn): Detect constants living in memory and
21673         handle them like argument loads from stack slots.  Do not double
21674         count memory for memory constants and argument loads from stack slots.
21675
21676 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
21677
21678         PR target/47755
21679         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
21680         mode for vector constants.  Remove code that checks for TImode.
21681
21682 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
21683
21684         PR debug/47106
21685         PR debug/47402
21686         * cgraph.h (compute_inline_parameters): Return void.
21687         * ipa-inline.c (compute_inline_parameters): Adjust.
21688
21689 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
21690
21691         PR debug/47106
21692         PR debug/47402
21693         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
21694         rather than decl.
21695         * cfgexpand.c (estimated_stack_frame_size): Likewise.
21696         * ipa-inline.c (compute_inline_parameters): Adjust.
21697
21698 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
21699
21700         PR debug/47106
21701         PR debug/47402
21702         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
21703         Adjust all users.  Pass FN to...
21704         * tree-flow-inline.h (first_referenced_var): ... this.  Add
21705         fn argument.
21706         * ipa-struct-reorg.c: Adjust.
21707         * tree-dfa.c: Adjust.
21708         * tree-into-ssa.c: Adjust.
21709         * tree-sra.c: Adjust.
21710         * tree-ssa-alias.c: Adjust.
21711         * tree-ssa-live.c: Adjust.
21712         * tree-ssa.c: Adjust.
21713         * tree-ssanames.c: Adjust.
21714         * tree-tailcall.c: Adjust.
21715
21716 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
21717
21718         PR debug/47106
21719         PR debug/47402
21720         * tree-flow.h (referenced_var_lookup): Add fn parameter.
21721         Adjust all callers.
21722         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
21723         * tree-flow-inline.h: Adjust.
21724         * gimple-pretty-print.c: Adjust.
21725         * tree-into-ssa.c: Adjust.
21726         * tree-ssa.c: Adjust.
21727         * cfgexpand.c: Adjust.
21728
21729 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
21730
21731         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
21732         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21733         (EXTRA_CONSTRAINT): Delete.
21734         * config/iq2000/constraints.md: New file.
21735         * config/iq2000/iq2000.md: Include it.
21736         (define_insn ""): Delete.
21737         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
21738         unsupported constraint letters from patterns.
21739         (call_value, call_value_internal1): Likewise.
21740         (call_value_multiple_internal1): Likewise.
21741
21742 2011-02-15  Nick Clifton  <nickc@redhat.com>
21743
21744         * config/mn10300/mn10300.c: Include tm-constrs.h.
21745         (struct liw_data): New data structure describing an LIW candidate
21746         instruction.
21747         (extract_bundle): Use struct liw_data.  Allow small integer
21748         operands for some instructions.
21749         (check_liw_constraints): Use struct liw_data.  Remove swapped
21750         parameter.  Add comments describing the checks.  Fix bug when
21751         assigning the source of liw1 to the source of liw2.
21752         (liw_candidate): Delete.  Code moved into extract_bundle.
21753         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
21754         before swapping.
21755         * config/mn10300/predicates.md (liw_operand): New predicate.
21756         Allows registers and small integer constants.
21757         * config/mn10300/constraints.md (O): New constraint.  Accetps
21758         integers in the range -8 to +7 inclusive.
21759         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
21760         for moving a small integer into a register.  Give this alternative
21761         LIW attributes.
21762         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
21763         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
21764         using the J,K,L and M constraints,
21765         (liw): Remove SI mode on second operands to allow for HI and QI
21766         mode values.
21767         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
21768         instruction.
21769
21770 2011-02-15  Richard Guenther  <rguenther@suse.de>
21771
21772         PR tree-optimization/47743
21773         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
21774         for a non-type-compatible VN lookup bail out.
21775
21776 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
21777
21778         * config/fr30/constraints.md: New file.
21779         * config/fr30/fr30.md: Include it.
21780         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
21781         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21782         (EXTRA_CONSTRAINT): Delete.
21783
21784 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
21785
21786         * config/frv/constraints.md: New file.
21787         * config/frv/predicates.md: Include it.
21788         * config/frv/frv.c (reg_class_from_letter): Delete.
21789         (frv_option_override): Don't initialize it.
21790         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
21791         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
21792         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
21793         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
21794         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
21795         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21796         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
21797         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
21798         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
21799         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
21800         (REG_CLASS_FROM_CONSTRAINT): Delete.
21801
21802 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
21803
21804         PR middle-end/47581
21805         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
21806         if frame size is 0 in a leaf function.
21807
21808 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21809
21810         PR pch/14940
21811         * config/alpha/host-osf.c: New file.
21812         * config/alpha/x-osf: New file.
21813         * config.host (alpha*-dec-osf*): Use it.
21814
21815 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
21816
21817         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21818         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
21819         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
21820         (rx_mode_dependent_address_p): ...this. Make static. Change argument
21821         type to const_rtx.
21822         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21823
21824 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
21825
21826         * config/stormy16/constraints.md: New file.
21827         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
21828         Use satisfies_constraint_Q and satisfies_constraint_R.
21829         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
21830         Delete.
21831         (xstormy16_legitiamte_address_p): Declare.
21832         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
21833         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21834         (EXTRA_CONSTRAINT): Delete.
21835         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
21836         Un-staticize.
21837         (xstormy16_extra_constraint_p): Delete.
21838
21839 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
21840
21841         PR tree-optimization/46494
21842         * loop-unroll.c (split_edge_and_insert): Adjust comment.
21843         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
21844         (pass_rtl_loop_done): Add TODO_verify_flow.
21845         * fwprop.c (pass_rtl_fwprop): Likewise.
21846         * modulo-sched.c (pass_sms): Likewise.
21847         * tree-ssa-dom.c (pass_dominator): Likewise.
21848         * tree-ssa-loop-ch.c (pass_ch): Likewise.
21849         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
21850         (pass_tree_loop_done): Likewise.
21851         * tree-ssa-pre.c (execute_pre): Likewise.
21852         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
21853         * tree-ssa-sink.c (pass_sink_code): Likewise.
21854         * tree-vrp.c (pass_vrp): Likewise.
21855
21856 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
21857
21858         * config/v850/constraints.md: New file.
21859         * config/v850/v850.md: Include it.
21860         * config/v850/predicates.md (reg_or_0_operand): Use
21861         satisfies_constraint_G.
21862         (special_symbolref_operand): Use satisfies_constraint_K.
21863         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
21864         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
21865         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
21866         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
21867         (EXTRA_CONSTRAINT): Delete.
21868         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
21869         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
21870         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
21871
21872 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
21873
21874         PR target/47696
21875         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
21876         description.
21877
21878 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
21879
21880         * config/mcore/constraints.md: New file.
21881         * config/mcore/mcore.md: Include it.
21882         * config/mcore/mcore.c (reg_class_from_letter): Delete.
21883         * config/mcore/mcore.h (reg_class_from_letter): Delete.
21884         (REG_CLASS_FROM_LETTER): Delete.
21885         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
21886         insn_const_int_ok_for_constraint.
21887         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
21888         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
21889         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21890         (EXTRA_CONSTRAINT): Delete.
21891
21892 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21893
21894         PR ada/41929
21895         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
21896         (IS_SIGHANDLER): Define.
21897         (sparc64_is_sighandler): New function, split off from
21898         sparc64_fallback_frame_state.
21899         (sparc_is_sighandler): New function, split off from
21900         sparc_fallback_frame_state.
21901         (sparc64_fallback_frame_state): Merge with ...
21902         (sparc_fallback_frame_state): ... this into ...
21903         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
21904         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
21905         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
21906         stack instead of hardcoded offsets.
21907
21908 2011-02-14  Andriy Gapon  <avg@freebsd.org>
21909
21910         PR target/45808
21911         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
21912
21913 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21914
21915         * configure: Regenerate.
21916
21917 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
21918
21919         PR driver/45731
21920         * gcc.c (asm_options): Correct spec matching --target-help.
21921
21922 2011-02-12  Martin Jambor  <mjambor@suse.cz>
21923
21924         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
21925         to gimple call error.
21926
21927 2011-02-12  Mike Stump  <mikestump@comcast.net>
21928
21929         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
21930         comments in backslash regions.
21931
21932 2011-02-12  Mike Stump  <mikestump@comcast.net>
21933             Jakub Jelinek  <jakub@redhat.com>
21934             Iain Sandoe  <iains@gcc.gnu.org>
21935
21936         PR target/47324
21937         * dwarf2out.c (output_cfa_loc): When required, apply the
21938         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
21939         (output_loc_sequence): Likewise.
21940         (output_loc_operands_raw): Likewise.
21941         (output_loc_sequence_raw): Likewise.
21942         (output_cfa_loc): Likewise.
21943         (output_loc_list): Suppress register number adjustment when
21944         calling output_loc_sequence()
21945         (output_die): Likewise.
21946
21947 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
21948
21949         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21950         Remove macros.
21951         * config/xtensa/xtensa.c (xtensa_register_move_cost,
21952         xtensa_memory_move_cost): New functions.
21953         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
21954
21955 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
21956
21957         PR lto/47225
21958         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
21959         in the current directory.
21960         * configure: Rebuilt.
21961
21962 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
21963
21964         * config/darwin.c (darwin_override_options): Add a hunk missed
21965         from the commit of r168571.  Trim comment line lengths and
21966         correct indents of the preceding block.
21967
21968 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
21969
21970         * gcc.c (driver_handle_option): Concatenate the argument to -F with
21971         the switch.
21972
21973 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
21974
21975         * common.opt (nostartfiles): New Driver option.
21976
21977 2011-02-11  Xinliang David Li  <davidxl@google.com>
21978
21979         PR tree-optimization/47707
21980         * tree-chrec.c (convert_affine_scev): Keep type precision.
21981
21982 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
21983
21984         PR tree-optimization/47420
21985         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
21986
21987 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
21988
21989         PR rtl-optimization/47614
21990         * rtl.h (check_for_inc_dec): Declare.
21991         * dse.c (check_for_inc_dec): Externalize...
21992         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
21993         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
21994
21995 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
21996
21997         PR driver/47678
21998         * gcc.c (main): Do not compile inputs if there were errors in
21999         option handling.
22000         * opts-common.c (read_cmdline_option): Check for wrong language
22001         after other error checks.
22002
22003 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
22004
22005         * cgraph.c: Fix comment typos.
22006         * cgraph.h: Likewise.
22007         * cgraphunit.c: Likewise.
22008         * ipa-cp.c: Likewise.
22009         * ipa-inline.c: Likewise.
22010         * ipa-prop.c: Likewise.
22011         * ipa-pure-const.c: Likewise.
22012         * ipa-ref.c: Likewise.
22013         * ipa-reference.c: Likewise.
22014
22015 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
22016
22017         PR debug/47684
22018         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
22019
22020 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22021
22022         PR testsuite/47400
22023         * doc/sourcebuild.texi (Require Support): Document
22024         dg-require-ascii-locale.
22025
22026 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
22027
22028         * doc/lto.texi (Write summary): Fix missing parentheses.
22029
22030 2011-02-10  DJ Delorie  <dj@redhat.com>
22031
22032         * config/m32c/m32c.c (m32c_option_override): Disable
22033         -fcombine-stack-adjustments until flag value tracking and compare
22034         optimization can be rewritten.
22035
22036 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
22037
22038         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
22039         PROCESSOR_POWER7.
22040         (PROCESSOR_DEFAULT64): Likewise.
22041
22042 2011-02-10  Richard Henderson  <rth@redhat.com>
22043
22044         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
22045         change from 2011-02-03.
22046         * config/rx/rx.c (flags_from_code): Likewise.
22047         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
22048         is valid, n/pz otherwise.
22049         (rx_select_cc_mode): Return CCmode if Y is not zero.
22050
22051 2011-02-10  Richard Guenther  <rguenther@suse.de>
22052
22053         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
22054
22055 2011-02-10  Richard Guenther  <rguenther@suse.de>
22056
22057         PR tree-optimization/47677
22058         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
22059
22060 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
22061
22062         PR target/47665
22063         * combine.c (make_compound_operation): Only change shifts into
22064         multiplication for SCALAR_INT_MODE_P.
22065
22066 2011-02-10  Jie Zhang  <jie@codesourcery.com>
22067
22068         PR testsuite/47622
22069         Revert
22070         2011-02-05  Jie Zhang  <jie@codesourcery.com>
22071         PR debug/42631
22072         * web.c (entry_register): Don't clobber the number of the
22073         first uninitialized reference in used[].
22074
22075 2011-02-09  Richard Guenther  <rguenther@suse.de>
22076
22077         PR tree-optimization/47664
22078         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
22079         all edges again.
22080
22081 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
22082
22083         PR target/46481
22084         PR target/47032
22085         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
22086         PROCESSOR_POWER7.
22087         (PROCESSOR_DEFAULT64): Same.
22088         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
22089
22090 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22091
22092         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
22093
22094 2011-02-09  Martin Jambor  <mjambor@suse.cz>
22095
22096         PR middle-end/45505
22097         * tree-sra.c (struct access): New flags grp_scalar_read and
22098         grp_scalar_write.  Changed description of assignment read and write
22099         flags.
22100         (dump_access): Dump new flags, reorder all of them.
22101         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
22102         to detect multiple scalar reads.
22103         (analyze_access_subtree): Use the new scalar read write flags instead
22104         of the old flags.  Adjusted comments.
22105
22106 2011-02-08  DJ Delorie  <dj@redhat.com>
22107
22108         PR target/47548
22109         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
22110         patterns.
22111
22112 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22113
22114         * config/m68k/uclinux.opt: New.
22115         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
22116
22117 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22118
22119         * config/cris/elf.opt (sim): New Driver option.
22120
22121 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22122
22123         * config/xtensa/elf.opt: New.
22124         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
22125
22126 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22127
22128         * config/vax/elf.opt: New.
22129         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
22130
22131 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22132
22133         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
22134
22135 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22136
22137         * config/gnu-user.opt: New.
22138         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
22139         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
22140         *-*-uclinux*): Use gnu-user.opt.
22141
22142 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
22143
22144         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
22145         * config/i386/gnu.h (CPP_SPEC): Likewise.
22146
22147 2011-02-08  Ian Lance Taylor  <iant@google.com>
22148
22149         * common.opt (fcx-limited-range): Add SetByCombined flag.
22150         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
22151         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
22152         (fassociative-math, freciprocal-math): Likewise.
22153         (funsafe-math-optimizations): Likewise.
22154         * opth-gen.awk: Handle SetByCombined.
22155         * optc-gen.awk: Likewise.
22156         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
22157         (set_unsafe_math_optimizations_flags): Likewise.
22158         * doc/options.texi (Option properties): Document SetByCombined.
22159
22160 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22161
22162         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
22163         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
22164         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
22165         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
22166         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
22167
22168 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
22169
22170         PR tree-optimization/46834
22171         PR tree-optimization/46994
22172         PR tree-optimization/46995
22173         * graphite-sese-to-poly.c (used_outside_reduction): New.
22174         (detect_commutative_reduction): Call used_outside_reduction.
22175         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
22176         translate_scalar_reduction_to_array only when at least one
22177         loop-phi/close-phi tuple has been detected.
22178
22179 2011-02-08  Richard Guenther  <rguenther@suse.de>
22180
22181         PR middle-end/47639
22182         * tree-vect-generic.c (expand_vector_operations_1): Update
22183         stmts here ...
22184         (expand_vector_operations): ... not here.  Cleanup EH info
22185         and the CFG if required.
22186
22187 2011-02-08  Richard Guenther  <rguenther@suse.de>
22188
22189         PR tree-optimization/47641
22190         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
22191         require type compatibility.
22192
22193 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22194
22195         * gimple-low.c (lower_function_body): Don't remove the location of
22196         the return statement here.
22197         (lower_gimple_return): Do it here instead but only if the return
22198         statement is actually used twice.
22199
22200 2011-02-08  Richard Guenther  <rguenther@suse.de>
22201
22202         PR tree-optimization/47632
22203         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
22204         unused up_to_stmt parameter, return whether cfg-cleanup is
22205         necessary, remove EH info properly.
22206         (forward_propagate_into_gimple_cond): Adjust caller.
22207         (forward_propagate_into_cond): Likewise.
22208         (forward_propagate_comparison): Likewise.
22209         (tree_ssa_forward_propagate_single_use_vars): Make
22210         forward_propagate_comparison case similar to the two others.
22211
22212 2011-02-08  Nick Clifton  <nickc@redhat.com>
22213
22214         * config/mn10300/mn10300.opt (mliw): New command line option.
22215         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
22216         (liw_bundling): New automaton.
22217         (liw): New attribute.
22218         (liw_op): New attribute.
22219         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
22220         (movsi_internal): Add LIW attributes.
22221         (andsi3): Likewise.
22222         (iorsi3): Likewise.
22223         (xorsi3): Likewise.
22224         (addsi3): Separate register and immediate alternatives.
22225         Add LIW attributes.
22226         (subsi3): Likewise.
22227         (cmpsi): Likewise.
22228         (aslsi3): Likewise.
22229         (lshrsi3): Likewise.
22230         (ashrsi3): Likewise.
22231         (liw): New pattern.
22232         * config/mn10300/mn10300.c (liw_op_names): New
22233         (mn10300_print_operand): Handle 'W' operand descriptor.
22234         (extract_bundle): New function.
22235         (check_liw_constraints): New function.
22236         (liw_candidate): New function.
22237         (mn10300_bundle_liw): New function.
22238         (mn10300_reorg): New function.
22239         (TARGET_MACHINE_DEPENDENT_REORG): Define.
22240         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
22241         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
22242         __LIW__ or __NO_LIW__.
22243         * doc/invoke.texi: Describe the -mliw command line option.
22244
22245 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22246
22247         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
22248         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
22249         pthread_mutex_unlock): Remove.
22250         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
22251         * config/pa/t-pa64: Likewise.
22252         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
22253         shared libc if not linking against libpthread.
22254         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
22255
22256 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
22257
22258         PR target/47558
22259         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
22260         on 10.6 and later to ensure that we always use the unwinder from
22261         the system.  Only add -no_compact_unwind when tarteting darwin
22262         10.6 or later.
22263
22264 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
22265
22266         PR target/46997
22267         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
22268         (vec_interleave_lowv2sf): Ditto.
22269         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
22270         (vec_extract_oddv2sf): Ditto.
22271
22272 2011-02-07  Mike Stump  <mikestump@comcast.net>
22273
22274         PR target/42333
22275         Add __ieee_divdc3 entry point.
22276         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
22277         entry point.
22278         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
22279         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
22280         * config/darwin.c (darwin_rename_builtins): Add.
22281         * config/darwin-protos.h (darwin_rename_builtins): Add.
22282
22283 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
22284
22285         PR target/47636
22286         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
22287         for the condition.
22288
22289 2011-02-07  Mike Stump  <mikestump@comcast.net>
22290
22291         * config/darwin.opt (mmacosx-version-min): Update default OS version.
22292
22293 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
22294
22295         PR target/47534
22296         * config/avr/libgcc.S (exit): Move .endfunc
22297
22298 2011-02-07  Richard Guenther  <rguenther@suse.de>
22299
22300         PR tree-optimization/47615
22301         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
22302         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
22303         (run_scc_vn): Initialize it.
22304         (visit_reference_op_load): Use it.
22305         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
22306
22307 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22308
22309         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
22310         DImode trapping arithmetic libfuncs.
22311
22312 2011-02-07  Richard Guenther  <rguenther@suse.de>
22313
22314         PR tree-optimization/47621
22315         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
22316         two duplicates ...
22317         (execute_update_addresses_taken): ... here.  Make it more
22318         conservative in what we accept.
22319
22320 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
22321
22322         * config/sparc/freebsd.h (ASM_SPEC): Define.
22323         * config/sparc/vxworks.h (ASM_SPEC): Define.
22324
22325 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
22326
22327         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22328
22329 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
22330
22331         * doc/invoke.texi: Remove reference to compiler internals from
22332         user documentation.
22333
22334         * reg-notes.def: Remove REG_VALUE_PROFILE.
22335         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
22336
22337 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
22338
22339         PR middle-end/47610
22340         * varasm.c (default_section_type_flags): If decl is NULL,
22341         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
22342
22343 2011-02-05  Jie Zhang  <jie@codesourcery.com>
22344
22345         PR debug/42631
22346         * web.c (entry_register): Don't clobber the number of the
22347         first uninitialized reference in used[].
22348
22349 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
22350
22351         PR tree-optimization/46194
22352         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
22353         (build_classic_dist_vector_1): Do not represent classic distance
22354         vectors when the access functions are variating in different loops.
22355
22356 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
22357
22358         * config/mips/iris6.opt: New.
22359         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
22360
22361 2011-02-04  Richard Henderson  <rth@redhat.com>
22362             Steve Ellcey  <sje@cup.hp.com>
22363
22364         PR target/46997
22365         * config/ia64/predicates.md (mux1_brcst_element): New.
22366         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
22367         * config/ia64/ia64.c (ia64_unpack_assemble): New.
22368         (ia64_unpack_sign): New.
22369         (ia64_expand_unpack): Rewrite using new routines.
22370         (ia64_expand_widen_sum): Ditto.
22371         (ia64_expand_dot_prod_v8qi): Ditto.
22372         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
22373         routines, add endian check.
22374         (pmpy2_even): Rename from pmpy2_r, add endian check.
22375         (pmpy2_odd): Rename from pmpy2_l, add endian check.
22376         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
22377         (vec_widen_smult_hi_v4hi): Ditto.
22378         (vec_widen_umult_lo_v4hi): Ditto.
22379         (vec_widen_umult_hi_v4hi): Ditto.
22380         (mulv2si3): Change endian checks.
22381         (sdot_prodv4hi): Rewrite with new calls.
22382         (udot_prodv4hi): New.
22383         (vec_pack_ssat_v4hi): Add endian check.
22384         (vec_pack_usat_v4hi): Ditto.
22385         (vec_pack_ssat_v2si): Ditto.
22386         (max1_even): Rename from max1_r, add endian check.
22387         (max1_odd): Rename from max1_l, add endian check.
22388         (*mux1_rev): Format change.
22389         (*mux1_mix): Ditto.
22390         (*mux1_shuf): Ditto.
22391         (*mux1_alt): Ditto.
22392         (*mux1_brcst_v8qi): Use new predicate.
22393         (vec_extract_evenv8qi): Remove endian check.
22394         (vec_extract_oddv8qi): Ditto.
22395         (vec_interleave_lowv4hi): Format change.
22396         (vec_interleave_highv4hi): Ditto.
22397         (mix2_even): Rename from mix2_r, add endian check.
22398         (mix2_odd): Rename from mux2_l, add endian check.
22399         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
22400         (vec_extract_evenodd_helper): Format change.
22401         (vec_extract_evenv4hi): Remove endian check.
22402         (vec_extract_oddv4hi): Remove endian check.
22403         (vec_interleave_lowv2si): Format change.
22404         (vec_interleave_highv2si): Format change.
22405         (vec_initv2si): Remove endian check.
22406         (vecinit_v2si): Add endian check.
22407         (reduc_splus_v2sf): Add endian check.
22408         (reduc_smax_v2sf): Ditto.
22409         (reduc_smin_v2sf): Ditto.
22410         (vec_initv2sf): Remove endian check.
22411         (fpack): Add endian check.
22412         (fswap): Add endian check.
22413         (vec_interleave_highv2sf): Add endian check.
22414         (vec_interleave_lowv2sf): Add endian check.
22415         (fmix_lr): Add endian check.
22416         (vec_setv2sf): Format change.
22417         (*vec_extractv2sf_0_be): Use shift to extract operand.
22418         (*vec_extractv2sf_1_be): New.
22419         (vec_pack_trunc_v4hi): Add endian check.
22420         (vec_pack_trunc_v2si): Format change.
22421
22422 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
22423
22424         PR inline-asm/23200
22425         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
22426         do bb, locus and block comparison and disallow loads if it is not set.
22427         (stmt_is_replaceable_p): New function.
22428         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
22429         callers.
22430         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
22431         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
22432         SSA_NAME_DEF_STMT.
22433         * tree-flow.h (stmt_is_replaceable_p): New prototype.
22434
22435 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
22436
22437         * config/rs6000/xilinx.opt: New.
22438         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
22439
22440 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
22441
22442         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
22443
22444 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
22445
22446         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
22447         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
22448         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
22449         secondary_reload_info, xtensa_secondary_reload): Remove.
22450         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
22451         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
22452         (xtensa_preferred_reload_class): Make static. Change return and
22453         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
22454         Use CONST_DOUBLE_P predicate.
22455         (xtensa_preferred_output_reload_class): New function.
22456         (xtensa_secondary_reload): Make static.
22457
22458 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
22459
22460         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
22461         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
22462         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
22463
22464 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
22465
22466         PR middle-end/31490
22467         * output.h (SECTION_RELRO): Define.
22468         (SECTION_MACH_DEP): Adjust.
22469         (get_variable_section): New prototype.
22470         * varpool.c (varpool_finalize_named_section_flags): New function.
22471         (varpool_assemble_pending_decls): Call it.
22472         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
22473         * cgraphunit.c (cgraph_output_in_order): Call
22474         varpool_finalize_named_section_flags.
22475         * varasm.c (get_section): Allow section flags conflicts between
22476         relro and read-only sections if the section hasn't been declared yet.
22477         Set SECTION_OVERRIDE after diagnosing section type conflict.
22478         (get_variable_section): No longer static.
22479         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
22480         readonly sections that need relocations.
22481         (decl_readonly_section_1): New function.
22482         (decl_readonly_section): Use it.
22483
22484         Revert:
22485         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
22486                     Steve Ellcey  <sje@cup.hp.com>
22487
22488         PR middle-end/31490
22489         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
22490         if section attribute used.
22491
22492 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
22493
22494         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
22495         * config/darwin.c (SECTION_NO_ANCHOR): Define.
22496         (darwin_init_sections): Remove assertion.
22497
22498 2011-02-03  Nick Clifton  <nickc@redhat.com>
22499
22500         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
22501         lt and ge.
22502         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
22503         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
22504         instead of "n" and "pz".
22505         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
22506         CC_FLAG_S.
22507
22508 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
22509
22510         PR target/47312
22511         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
22512         fma, expand FMA_EXPR as fma{,f,l} call.
22513
22514         PR lto/47274
22515         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
22516         copy them into a unsigned char variable and pass address of it to
22517         lto_output_data_stream.
22518
22519         PR target/47564
22520         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
22521         around backend_init_target and lang_dependent_init_target calls.
22522         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
22523         (verify_cgraph_node): Don't call set_cfun here.  Use
22524         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
22525         Set error_found for incorrectly represented calls to thunks.
22526
22527 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
22528
22529         PR debug/43092
22530         PR rtl-optimization/43494
22531         * rtl.h (for_each_inc_dec_fn): New type.
22532         (for_each_inc_dec): Declare.
22533         * rtlanal.c (struct for_each_inc_dec_ops): New type.
22534         (for_each_inc_dec_find_inc_dec): New fn.
22535         (for_each_inc_dec_find_mem): New fn.
22536         (for_each_inc_dec): New fn.
22537         * dse.c (struct insn_size): Remove.
22538         (replace_inc_dec, replace_inc_dec_mem): Remove.
22539         (emit_inc_dec_insn_before): New fn.
22540         (check_for_inc_dec): Use it, along with for_each_inc_dec.
22541         (canon_address): Pass mem modes to cselib_lookup.
22542         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
22543         (cselib_lookup_from_insn): Likewise.
22544         (cselib_subst_to_values): Likewise.
22545         * cselib.c (find_slot_memmode): New var.
22546         (cselib_find_slot): New fn.  Use it instead of
22547         htab_find_slot_with_hash everywhere.
22548         (entry_and_rtx_equal_p): Use find_slot_memmode.
22549         (autoinc_split): New fn.
22550         (rtx_equal_for_cselib_p): Rename and implement in terms of...
22551         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
22552         Deal with autoinc.  Special-case recursion into MEMs.
22553         (cselib_hash_rtx): Likewise.
22554         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
22555         address and MEM modes.
22556         (cselib_subst_to_values): Add memmode, pass it on.
22557         Deal with autoinc.
22558         (cselib_lookup): Add memmode argument, pass it on.
22559         (cselib_lookup_from_insn): Add memmode.
22560         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
22561         (struct cselib_record_autoinc_data): New.
22562         (cselib_record_autoinc_cb): New fn.
22563         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
22564         mode to cselib_lookup.  Reset autoinced REGs here instead of...
22565         (cselib_process_insn): ... here.
22566         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
22567         to cselib_lookup.
22568         (add_uses): Likewise, also to cselib_subst_to_values.
22569         (add_stores): Likewise.
22570         * sched-deps.c (add_insn_mem_dependence): Pass mode to
22571         cselib_subst_to_values.
22572         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
22573         * gcse.c (do_local_cprop): Adjusted.
22574         * postreload.c (reload_cse_simplify_set): Adjusted.
22575         (reload_cse_simplify_operands): Adjusted.
22576         * sel-sched-dump (debug_mem_addr_value): Pass mode.
22577
22578 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
22579
22580         PR tree-optimization/45122
22581         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
22582         unsafe assumptions when there's more than one loop exit.
22583
22584 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
22585
22586         PR target/47272
22587         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
22588         Document using vector double with the load/store builtins, and
22589         that the load/store builtins always use Altivec instructions.
22590
22591         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
22592         to use altivec memory instructions, even on VSX.
22593         (vector_altivec_store_<mode>): Ditto.
22594
22595         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
22596         function.
22597
22598         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22599         V2DF, V2DI support to load/store overloaded builtins.
22600
22601         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
22602         altivec load/store builtins for V2DF/V2DI types.
22603
22604         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
22605         set avoid indexed addresses on power6 if -maltivec.
22606         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
22607         vector_altivec_load/vector_altivec_store builtins.
22608         (altivec_expand_st_builtin): Ditto.
22609         (altivec_expand_builtin): Add VSX memory builtins.
22610         (rs6000_init_builtins): Add V2DI types to internal types.
22611         (altivec_init_builtins): Add support for V2DF/V2DI altivec
22612         load/store builtins.
22613         (rs6000_address_for_altivec): Insure memory address is appropriate
22614         for Altivec.
22615
22616         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
22617         vec_vsx_ld and vec_vsx_st.
22618         (vsx_store_<mode>): Ditto.
22619
22620         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
22621         variables to hold long long types for VSX vector memory builtins.
22622         (RS6000_BTI_unsigned_long_long): Ditto.
22623         (long_long_integer_type_internal_node): Ditti.
22624         (long_long_unsigned_type_internal_node): Ditti.
22625
22626         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
22627         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
22628         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
22629
22630         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
22631         short cuts.
22632         (vec_vsx_st): Ditto.
22633
22634 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
22635
22636         * config/pa/pa-hpux10.opt: New.
22637         * config/hpux11.opt (pthread): New Driver option.
22638         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
22639         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
22640
22641 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
22642
22643         * config/ia64/vms.opt: New.
22644         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
22645
22646 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
22647
22648         PR target/47580
22649         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
22650         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
22651         generator functions.
22652         (vsx_floatuns<VSi><mode>2): Ditto.
22653         (vsx_fix_trunc<mode><VSi>2): Ditto.
22654         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
22655
22656 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
22657
22658         * config/i386/djgpp.opt (posix): New Driver option.
22659
22660 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
22661
22662         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
22663         Move to the unsupported targets list.
22664
22665 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
22666
22667         PR rtl-optimization/47525
22668         * df-scan.c: Update copyright years.
22669         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
22670         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
22671
22672 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22673
22674         * config/i386/sysv4.h (TARGET_VERSION): Remove.
22675         (SUBTARGET_RETURN_IN_MEMORY): Remove.
22676         (ASM_OUTPUT_ASCII): Remove.
22677         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
22678
22679 2011-02-02  Jeff Law  <law@redhat.com>
22680
22681         PR middle-end/47543
22682         * reload.c (find_reloads_address): Handle reg+d address where both
22683         components are invalid by reloading the entire address.
22684
22685 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
22686             Richard Guenther  <rguenther@suse.de>
22687
22688         PR tree-optimization/40979
22689         PR bootstrap/47044
22690         * passes.c (init_optimization_passes): After LIM call copy_prop
22691         and DCE to clean up.
22692         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
22693
22694 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
22695
22696         PR tree-optimization/47576
22697         PR tree-optimization/47555
22698         * doc/invoke.texi (scev-max-expr-complexity): Documented.
22699         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
22700         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
22701         * tree-scalar-evolution.c (follow_ssa_edge): Use
22702         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
22703
22704 2011-02-02  Richard Guenther  <rguenther@suse.de>
22705
22706         PR tree-optimization/47566
22707         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
22708
22709 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
22710
22711         PR debug/47106
22712         PR debug/47402
22713         * tree-inline.c (declare_return_variable): Remove unused caller
22714         variable.
22715
22716         PR debug/47106
22717         PR debug/47402
22718         * tree-flow-inline.h (clear_is_used, is_used_p): New.
22719         * cfgexpand.c (account_used_vars_for_block): Use them.
22720         * tree-nrv.c (tree_nrv): Likewise.
22721         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
22722         (dump_scope_block): Likewise.
22723         (remove_unused_locals): Likewise.
22724
22725         PR debug/47106
22726         PR debug/47402
22727         * tree-inline.c (declare_return_variable): Add result decl to
22728         local decls only once.
22729         * gimple-low.c (record_vars_into): Mark newly-created variables
22730         as referenced.
22731
22732 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
22733
22734         PR debug/47498
22735         PR debug/47501
22736         PR debug/45136
22737         PR debug/45130
22738         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
22739         debug insns.
22740         (no_real_insns_p, schedule_block, set_priorities): Drop special
22741         treatment of boundary debug insns.
22742         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
22743         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
22744         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
22745         (BOUNDARY_DEBUG_INSN_P): Likewise.
22746         (SCHEDULE_DEBUG_INSN_P): Likewise.
22747         * sched-rgn.c (init_ready_list): Drop special treatment of
22748         boundary debug insns.
22749         * final.c (rest_of_clean_state): Clear notes' BB.
22750
22751 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22752
22753         * config/openbsd.opt (assert=): New Driver option.
22754
22755 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22756
22757         * config/i386/nto.opt: New.
22758         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
22759
22760 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22761
22762         * config/i386/netware.opt: New.
22763         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
22764
22765 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22766
22767         * config/interix.opt (posix): New Driver option.
22768
22769 2011-02-01  DJ Delorie  <dj@redhat.com>
22770
22771         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
22772
22773         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
22774         class for A0/A1.
22775
22776 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
22777
22778         PR tree-optimization/47561
22779         * toplev.c (process_options): Print the Graphite flags.  Add
22780         flag_loop_flatten to the list of options requiring Graphite.
22781
22782 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22783
22784         * config/i386/cygming.opt (posix): New Driver option.
22785
22786 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22787
22788         * config/arm/vxworks.opt: New.
22789         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
22790
22791 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
22792
22793         * config/alpha/elf.opt: New.
22794         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
22795         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
22796
22797 2011-02-01  Richard Guenther  <rguenther@suse.de>
22798
22799         PR tree-optimization/47559
22800         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
22801         store-motion on references that can throw.
22802
22803 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
22804
22805         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
22806         * tree-pass.h (TDF_CSELIB): New macro.
22807         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
22808         cselib_lookup): Check for it rather than for TDF_DETAILS.
22809
22810 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
22811
22812         PR driver/47547
22813         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
22814         is HOST_BIT_BUCKET.
22815
22816         * opts.c (finish_options): Don't add x_aux_base_name if it is
22817         HOST_BIT_BUCKET.
22818
22819 2011-02-01  Richard Guenther  <rguenther@suse.de>
22820
22821         PR tree-optimization/47555
22822         Revert
22823         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
22824
22825         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
22826
22827 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
22828
22829         PR gcc/46692
22830         * config/lm32/t-lm32: Add multilib for all CPU options.
22831
22832 2011-02-01  Richard Guenther  <rguenther@suse.de>
22833
22834         PR tree-optimization/47541
22835         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
22836         sure to have a field at offset zero.
22837
22838 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
22839
22840         * config/arc/arc.opt (EB, EL): New Driver options.
22841
22842 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
22843
22844         * config/alpha/osf5.opt: New.
22845         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
22846
22847 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
22848
22849         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
22850
22851 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
22852
22853         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
22854         -floop-interchange.
22855         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
22856         is an alias of -floop-interchange and that it requires the
22857         Graphite infrastructure.
22858         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
22859         flag_loop_interchange based on the value of flag_tree_loop_linear.
22860
22861 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
22862             Richard Guenther  <rguenther@suse.de>
22863
22864         PR tree-optimization/47538
22865         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
22866         type instead of r1type, except for comparisons.  For right
22867         shifts and comparisons punt if there are mismatches in
22868         sizetype vs. non-sizetype types.
22869
22870 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22871
22872         * doc/sourcebuild.texi (Effective-Target Keywords): Document
22873         avx_runtime.
22874
22875 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22876
22877         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
22878         version number.
22879         * configure: Regenerate.
22880
22881 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22882
22883         * configure.ac (gcc_cv_ld_static_option): Define.
22884         (gcc_cv_ld_dynamic_option): Define.
22885         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
22886         instead.
22887         (HAVE_LD_STATIC_DYNAMIC): Update message.
22888         (LD_STATIC_OPTION): Define.
22889         (LD_DYNAMIC_OPTION): Define.
22890         * configure: Regenerate.
22891         * config.in: Regenerate.
22892         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
22893         HAVE_LD_STATIC_DYNAMIC]: Use them.
22894
22895 2011-01-31  Nick Clifton  <nickc@redhat.com>
22896
22897         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
22898         registers inside interrupt handlers if the handler is not a leaf
22899         function.
22900
22901 2011-01-31  Nick Clifton  <nickc@redhat.com>
22902
22903         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
22904         reg_renumber returning an INVALID_REGNUM.
22905
22906 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
22907
22908         PR libgcj/44341
22909         * doc/install.texi: Document host options discarded when cross
22910         configuring target libraries.
22911
22912 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
22913
22914         Reverted:
22915         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
22916         PR debug/45136
22917         PR debug/45130
22918         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
22919         debug insns.
22920         (no_real_insns_p, schedule_block, set_priorities): Drop special
22921         treatment of boundary debug insns.
22922         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
22923         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
22924         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
22925         (BOUNDARY_DEBUG_INSN_P): Likewise.
22926         (SCHEDULE_DEBUG_INSN_P): Likewise.
22927         * sched-rgn.c (init_ready_list): Drop special treatment of
22928         boundary debug insns.
22929         * final.c (rest_of_clean-state): Clear notes' BB.
22930
22931 2011-01-31  Alan Modra  <amodra@gmail.com>
22932
22933         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
22934         toc relative expressions as we do in print_operand_address.
22935
22936 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
22937
22938         * doc/extend.texi: Follow spelling conventions.
22939         * doc/invoke.texi: Fix a typo.
22940
22941 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
22942
22943         * config/hpux11.opt: New.
22944         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
22945         ia64*-*-hpux*): Use hpux11.opt.
22946
22947 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
22948
22949         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
22950         to tmake_file.
22951
22952 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
22953
22954         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
22955         support sites.
22956
22957 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
22958
22959         * doc/install.texi (Binaries): Remove outdated reference for
22960         Motorola 68HC11/68HC12 downloads.
22961
22962 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
22963
22964         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
22965         Drepper's paper.
22966
22967 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
22968
22969         PR bootstrap/47147
22970         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
22971         used by NetBSD.
22972
22973 2011-01-28  Ahmad Sharif  <asharif@google.com>
22974
22975         * value-prof.c (check_counter): Corrected error message.
22976
22977 2011-01-29  Jie Zhang  <jie@codesourcery.com>
22978
22979         * config/arm/arm.c (arm_legitimize_reload_address): New.
22980         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
22981         arm_legitimize_reload_address.
22982         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
22983
22984 2011-01-28  Ian Lance Taylor  <iant@google.com>
22985
22986         * godump.c (go_define): Ignore macros whose definitions include
22987         two adjacent operands.
22988
22989 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
22990
22991         PR target/42894
22992         * varasm.c (force_const_mem): Store copy of x in desc->constant
22993         instead of x itself.
22994         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
22995         itself into REG_EQUAL note.
22996
22997 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
22998
22999         * config/freebsd.opt (posix, rdynamic): New Driver options.
23000
23001 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23002
23003         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
23004         -Bstatic/-Bdynamic.
23005         * configure: Regenerate.
23006
23007 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
23008
23009         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
23010         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
23011
23012 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
23013
23014         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
23015         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
23016         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
23017         (s390_preferred_reload_class): Make static. Change return and
23018         'rclass' argument type to reg_class_t.
23019
23020 2011-01-27  Jan Hubicka  <jh@suse.cz>
23021
23022         PR middle-end/46949
23023         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
23024         (process_function_and_variable_attributes): Check defined weakrefs.
23025
23026 2011-01-27  Martin Jambor  <mjambor@suse.cz>
23027
23028         PR tree-optimization/47228
23029         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
23030         build_ref_for_offset.
23031
23032 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23033
23034         * config/spu/spu-elf.h (ASM_SPEC): Remove.
23035
23036 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
23037
23038         PR rtl-optimization/46856
23039         * postreload.c (reload_combine_recognize_const_pattern): Do not
23040         separate cc0 setter and user on cc0 targets.
23041
23042 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
23043
23044         PR c/43082
23045         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
23046         passed a VOID_TYPE expression, immediately emit an error and
23047         return error_mark_node.
23048
23049 2011-01-26  Jeff Law  <law@redhat.com>
23050
23051         PR rtl-optimization/47464
23052         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
23053         rather than may_trap_p as needed.
23054
23055 2011-01-26  DJ Delorie  <dj@redhat.com>
23056
23057         PR rtl-optimization/46878
23058         * combine.c (insn_a_feeds_b): Check for the implicit cc0
23059         setter/user dependency as well.
23060
23061 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
23062
23063         PR rtl-optimization/44469
23064         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
23065         after removing trivially dead basic blocks.
23066
23067 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
23068
23069         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
23070         * config/frv/frv.h (LINK_SPEC): Likewise.
23071         * config/i386/netware.h (LINK_SPEC): Likewise.
23072         * config/m68k/linux.h (ASM_SPEC): Likewise.
23073         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
23074         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
23075         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23076         * config/sparc/linux.h (ASM_SPEC): Likewise.
23077         * config/sparc/linux64.h (ASM_SPEC): Likewise.
23078         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23079
23080 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
23081
23082         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
23083         * config/frv/frv.h (ASM_SPEC): Likewise.
23084         * config/m68k/linux.h (ASM_SPEC): Likewise.
23085         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
23086         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
23087         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23088         * config/sparc/linux.h (ASM_SPEC): Likewise.
23089         * config/sparc/linux64.h (ASM_SPEC): Likewise.
23090         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23091
23092 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
23093
23094         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
23095         * config/frv/frv.h (LINK_SPEC): Likewise.
23096         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
23097
23098 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
23099
23100         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
23101         * config/frv/frv.h (ASM_SPEC): Likewise.
23102         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
23103         * config/m68k/linux.h (ASM_SPEC): Likewise.
23104         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
23105         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
23106         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23107         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
23108         * config/sparc/linux.h (ASM_SPEC): Likewise.
23109         * config/sparc/linux64.h (ASM_SPEC): Likewise.
23110         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23111         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
23112
23113 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
23114
23115         PR target/46997
23116         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
23117         (*mux2): Ditto.
23118         (vec_extract_evenodd_help): Ditto.
23119         (vec_extract_evenv4hi): Ditto.
23120         (vec_extract_oddv4hi): Ditto.
23121         (vec_interleave_lowv2si): Ditto.
23122         (vec_interleave_highv2si): Ditto.
23123         (vec_extract_evenv2si): Ditto.
23124         (vec_extract_oddv2si: Ditto.
23125         (vec_pack_trunc_v2si): Ditto.
23126
23127 2011-01-22  Jan Hubicka  <jh@suse.cz>
23128
23129         PR target/47237
23130         * cgraph.h (cgraph_local_info): New field can_change_signature.
23131         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
23132         signature can change.
23133         (ipcp_estimate_growth): Call sequence simplify only if calle signature
23134         can change.
23135         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
23136         (cgraph_function_versioning): We can not change signature of functions
23137         that don't allow that.
23138         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
23139         (lto_input_node): Likewise.
23140         * ipa-inline.c (compute_inline_parameters): Compute
23141         local.can_change_signature.
23142         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
23143         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
23144         functions that can not change signature.
23145         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
23146         init_cumulative_args): Do not use local calling conventions
23147         for functions that can not change signature.
23148
23149 2011-01-22  Jan Hubicka  <jh@suse.cz>
23150
23151         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
23152
23153 2011-01-26  Richard Guenther  <rguenther@suse.de>
23154
23155         PR tree-optimization/47190
23156         * cgraphunit.c (process_common_attributes): New function.
23157         (process_function_and_variable_attributes): Use it.
23158
23159 2011-01-26  Richard Guenther  <rguenther@suse.de>
23160
23161         PR lto/47423
23162         * cgraphbuild.c (record_eh_tables): Record reference to personality
23163         function.
23164
23165 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
23166
23167         PR debug/45454
23168         * sel-sched.c (moveup_expr): Don't let debug insns prevent
23169         non-debug insns from moving up.
23170
23171 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
23172
23173         PR target/40125
23174         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
23175         t-dlldir{,-x} fragment for build and add it to tmake_file.
23176         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
23177         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
23178         * config/i386/t-dlldir: New file.
23179         (SHLIB_DLLDIR): Define.
23180         * config/i386/t-dlldir-x: New file.
23181         (SHLIB_DLLDIR): Define.
23182         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
23183         (SHLIB_INSTALL): Use it.
23184
23185 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
23186
23187         PR target/47246
23188         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
23189         lower bound of the allowed Thumb-2 coprocessor load/store
23190         index range to -256. Add explaining comment.
23191
23192 2011-01-25  Ian Lance Taylor  <iant@google.com>
23193
23194         * godump.c (go_define): Improve lexing of macro expansion to only
23195         accept expressions which match Go spec.
23196
23197 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
23198
23199         PR c++/43601
23200         * tree.c (handle_dll_attribute): Handle it.
23201         * doc/extend.texi (@item dllexport): Mention it.
23202         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
23203
23204 2011-01-25  Ian Lance Taylor  <iant@google.com>
23205
23206         PR tree-optimization/26854
23207         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
23208         (decl_jump_unsafe): Move higher in file, with no other change.
23209         (bind): Set has_jump_unsafe_decl if appropriate.
23210         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
23211         (check_earlier_gotos): Likewise.
23212         (c_check_switch_jump_warnings): Likewise.
23213
23214 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
23215
23216         * doc/invoke.texi (Warning Options): Add missing hyphen.
23217         (-fprofile-dir): Minor grammatical fixes.
23218         (-fbranch-probabilities): Likewise.
23219
23220 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
23221
23222         PR debug/45136
23223         PR debug/45130
23224         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
23225         debug insns.
23226         (no_real_insns_p, schedule_block, set_priorities): Drop special
23227         treatment of boundary debug insns.
23228         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
23229         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
23230         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
23231         (BOUNDARY_DEBUG_INSN_P): Likewise.
23232         (SCHEDULE_DEBUG_INSN_P): Likewise.
23233         * sched-rgn.c (init_ready_list): Drop special treatment of
23234         boundary debug insns.
23235         * final.c (rest_of_clean-state): Clear notes' BB.
23236
23237 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23238
23239         * Makefile.in (LAMBDA_H): Removed.
23240         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
23241         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
23242         lambda-trans.o, and tree-loop-linear.o.
23243         (lto-symtab.o): Remove dependence on LAMBDA_H.
23244         (tree-loop-linear.o): Remove rule.
23245         (lambda-mat.o): Same.
23246         (lambda-trans.o): Same.
23247         (lambda-code.o): Same.
23248         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
23249         (tree-vect-slp.o): Same.
23250         * hwint.h (gcd): Moved here.
23251         (least_common_multiple): Same.
23252         * lambda-code.c: Removed.
23253         * lambda-mat.c: Removed.
23254         * lambda-trans.c: Removed.
23255         * lambda.h: Removed.
23256         * tree-loop-linear.c: Removed.
23257         * lto-symtab.c: Do not include lambda.h.
23258         * omega.c (gcd): Removed.
23259         * passes.c (init_optimization_passes): Remove pass_linear_transform.
23260         * tree-data-ref.c (print_lambda_vector): Moved here.
23261         (lambda_vector_copy): Same.
23262         (lambda_matrix_copy): Same.
23263         (lambda_matrix_id): Same.
23264         (lambda_vector_first_nz): Same.
23265         (lambda_matrix_row_add): Same.
23266         (lambda_matrix_row_exchange): Same.
23267         (lambda_vector_mult_const): Same.
23268         (lambda_vector_negate): Same.
23269         (lambda_matrix_row_negate): Same.
23270         (lambda_vector_equal): Same.
23271         (lambda_matrix_right_hermite): Same.
23272         * tree-data-ref.h: Do not include lambda.h.
23273         (lambda_vector): Moved here.
23274         (lambda_matrix): Same.
23275         (dependence_level): Same.
23276         (lambda_transform_legal_p): Removed declaration.
23277         (lambda_collect_parameters): Same.
23278         (lambda_compute_access_matrices): Same.
23279         (lambda_vector_gcd): Same.
23280         (lambda_vector_new): Same.
23281         (lambda_vector_clear): Same.
23282         (lambda_vector_lexico_pos): Same.
23283         (lambda_vector_zerop): Same.
23284         (lambda_matrix_new): Same.
23285         * tree-flow.h (least_common_multiple): Removed declaration.
23286         * tree-parloops.c (lambda_trans_matrix): Moved here.
23287         (LTM_MATRIX): Same.
23288         (LTM_ROWSIZE): Same.
23289         (LTM_COLSIZE): Same.
23290         (LTM_DENOMINATOR): Same.
23291         (lambda_trans_matrix_new): Same.
23292         (lambda_matrix_vector_mult): Same.
23293         (lambda_transform_legal_p): Same.
23294         * tree-pass.h (pass_linear_transform): Removed declaration.
23295         * tree-ssa-loop.c (tree_linear_transform): Removed.
23296         (gate_tree_linear_transform): Removed.
23297         (pass_linear_transform): Removed.
23298         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
23299         flag_loop_interchange.
23300
23301 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
23302
23303         PR tree-optimization/47265
23304         PR tree-optimization/47443
23305         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
23306         if name still has some uses.
23307
23308 2011-01-25  Martin Jambor  <mjambor@suse.cz>
23309
23310         PR tree-optimization/47382
23311         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
23312         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
23313
23314 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
23315
23316         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
23317         sjlj_except_unwind_info.
23318
23319 2011-01-25  Richard Guenther  <rguenther@suse.de>
23320
23321         PR tree-optimization/47426
23322         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
23323         visible functions results escape.
23324
23325 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
23326
23327         PR target/45701
23328         * config/arm/arm.c (any_sibcall_uses_r3): New function.
23329         (arm_get_frame_offsets): Use it.
23330
23331 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23332             Jakub Jelinek  <jakub@redhat.com>
23333
23334         PR tree-optimization/47271
23335         * tree-if-conv.c (bb_postdominates_preds): New.
23336         (if_convertible_bb_p): Call bb_postdominates_preds.
23337         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
23338         (predicate_scalar_phi): Call bb_postdominates_preds.
23339
23340 2011-01-25  Nick Clifton  <nickc@redhat.com>
23341
23342         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
23343         * config/rx/rx.c (rx_function_value): Likewise.
23344         (rx_promote_function_mode): Likewise.
23345         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
23346         in order to make it legitimate.
23347         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
23348         make sure that the first operand is the same as the result register.
23349         (addsi3_unspec): Delete.
23350         (subdi3): Do not accept immediate operands.
23351         (subdi3_internal): Likewise.
23352
23353 2011-01-25  Jeff Law  <law@redhat.com>
23354
23355         PR rtl-optimization/37273
23356         * ira-costs.c (scan_one_insn): Detect constants living in memory and
23357         handle them like argument loads from stack slots.  Do not double
23358         count memory for memory constants and argument loads from stack slots.
23359
23360 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
23361
23362         PR tree-optimization/47427
23363         PR tree-optimization/47428
23364         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
23365         coalesce if the new root var would be TREE_READONLY.
23366
23367 2011-01-25  Richard Guenther  <rguenther@suse.de>
23368
23369         PR middle-end/47414
23370         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
23371         correct type for TBAA.
23372
23373 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23374
23375         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
23376         (close_phi_written_to_memory): Call for_each_index with
23377         dr_indices_valid_in_loop.
23378
23379 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23380
23381         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
23382         when it is initialized.
23383
23384 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23385
23386         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
23387         call to graphite_find_data_references_in_stmt.
23388         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
23389         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
23390         call to graphite_find_data_references_in_stmt.
23391         (analyze_drs_in_stmts): Same.
23392         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
23393         in which the scalar analysis of indices is performed.
23394         (create_data_ref): Same.  Update call to dr_analyze_indices.
23395         (find_data_references_in_stmt): Update call to create_data_ref.
23396         (graphite_find_data_references_in_stmt): Same.
23397         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
23398         declaration.
23399         (create_data_ref): Same.
23400         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
23401         call to create_data_ref.
23402
23403 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23404
23405         * graphite-sese-to-poly.c (build_poly_scop): Move
23406         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
23407
23408 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23409
23410         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
23411         VAR_DECL, PARM_DECL, and RESULT_DECL.
23412
23413 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23414
23415         * graphite-dependences.c (reduction_dr_1): Allow several reductions
23416         in a reduction PBB.
23417         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
23418         that have already been marked as PBB_IS_REDUCTION.
23419
23420 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23421
23422         * graphite-scop-detection.c (same_close_phi_node): New.
23423         (remove_duplicate_close_phi): New.
23424         (make_close_phi_nodes_unique): New.
23425         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
23426
23427 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23428
23429         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
23430         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
23431         of both data references to be the same.
23432
23433 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23434
23435         * graphite-dependences.c (build_lexicographical_constraint): Remove
23436         the gdim parameter.
23437         (build_lexicographical_constraint): Adjust call to
23438         ppl_powerset_is_empty.
23439         (dependence_polyhedron): Same.
23440         (graphite_legal_transform_dr): Same.
23441         (graphite_carried_dependence_level_k): Same.
23442         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
23443         parameter.
23444         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
23445
23446 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23447
23448         * graphite-sese-to-poly.c
23449         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
23450         (close_phi_written_to_memory): New.
23451         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
23452         and unshare_expr.
23453
23454 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23455
23456         * doc/install.texi: Update the expected version number of PPL to 0.11.
23457         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
23458         #if PPL_VERSION_MINOR < 11.
23459
23460 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23461
23462         * graphite-dependences.c: Include graphite-cloog-util.h.
23463         (new_poly_ddr): Inlined into dependence_polyhedron.
23464         (free_poly_ddr): Moved close by new_poly_ddr.
23465         (dependence_polyhedron_1): Renamed dependence_polyhedron.
23466         Early return NULL when ppl_powerset_is_empty returns true.
23467         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
23468         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
23469         (graphite_legal_transform_dr): Call new_poly_ddr.
23470         (graphite_carried_dependence_level_k): Same.
23471         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
23472         (dot_transformed_deps_stmt_1): Removed.
23473         (dot_deps_stmt_1): Call dot_deps_stmt_2.
23474         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
23475         (dot_deps_1): Call dot_deps_2.
23476         * Makefile.in (graphite-dependences.o): Add missing dependence on
23477         graphite-cloog-util.h.
23478
23479 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23480
23481         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
23482         (build_lexicographical_constraint): Same.
23483         (dependence_polyhedron_1): Same.
23484         (graphite_legal_transform_dr): Same.
23485         (graphite_carried_dependence_level_k): Same.
23486         * graphite-ppl.c (ppl_powerset_is_empty): New.
23487         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
23488         * tree-data-ref.c (dump_data_reference): Print the basic block index.
23489
23490 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23491
23492         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
23493         the "a followed by b" relation and document it.
23494
23495 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23496
23497         * graphite-dependences.c (build_lexicographical_constraint): Stop the
23498         iteration when the bag of constraints is empty.
23499
23500 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23501
23502         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
23503
23504 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23505
23506         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
23507         nest and two loop depths as parameters.
23508         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
23509         lst_perfect_nestify.
23510
23511 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23512
23513         * graphite-dependences.c (print_pddr): Call
23514         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
23515
23516 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23517
23518         * graphite-ppl.c (debug_gmp_value): New.
23519         * graphite-ppl.h (debug_gmp_value): Declared.
23520
23521 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
23522
23523         * doc/install.texi: Document availability of cloog-0.16.
23524
23525 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
23526
23527         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
23528         invalid postdominance info.
23529
23530 2011-01-24  Jan Hubicka  <jh@suse.cz>
23531
23532         PR c/21659
23533         * doc/extend.texi (weak pragma): Drop claim that it must
23534         appear before definition.
23535         * varasm.c (merge_weak, declare_weak): Only sanity check
23536         that DECL is not output at a time it is declared weak.
23537
23538 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
23539
23540         * machmode.def: Fixed comments.
23541
23542 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
23543
23544         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
23545
23546 2011-01-24  Paul Koning  <ni1d@arrl.net>
23547
23548         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
23549         WORDS_BIG_ENDIAN.
23550
23551 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
23552
23553         PR target/46519
23554         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
23555         (block_info): Add scanned and prev.
23556         (move_or_delete_vzeroupper_2): Return if the basic block
23557         has been scanned and the upper 128bit state is unchanged
23558         from the last scan.
23559         (move_or_delete_vzeroupper_1): Return true if the exit
23560         state is changed.
23561         (move_or_delete_vzeroupper): Visit basic blocks using the
23562         work-list based algorithm based on vt_find_locations in
23563         var-tracking.c.
23564
23565         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
23566
23567 2011-01-24  Nick Clifton  <nickc@redhat.com>
23568
23569         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
23570         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
23571         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
23572         then define __v850e1__.
23573         * doc/invoke.texi: Document -mv850es.
23574
23575 2011-01-24  Richard Henderson  <rth@redhat.com>
23576
23577         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
23578         compound unordered comparisons.
23579         * config/rx/rx.c (rx_split_fp_compare): Remove.
23580         * config/rx/rx-protos.h: Update.
23581         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
23582         (cbranchsf4): Don't call rx_split_fp_compare.
23583         (*cbranchsf4): Use rx_split_cbranch.
23584         (*cmpsf): Don't accept "i" constraint.
23585         (*conditional_branch): Only valid after reload.
23586         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
23587
23588 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
23589
23590         PR target/47385
23591         * config/rs6000/altivec.md (vector constant splitters): Add
23592         support for creating vector single precision constants if -mvsx is
23593         used and we would create the constant using Altivec primitives.
23594
23595 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
23596             Richard Sandiford  <rdsandiford@googlemail.com>
23597
23598         PR rtl-optimization/47166
23599         * reload1.c (emit_reload_insns): Disable the spill_reg_store
23600         mechanism for PRE_MODIFY and POST_MODIFY.
23601         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
23602         reloadreg.
23603
23604 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
23605
23606         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
23607
23608 2011-01-22  Jan Hubicka  <jh@suse.cz>
23609
23610         PR lto/47333
23611         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
23612
23613 2011-01-22  Jan Hubicka  <jh@suse.cz>
23614
23615         PR tree-optimization/43884
23616         PR lto/44334
23617         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
23618         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
23619
23620 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
23621
23622         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
23623         * config/s390/s390.c (s390_register_move_cost,
23624         s390_memory_move_cost): New.
23625         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
23626
23627 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23628
23629         PR middle-end/47401
23630         * except.c (sjlj_assign_call_site_values): Move setting the
23631         crtl->uses_eh_lsda flag to ...
23632         (sjlj_mark_call_sites): ... here.
23633         (sjlj_emit_function_enter): Support NULL dispatch label.
23634         (sjlj_build_landing_pads): In a function with no landing pads
23635         that still has must-not-throw regions, generate code to register
23636         a personality function with empty LSDA.
23637
23638 2011-01-21  Richard Henderson  <rth@redhat.com>
23639
23640         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
23641
23642         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
23643
23644         * compare-elim.c: New file.
23645         * Makefile.in (OBJS-common): Add it.
23646         (compare-elim.o): New.
23647         * common.opt (fcompare-elim): New.
23648         * opts.c (default_options_table): Add OPT_fcompare_elim.
23649         * tree-pass.h (pass_compare_elim_after_reload): New.
23650         * passes.c (init_optimization_passes): Add it.
23651         * recog.h: Protect against re-inclusion.
23652         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
23653         * doc/invoke.texi (-fcompare-elim): Document it.
23654         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
23655         * doc/tm.texi: Rebuild.
23656
23657 2011-01-22  Nick Clifton  <nickc@redhat.com>
23658
23659         * config/rx/rx.md (cstoresf4): Pass comparison operator to
23660         rx_split_fp_compare.
23661
23662 2011-01-22  Nick Clifton  <nickc@redhat.com>
23663
23664         * config/rx/rx.md (UNSPEC_CONST): New.
23665         (deallocate_and_return): Wrap the amount popped off the stack in
23666         an UNSPEC_CONST in order to stop it being rejected by
23667         -mmax-constant-size.
23668         (pop_and_return): Add a "(return)" rtx.
23669         (call): Drop the immediate operand.
23670         (call_internal): Likewise.
23671         (call_value): Likewise.
23672         (call_value_internal): Likewise.
23673         (sibcall_internal): Likewise.
23674         (sibcall_value_internal): Likewise.
23675         (sibcall): Likewise.  Generate an explicit call using
23676         sibcall_internal.
23677         (sibcall_value): Likewise.
23678         (mov<>): FAIL if a constant operand is not legitimate.
23679         (addsi3_unpsec): New pattern.
23680
23681         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
23682         (ok_for_max_constant): New function.
23683         (gen_safe_add): New function.
23684         (rx_expand_prologue): Use gen_safe_add.
23685         (rx_expand_epilogue): Likewise.
23686         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
23687         UNSPEC CONSTs.
23688
23689 2011-01-21  Jeff Law  <law@redhat.com>
23690
23691         PR tree-optimization/47053
23692         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
23693         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
23694         statements are deleted.
23695         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
23696         is nonempty, then purge dead edges and cleanup the CFG.
23697
23698 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
23699
23700         PR debug/47402
23701         Temporarily revert:
23702         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
23703         PR debug/47106
23704         * tree-dfa.c (create_var_ann): Mark variable as used.
23705
23706 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
23707
23708         PR middle-end/45566
23709         * except.c (convert_to_eh_region_ranges): Emit queued no-region
23710         notes from other section in hot/cold partitioning even if
23711         last_action is -3.  Increment call_site_base.
23712
23713         PR rtl-optimization/47366
23714         * fwprop.c (forward_propagate_into): Return bool.  If
23715         any changes are made, -fnon-call-exceptions is used and
23716         REG_EH_REGION note is present, call purge_dead_edges
23717         and return true if it purged anything.
23718         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
23719         any EH edges were purged.
23720
23721 2011-01-21  Jeff Law  <law@redhat.com>
23722
23723         PR rtl-optimization/41619
23724         * caller-save.c (setup_save_areas): Break out code to determine
23725         which hard regs are live across calls by examining the reload chains
23726         so that it is always used.
23727         Eliminate code which checked REG_N_CALLS_CROSSED.
23728
23729 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
23730
23731         PR tree-optimization/47355
23732         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
23733         NOP has non-debug uses beyond PHIs in new_bb.
23734
23735 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
23736
23737         PR debug/47106
23738         * cfgexpand.c (account_used_vars_for_block): Only account vars
23739         that are annotated as used.
23740         (estimated_stack_frame_size): Don't set TREE_USED.
23741         * tree-dfa.c (create_var_ann): Mark variable as used.
23742
23743 2011-01-21  Richard Guenther  <rguenther@suse.de>
23744
23745         PR middle-end/47395
23746         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
23747
23748 2011-01-21  Richard Guenther  <rguenther@suse.de>
23749
23750         PR tree-optimization/47365
23751         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
23752         (vn_reference_lookup_pieces): Adjust.
23753         (vn_reference_lookup): Likewise.
23754         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
23755         (vn_reference_lookup_3): Only look through kills if in
23756         VN_WALKREWRITE mode.
23757         (vn_reference_lookup_pieces): Adjust.
23758         (vn_reference_lookup): Likewise.
23759         (visit_reference_op_load): Likewise.
23760         (visit_reference_op_store): Likewise.
23761         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
23762         (compute_avail): Likewise.
23763         (eliminate): Likewise.
23764
23765 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
23766
23767         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
23768         DECL_IGNORED_P non-reg vars if they are used.
23769
23770         PR tree-optimization/47391
23771         * varpool.c (const_value_known_p): Return false if
23772         decl is volatile.
23773
23774 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
23775
23776         PR bootstrap/47215
23777         * config/i386/i386.c (ix86_local_alignment): Handle
23778         case for va_list_type_node is nil.
23779         (ix86_canonical_va_list_type): Likewise.
23780
23781 2011-01-21  Alan Modra  <amodra@gmail.com>
23782
23783         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
23784         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
23785
23786 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23787
23788         * config/arm/arm.md (define_attr type): Rename f_load
23789         and f_store to f_fpa_load and f_fpa_store. Update.
23790         (write_conflict): Deal with rename fallout.
23791         (*push_fp_multi): Likewise.
23792         * config/arm/fpa.md (f_load): Use f_fpa_load.
23793         (f_store): Use f_fpa_store.
23794         (*movsf_fpa): Likewise.
23795         (*movdf_fpa): Likewise.
23796         (*movxf_fpa): Likewise.
23797         (*thumb2_movsf_fpa): Likewise.
23798         (*thumb2_movdf_fpa): Likewise.
23799         (*thumb2_movxf_fpa): Likewise.
23800         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
23801         f_loadd and f_stored.
23802         (*thumb2_movdi_vfp): Likewise.
23803         (*thumb2_movsf_vfp): Fix attribute to f_loads.
23804         (*thumb2_movsi_vfp): Likewise.
23805         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
23806         Use f_loads instead of f_load.
23807         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
23808
23809 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
23810
23811         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23812         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
23813         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23814         (xtensa_mode_dependent_address_p): New function.
23815         (constantpool_address_p): Make static. Change return type to bool.
23816         Change argument type to const_rtx. Use CONST_INT_P predicate.
23817
23818 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
23819
23820         PR debug/46583
23821         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
23822
23823 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
23824
23825         PR debug/47283
23826         * cfgexpand.c (expand_debug_expr): Instead of generating
23827         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
23828         etc. handling.
23829
23830 2011-01-20  Richard Guenther  <rguenther@suse.de>
23831
23832         PR middle-end/47370
23833         * tree-inline.c (remap_gimple_op_r): Recurse manually for
23834         the pointer operand of MEM_REFs.
23835
23836 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
23837
23838         PR tree-optimization/46130
23839         * ipa-split.c (consider_split): If return_bb contains non-virtual
23840         PHIs other than for retval or if split_function would not adjust it,
23841         refuse to split.
23842
23843 2011-01-20  Richard Guenther  <rguenther@suse.de>
23844
23845         PR tree-optimization/47167
23846         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
23847         Revert previous change, only avoid enumeral type changes.
23848
23849 2011-01-19  Mike Stump  <mikestump@comcast.net>
23850
23851         * doc/tm.texi.in (BRANCH_COST): Englishify.
23852         * doc/tm.texi (BRANCH_COST): Likewise.
23853
23854 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
23855
23856         PR c++/47291
23857         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
23858         (gen_scheduled_generic_parms_dies): New functions.
23859         (gen_struct_or_union_type_die): Schedule template parameters DIEs
23860         generation for the end of CU compilation.
23861         (dwarf2out_finish): Generate template parameters DIEs here.
23862
23863 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
23864
23865         PR debug/46240
23866         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
23867         debug bind stmt on merge edges.
23868
23869 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
23870
23871         PR debug/47079
23872         PR debug/46724
23873         * function.c (instantiate_expr): Instantiate incoming rtl of
23874         implicit arguments, and recurse on VALUE_EXPRs.
23875         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
23876         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
23877
23878 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
23879
23880         * c-parser.c (c_parser_for_statement): Initialize
23881         collection_expression.
23882
23883 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
23884
23885         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
23886
23887 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
23888
23889         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
23890         (LINK_SHLIB_SPEC): Don't use %(link_path).
23891         (SUBTARGET_EXTRA_SPECS): Remove link_path.
23892
23893 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
23894
23895         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
23896         (NO_SHARED_LIB_SUPPORT): Remove.
23897         (LINK_SHLIB_SPEC): Remove one conditional definition.
23898
23899 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
23900
23901         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
23902         %{call_shared}.
23903         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
23904         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
23905         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
23906         %{call_shared} and conditionals on these options not being passed.
23907         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
23908         %{call_shared}.
23909
23910 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
23911
23912         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
23913         simplify.
23914
23915         * ipa-split.c: Spelling fixes.
23916
23917 2011-01-19  Richard Henderson  <rth@redhat.com>
23918
23919         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
23920         (*mulsi3): Likewise.
23921
23922         * longlong.h [__mn10300__] (count_leading_zeros): New.
23923         [__mn10300__] (umul_ppmm, smul_ppmm): New.
23924         [__mn10300__] (add_ssaaaa, subddmmss): New.
23925         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
23926         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
23927
23928 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23929
23930         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
23931
23932 2011-01-19  Richard Henderson  <rth@redhat.com>
23933
23934         * config/mn10300/mn10300.md (addsi3_flags): New.
23935         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
23936         (subsi3_flags, subc_internal, subdi3): New.
23937         (subdi3_internal, *subdi3_degenerate): New.
23938         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
23939
23940         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
23941         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
23942         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
23943         * config/mn10300/mn10300-protos.h: Update.
23944         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
23945         (return_ret): Likewise.  Rename from return_internal_regs.
23946         (return_internal): Remove.
23947
23948         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
23949         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
23950         (mn10300_legitimate_constant_p): Likewise.
23951         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
23952         (mn10300_frame_size): New.
23953         (mn10300_expand_prologue): Use it.
23954         (mn10300_expand_epilogue): Likewise.
23955         (mn10300_initial_offset): Likewise.
23956         * config/mn10300/mn10300-protos.h: Update.
23957         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
23958         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
23959         (prologue, epilogue, return_internal): Tidy output code.
23960         (mn10300_store_multiple_operation, return): Likewise.
23961         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
23962         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
23963         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
23964         (load_pic, am33_load_pic): New.
23965         (mn10300_load_pic0, mn10300_load_pic1): New.
23966
23967         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
23968         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
23969         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
23970         (cc_flags_for_mode, cc_flags_for_code): New.
23971         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
23972         overflow flag is not valid.  Validate that the flags we need
23973         for the comparison are valid.
23974         (mn10300_output_cmp): Remove.
23975         (mn10300_output_add): New.
23976         (mn10300_select_cc_mode): Use cc_flags_for_code.
23977         (mn10300_split_cbranch): New.
23978         (mn10300_match_ccmode): New.
23979         (mn10300_split_and_operand_count): New.
23980         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
23981         to the function.
23982         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
23983         (addsi3): ... here.  Use mn10300_output_add.
23984         (*addsi3_flags): New.
23985         (*am33_subsi3, *mn10300_subsi3): Merge...
23986         (subsi3): ... here.  Use attribute isa.
23987         (*subsi3_flags): New.
23988         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
23989         when possible.
23990         (*am33_andsi3, *mn10300_andsi3): Merge...
23991         (andsi3): ... here.
23992         (*andsi3_flags): New.
23993         (andsi3 splitters): New.
23994         (*am33_iorsi3, *mn10300_iorsi3): Merge...
23995         (iorsi3): ... here.
23996         (*iorsi3_flags): New.
23997         (*am33_xorsi3, *mn10300_xorsi3): Merge...
23998         (xorsi3): ... here.
23999         (*xorsi3_flags): New.
24000         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
24001         (one_cmplsi2): ... here.
24002         (*one_cmplsi2_flags): New.
24003         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
24004         instead of "dax" in constraints.  Use mn10300_split_cbranch.
24005         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
24006         use matching constraints to eliminate a self-comparison.
24007         (*integer_conditional_branch): Rename from integer_conditional_branch.
24008         Use int_mode_flags to match CC_REG.
24009         (*cbranchsi4_btst, *btstsi): New.
24010         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
24011         mn10300_split_cbranch.
24012         (*am33_cmpsf): Rename from am33_cmpsf.
24013         (*float_conditional_branch): Rename from float_conditional_branch.
24014         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
24015         (zero_extendqisi2): ... here.
24016         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
24017         (zero_extendhisi2): ... here.
24018         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
24019         (extendqisi2): ... here.
24020         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
24021         (extendhisi2): ... here.
24022         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
24023         (ashlsi3): ... here.
24024         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
24025         (lshrsi3): ... here.
24026         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
24027         (ashrsi3): ... here.
24028         (consecutive add peephole): Remove.
24029         * config/mn10300/predicates.md (label_ref_operand): New.
24030         (int_mode_flags): New.
24031         (CCZN_comparison_operator): New.
24032
24033         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
24034         (throughput_42_latency_43): New reservation.
24035         (mulsidi3, umulsidi3): New expanders.
24036         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
24037         the MDR register to allocation; separately allocate the low and
24038         high parts of the DImode result.
24039         (umulsidi3_internal): Similarly.
24040         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
24041         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
24042         (udivsi3, umodsi3): Remove.
24043         (udivmodsi4, divmodsi4): New expanders.
24044         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
24045         (*divmodsi4): Simiarly.
24046         (ext_internal): New.
24047
24048         * config/mn10300/constraints.md ("z"): New constraint.
24049         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
24050         (FIXED_REGISTERS): Don't fix MDR.
24051         (CALL_USED_REGSITERS): Reformat nicely.
24052         (REG_ALLOC_ORDER): Add MDR.
24053         (enum regclass): Add MDR_REGS.
24054         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
24055         (IRA_COVER_CLASSES): Add MDR_REGS.
24056         (REGNO_REG_CLASS): Handle MDR_REG.
24057         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
24058         (mn10300_register_move_cost): Likewise.
24059         * config/mn10300/mn10300.md (MDR_REG): New.
24060         (*movsi_internal): Handle moves to/from MDR_REGS.
24061
24062         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
24063         POST_MODIFY.
24064         (mn10300_secondary_reload): Tidy combination reload classes.
24065         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
24066         addresses for AM33.  Allow symbolic offsets for reg+imm.
24067         (mn10300_regno_in_class_p): New.
24068         (mn10300_legitimize_reload_address): New.
24069         * config/mn10300/mn10300.h (enum reg_class): Remove
24070         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
24071         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
24072         SP_OR_GENERAL_REGS.
24073         (REG_CLASS_NAMES): Update to match.
24074         (REG_CLASS_CONTENTS): Likewise.
24075         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
24076         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
24077         (REGNO_IN_RANGE_P): Remove.
24078         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
24079         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
24080         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
24081         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
24082         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
24083         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
24084         (REGNO_GENERAL_P): New.
24085         (HAVE_POST_MODIFY_DISP): New.
24086         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
24087         (LEGITIMIZE_RELOAD_ADDRESS): New.
24088         * config/mn10300/mn10300-protos.h: Update.
24089
24090         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
24091         DATA_REGS for AM33 stack-pointer destination.
24092         (mn10300_preferred_output_reload_class): Likewise.
24093         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
24094         into a form appropriate for ...
24095         (TARGET_SECONDARY_RELOAD): New.
24096         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
24097         * config/mn10300/mn10300-protos.h: Update.
24098         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
24099         reload_insi; use the "A" constraint for the scratch; handle AM33
24100         moves of sp to non-address registers.
24101
24102         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
24103         (*movqi_internal): ... here.
24104         (*am33_movhi, *mn10300_movhi): Merge into...
24105         (*movhi_internal): ... here.
24106         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
24107         as the source/destination of moves from/to SP.
24108         (movsf): Only allow for AM33-2.
24109         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
24110         any integer constant constraint.  Only allow for AM33-2.  Tidy
24111         all of the alternative outputs.
24112         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
24113         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
24114         for MN103.
24115         (udivsi3, umodsi3): New patterns for MN103 only.
24116
24117 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
24118
24119         * doc/tm.texi.in: Spell out that a lack of register class unions
24120         can lead to ICEs.
24121         * doc/tm.texi: Regenerate.
24122
24123 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
24124
24125         PR rtl-optimization/47337
24126         * dce.c (check_argument_store): New function.
24127         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
24128
24129         PR tree-optimization/47290
24130         * tree-eh.c (infinite_empty_loop_p): New function.
24131         (cleanup_empty_eh): Use it.
24132
24133 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
24134
24135         PR target/46997
24136         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
24137         (a64_expand_widen_sum): Ditto.
24138         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
24139         (vec_extract_evenodd_help): Ditto.
24140         (vec_extract_evenv4hi): Ditto.
24141         (vec_extract_oddv4hi): Ditto.
24142         (vec_extract_evenv2si): Ditto.
24143         (vec_extract_oddv2si): Ditto.
24144         (vec_extract_evenv2sf): Ditto.
24145         (vec_extract_oddv2sf): Ditto.
24146         (vec_pack_trunc_v4hi: Ditto.
24147         (vec_pack_trunc_v2si): Ditto.
24148         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
24149         (vec_interleave_highv8qi): Ditto.
24150         (mix1_r): Ditto.
24151         (vec_extract_oddv8qi): Ditto.
24152         (vec_interleave_lowv4hi): Ditto.
24153         (vec_interleave_highv4hi): Ditto.
24154         (vec_interleave_lowv2si): Ditto.
24155         (vec_interleave_highv2si): Ditto.
24156
24157 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24158
24159         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
24160         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
24161         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
24162         (pa_c_mode_for_suffix): New.
24163         (TARGET_EXPAND_BUILTIN): Define.
24164         (TARGET_C_MODE_FOR_SUFFIX): Define.
24165         (pa_builtins): Define.
24166         (pa_init_builtins): Register __float128 type and init new support
24167         builtins.
24168         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
24169         * config/pa/quadlib.c (_U_Qfcopysign): New.
24170
24171 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
24172
24173         PR middle-end/46894
24174         * explow.c (allocate_dynamic_stack_space): Do not assume more than
24175         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
24176         are defined.
24177
24178 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24179
24180         PR tree-optimization/47179
24181         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
24182         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
24183
24184 2011-01-18  Richard Guenther  <rguenther@suse.de>
24185
24186         PR rtl-optimization/47216
24187         * emit-rtl.c: Include tree-flow.h.
24188         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
24189         of replicating it with different semantics.
24190         * Makefile.in (emit-rtl.o): Adjust.
24191
24192 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24193
24194         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
24195         (cortex_a9_dp): Handle neon types correctly.
24196
24197 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
24198
24199         PR rtl-optimization/47299
24200         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
24201         subtarget.  Use normal multiplication if both operands are constants.
24202         * expmed.c (expand_widening_mult): Don't try to optimize constant
24203         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
24204         before using it.
24205
24206 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24207
24208         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
24209         spacing after 'e.g.', typos, comma, hyphenation.
24210
24211 2011-01-17  Richard Henderson  <rth@redhat.com>
24212
24213         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
24214         (rx_restricted_mem_operand): New.
24215         (rx_shift_operand): Use register_operand.
24216         (rx_source_operand, rx_compare_operand): Likewise.
24217         * config/rx/rx.md (addsi3_flags): New expander.
24218         (adddi3): Rewrite as expander.
24219         (adc_internal, *adc_flags, adddi3_internal): New patterns.
24220         (subsi3_flags): New expander.
24221         (subdi3): Rewrite as expander.
24222         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
24223
24224         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
24225         (rx_init_builtins): Remove sat builtin.
24226         (rx_expand_builtin): Likewise.
24227         * config/rx/rx.md (ssaddsi3): New.
24228         (*sat): Rename from sat.  Represent the CC_REG input.
24229
24230         * config/rx/predicates.md (rshift_operator): New.
24231         * config/rx/rx.c (rx_expand_insv): Remove.
24232         * config/rx/rx-protos.h: Update.
24233         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
24234         operand to the canonical position.
24235         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
24236         (*bitclr, *bitclr_in_memory): Similarly.
24237         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
24238         (insv): Retain the zero_extract in the expansion.
24239
24240         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
24241         (bswaphi2, bitinvert, revw): Likewise.
24242
24243         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
24244         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
24245         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
24246         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
24247         (bitset, bitset_in_memory): Likewise.
24248         (bitinvert, bitinvert_in_memory): Likewise.
24249         (bitclr, bitclr_in_memory): Likewise.
24250         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
24251         (rx_strend, rx_cmpstrn): Likewise.
24252         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
24253         (bitop peep2 patterns): Remove.
24254
24255         * config/rx/rx.c (rx_match_ccmode): New.
24256         * config/rx/rx-protos.h: Update.
24257         * config/rx/rx.md (abssi2): Clobber, don't set flags.
24258         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
24259         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
24260         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
24261         (fix_truncsfsi2, floatsisf2): Likewise.
24262         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
24263         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
24264         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
24265         (*subsi3_flags, *xorsi3_flags): New.
24266
24267         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
24268
24269         * config/rx/rx.c (rx_print_operand): Remove workaround for
24270         unsplit comparison operations.
24271
24272         * config/rx/rx.md (movsicc): Split after reload.
24273         (*movsicc): Merge *movsieq and *movsine via match_operator.
24274         (*stcc): New pattern.
24275
24276         * config/rx/rx.c (rx_float_compare_mode): Remove.
24277         * config/rx/rx.h (rx_float_compare_mode): Remove.
24278         * config/rx/rx.md (cstoresi4): Split after reload.
24279         (*sccc): New pattern.
24280
24281         * config/rx/predicates.md (label_ref_operand): New.
24282         (rx_z_comparison_operator): New.
24283         (rx_zs_comparison_operator): New.
24284         (rx_fp_comparison_operator): New.
24285         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
24286         Validate that the flags are set properly for the comparison.
24287         (rx_gen_cond_branch_template): Remove.
24288         (rx_cc_modes_compatible): Remove.
24289         (mode_from_flags): New.
24290         (flags_from_code): Rename from flags_needed_for_conditional.
24291         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
24292         (rx_select_cc_mode): Likewise.
24293         (rx_split_fp_compare): New.
24294         (rx_split_cbranch): New.
24295         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
24296         (*cbranchsi4): Use match_operator and rx_split_cbranch.
24297         (*cbranchsf4): Similarly.
24298         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
24299         match_operator and rx_split_cbranch.
24300         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
24301         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
24302         (*cmpsi): Rename from cmpsi.
24303         (*tstsi): Rename from tstsi.
24304         (*cmpsf): Rename from cmpsf; use CC_Fmode.
24305         (*conditional_branch): Rename from conditional_branch.
24306         (*reveresed_conditional_branch): Remove.
24307         (b<code>): Remove expander.
24308         * config/rx/rx-protos.h: Update.
24309
24310         * config/rx/rx.c (rx_compare_redundant): Remove.
24311         * config/rx/rx.md (cmpsi): Don't use it.
24312         * config/rx/rx-protos.h: Update.
24313
24314         * config/rx/rx-modes.def (CC_F): New mode.
24315         * config/rx/rx.c (rx_select_cc_mode): New.
24316         * config/rx/rx.h (SELECT_CC_MODE): Use it.
24317         * config/rx/rx-protos.h: Update.
24318
24319 2011-01-17  Richard Henderson  <rth@redhat.com>
24320
24321         * except.c (dump_eh_tree): Fix stray ; after for statement.
24322
24323 2011-01-17  Richard Guenther  <rguenther@suse.de>
24324
24325         PR tree-optimization/47313
24326         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
24327         handling before copying the body.  Properly deal with
24328         by-reference result in SSA form.
24329
24330 2011-01-17  Ian Lance Taylor  <iant@google.com>
24331
24332         PR target/47219
24333         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
24334         (struct_value_alias_set): Don't define.
24335         (sparc_option_override): Don't set sparc_sr_alias_set and
24336         struct_value_alias_set.
24337         (save_or_restore_regs): Use gen_frame_mem rather than calling
24338         set_mem_alias_set.
24339         (sparc_struct_value_rtx): Likewise.
24340
24341 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
24342
24343         PR target/47318
24344         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
24345         (_mm_maskstore_pd): Likewise.
24346         (_mm_maskload_ps): Likewise.
24347         (_mm_maskstore_ps): Likewise.
24348         (_mm256_maskload_pd): Change mask to __m256i.
24349         (_mm256_maskstore_pd): Likewise.
24350         (_mm256_maskload_ps): Likewise.
24351         (_mm256_maskstore_ps): Likewise.
24352
24353         * config/i386/i386-builtin-types.def: Updated.
24354         (ix86_expand_special_args_builtin): Likewise.
24355
24356         * config/i386/i386.c (bdesc_special_args): Update
24357         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
24358         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
24359         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
24360         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
24361
24362         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
24363         Use <avxpermvecmode> on mask register.
24364         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
24365
24366 2011-01-17  Olivier Hainque  <hainque@adacore.com>
24367             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
24368             Eric Botcazou  <ebotcazou@adacore.com>
24369
24370         PR target/46655
24371         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
24372         if <= USHRT_MAX in 32-bit mode.
24373
24374 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24375
24376         * doc/install.texi (Configuration, Specific): Wrap long
24377         lines in examples.  Allow line wrapping in long options
24378         and URLs where beneficial for PDF output.
24379
24380 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
24381
24382         * config/mips/mips.c (mips_classify_symbol): Don't return
24383         SYMBOL_PC_RELATIVE for nonlocal labels.
24384
24385 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
24386
24387         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
24388
24389 2011-01-15  Jan Hubicka  <jh@suse.cz>
24390
24391         PR tree-optimization/47276
24392         * ipa.c (function_and_variable_visibility): Do not try to mark alias
24393         declarations as needed.
24394
24395 2011-01-15  Martin Jambor  <mjambor@suse.cz>
24396
24397         * common.opt (fdevirtualize): New flag.
24398         * doc/invoke.texi (Option Summary): Document it.
24399         * opts.c (default_options_table): Add devirtualize flag.
24400         * ipa-prop.c (detect_type_change): Return immediately if
24401         devirtualize flag is not set.
24402         (detect_type_change_ssa): Likewise.
24403         (compute_known_type_jump_func): Likewise.
24404         (ipa_analyze_virtual_call_uses): Likewise.
24405
24406 2011-01-14  Martin Jambor  <mjambor@suse.cz>
24407
24408         PR tree-optimization/45934
24409         PR tree-optimization/46302
24410         * ipa-prop.c (type_change_info): New type.
24411         (stmt_may_be_vtbl_ptr_store): New function.
24412         (check_stmt_for_type_change): Likewise.
24413         (detect_type_change): Likewise.
24414         (detect_type_change_ssa): Likewise.
24415         (compute_complex_assign_jump_func): Check for dynamic type change.
24416         (compute_complex_ancestor_jump_func): Likewise.
24417         (compute_known_type_jump_func): Likewise.
24418         (compute_scalar_jump_functions): Likewise.
24419         (ipa_analyze_virtual_call_uses): Likewise.
24420         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
24421
24422 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24423
24424         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
24425         * config/i386/i386.opt (msse5): New Alias.
24426
24427 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24428
24429         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
24430         * config/sparc/linux64.h (CC1_SPEC): Likewise.
24431         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
24432         * config/sparc/sparc.h (CC1_SPEC): Likewise.
24433
24434 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24435
24436         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
24437         -mcpu options.
24438         * config/sparc/linux64.h (CC1_SPEC): Likewise.
24439         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
24440         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
24441         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
24442         Likewise.
24443         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
24444
24445 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24446
24447         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
24448
24449 2011-01-14  Mike Stump  <mikestump@comcast.net>
24450
24451         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
24452         * config/fr30/fr30.md: Likweise
24453         (movsi_push): Likewise.
24454         (movsi_pop): Likewise.
24455         (enter_func): Likewise.
24456         * config/moxie/moxie.md (movsi_push): Likewise.
24457         (movsi_pop): Likewise.
24458
24459 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24460
24461         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
24462         %{no_archive} %{exact_version}.
24463         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
24464         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
24465         %{no_archive} %{exact_version}.
24466         * config/mips/openbsd.h (LINK_SPEC): Likewise.
24467         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
24468         * config/mips/vxworks.h: Likewise.
24469
24470 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24471
24472         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
24473
24474 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24475
24476         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
24477         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
24478
24479 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24480
24481         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
24482         -nodefaultlib.
24483
24484 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24485
24486         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
24487         for mcpu not cpu.
24488         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
24489         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
24490         not cpu.
24491         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
24492         Don't handle -shlib.
24493
24494 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24495
24496         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
24497         (CC1_SPEC): Don't handle -profile.
24498
24499 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24500
24501         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
24502         * config/mips/mips.h (CC1_SPEC): Likewise.
24503
24504 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24505
24506         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
24507         * config/mips/mips.h (CC1_SPEC): Likewise.
24508
24509 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24510
24511         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
24512         * config/m32r/linux.h (LINK_SPEC): Likewise.
24513         * config/mips/linux.h (LINK_SPEC): Likewise.
24514         * config/mips/linux64.h (LINK_SPEC): Likewise.
24515         * config/sparc/linux.h (LINK_SPEC): Likewise.
24516         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
24517         LINK_SPEC): Likewise.
24518         * config/xtensa/linux.h (LINK_SPEC): Likewise.
24519
24520 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24521
24522         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
24523         %{version:-v}.
24524         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
24525
24526 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24527
24528         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
24529         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
24530
24531 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24532
24533         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
24534
24535 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24536
24537         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
24538         supports -Bstatic/-Bdynamic.
24539         * configure: Regenerate.
24540
24541 2011-01-14  Jan Hubicka  <jh@suse.cz>
24542             Jack Howarth  <howarth@bromo.med.uc.edu>
24543
24544         PR target/46037
24545         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
24546         when checking debug_info_level. Test write_symbols instead of
24547         debug_hooks->var_location when setting flag_var_tracking_uninit.
24548
24549 2011-01-14  Richard Guenther  <rguenther@suse.de>
24550
24551         PR tree-optimization/47179
24552         * target.def (ref_may_alias_errno): New target hook.
24553         * targhooks.h (default_ref_may_alias_errno): Declare.
24554         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
24555         (default_ref_may_alias_errno): New function.
24556         * target.h (struct ao_ref_s): Declare.
24557         * tree-ssa-alias.c: Include target.h.
24558         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
24559         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
24560         (targhooks.o): Likewise.
24561         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
24562         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
24563
24564 2011-01-14  Richard Guenther  <rguenther@suse.de>
24565
24566         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
24567
24568 2011-01-14  Richard Guenther  <rguenther@suse.de>
24569
24570         PR tree-optimization/47280
24571         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
24572         return CFG changes.
24573         (tree_ssa_forward_propagate_single_use_vars): Deal with
24574         CFG changes from associate_plusminus.
24575
24576 2011-01-14  Richard Guenther  <rguenther@suse.de>
24577
24578         PR middle-end/47281
24579         Revert
24580         2011-01-11  Richard Guenther  <rguenther@suse.de>
24581
24582         PR tree-optimization/46076
24583         * tree-ssa.c (useless_type_conversion_p): Conversions from
24584         unprototyped to empty argument list function types are useless.
24585
24586 2011-01-14  Richard Guenther  <rguenther@suse.de>
24587
24588         PR tree-optimization/47286
24589         * tree-ssa-structalias.c (new_var_info): Register variables are global.
24590
24591 2011-01-14  Martin Jambor  <mjambor@suse.cz>
24592
24593         PR middle-end/46823
24594         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
24595
24596 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
24597
24598         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
24599         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24600         * config/xtensa/xtensa.c (xtensa_libcall_value,
24601         xtensa_function_value_regno_p): New functions.
24602         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24603
24604 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
24605
24606         PR c++/47213
24607         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
24608         PE specific hook.
24609         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
24610         New function prototype.
24611         * config/i386/winnt.c (i386_pe_assemble_visibility):
24612         Warn only if attribute was specified by user.
24613
24614 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
24615
24616         PR target/47251
24617         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
24618         floating point.
24619         (floatunsdidf2_fcfidu): Ditto.
24620
24621 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24622
24623         * config/s390/s390.c (print_operand_address): Replace 'error' with
24624         'output_operand_lossage'.
24625         (print_operand): Likewise.
24626
24627 2011-01-13  Jeff Law  <law@redhat.com>
24628
24629         PR rtl-optimization/39077
24630         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
24631         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
24632         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
24633         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
24634         * gcse.c (prune_insertions_deletions): New function.
24635         (compute_pre_data): Use it.
24636
24637 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
24638
24639         PR debug/PR46973
24640         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
24641         static function.
24642         (prune_unused_types_mark): Use it.
24643
24644 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
24645
24646         PR rtl-optimization/45352
24647         * sel-sched.c: Update copyright years.
24648         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
24649         in the advancing loop when we have issued issue_rate insns.
24650
24651 2011-01-12  Richard Henderson  <rth@redhat.com>
24652
24653         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
24654         (TARGET_MD_ASM_CLOBBERS): New.
24655
24656         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
24657         (TARGET_DELEGITIMIZE_ADDRESS): New.
24658
24659         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
24660         (clzsi2, *bsch): New patterns.
24661
24662         * config/mn10300/mn10300.md (INT): New mode iterator.
24663         (*mov<INT>_clr): New pattern, and peep2 to generate it.
24664
24665         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
24666         flag_split_wide_types.
24667
24668         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
24669         (mn10300_trampoline_init): Rewrite without a template, an immediate
24670         load and a direct branch.
24671         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
24672
24673 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
24674
24675         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
24676         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
24677         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
24678         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
24679
24680 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
24681
24682         PR debug/47209
24683         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
24684         of type.
24685
24686 2011-01-12  Jan Hubicka  <jh@suse.cz>
24687
24688         PR driver/47244
24689         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
24690         (PLUGIN_COND_CLOSE): New macro.
24691         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
24692
24693 2011-01-12  Richard Guenther  <rguenther@suse.de>
24694
24695         PR lto/47259
24696         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
24697         register variables in a MEM_REF.
24698
24699 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
24700
24701         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
24702         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
24703         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
24704         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
24705         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
24706         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
24707         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
24708         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
24709         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
24710         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
24711         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
24712         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
24713         * config/gnu-user.h: New.  Copied from linux.h.
24714         (LINUX_TARGET_STARTFILE_SPEC): Rename to
24715         GNU_USER_TARGET_STARTFILE_SPEC.
24716         (LINUX_TARGET_ENDFILE_SPEC): Rename to
24717         GNU_USER_TARGET_ENDFILE_SPEC.
24718         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
24719         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
24720         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
24721         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
24722         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
24723         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
24724         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
24725         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
24726         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
24727         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
24728         * config/arm/linux-eabi.h (CC1_SPEC): Use
24729         GNU_USER_TARGET_CC1_SPEC.
24730         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
24731         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
24732         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
24733         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
24734         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
24735         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
24736         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
24737         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
24738
24739 2011-01-12  Richard Guenther  <rguenther@suse.de>
24740
24741         PR other/46946
24742         * doc/invoke.texi (ffast-math): Document it is turned on
24743         with -Ofast.
24744
24745 2011-01-12  Jan Hubicka  <jh@suse.cz>
24746
24747         PR tree-optimization/47233
24748         * opts.c (common_handle_option): Disable ipa-reference with profile
24749         feedback.
24750
24751 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
24752
24753         * c-parser.c (c_parser_objc_at_property_declaration): Improved
24754         error message.
24755
24756 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
24757
24758         * c-parser.c (c_lex_one_token): Updated and reindented some
24759         comments.  No changes in code.
24760
24761 2011-01-11  Ian Lance Taylor  <iant@google.com>
24762
24763         * godump.c (go_output_var): Don't output the variable if there is
24764         already a type with the same name.
24765
24766 2011-01-11  Ian Lance Taylor  <iant@google.com>
24767
24768         * godump.c (go_format_type): Don't generate float80.
24769
24770 2011-01-11  Richard Henderson  <rth@redhat.com>
24771
24772         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
24773         declaration.  Rewrite for both speed and size.
24774         (mn10300_address_cost_1): Remove.
24775         (mn10300_register_move_cost): New.
24776         (mn10300_memory_move_cost): New.
24777         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
24778         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
24779         extensions, shifts, BSWAP, CLZ.
24780         (mn10300_wide_const_load_uses_clr): Remove.
24781         (TARGET_REGISTER_MOVE_COST): New.
24782         (TARGET_MEMORY_MOVE_COST): New.
24783         * config/mn10300/mn10300-protos.h: Update.
24784         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
24785
24786         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
24787         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
24788         * config/mn10300/mn10300-protos.h: Update.
24789         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
24790         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
24791         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
24792         (*test_int_bitfield, *test_byte_bitfield): Remove.
24793         (*bit_test, *subreg_bit_test): Remove.
24794         * config/mn10300/predicates.md (const_8bit_operand): Remove.
24795
24796         * config/mn10300/constraints.md ("c"): Rename from "A".
24797         ("A", "D"): New constraint letters.
24798         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
24799         (fmssf4, fnmasf4, fnmssf4): Likewise.
24800
24801         * config/mn10300/mn10300.md (isa): New attribute.
24802         (enabled): New attribute.
24803
24804         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
24805         (abssf2, negsf2): Define only for hardware fp.
24806         (sqrtsf2): Reformat.
24807         (addsf3, subsf3, mulsf3): Merge expander and insn.
24808
24809         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
24810         (DEBUGGER_AUTO_OFFSET): Remove.
24811         (DEBUGGER_ARG_OFFSET): Remove.
24812
24813         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
24814         Emit register stores with the same offsets as the hardware.
24815         (mn10300_store_multiple_operation): Don't check that the register
24816         save offsets are monotonic.
24817         * config/mn10300/mn10300-protos.h: Update.
24818
24819         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
24820
24821         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
24822         in terms of the value on the stack, not the MDR register.
24823
24824 2011-01-11  Jan Hubicka  <jh@suse.cz>
24825
24826         PR lto/45721
24827         PR lto/45375
24828         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
24829         (symbol_alias_set_destroy, symbol_alias_set_contains,
24830         propagate_aliases_backward): Declare.
24831         * lto-streamer-out.c (struct sets): New sturcture.
24832         (trivally_defined_alias): New function.
24833         (output_alias_pair_p): Rewrite.
24834         (output_unreferenced_globals): Fix output of alias pairs.
24835         (produce_symtab): Likewise.
24836         * ipa.c (function_and_variable_visibility): Set weak alias destination
24837         as needed in lto.
24838         * varasm.c (symbol_alias_set_t): Remove.
24839         (symbol_alias_set_destroy): Export.
24840         (propagate_aliases_forward, propagate_aliases_backward): New functions
24841         based on ...
24842         (compute_visible_aliases): ... this one; remove.
24843         (trivially_visible_alias): New
24844         (trivially_defined_alias): New.
24845         (remove_unreachable_alias_pairs): Rewrite.
24846         (finish_aliases_1): Reorganize code checking if alias is defined.
24847         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
24848         in LTO mode.
24849
24850 2011-01-11  Richard Guenther  <rguenther@suse.de>
24851
24852         PR tree-optimization/46076
24853         * tree-ssa.c (useless_type_conversion_p): Conversions from
24854         unprototyped to empty argument list function types are useless.
24855
24856 2011-01-11  Richard Guenther  <rguenther@suse.de>
24857
24858         PR middle-end/45235
24859         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
24860         volatile MEMs as MEM_READONLY_P.
24861
24862 2011-01-11  Richard Guenther  <rguenther@suse.de>
24863
24864         PR tree-optimization/47239
24865         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
24866
24867 2011-01-11  Jeff Law  <law@redhat.com>
24868
24869         PR tree-optimization/47086
24870         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
24871         IVs from statements that might throw.
24872
24873 2011-01-10  Jan Hubicka  <jh@suse.cz>
24874
24875         PR lto/45375
24876         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
24877
24878 2011-01-10  Jan Hubicka  <jh@suse.cz>
24879
24880         PR lto/45375
24881         * profile.c (read_profile_edge_counts): Ignore profile inconistency
24882         when correcting profile.
24883
24884 2011-01-10  Jan Hubicka  <jh@suse.cz>
24885
24886         PR lto/46083
24887         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
24888         DECL_FINI_PRIORITY.
24889         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
24890         Restore DECL_FINI_PRIORITY.
24891
24892 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24893
24894         * doc/gimple.texi: Fix quoting of multi-word return values in
24895         @deftypefn statements.  Ensure presence of return value.  Wrap
24896         overlong @deftypefn lines.
24897         (is_gimple_operand, is_gimple_min_invariant_address): Remove
24898         descriptions of removed functions.
24899         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
24900         of multi-word return value in @deftypefn statement.
24901
24902 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24903
24904         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
24905         (Conditional Expressions, Logical Operators)
24906         (Statement and operand traversals): Do not indent smallexample
24907         code.  Fix duplicate function argument in example.
24908
24909 2011-01-10  Jeff Law  <law@redhat.com>
24910
24911         PR tree-optimization/47141
24912         * ipa-split.c (split_function): Handle case where we are
24913         returning a value and the return block has a virtual operand phi.
24914
24915 2011-01-10  Jan Hubicka  <jh@suse.cz>
24916
24917         PR tree-optimization/47234
24918         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
24919         (pass_feedback_split_functions): Declare.
24920         * passes.c (init_optimization_passes): Add ipa-split as subpass of
24921         tree-profile.
24922         * ipa-split.c (gate_split_functions): Update comments; disable
24923         split-functions for profile_arc_flag and branch_probabilities.
24924         (gate_feedback_split_functions): New function.
24925         (execute_feedback_split_functions): New function.
24926         (pass_feedback_split_functions): New global var.
24927
24928 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
24929
24930         PR lto/46760
24931         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
24932         calling gimple_call_set_cannot_inline.
24933
24934 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
24935
24936         * config/darwin-sections.def: Remove unused section.
24937
24938 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
24939
24940         PR c++/47218
24941         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
24942
24943 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
24944
24945         PR objc/47232
24946         * c-parser.c (c_parser_declaration_or_fndef): Improved
24947         error message.
24948
24949 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
24950
24951         * config/i386/winnt.c (i386_pe_start_function): Make sure
24952         to switch back to function's section.
24953
24954 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
24955
24956         PR gcc/46902
24957         PR testsuite/46912
24958         * plugin.c: Move include of dlfcn.h from here...
24959         * system.h: ... to here.
24960
24961 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24962
24963         * doc/cpp.texi (C++ Named Operators): Fix markup for header
24964         file name.
24965         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
24966         two extra empty pages in PDF output.
24967
24968 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
24969
24970         PR objc/47078
24971         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
24972         for error recovery purposes behave as if it was not specified so
24973         that the default type is usd.
24974
24975 2011-01-07  Jan Hubicka  <jh@suse.cz>
24976
24977         PR tree-optmization/46469
24978         * ipa.c (function_and_variable_visibility): Clear needed flags on
24979         nodes with external decls; handle weakrefs merging correctly.
24980
24981 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
24982
24983         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
24984         not false.
24985
24986 2011-01-07  Jan Hubicka  <jh@suse.cz>
24987
24988         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
24989         and no longer claim that gold is required for linker plugin.
24990         * configure: Regenerate.
24991         * gcc.c (PLUGIN_COND): New macro.
24992         (LINK_COMMAND_SPEC): Use it.
24993         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
24994         * config.in (HAVE_LTO_PLUGIN): New.
24995         * configure.ac (--with-lto-plugin): New parameter; autodetect
24996         HAVE_LTO_PLUGIN.
24997
24998 2011-01-07  Jan Hubicka  <jh@suse.cz>
24999
25000         PR tree-optimization/46367
25001         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
25002         when we can update original.
25003         (cgraph_mark_inline_edge): Sanity check.
25004         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
25005
25006 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25007
25008         * config/spu/spu.h (ASM_COMMENT_START): Define.
25009
25010 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
25011
25012         PR driver/42445
25013         * gcc.c (%>S): New.
25014         (SWITCH_KEEP_FOR_GCC): Likewise.
25015         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
25016         (do_spec_1): Handle "%>".
25017
25018         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
25019
25020 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
25021
25022         PR target/47201
25023         * config/i386/i386.c (ix86_delegitimize_address): If
25024         simplify_gen_subreg fails, return orig_x.
25025
25026         PR bootstrap/47187
25027         * value-prof.c (gimple_stringop_fixed_value): Handle
25028         lhs of the call properly.
25029
25030 2011-01-07  Jan Hubicka  <jh@suse.cz>
25031
25032         PR lto/45375
25033         * lto-opt.c (lto_reissue_options): Set flag_shlib.
25034
25035 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
25036
25037         * target.def (function_switched_text_sections): New hook.
25038         * doc/tm.texi: Regenerated.
25039         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
25040         * final.c (default_function_switched_text_sections): New.
25041         (final_scan_insn): Call function_switched_text_sections when a
25042         mid-function section change occurs.
25043         * output.h (default_function_switched_text_sections): Declare.
25044         * config/darwin-protos.h (darwin_function_switched_text_sections):
25045         Likewise.
25046         * config/darwin.c (darwin_function_switched_text_sections): New.
25047         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
25048
25049 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
25050
25051         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
25052         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
25053         the secondary code fragment when outputting for DWARF == 2.
25054
25055 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
25056
25057         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
25058         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
25059         Remove.
25060         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
25061         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
25062
25063 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
25064
25065         PR debug/46704
25066         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
25067         when it is not empty.
25068
25069 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
25070
25071         Bobcat Enablement
25072         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
25073         (case ${target}): Add btver1.
25074         * config/i386/driver-i386.c (host_detect_local_cpu): Let
25075         -march=native recognize btver1 processors.
25076         * config/i386/i386-c.c (ix86_target_macros_internal): Add
25077         btver1 def_and_undef
25078         * config/i386/i386.c (struct processor_costs btver1_cost): New
25079         btver1 cost table.
25080         (m_BTVER1): New definition.
25081         (m_AMD_MULTIPLE): Includes m_BTVER1.
25082         (initial_ix86_tune_features): Add btver1 tune.
25083         (processor_target_table): Add btver1 entry.
25084         (static const char *const cpu_names): Add btver1 entry.
25085         (software_prefetching_beneficial_p): Add btver1.
25086         (ix86_option_override_internal): Add btver1 instruction sets.
25087         (ix86_issue_rate): Add btver1.
25088         (ix86_adjust_cost): Add btver1.
25089         * config/i386/i386.h (TARGET_BTVER1): New definition.
25090         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
25091         (enum processor_type): Add PROCESSOR_BTVER1.
25092         * config/i386/i386.md (define_attr "cpu"): Add btver1.
25093
25094 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25095
25096         PR target/43309
25097         * config/i386/i386.c (legitimize_tls_address)
25098         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
25099         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
25100         (tls_initial_exec_64_sun): New pattern.
25101
25102 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
25103
25104         * doc/invoke.texi (Overall Options): Improve wording and markup
25105         of the description of -wrapper.
25106
25107 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
25108
25109         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
25110         rdynamic, threads): New Driver options.
25111
25112 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25113
25114         PR target/38118
25115         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
25116         if coming from .tdata.
25117         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
25118
25119 2011-01-06  Jan Hubicka  <jh@suse.cz>
25120
25121         PR lto/47188
25122         * collect2.c (main): Do not enable LTOmode when plugin is active.
25123
25124 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25125
25126         PR other/45915
25127         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
25128         --version output if supported.
25129         * configure: Regenerate.
25130
25131 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
25132
25133         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
25134         Driver options.
25135
25136 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
25137
25138         PR c/47150
25139         * c-convert.c (convert): When converting a complex expression
25140         other than COMPLEX_EXPR to a different complex type, ensure
25141         c_save_expr is called instead of save_expr, unless in_late_binary_op.
25142         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
25143         when converting COMPLEX_TYPE.
25144
25145 2011-01-06  Ira Rosen  <irar@il.ibm.com>
25146
25147         PR tree-optimization/47139
25148         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
25149         only the last reduction value is used outside the loop.  Update
25150         documentation.
25151
25152 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
25153
25154         * config/rtems.opt: New.
25155         * config.gcc (*-*-rtems*): Use rtems.opt.
25156
25157 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
25158
25159         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
25160         processors do not support 3DNow instructions.
25161
25162 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25163
25164         * config/spu/spu.c (spu_option_override): Set parameter
25165         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
25166
25167 2011-01-05  Jan Hubicka  <jh@suse.cz>
25168
25169         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
25170         at the command line.
25171
25172 2011-01-05  Martin Jambor  <mjambor@suse.cz>
25173
25174         PR lto/47162
25175         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
25176         deltas on streamed outgoing edges.
25177         (output_node_opt_summary): Output info for outgoing edges only when
25178         the node is in new parameter set.
25179         (output_cgraph_opt_summary): New parameter set, passed to the two
25180         aforementioned functions.  Update its forward declaration and its
25181         callee too.
25182
25183 2011-01-05  Tom Tromey  <tromey@redhat.com>
25184
25185         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
25186         operator to c_finish_omp_atomic.
25187         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
25188         (build_unary_op): Update.
25189         (build_modify_expr): Update.
25190         (build_asm_expr): Update.
25191
25192 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25193
25194         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
25195         newly inserted insns.
25196         (pad_bb): Likewise.
25197         (spu_emit_branch_hint): Likewise.
25198         (insert_hbrp_for_ilb_runout): Likewise.
25199         (spu_machine_dependent_reorg): Call df_finish_pass after
25200         schedule_insns returns.
25201
25202 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25203
25204         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
25205
25206 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
25207
25208         PR tree-optimization/47005
25209         * tree-sra.c (struct access): Add 'non_addressable' bit.
25210         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
25211         (decide_one_param_reduction): Return 0 if the parameter is passed by
25212         reference and one of the accesses in the group is non_addressable.
25213
25214 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
25215
25216         PR tree-optimization/47056
25217         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
25218         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
25219         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
25220
25221 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
25222
25223         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
25224         initializer.  Skip view conversions from aggregate types.
25225
25226 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
25227
25228         PR bootstrap/47055
25229         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
25230
25231 2011-01-04  Philipp Thomas  <pth@suse.de>
25232
25233         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
25234         obvious typo.
25235
25236 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25237
25238         * function.c (thread_prologue_and_epilogue_insns): Do not crash
25239         on empty epilogue sequences.
25240
25241 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
25242
25243         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
25244         non-static): New Driver options.
25245
25246 2011-01-04  Jie Zhang  <jie@codesourcery.com>
25247
25248         PR driver/47137
25249         * gcc.c (default_compilers[]): Set combinable field to 0
25250         for all assembly languages.
25251
25252 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
25253
25254         * config/mips/loongson3a.md: New file.
25255         * config/mips/mips.md: Include loongson3a.md.
25256         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
25257         TUNE_LOONGSON_3A.
25258
25259 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
25260
25261         PR middle-end/47017
25262         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
25263         instead of convert_memory_address_addr_space on the base expression.
25264
25265 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25266
25267         * config/spu/spu.c (spu_option_override): Update error text
25268         for bad -march= / -mtune= values.
25269
25270 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25271
25272         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
25273         if branch-hint optimization will be performed.
25274
25275 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
25276
25277         PR tree-optimization/47148
25278         * ipa-split.c (split_function): Convert arguments to
25279         DECL_ARG_TYPE if possible.
25280
25281         PR tree-optimization/47155
25282         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
25283         when computing uns.
25284
25285         PR rtl-optimization/47157
25286         * combine.c (try_combine): If undobuf.other_insn becomes
25287         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
25288         and set *new_direct_jump_p too.
25289
25290 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
25291
25292         PR tree-optimization/47021
25293         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
25294
25295 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
25296
25297         * gcc.c (process_command): Update copyright notice dates.
25298         * gcov.c (print_version): Likewise.
25299         * gcov-dump.c (print_version): Likewise.
25300         * mips-tfile.c (main): Likewise.
25301         * mips-tdump.c (main): Likewise.
25302
25303 2011-01-03  Martin Jambor  <mjambor@suse.cz>
25304
25305         PR tree-optimization/46801
25306         * tree-sra.c (type_internals_preclude_sra_p): Check whether
25307         aggregate fields start at byte boundary instead of the bit-field flag.
25308
25309 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
25310
25311         PR driver/47137
25312         * gcc.c (main): Revert revision 168407.
25313
25314 2011-01-03  Martin Jambor  <mjambor@suse.cz>
25315
25316         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
25317
25318 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25319
25320         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
25321         vector optab to expand vector/scalar shift, update gimple to vector.
25322
25323 2011-01-03  Martin Jambor  <mjambor@suse.cz>
25324
25325         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
25326         a thunk.
25327
25328 2011-01-03  Martin Jambor  <mjambor@suse.cz>
25329
25330         PR tree-optimization/46984
25331         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
25332         HOST_WIDE_INT.
25333         (cgraph_create_indirect_edge): Fixed line length.
25334         (cgraph_indirect_call_info): Declare.
25335         (cgraph_make_edge_direct) Update declaration.
25336         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
25337         (cgraph_create_indirect_edge): Use it.
25338         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
25339         callees.
25340         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
25341         the new thunk_delta representation.
25342         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
25343         HOST_WIDE_INT.
25344         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
25345         (ipa_read_indirect_edge_info): Likewise.
25346         * lto-cgraph.c (output_edge_opt_summary): New function.
25347         (output_node_opt_summary): Call it on all outgoing edges.
25348         (input_edge_opt_summary): New function.
25349         (input_node_opt_summary): Call it on all outgoing edges.
25350
25351 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
25352
25353         PR driver/47137
25354         * gcc.c (main): Don't check have_o when settting combine_inputs.
25355
25356 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
25357
25358         * regrename.c: Add general comment describing the pass.
25359         (struct du_head): Remove 'length' field.
25360         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
25361         (regrename_optimize): Do not sort chains.  Rework comments, add others.
25362         Force renaming to the preferred class (if any) in the first pass and do
25363         not consider registers that belong to it in the second pass.
25364         (create_new_chain): Do not set 'length' field.
25365         (scan_rtx_reg): Likewise.
25366
25367 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
25368
25369         PR tree-optimization/47140
25370         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
25371         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
25372         to bit_value_binop.
25373
25374         PR rtl-optimization/47028
25375         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
25376         parm_birth_insn instead of at the beginning of first bb.
25377
25378 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
25379
25380         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
25381         Remove the word "see" before "@pxref".
25382         * doc/rtl.texi: Remove the word "see" before "@pxref".
25383
25384 2011-01-01  Jan Hubicka  <jh@suse.cz>
25385
25386         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
25387         memory.
25388
25389 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
25390
25391         PR target/38662
25392         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
25393
25394 \f
25395 Copyright (C) 2011 Free Software Foundation, Inc.
25396
25397 Copying and distribution of this file, with or without modification,
25398 are permitted in any medium without royalty provided the copyright
25399 notice and this notice are preserved.