OSDN Git Service

803e9c7481d465debf1d981060de045043f02205
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
2             Brian Hackett  <bhackett1024@gmail.com>
3
4         * plugin.def: Add event for finish_decl.
5         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
6         * c-decl.c (finish_decl): Invoke callbacks on above event.
7         * doc/plugins.texi: Document above event.
8
9 2011-08-11  Richard Guenther  <rguenther@suse.de>
10
11         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
12         lookups, make looking through aggregate copies stronger.
13
14 2011-08-11  Richard Henderson  <rth@redhat.com>
15
16         PR bootstrap/50018
17         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
18
19 2011-08-11  Richard Guenther  <rguenther@suse.de>
20
21         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
22         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
23         (vrp_visit_stmt): Likewise.
24
25 2011-08-11  Richard Guenther  <rguenther@suse.de>
26
27         PR middle-end/50040
28         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
29         load of the other piece with TREE_NO_WARNING.
30         * tree-flow.h (warn_uninit): Adjust prototype.
31         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
32         the base variable and the expression that is used separately.
33         Properly query all TREE_NO_WARNING flags.
34         (struct walk_data): Remove.
35         (warn_uninitialized_var): Likewise.
36         (warn_uninitialized_vars): Do not walk gimple pieces but simply
37         look at all SSA uses of the statement.  Handle unused memory
38         separately.
39         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
40
41 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
42
43         * config/rx/rx.md (movsicc): Allow register to register
44         transfers.
45         (*movsicc): Likewise.
46         (*stcc): Restrict this pattern to EQ and NE compares.
47         (*stcc_reg): New pattern.  Works for any comparison but only for
48         register transfers.
49
50 2011-08-11   Diego Novillo  <dnovillo@google.com>
51
52         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
53         Call stream_write_tree instead of output_record_start.
54         (lto_output_ts_binfo_tree_pointers): Likewise.
55
56         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
57         Convert it to a macro.
58         (stream_read_tree): Likewise.
59
60         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
61         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
62
63         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
64         and tree_read_bitfields.
65         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
66         (lto_write_tree): Call it.
67         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
68         * streamer-hooks.h (struct streamer_hooks): Remove fields
69         name, is_streamable and alloc_tree. Update all users.
70         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
71         (lto_materialize_tree): ... here.
72         Handle CALL_EXPR codes.
73         Remove call to lto_streamer_cache_append.
74         * tree-streamer-out.c (lto_output_tree_header): Handle
75         CALL_EXPR nodes.
76         * tree-streamer.h (tree_read_bitfields): Declare.
77
78         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
79         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
80         * tree-streamer.h (stream_read_tree): New.  Replace all calls
81         to lto_input_tree with it.
82         (stream_write_tree): New.  Replace all calls to lto_output_tree,
83         lto_output_tree_ref and lto_output_tree_or_ref with it.
84         * lto-streamer-in.c (lto_read_tree): Inline code from
85         lto_streamer_read_tree.
86         (lto_input_tree): Move from tree-streamer-in.c.
87         * lto-streamer-out.c (lto_output_tree_ref): Make static.
88         Remove handling of NULL values for EXPR.
89         Do not handle EXPRs that are not indexable.
90         (lto_write_tree): Move from tree-streamer-out.c.
91         Inline lto_streamer_write_tree.
92         (lto_output_tree): Move from tree-streamer-out.c.
93         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
94         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
95         (lto_preload_common_nodes): Likewise.
96         Remove assertions and adjustments for nodes
97         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
98         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
99         lto_output_tree and streamer_hooks.read_tree to
100         lto_input_tree.
101         * lto-streamer.h (lto_input_tree): Declare.
102         (lto_output_tree_ref): Remove.
103         * streamer-hooks.h (struct streamer_hooks): Remove fields
104         preload_common_nodes, indexable_with_decls_p,
105         pack_value_fields, unpack_value_fields and output_tree_header.
106         Update all users.
107         * tree-streamer-in.c (lto_materialize_tree): Make extern.
108         (lto_input_tree_pointers): Likewise.
109         (lto_read_tree): Move to lto-streamer-in.c.
110         (lto_input_integer_cst): Make extern.
111         (lto_get_pickled_tree): Likewise.
112         (lto_get_builtin_tree): Likewise.
113         (lto_input_tree): Move to lto-streamer-in.c.
114         * tree-streamer-out.c (pack_value_fields): Make extern.
115         (lto_output_tree_or_ref): Remove.  Replace all callers with
116         calls to stream_write_tree.
117         (lto_output_builtin_tree): Make extern.
118         (lto_streamer_write_tree): Inline into lto_write_tree.
119         (lto_output_tree_pointers): Make extern.
120         (lto_output_tree_header): Likewise.
121         (lto_output_integer_cst): Likewise.
122         (lto_write_tree): Move to lto-streamer-out.c.
123         (lto_output_tree): Likewise.
124         * tree-streamer.c (lto_record_common_node): Move from
125         lto-streamer.c
126         (preload_common_nodes): Likewise.
127         (lto_streamer_cache_create): Call it.
128         * tree-streamer.h: Include streamer-hooks.h.
129         (stream_write_tree): New.
130         (stream_read_tree): New.
131         (lto_input_tree): Remove.
132         (lto_materialize_tree): Declare.
133         (lto_input_tree_pointers): Declare.
134         (lto_get_pickled_tree): Declare.
135         (lto_get_builtin_tree): Declare.
136         (lto_input_integer_cst): Declare.
137         (lto_output_tree_header): Declare.
138         (pack_value_fields): Declare.
139         (lto_output_tree_pointers): Declare.
140         (lto_output_integer_cst): Declare.
141         (lto_output_builtin_tree): Declare.
142
143 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
144
145         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
146         only if producer writes to the register given by regno.
147
148 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
149             Alexander Monakov  <amonakov@ispras.ru>
150
151         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
152         (sched_get_condition_with_rev_uncached): ... this.  Factor out
153         condition caching logic into ...
154         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
155         attempt to use cache for instructions with zero luid.
156         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
157         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
158
159 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
160
161         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
162         get_seqno_for_a_jump.  Update the caller.
163         (get_seqno_by_succs): New.  Use it ...
164         (get_seqno_for_a_jump): ... here to find a seqno if looking at
165         predecessors was not sufficient.
166         (get_seqno_by_preds): Include head in iteration range, exclude insn.
167
168 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
169
170         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
171
172 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
173
174         * sel-sched-ir.h (register_unavailable_p): Declare.
175         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
176         (set_unavailable_target_for_expr): ... here to properly test
177         availability of a register.
178         (speculate_expr): Ditto.
179         * sel-sched.c (substitute_reg_in_expr): Ditto.
180         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
181
182 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
183
184         * sel-sched.c (verify_target_availability): Fix usage of
185         hard_regno_nregs.
186
187 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
188
189         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
190         recognized by cannot_copy_insn_p hook and volatile instructions.
191
192 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
193
194         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
195
196 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
197
198         * doc/md.texi (define_bypass): Say that the instruction names can
199         be filename-style globs.
200         * Makefile.in (FNMATCH_H): Define.
201         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
202         * genattrtab.c: Include fnmatch.h.
203         (bypass_list): Change field name from "insn" to "pattern".
204         (gen_bypass_1): Update accordingly.
205         (process_bypasses): Use fnmatch to check for matches between
206         insn reservations and define_bypasses.
207         * genautomata.c: Include fnmatch.h.
208         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
209         and out_pattern respectively.
210         (gen_bypass, insert_bypass): Update accordingly.
211         (for_each_matching_insn, process_bypass_2, process_bypass_1)
212         (process_bypass): New functions.
213         (process_decls): Use process_bypass.  Update after field name changes.
214
215 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
216
217         PR target/49687
218         * config/avr/avr.md (smulqi3_highpart): New insn.
219         (umulqi3_highpart): New insn.
220         (*subqi3.ashiftrt7): New insn.
221         (smulhi3_highpart): New expander.
222         (umulhi3_highpart): Nex expander.
223         (*smulhi3_highpart_call): New insn.
224         (*umulhi3_highpart_call): New insn.
225         (extend_u): New code attribute.
226         (extend_prefix): Rename code attribute to extend_su.
227         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
228         widening QI/HI multiply.
229
230 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
231
232         PR tree-optimization/50039
233         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
234         that DEF_STMT has a stmt_vec_info.
235
236 2011-08-10  Richard Guenther  <rguenther@suse.de>
237
238         * tree.h (can_trust_pointer_alignment): Remove.
239         * builtins.c (can_trust_pointer_alignment): Remove.
240
241 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
242
243         * c-typeck.c (scalar_to_vector): New function. Try scalar to
244         vector conversion.
245         (stv_conv): New enum for scalar_to_vector return type.
246         (build_binary_op): Adjust.
247         * doc/extend.texi: Description of scalar to vector expansion.
248
249 2011-08-10  Richard Guenther  <rguenther@suse.de>
250
251         * tree.h (get_pointer_alignment): Remove max-align argument.
252         (get_object_alignment): Likewise.
253         * builtins.c (get_object_alignment_1): Adjust.
254         (get_object_alignment): Remove max-align argument.
255         (get_pointer_alignment): Likewise.
256         (expand_builtin_strlen): Adjust.
257         (expand_builtin_memcpy): Likewise.
258         (expand_builtin_mempcpy_args): Likewise.
259         (expand_builtin_strncpy): Likewise.
260         (expand_builtin_memset_args): Likewise.
261         (expand_builtin_memcmp): Likewise.
262         (expand_builtin_strcmp): Likewise.
263         (expand_builtin_strncmp): Likewise.
264         (get_builtin_sync_mem): Likewise.
265         (fold_builtin_memset): Likewise.
266         (fold_builtin_memory_op): Likewise.
267         (expand_builtin_memory_chk): Likewise.
268         * emit-rtl.c (get_mem_align_offset): Likewise.
269         (set_mem_attributes_minus_bitpos): Likewise.
270         * expr.c (expand_assignment): Likewise.
271         (expand_expr_real_1): Likewise.
272         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
273         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
274         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
275         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
276         * value-prof.c (gimple_stringops_transform): Likewise.
277
278 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
279
280         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
281         * doc/tm.texi: Regenerate.
282
283 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
284         
285         PR target/29560
286         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
287         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
288         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
289         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
290         shift target is unused.
291
292 2011-08-10  Richard Guenther  <rguenther@suse.de>
293
294         PR tree-optimization/49937
295         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
296         using get_object_alignment_1.
297
298 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
299
300         * config/i386/i386.c (ix86_emit_i387_round): New function.
301         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
302         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
303         Use ix86_emit_i387_round to expand round function for i387 math.
304         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
305         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
306
307 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
308
309         * config/sync.c: Move to ../libgcc.
310         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
311         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
312         Remove.
313
314 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
315
316         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
317         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
318         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
319         Change 'from' and 'to' arguments type to reg_class_t.
320         (TARGET_REGISTER_MOVE_COST): Define.
321
322 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
323
324         PR target/50026
325         Revert:
326         PR rtl-optimization/49990
327         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
328         ignore classes which can not change mode.
329         (find_costs_and_classes): Ditto.
330
331 2011-08-09  Richard Guenther  <rguenther@suse.de>
332
333         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
334         information for ranges with only negative values.
335         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
336         BIT_AND_EXPR handling to handle ranges with negative values.
337
338 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
339
340        * config/i386/i386.c: Remove traling spaces.
341        * config/i386/sse.md: Likewise.
342        (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
343        (*fma_fmsub_<mode>): Likewise.
344        (*fma_fnmadd_<mode>): Likewise.
345        (*fma_fnmsub_<mode>): Likewise.
346
347 2011-08-09  Nick Clifton  <nickc@redhat.com>
348
349         * config/rx/rx.md: Disable extender peepholes at -O3.
350
351 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
352
353         PR target/49781
354         * config/i386/i386.md (reload_noff_load): New.
355         (reload_noff_store): Ditto.
356         * config/i386/i386.c (ix86_secondary_reload): Use
357         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
358         double-word moves from/to non-offsetable addresses instead of
359         generating XMM temporary.
360
361 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
362
363         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
364
365 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
366
367         PR tree-optimization/50014
368         * tree-vect-loop.c (vectorizable_reduction): Get def type before
369         calling vect_get_vec_def_for_stmt_copy ().
370
371 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
372
373         PR rtl-optimization/49990
374         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
375         ignore classes which can not change mode.
376         (find_costs_and_classes): Ditto.
377
378 2011-08-08  Richard Henderson  <rth@redhat.com>
379
380         PR middle-end/49990
381         * config/i386/i386.c (ix86_expand_prologue): Call
382         for SEH target gen_prologue_use instead of gen_blockage
383         at prologue's end.
384
385 2011-08-08  Martin Jambor  <mjambor@suse.cz>
386
387         PR middle-end/49923
388         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
389         memory alignment.
390
391 2011-08-08   Diego Novillo  <dnovillo@google.com>
392
393         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
394         (DATA_STREAMER_H): New.
395         (GIMPLE_STREAMER_H): New.
396         (TREE_STREAMER_H): New.
397         (STREAMER_HOOKS_H): New.
398         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
399         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
400         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
401         (data-streamer.o): New.
402         (data-streamer-in.o): New.
403         (data-streamer-out.o): New.
404         (gimple-streamer-in.o): New.
405         (gimple-streamer-out.o): New.
406         (streamer-hooks.o): New.
407         (tree-streamer.o): New.
408         (tree-streamer-in.o): New.
409         (tree-streamer-out.o): New.
410         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
411         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
412         GIMPLE_STREAMER_H and TREE_STREAMER_H.
413         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
414         GIMPLE_STREAMER_H and TREE_STREAMER_H.
415         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
416         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
417         (ipa-inline-analysis.o): Likewise.
418         (ipa-pure-const.o): Likewise.
419         * data-streamer-in.c: New.
420         * data-streamer-out.c: New.
421         * data-streamer.c: New.
422         * data-streamer.h: New.
423         * gimple-streamer-in.c: New.
424         * gimple-streamer-out.c: New.
425         * gimple-streamer.h: New.
426         * ipa-inline-analysis.c: Include data-streamer.h.
427         * ipa-prop.c: Include data-streamer.h.
428         * ipa-pure-const.c: Include data-streamer.h.
429         * lto-cgraph.c: Include data-streamer.h.
430         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
431         (lto_input_widest_uint_uleb128): Likewise.
432         (lto_input_sleb128): Likewise.
433         (bp_unpack_var_len_unsigned): Likewise.
434         (bp_unpack_var_len_int): Likewise.
435         * lto-section-out.c (lto_output_uleb128_stream): Move to
436         data-streamer-out.c.
437         (lto_output_widest_uint_uleb128_stream): Likewise.
438         (lto_output_sleb128_stream): Likewise.
439         (bp_pack_var_len_unsigned): Likewise.
440         (bp_pack_var_len_int): Likewise.
441         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
442         (struct string_slot): Remove.  Update all users.
443         (lto_tag_check_set): Make extern.
444         (lto_tag_check_range): Move to lto-streamer.h.
445         (lto_tag_check): Likewise.
446         (hash_string_slot_node): Remove.  Update all users.
447         (eq_string_slot_node): Remove.  Update all users.
448         (string_for_index): Move to data-streamer-in.c
449         (input_string_internal): Likewise.
450         (input_string_cst): Move to tree-streamer-in.c.
451         (input_identifier): Likewise.
452         (lto_input_string): Move to data-streamer-in.c
453         (input_record_start): Move to data-streamer.h
454         (canon_file_name): Use new definition of struct string_slot
455         from data-streamer.h.  Set S_SLOT.LEN.
456         (lto_input_location): Make extern.
457         (lto_input_chain): Move to tree-streamer-in.c.
458         (lto_init_eh): Make extern.
459         (input_phi): Move to gimple-streamer-in.c.
460         (input_gimple_stmt): Likewise.
461         (input_bb): Likewise.
462         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
463         (unpack_ts_real_cst_value_fields): Likewise.
464         (unpack_ts_fixed_cst_value_fields): Likewise.
465         (unpack_ts_decl_common_value_fields): Likewise.
466         (unpack_ts_decl_wrtl_value_fields): Likewise.
467         (unpack_ts_decl_with_vis_value_fields): Likewise.
468         (unpack_ts_function_decl_value_fields): Likewise.
469         (unpack_ts_type_common_value_fields): Likewise.
470         (unpack_ts_block_value_fields): Likewise.
471         (unpack_ts_translation_unit_decl_value_fields): Likewise.
472         (unpack_value_fields): Likewise.
473         (lto_materialize_tree): Likewise.
474         (lto_input_ts_common_tree_pointers): Likewise.
475         (lto_input_ts_vector_tree_pointers): Likewise.
476         (lto_input_ts_complex_tree_pointers): Likewise.
477         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
478         (lto_input_ts_decl_common_tree_pointers): Likewise.
479         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
480         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
481         (lto_input_ts_field_decl_tree_pointers): Likewise.
482         (lto_input_ts_function_decl_tree_pointers): Likewise.
483         (lto_input_ts_type_common_tree_pointers): Likewise.
484         (lto_input_ts_type_non_common_tree_pointers): Likewise.
485         (lto_input_ts_list_tree_pointers): Likewise.
486         (lto_input_ts_vec_tree_pointers): Likewise.
487         (lto_input_ts_exp_tree_pointers): Likewise.
488         (lto_input_ts_block_tree_pointers): Likewise.
489         (lto_input_ts_binfo_tree_pointers): Likewise.
490         (lto_input_ts_constructor_tree_pointers): Likewise.
491         (lto_input_ts_target_option): Likewise.
492         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
493         (lto_input_tree_pointers): Likewise.
494         (lto_get_pickled_tree): Likewise.
495         (lto_get_builtin_tree): Likewise.
496         (lto_read_tree): Likewise.
497         (lto_input_integer_cst): Likewise.
498         (lto_input_tree): Likewise.
499         * lto-streamer-out.c: Include data-streamer.h,
500         gimple-streamer.h and streamer-hooks.h.
501         (struct string_slot): Move to data-streamer.h.
502         (hash_string_slot_node): Likewise.
503         (eq_string_slot_node): Likewise.
504         (lto_string_index): Move to data-streamer-out.c.
505         (lto_output_string_with_length): Likewise.
506         (lto_output_string): Likewise.
507         (output_string_cst): Move to tree-streamer-out.c.
508         (output_identifier): Likewise.
509         (output_zero): Move to data-streamer-out.c
510         (output_uleb128): Likewise.
511         (output_sleb128): Likewise.
512         (output_record_start): Move to data-streamer.h
513         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
514         (pack_ts_real_cst_value_fields): Likewise.
515         (pack_ts_fixed_cst_value_fields): Likewise.
516         (pack_ts_decl_common_value_fields): Likewise.
517         (pack_ts_decl_wrtl_value_fields): Likewise.
518         (pack_ts_decl_with_vis_value_fields): Likewise.
519         (pack_ts_function_decl_value_fields): Likewise.
520         (pack_ts_type_common_value_fields): Likewise.
521         (pack_ts_block_value_fields): Likewise.
522         (pack_ts_translation_unit_decl_value_fields): Likewise.
523         (pack_value_fields): Likewise.
524         (lto_output_chain): Likewise.
525         (lto_output_ts_common_tree_pointers): Likewise.
526         (lto_output_ts_vector_tree_pointers): Likewise.
527         (lto_output_ts_complex_tree_pointers): Likewise.
528         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
529         (lto_output_ts_decl_common_tree_pointers): Likewise.
530         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
531         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
532         (lto_output_ts_field_decl_tree_pointers): Likewise.
533         (lto_output_ts_function_decl_tree_pointers): Likewise.
534         (lto_output_ts_type_common_tree_pointers): Likewise.
535         (lto_output_ts_type_non_common_tree_pointers): Likewise.
536         (lto_output_ts_list_tree_pointers): Likewise.
537         (lto_output_ts_vec_tree_pointers): Likewise.
538         (lto_output_ts_exp_tree_pointers): Likewise.
539         (lto_output_ts_block_tree_pointers): Likewise.
540         (lto_output_ts_binfo_tree_pointers): Likewise.
541         (lto_output_ts_constructor_tree_pointers): Likewise.
542         (lto_output_ts_target_option): Likewise.
543         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
544         (lto_output_tree_pointers): Likewise.
545         (lto_output_tree_header): Likewise.
546         (lto_output_builtin_tree): Likewise.
547         (lto_write_tree): Likewise.
548         (lto_output_integer_cst): Likewise.
549         (lto_output_tree): Likewise.
550         (output_phi): Move to gimple-streamer-out.c.
551         (output_gimple_stmt): Likewise.
552         (output_bb): Likewise.
553         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
554         (streamer_hooks): Move to streamer-hooks.c.
555         (check_handled_ts_structures): Move to tree-streamer.c
556         (lto_streamer_cache_add_to_node_array): Likewise.
557         (lto_streamer_cache_insert_1): Likewise.
558         (lto_streamer_cache_insert): Likewise.
559         (lto_streamer_cache_insert_at): Likewise.
560         (lto_streamer_cache_append): Likewise.
561         (lto_streamer_cache_lookup): Likewise.
562         (lto_streamer_cache_get): Likewise.
563         (lto_record_common_node): Likewise.
564         (lto_preload_common_nodes): Likewise.
565         (lto_streamer_cache_create): Likewise.
566         (lto_streamer_cache_delete): Likewise.
567         (streamer_hooks_init): Move to streamer-hooks.c.
568         * lto-streamer.h: Include diagnostic.h
569         (struct output_block, struct lto_input_block,
570         struct data_in, struct bitpack_d): Remove forward declarations.
571         (struct bitpack_d): Move to data-streamer.h.
572         (struct lto_streamer_cache_d): Move to tree-streamer.h.
573         (struct streamer_hooks): Move to streamer-hooks.h.
574         (bp_pack_var_len_unsigned): Move to data-streamer.h.
575         (bp_pack_var_len_int): Likewise.
576         (bp_unpack_var_len_unsigned): Likewise.
577         (bp_unpack_var_len_int): Likewise.
578         (lto_input_location): Declare.
579         (lto_tag_check_set): Declare.
580         (lto_init_eh): Declare.
581         (lto_output_tree_ref): Declare.
582         (lto_output_location): Declare.
583         (bitpack_create): Move to data-streamer.h.
584         (bp_pack_value): Likewise.
585         (lto_output_bitpack): Likewise.
586         (lto_input_bitpack): Likewise.
587         (bp_unpack_value): Likewise.
588         (lto_output_1_stream): Likewise.
589         (lto_input_1_unsigned): Likewise.
590         (lto_output_int_in_range): Likewise.
591         (lto_input_int_in_range): Likewise.
592         (bp_pack_int_in_range): Likewise.
593         (bp_unpack_int_in_range): Likewise.
594         (lto_output_enum): Likewise.
595         (lto_input_enum): Likewise.
596         (bp_pack_enum): Likewise.
597         (bp_unpack_enum): Likewise.
598         * streamer-hooks.c: New.
599         * streamer-hooks.h: New.
600         * tree-streamer-in.c: New.
601         * tree-streamer-out.c: New.
602         * tree-streamer.c: New.
603         * tree-streamer.h: New.
604
605 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
606
607         * gthr-posix95.h: Remove.
608         * gthr.h [_PTHREADS95]: Remove.
609         * configure.ac (enable_threads): Remove posix95.
610         * configure: Regenerate.
611         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
612
613 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
614
615         PR target/49781
616         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
617         SImode addresses.
618         (ix86_print_operand_address): Handle zero-extended addresses.
619         (memory_address_length): Add length of addr32 prefix for
620         zero-extended addresses.
621         (ix86_secondary_reload): Handle moves to/from double-word general
622         registers from/to zero-extended addresses.
623         * config/i386/predicates.md (lea_address_operand): Reject
624         zero-extended operands.
625
626 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
627
628         PR other/48007
629         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
630
631         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
632         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
633
634         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
635         (_Unwind_Context_Reg_Val): Likewise.
636         (_Unwind_Get_Unwind_Word): Likewise.
637         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
638         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
639         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
640         for EXTENDED_CONTEXT_BIT.
641         (__frame_state_for): Likewise.
642         (uw_init_context_1): Likewise.
643         (_Unwind_GetGR): Updated.
644         (_Unwind_SetGR): Likewise.
645         (_Unwind_GetGRPtr): Likewise.
646         (_Unwind_SetGRPtr): Likewise.
647         (_Unwind_SetGRValue): Likewise.
648         (_Unwind_GRByValue): Likewise.
649         (uw_install_context_1): Likewise.
650
651         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
652         ASSUME_EXTENDED_UNWIND_CONTEXT.
653         * doc/tm.texi: Regenerated.
654
655 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
656
657         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
658
659 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
660
661         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
662         Linux/GNU-specific.
663         (DEC Alpha Options, -mtune): Likewise.
664         (MIPS Options, -march): native is supported on IRIX.
665
666 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
667
668         * config/sparc/driver-sparc.c: New file.
669         * config/sparc/x-sparc: New file.
670         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
671         * config/sparc/sparc.opt (native): New value for enum processor_type.
672         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
673         * config/sparc/sparc.c (sparc_option_override): Abort if
674         PROCESSOR_NATIVE gets here.
675         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
676         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
677         DRIVER_SELF_SPECS): Define.
678         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
679         (SPARC Options, -mtune): Likewise.
680         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
681         Substitute result.
682         * configure: Regenerate.
683         * Makefile.in (EXTRA_GCC_LIBS): Set.
684         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
685         (cpp$(exeext)): Likewise.
686
687 2011-08-08  Richard Guenther  <rguenther@suse.de>
688
689         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
690         split out from ...
691         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
692         by composition.
693
694 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
695
696         PR tree-optimization/50005
697         * ipa-inline-analysis (remap_predicate): Add cast to
698         silence signed/unsigned comparison warning.
699
700 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
701
702         * modulo-sched.c (get_sched_window): Use a table for the debug output.
703         Print the current ii.
704         (sms_schedule_by_order): Reduce whitespace in dump line.
705
706 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
707
708         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
709         and one loop for successors.  Fix upper bound of memory range.
710
711 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
712
713         PR target/50001
714         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
715         (TARGET_INSTANTIATE_DECLS): New define.
716
717 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
718             Mikael Morin   <mikael.morin@sfr.fr>
719
720         * Makefile.in (INCLUDES_FOR_TARGET): New.
721         (LIBGCC2_CFLAGS): Use it.
722         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
723
724 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
725
726         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
727         frame->save_regs_using_mov calculation.
728
729 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
730
731         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
732         * config/i386/sse.md (castmode): New mode attribute.
733         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
734         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
735
736 2011-08-05  Jan Hubicka  <jh@suse.cz>
737
738         PR middle-end/49494
739         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
740
741 2011-08-05  Jan Hubicka  <jh@suse.cz>
742
743         PR middle-end/49500
744         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
745         handle aliases.
746         (create_emultls_var):New function.
747         (ipa_lower_emutls): Handle aliases correctly.
748
749 2011-08-05  Jan Hubicka  <jh@suse.cz>
750
751         PR middle-end/49735
752         * ipa-inline.c (recursive_inlining): Look through aliases.
753
754 2011-08-05  Jason Merrill  <jason@redhat.com>
755
756         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
757         declarations to beginning of function.
758
759 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
760
761         PR rtl-optimization/49900
762         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
763         ensure basic blocks stay in the same order.
764
765 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
766
767         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
768         store_bit_field.
769         (s390_expand_atomic): Same.
770
771 2011-08-05  Richard Henderson  <rth@redhat.com>
772
773         PR rtl-opt/49977
774         * dwarf2cfi.c (scan_insn_after): Split out of ...
775         (scan_trace): ... here.  Correctly place notes wrt sequences.
776
777 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
778             Richard Henderson  <rth@redhat.com>
779
780         PR rtl-opt/49982
781         * expr.c (fixup_args_size_notes): Look through no-op moves.
782
783 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
784
785         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
786         of "m" for operand 0.  Add type and mode attribute.
787         (*pushxf_nointeger"): Use "<" constraint for operand 0.
788         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
789         constraint instead of "o" for opreand 1.
790         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
791         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
792         operand 0, alternative 4.
793         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
794
795 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
796
797         * config/i386/predicates.md (lea_address_operand): Rename from
798         no_seg_address_operand.
799         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
800         (*lea_1_zext): Ditto.
801         (*lea_2): Ditto.
802         (*lea_2_zext): Ditto.
803
804 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
805
806         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
807         parts.base and parts.index.
808         * config/i386/predicates.md (aligned_operand): Ditto.
809         (cmpxchg8b_pic_memory_operand): Ditto.
810
811 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
812
813         * config/soft-fp: Move to ../libgcc.
814         * Makefile.in (SFP_MACHINE): Remove.
815         (libgcc-support): Remove $(SFP_MACHINE) dependency.
816         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
817         * config/arm/t-arm-softfp: Move to
818         ../libgcc/config/arm/t-softfp.
819         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
820         * config/c6x/t-c6x-softfp: Remove.
821         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
822         * config/i386/t-fprules-softfp: Move to
823         ../libgcc/config/t-softfp-tf.
824         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
825         * config/ia64/t-fprules-softfp: Remove.
826         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
827         * config/lm32/t-fprules-softfp: Remove.
828         * config/moxie/sfp-machine.h: Remove.
829         * config/moxie/t-moxie-softfp: Remove.
830         * config/rs6000/darwin-ldouble-format: Move to
831         ../libgcc/config/rs6000/ibm-ldouble-format.
832         * config/rs6000/darwin-ldouble.c: Move to
833         ../libgcc/config/rs6000/ibm-ldouble.c
834         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
835         * config/rs6000/libgcc-ppc64.ver: Likewise.
836         * config/rs6000/sfp-machine.h: Likewise.
837         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
838         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
839         (LIB2FUNCS_EXTRA): Remove.
840         (TARGET_LIBGCC2_CFLAGS): Remove.
841         * config/rs6000/t-aix52: Likewise
842         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
843         $(srcdir)/config/rs6000/darwin-ldouble.c.
844         (SHLIB_MAPFILES): Remove.
845         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
846         $(srcdir)/config/rs6000/darwin-ldouble.c.
847         * config/rs6000/t-fprules-softfp: Move to
848         ../libgcc/config/t-softfp-sfdf.
849         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
850         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
851         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
852         $(srcdir)/config/rs6000/darwin-ldouble.c.
853         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
854         * config/score/t-score-softfp: Remove.
855         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
856         soft-fp/t-softfp from tmake_file.
857         (arm*-*-uclinux*): Likewise.
858         (arm*-*-ecos-elf): Likewise.
859         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
860         (arm*-*-rtems*): Likewise.
861         (arm*-*-elf): Likewise.
862         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
863         tmake_file.
864         (moxie-*-uclinux*): Likewise.
865         (moxie-*-rtems*): Likewise.
866         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
867         tmake_file.
868         (lm32-*-rtems*): Likewise.
869         (lm32-*-uclinux*): Likewise.
870         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
871         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
872         (powerpc-*-linux*, powerpc64-*-linux*): Remove
873         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
874         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
875         tmake_file.
876         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
877         tmake_file.
878         (tic6x-*-uclinux): Likewise.
879         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
880         soft-fp/t-softfp from tmake_file.
881         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
882         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
883         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
884         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
885         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
886
887 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
888
889         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
890         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
891         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
892         TPBIT, TPBIT_FUNCS.
893         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
894         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
895         Remove.
896         * config/arm/t-vxworks: Likewise.
897         * config/arm/t-wince-pe: Likewise.
898         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
899         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
900         * config/bfin/t-bfin-elf: Likewise.
901         * config/bfin/t-bfin-linux: Likewise.
902         * config/bfin/t-bfin-uclinux: Likewise.
903         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
904         Remove.
905         * config/fr30/t-fr30: Likewise.
906         * config/frv/t-frv: Likewise.
907         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
908         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
909         * config/m32c/t-m32c: Likewise.
910         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
911         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
912         * config/mcore/t-mcore: Likewise.
913         * config/mep/t-mep: Likewise.
914         * config/microblaze/t-microblaze: Likewise.
915         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
916         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
917         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
918         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
919         * config/mn10300/t-linux: Remove.
920         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
921         * config/pdp11/t-pdp11: Likewise.
922         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
923         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
924         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
925         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
926         * config/rs6000/t-aix52: Likewise.
927         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
928         $(srcdir)/config/rs6000/ppc64-fp.c.
929         * config/rs6000/t-fprules-fpbit: Remove.
930         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
931         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
932         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
933         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
934         * config/sparc/t-elf: Likewise.
935         * config/sparc/t-leon: Likewise.
936         * config/sparc/t-leon3: Likewise.
937         * config/spu/t-spu-elf: Likewise.
938         (DPBIT_FUNCS): Remove.
939         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
940         * config/v850/t-v850: Likewise.
941         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
942         (avr-*-*): Likewise.
943         (h8300-*-rtems*): Set libgcc_tm_file.
944         (h8300-*-elf*): Likewise.
945         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
946         tmake_file.
947         (powerpc-*-eabisim*): Likewise.
948         (powerpc-*-elf*): Likewise.
949         (powerpc-*-eabialtivec*): Likewise.
950         (powerpc-xilinx-eabi*): Likewise.
951         (powerpc-*-eabi*): Likewise.
952         (powerpc-*-rtems*): Likewise.
953         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
954         (powerpcle-*-elf*): Likewise.
955         (powerpcle-*-eabisim*): Likewise.
956         (powerpcle-*-eabi*): Likewise.
957         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
958         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
959         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
960         Remove.
961
962 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
963
964         * Makefile.in (UNWIND_H): Remove.
965         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
966         ../libgcc/Makefile.in.
967         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
968         (LIBUNWINDDEP): Remove.
969         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
970         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
971         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
972         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
973         Don't copy $(UNWIND_H).
974         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
975         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
976         * aclocal.m4: Regenerate.
977         * configure: Regenerate.
978         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
979         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
980         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
981         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
982         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
983         * config/arm/libunwind.S, config/arm/pr-support.c,
984         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
985         ../libgcc/config/arm.
986         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
987         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
988         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
989         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
990         ($(T)frvend$(objext)): Likewise.
991         * config/ia64/t-glibc (LIB2ADDEH): Remove.
992         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
993         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
994         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
995         ../libgcc/config/ia64.
996         * config/ia64/t-hpux (LIB2ADDEH): Remove.
997         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
998         * config/ia64/t-vms (LIB2ADDEH): Remove.
999         * config/ia64/vms.h (UNW_IVMS_MODE,
1000         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
1001         * config/picochip/t-picochip (LIB2ADDEH): Remove.
1002         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
1003         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
1004         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
1005         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
1006         $(srcdir)/../libgcc to refer to unwinder sources.
1007         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
1008         * config/t-darwin (LIB2ADDEH): Remove.
1009         * config/t-freebsd (LIB2ADDEH): Remove.
1010         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
1011         * config/t-libunwind-elf: Move to ../libgcc/config.
1012         * config/t-linux (LIB2ADDEH): Remove.
1013         * config/t-sol2 (LIB2ADDEH): Remove.
1014         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
1015         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
1016
1017 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
1018
1019         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
1020
1021         * doc/invoke.texi: Document core-avx-i.
1022
1023 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1024
1025         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
1026
1027 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
1028
1029         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
1030         result of multiple results reduction when extracting the final
1031         value using scalar code.
1032
1033 2011-08-05  Richard Guenther  <rguenther@suse.de>
1034
1035         PR tree-optimization/49984
1036         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
1037
1038 2011-08-05  Richard Guenther  <rguenther@suse.de>
1039
1040         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
1041         return true for constant integer ranges.
1042         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
1043         BIT_IOR_EXPR handling.
1044
1045 2011-08-04  Kai Tietz  <ktietz@redhat.com>
1046
1047         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
1048         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
1049
1050 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
1051
1052         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
1053         pattern def statement, and its access macro.
1054         (NUM_PATTERNS): Set to 5.
1055         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1056         pattern def statement.
1057         (vect_transform_loop): Likewise.
1058         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
1059         function vect_recog_over_widening_pattern ().
1060         (vect_operation_fits_smaller_type): New function.
1061         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
1062         Likewise.
1063         (vect_pattern_recog_1): Move the code that marks pattern
1064         statements to vect_mark_pattern_stmts (), and call it.  Update
1065         documentation.
1066         * tree-vect-stmts.c (vect_supportable_shift): New function.
1067         (vect_analyze_stmt): Handle pattern def statement.
1068         (new_stmt_vec_info): Initialize pattern def statement.
1069
1070 2011-08-04  Richard Henderson  <rth@redhat.com>
1071
1072         PR target/49964
1073         * config/i386/i386.c (ix86_expand_call): Don't create nested
1074         PARALLELs for TARGET_VZEROUPPER.
1075         (ix86_split_call_vzeroupper): Fix extraction of the original call.
1076         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
1077         recognize nested PARALLELs.
1078         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
1079         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
1080         *sibcall_value_pop_vzeroupper): Likewise.
1081
1082 2011-08-04  Richard Henderson  <rth@redhat.com>
1083
1084         PR middle-end/49968
1085         * calls.c (expand_call): Use fixup_args_size_notes for
1086         emit_stack_restore.
1087         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
1088         in non-standard modes.
1089
1090 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
1091
1092         * gcc.c (self_spec): New variable.
1093         (static_specs): Add self_spec.
1094         (main): Call do_self_spec on "self_spec" specs after reading
1095         user specs files.  Move compare_debug handling right after that.
1096
1097 2011-08-04  Richard Guenther  <rguenther@suse.de>
1098
1099         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
1100         (value_range_nonnegative_p): New function.
1101         (ssa_name_nonnegative_p): Use it.
1102         (value_range_constant_singleton): New function.
1103         (op_with_constant_singleton_value_range): Use it.
1104         (extract_range_from_binary_expr_1): New function, split out from ...
1105         (extract_range_from_binary_expr): ... this.  Remove fallback
1106         constant folding done here.
1107
1108 2011-08-04  Richard Guenther  <rguenther@suse.de>
1109
1110         PR tree-optimization/49806
1111         * tree-vrp.c (op_with_boolean_value_range_p): New function.
1112         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
1113         a new statement for a final conversion to bool.
1114
1115 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
1116
1117         * gengtype-state.c: Include "bconfig.h" if
1118         GENERATOR_FILE is defined, "config.h" otherwise.
1119         * gengtype.c: Likewise.
1120         * gengtype-lex.l: Likewise.
1121         * gengtype-parse.c: Likewise.
1122         * Makefile.in (gengtype-lex.o-warn): New variable.
1123         (plugin_resourcesdir): Likewise.
1124         (plugin_bindir): Likewise.
1125         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
1126         (MOSTLYCLEANFILES): Add gengtype$(exeext).
1127         (native): Depend on gengtype$(exeext) is $enable_plugin
1128         is set to "yes".
1129         (gtype.state): Depend on s-gtype. Use temporary file.
1130         (gengtype-lex.o): New rule.
1131         (gengtype-parse.o): Likewise.
1132         (gengtype-state.o): Likewise.
1133         (gengtype$(exeext)): Likewise.
1134         (install-gengtype): Likewise.
1135         (gengtype.o): Likewise.
1136         (build/gengtype.o): Depend on version.h.
1137         (build/gengtype-state): Depend on double-int.h, version.h,
1138         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
1139         (install-plugin): Depend on install-gengtype.
1140
1141 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
1142
1143         PR middle-end/49905
1144         * tree.h (init_attributes): New prototype.
1145         * attribs.c (init_attributes): No longer static.
1146
1147 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1148
1149         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
1150         maybe_suffix.
1151
1152 2011-08-03   David Li  <davidxl@google.com>
1153
1154         * tree-optimize.c (execute_fixup_cfg): Fix up entry
1155         outgoing edge counts after inlining.
1156
1157 2011-08-03   David Li  <davidxl@google.com>
1158
1159         * profile.c (compute_branch_probabilities): Compute
1160         function frequency after profile annotation.
1161
1162 2011-08-04  Alan Modra  <amodra@gmail.com>
1163
1164         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
1165         use_backchain_to_restore_sp initialisation.
1166         (rs6000_legitimate_offset_address_p): Simplify offset test.
1167
1168 2011-08-03  Richard Henderson  <rth@redhat.com>
1169
1170         * config/spu/spu.md: Use define_c_enum instead of define_constants.
1171         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
1172         (UNSPECV_NOP): New.
1173
1174 2011-08-03  Richard Henderson  <rth@redhat.com>
1175
1176         PR target/34888
1177         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
1178
1179 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
1180
1181         PR tree-optimization/49948
1182         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
1183
1184 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
1185
1186         * config/m32c/m32c.c (class_sizes): Remove.
1187         (reduce_class): Change arguments and return type to reg_class_t.
1188         Change type cc var to HARD_REG_SET. Change type best var to
1189         reg_class_t. Change type best_size var to unsigned int. Remove
1190         initialization class_sizes var. Use reg_class_size array instead
1191         of class_sizes. Use reg_class_contents array instead
1192         of class_contents.
1193
1194 2011-08-03  Richard Guenther  <rguenther@suse.de>
1195
1196         PR middle-end/49958
1197         * fold-const.c (fold_binary_loc): Only associate
1198         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
1199         overflow wraps.
1200
1201 2011-08-03  Alan Modra  <amodra@gmail.com>
1202
1203         PR rtl-optimization/49941
1204         * jump.c (mark_jump_label): Comment.
1205         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
1206         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
1207         (mark_used_flags): Don't mark RETURN.
1208
1209 2011-08-03  Richard Guenther  <rguenther@suse.de>
1210
1211         PR tree-optimization/49938
1212         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
1213         deal with a POLYNOMIAL_CHREC.
1214
1215 2011-08-03  Revital Eres  <revital.eres@linaro.org>
1216
1217         * modulo-sched.c (calculate_stage_count,
1218         calculate_must_precede_follow, get_sched_window,
1219         try_scheduling_node_in_cycle, remove_node_from_ps): Add
1220         declaration.
1221         (update_node_sched_params, set_must_precede_follow, optimize_sc):
1222         New functions.
1223         (reset_sched_times): Call update_node_sched_params.
1224         (sms_schedule): Call optimize_sc.
1225         (get_sched_window): Change function arguments.
1226         (sms_schedule_by_order): Update call to get_sched_window.
1227         Call set_must_precede_follow.
1228         (calculate_stage_count): Add function argument.
1229
1230 2011-08-02  Richard Henderson  <rth@redhat.com>
1231
1232         PR target/49864
1233         PR target/49879
1234         * reg-notes.def (REG_ARGS_SIZE): New.
1235         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
1236         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
1237         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
1238         different stack levels.
1239         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
1240         (maybe_move_args_size_note): New.
1241         (combine_stack_adjustments_for_block): Use it.
1242         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
1243         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
1244         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
1245         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
1246         (cur_cfa): New.
1247         (queued_args_size): Remove.
1248         (add_cfi_args_size): Assert size is non-negative.
1249         (stack_adjust_offset, dwarf2out_args_size): Remove.
1250         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
1251         (notice_args_size, notice_eh_throw): New.
1252         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
1253         (dwarf2out_frame_debug_adjust_cfa): Likewise.
1254         (dwarf2out_frame_debug_cfa_offset): Likewise.
1255         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
1256         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
1257         (change_cfi_row): Don't emit args_size.
1258         (maybe_record_trace_start_abnormal): Split out from ...
1259         (maybe_record_trace_start): Here.  Set args_size_undefined.
1260         (create_trace_edges): Update to match.
1261         (scan_trace): Handle REG_ARGS_SIZE.
1262         (connect_traces): Connect args_size between EH insns.
1263         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
1264         * explow.c (suppress_reg_args_size): New.
1265         (adjust_stack_1): Split out from ...
1266         (adjust_stack): ... here.
1267         (anti_adjust_stack): Use it.
1268         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
1269         * expr.c (mem_autoinc_base): New.
1270         (fixup_args_size_notes): New.
1271         (emit_single_push_insn_1): Rename from emit_single_push_insn.
1272         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
1273         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
1274         * reload1.c (reload_as_needed): Likewise.
1275         * rtl.h (fixup_args_size_notes): Declare.
1276
1277 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
1278
1279         PR bootstrap/49914
1280         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
1281         of abs.
1282         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1283         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
1284
1285 2011-08-02  Richard Henderson  <rth@redhat.com>
1286
1287         * config/h8300/h8300.c (push, pop): Return the insn.
1288         (h8300_swap_into_er6): Generate correct unwind info.
1289         (h8300_swap_out_of_er6): Likewise.
1290         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
1291         complex cfa expression.
1292         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
1293
1294 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
1295
1296         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1297
1298 2011-08-02  Richard Henderson  <rth@redhat.com>
1299
1300         PR target/49878
1301         * config/h8300/h8300.c (h8300_move_ok): New.
1302         * config/h8300/h8300-protos.h: Declare it.
1303         * config/h8300/h8300.md (P): New mode iterator.
1304         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
1305         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
1306         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
1307         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
1308         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
1309         and pushqi1_h8300hs_normal; use PRE_MODIFY and
1310         register_no_sp_elim_operand.
1311         (*pushhi1_h8300hs_<P>): Similarly.
1312         (pushqi1, pushhi1, pushhi1_h8300): Remove.
1313         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
1314
1315 2011-08-02  Richard Henderson  <rth@redhat.com>
1316
1317         PR target/49881
1318         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
1319
1320 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
1321
1322         * c-parser.c (enum c_parser_prec): New enum, moved from within
1323         c_parser_binary_expression.
1324         (c_parser_binary_expression): Add PREC argument.  Stop parsing
1325         if operator has lower or equal precedence than PREC.
1326         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
1327         callers.
1328         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
1329         Adjust c_finish_omp_atomic caller.
1330         (c_parser_omp_taskyield): New function.
1331         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
1332         (c_parser_omp_clause_name): Handle final and mergeable clauses.
1333         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
1334         functions.
1335         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
1336         and PRAGMA_OMP_CLAUSE_MERGEABLE.
1337         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
1338         (c_parser_omp_clause_reduction): Handle min and max.
1339         * c-typeck.c (c_finish_omp_clauses): Don't complain about
1340         const qualified predetermined vars in firstprivate clause.
1341         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1342         Handle MIN_EXPR and MAX_EXPR.
1343         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
1344         and OMP_CLAUSE_MERGEABLE.
1345         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
1346         and OMP_ATOMIC_CAPTURE_NEW.
1347         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
1348         OMP_CLAUSE_MERGEABLE.
1349         (omp_clause_code_name): Likewise.
1350         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1351         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
1352         and OMP_CLAUSE_MERGEABLE.
1353         (OMP_CLAUSE_FINAL_EXPR): Define.
1354         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
1355         OMP_CLAUSE_MERGEABLE.
1356         (expand_task_call): Likewise.
1357         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
1358         (expand_omp_atomic_fetch_op): Handle cases where old or new
1359         value is needed afterwards.
1360         (expand_omp_atomic): Call expand_omp_atomic_load resp.
1361         expand_omp_atomic_store.
1362         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
1363         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
1364         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
1365         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1366         * tree-nested.c (convert_nonlocal_omp_clauses,
1367         convert_local_omp_clauses): Likewise.
1368         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
1369         OMP_ATOMIC_CAPTURE_NEW): New.
1370         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
1371         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
1372         New inlines.
1373         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
1374         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
1375         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1376
1377 2011-08-02  Kai Tietz  <ktietz@redhat.com>
1378
1379         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
1380         boolean-type.
1381         (ssa_forward_propagate_and_combine): Interprete result of
1382         forward_propagate_comparison.
1383         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
1384         boolean-typed operands for comparisons.
1385
1386 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
1387
1388         * config/avr/libgcc.S: Gather related function in the
1389         same input section.
1390         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
1391         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
1392         references.
1393         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
1394         __udivmodsi4, __divmodsi4, __prologue_saves__,
1395         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
1396         __do_copy_data, __do_clear_bss, __do_global_ctors,
1397         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
1398
1399 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
1400
1401         PR target/47766
1402         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
1403         (stack_protect_test): The pattern compares ptr_mode value.
1404
1405 2011-08-02  Alan Modra  <amodra@gmail.com>
1406
1407         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
1408         note for save_LR_around_toc_setup sequence.
1409
1410 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1411
1412         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
1413
1414 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
1415             Joseph Myers  <joseph@codesourcery.com>
1416
1417         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
1418         * hwint.c: Include diagnostic-core.h.
1419         (abs_hwi): New.
1420         (gcd): Moved here...
1421         (pos_mul_hwi): New.
1422         (mul_hwi): New.
1423         (least_common_multiple): Moved here...
1424         * hwint.h (gcd): ... from here.
1425         (least_common_multiple): ... from here.
1426         (HOST_WIDE_INT_MIN): New.
1427         (HOST_WIDE_INT_MAX): New.
1428         (abs_hwi): Declared.
1429         (gcd): Declared.
1430         (pos_mul_hwi): Declared.
1431         (mul_hwi): Declared.
1432         (least_common_multiple): Declared.
1433         * omega.c (check_pos_mul): Removed.
1434         (check_mul): Removed.
1435         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
1436         mul_hwi instead of check_mul.
1437
1438 2011-08-01  Richard Henderson  <rth@redhat.com>
1439
1440         PR target/49881
1441         * config/avr/avr.h (PUSH_ROUNDING): New.
1442         * config/avr/avr.md (pushqi1): Rename from *pushqi.
1443         (*pushhi, *pushsi, *pushsf): Remove.
1444         (MPUSH): New mode iterator.
1445         (push<MPUSH>1): New expander.
1446
1447 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
1448
1449         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
1450         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1451         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
1452         mmix_preferred_output_reload_class): Remove.
1453         * config/mmix/mmix.c (mmix_preferred_reload_class,
1454         mmix_preferred_output_reload_class): Make static. Change rclass
1455         argument and return type to reg_class_t.
1456         (TARGET_PREFERRED_RELOAD_CLASS,
1457         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1458
1459 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
1460
1461         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
1462         handling.
1463
1464 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1465
1466         PR target/47766
1467         * config/i386/i386.md (PTR): New.
1468         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
1469         (stack_protect_test): Likewise.
1470         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
1471         (stack_tls_protect_set_<mode>): Likewise.
1472         (stack_tls_protect_test_<mode>): Likewise.
1473
1474 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
1475
1476         PR target/49927
1477         * config/i386/i386.c (ix86_address_subreg_operand): New.
1478         (ix86_decompose_address): Use ix86_address_subreg_operand.
1479         (ix86_legitimate_address_p): Do not assert that subregs satisfy
1480         register_no_elim_operand in DImode.
1481
1482 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
1483
1484         PR tree-optimization/49926
1485         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
1486         in a chain doesn't have uses both inside and outside the loop.
1487
1488 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
1489
1490         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
1491         * config/avr/avr-devices.c (avr_mcu_types): Use it.
1492         * config/avr/avr-mcus.def (AVR_MCU): Use it.
1493         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
1494         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
1495         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
1496         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
1497         to detect if XJMP must not be skipped.
1498
1499 2011-08-02  Alan Modra  <amodra@gmail.com>
1500
1501         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
1502         Delete.
1503         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
1504         (rs6000_emit_prologue): Don't prematurely return when
1505         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
1506         save_toc_in_prologue case.
1507         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
1508         calls_alloca.
1509
1510 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
1511
1512         * config/avr/avr-devices.c: Delete SVN property svn:executable.
1513         * config/avr/predicates.md: Ditto.
1514         * config/avr/driver-avr.c: Ditto.
1515         * config/avr/genopt.sh: Set SVN property svn:executable to *.
1516
1517 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1518
1519         * calls.c (emit_library_call_value_1): Declare size only if
1520         BLOCK_REG_PADDING is defined.
1521
1522 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
1523
1524         PR target/49547
1525         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
1526         (x86_64-*-*): Likewise.
1527         * config/i386/i386.opt (mlzcnt): New.
1528         * config/i386/abmintrin.h: File removed.
1529         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
1530         * config/i386/lzcntintrin.h: ... here.  New file.
1531         (__lzcnt): Rename to ...
1532         (__lzcnt32): ... this.
1533         * config/i386/bmiintrin.h (head): Update copyright year.
1534         (__lzcnt_u16): Removed.
1535         (__lzcnt_u32): Likewise.
1536         (__lzcnt_u64): Likewise.
1537         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
1538         is defined, remove abmintrin.h.
1539         * config/i386/cpuid.h (bit_LZCNT): New.
1540         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1541         LZCNT feature.
1542         * config/i386/i386-c.c (ix86_target_macros_internal): Define
1543         __LZCNT__ if needed.
1544         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
1545         (ix86_option_override_internal): Handle LZCNT option.
1546         (ix86_valid_target_attribute_inner_p): Likewise.
1547         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
1548         * config/i386/i386.h (TARGET_LZCNT): New.
1549         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
1550         * config/i386/i386.md (clz<mode>2): Update insn constraint.
1551         (clz<mode>2_lzcnt): Likewise.
1552         * doc/invoke.texi: Mention -mlzcnt option.
1553         * doc/extend.texi: Likewise.
1554
1555 2011-08-01  Julian Brown  <julian@codesourcery.com>
1556
1557         * configure.ac (fixed-point): Add ARM support.
1558         * configure: Regenerate.
1559         * config/arm/arm.c (arm_fixed_mode_set): New struct.
1560         (arm_set_fixed_optab_libfunc): New.
1561         (arm_set_fixed_conv_libfunc): New.
1562         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
1563         ARM-specific names.
1564         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
1565         return values in SImode.
1566         (arm_return_in_msb): Return fixed-point types in the msb.
1567         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
1568         upwards.
1569         (arm_scalar_mode_supported_p): Support fixed-point modes.
1570         (arm_vector_mode_supported_p): Support vector fixed-point modes.
1571         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
1572         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
1573         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
1574         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
1575         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
1576         New mode iterators.
1577         (qaddsub_suf): New mode attribute.
1578         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
1579         vector modes.
1580         * config/arm/predicates.md (sat_shift_operator): New predicate.
1581         * config/arm/arm-fixed.md: New.
1582         * config/arm/arm.md: Include arm-fixed.md.
1583         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
1584
1585 2011-08-01  Julian Brown  <julian@codesourcery.com>
1586
1587         * calls.c (emit_library_call_value_1): Support padding for libcall
1588         arguments and return values.
1589         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
1590         downwards in big-endian mode.
1591
1592 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1593
1594         PR debug/49887
1595         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
1596         * config/sol2-protos.h: Likewise.
1597         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
1598         solaris_code_end.
1599         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
1600         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
1601         solaris_file_end.
1602         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
1603
1604 2011-08-01  Julian Brown  <julian@codesourcery.com>
1605
1606         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
1607
1608 2011-08-01  Julian Brown  <julian@codesourcery.com>
1609
1610         * final.c (output_addr_const): Print fixed-point constants as
1611         decimal not hex.
1612
1613 2011-08-01  Richard Guenther  <rguenther@suse.de>
1614
1615         * stor-layout.c (initialize_sizetypes): Properly sign-extend
1616         bitsiztype TYPE_MAX_VALUE.
1617
1618 2011-08-01  Julian Brown  <julian@codesourcery.com>
1619
1620         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
1621         comparison helpers.
1622
1623 2011-07-31  Richard Henderson  <rth@redhat.com>
1624
1625         * config/h8300/crti.asm: Add flags to .section directive.
1626         * config/h8300/crtn.asm: Likewise.
1627
1628 2011-07-31  Richard Henderson  <rth@redhat.com>
1629
1630         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
1631         * tree.c (build_common_tree_nodes): Likewise.
1632
1633 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1634
1635         PR target/49880
1636         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
1637         (divsi3_i1): Likewise.
1638
1639 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1640
1641         PR tree-optimization/49749
1642         * tree-ssa-reassoc.c (get_rank): New forward declaration.
1643         (PHI_LOOP_BIAS): New macro.
1644         (phi_rank): New function.
1645         (loop_carried_phi): Likewise.
1646         (propagate_rank): Likewise.
1647         (get_rank): Add calls to phi_rank and propagate_rank.
1648
1649 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1650
1651         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
1652         of TARGET_64BIT.
1653         (PTRDIFF_TYPE): Likewise.
1654
1655 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
1656
1657         PR target/49920
1658         * config/i386/i386.md (strset): Do not expand strset_singleop
1659         when %eax or $edi are fixed.
1660         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
1661         (*strsetsi_1): Ditto.
1662         (*strsethi_1): Ditto.
1663         (*strsetqi_1): Ditto.
1664         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
1665         (*rep_stossi): Ditto.
1666         (*rep_stosqi): Ditto.
1667         (*strlenqi_1): Ditto.
1668         (cmpstrnsi): Also fail when %ecx is fixed.
1669         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
1670         (*cmpstrnqi_1): Ditto.
1671         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
1672         (*strmovsi_1): Ditto.
1673         (*strmovhi_1): Ditto.
1674         (*strmovqi_1): Ditto.
1675         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
1676         (*rep_movsi): Ditto.
1677         (*rep_movqi): Ditto.
1678
1679 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
1680
1681         PR target/47908
1682         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
1683         Disable instruction scheduling for non-ColdFire targets.
1684         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1685
1686 2011-07-31  Revital Eres  <revital.eres@linaro.org>
1687
1688         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
1689         of anti-dep edge from a branch.
1690         (add_cross_iteration_register_deps): Create anti-dep edge from
1691         a branch.
1692
1693 2011-07-31  Revital Eres  <revital.eres@linaro.org>
1694
1695         * modulo-sched.c: Change comment.
1696         (reset_sched_times): Fix print message.
1697         (print_partial_schedule): Add print info.
1698
1699 2011-07-31  Tom de Vries  <tom@codesourcery.com>
1700
1701         PR middle-end/43513
1702         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
1703         get_object_alignment and TYPE_ALIGN.
1704
1705 2011-07-30  Tom de Vries  <tom@codesourcery.com>
1706
1707         PR middle-end/43513
1708         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
1709         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
1710
1711 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1712
1713         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
1714         <sys/sbd.h>.
1715         (cpu_types): New array.
1716         (cputype): New function.
1717         (host_detect_local_cpu): Only define buf, f if !__sgi__.
1718         Use scaninvent instead of /proc/cpuinfo if __sgi__.
1719         * config.host: Also use driver-native.o, mips/x-native on
1720         mips-sgi-irix*.
1721         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
1722         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
1723         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
1724
1725 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
1726
1727         PR middle-end/49897
1728         PR middle-end/49898
1729         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
1730         in nested parallel and outer is a gimple_reg, mark it as addressable
1731         and set its bit in task_shared_vars bitmap too.
1732
1733 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
1734
1735         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
1736
1737 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1738
1739         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
1740         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
1741         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
1742         AMASK_LOCKPFTCHOK): Define.
1743         (host_detect_local_cpu): Remove buf, f, cpu_names.
1744         Define cpu_types, implver, amask.
1745         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
1746         native CPU.
1747         * config.host: Also use driver-alpha.o, alpha/x-alpha on
1748         alpha*-dec-osf*.
1749         * config/alpha/osf5.h [__alpha__ || __alpha]
1750         (host_detect_local_cpu): Declare.
1751         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
1752         (DRIVER_SELF_SPECS): Define.
1753
1754 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
1755
1756         PR target/47715
1757         * config/i386/i386.md (*load_tp_x32): New.
1758         (*load_tp_x32_zext): Ditto.
1759         (*add_tp_x32): Ditto.
1760         (*add_tp_x32_zext): Ditto.
1761         (*load_tp_<mode>): Disable for TARGET_X32 targets.
1762         (*add_tp_<mode>): Ditto.
1763         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
1764         ptr_mode and convert to Pmode if needed.
1765
1766 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
1767
1768         PR target/49687
1769         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
1770         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
1771         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
1772         Add X to register footprint: Clobber r26/r27.
1773
1774 2011-07-29  Richard Guenther  <rguenther@suse.de>
1775
1776         * builtins.c (fold_builtin_signbit): Build the comparison
1777         with a proper type.
1778
1779 2011-07-29  Richard Guenther  <rguenther@suse.de>
1780
1781         PR tree-optimization/49893
1782         * tree-predcom.c (suitable_reference_p): Volatile references
1783         are not suitable.
1784
1785 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
1786
1787         PR target/49313
1788         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1789         (__ctzsi2): Result for 0 may be undefined.
1790         (__ctzhi2): Result for 0 may be undefined.
1791         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1792         (__popcountsi2): Ditto. And don't clobber r26.
1793         (__popcountdi2): Ditto. And don't clobber r27.
1794         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1795         (parityhi2): New expand.
1796         (paritysi2): New expand.
1797         (popcounthi2): New expand.
1798         (popcountsi2): New expand.
1799         (clzhi2): New expand.
1800         (clzsi2): New expand.
1801         (ctzhi2): New expand.
1802         (ctzsi2): New expand.
1803         (ffshi2): New expand.
1804         (ffssi2): New expand.
1805         (copysignsf3): New insn.
1806         (bswapsi2): New expand.
1807         (*parityhi2.libgcc): New insn.
1808         (*parityqihi2.libgcc): New insn.
1809         (*paritysihi2.libgcc): New insn.
1810         (*popcounthi2.libgcc): New insn.
1811         (*popcountsi2.libgcc): New insn.
1812         (*popcountqi2.libgcc): New insn.
1813         (*popcountqihi2.libgcc): New insn-and-split.
1814         (*clzhi2.libgcc): New insn.
1815         (*clzsihi2.libgcc): New insn.
1816         (*ctzhi2.libgcc): New insn.
1817         (*ctzsihi2.libgcc): New insn.
1818         (*ffshi2.libgcc): New insn.
1819         (*ffssihi2.libgcc): New insn.
1820         (*bswapsi2.libgcc): New insn.
1821
1822 2011-07-29  Richard Guenther  <rguenther@suse.de>
1823
1824         * tree-vrp.c (get_value_range): Only set parameter default
1825         definitions to varying, leave others at undefined.
1826         (extract_range_from_binary_expr): Fix undefined handling.
1827         (vrp_visit_phi_node): Handle merged undefined state.
1828
1829 2011-07-29  Wei Guozhi  <carrot@google.com>
1830
1831         PR rtl-optimization/49799
1832         * combine.c (make_compound_operation): Check if the bit field is valid
1833         before change it to bit field extraction.
1834
1835 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
1836
1837         PR rtl-optimization/49891
1838         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
1839         newly created returnjumps.
1840
1841 2011-07-28  DJ Delorie  <dj@redhat.com>
1842
1843         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
1844         local frame in a naked function, and produce a suitable error for
1845         that specific case.
1846
1847         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
1848         registers to be reloaded in HI classes when the target is HI.
1849
1850 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
1851
1852         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
1853         bound_one, bound_two.
1854
1855 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
1856
1857         PR middle-end/48648
1858         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
1859         CLAST assignments.
1860         (translate_clast): Same.
1861         (translate_clast_assignment): New.
1862
1863 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
1864
1865         PR tree-optimization/49876
1866         * sese.c (rename_uses): Do not return false on gloog_error: set
1867         the new_expr to integer_zero_node and continue code generation.
1868         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
1869
1870 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
1871
1872         PR debug/49846
1873         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
1874         arguments also check if they aren't initialized with a MODE_INT
1875         mode of the same size.
1876
1877 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
1878
1879         * expr.c (get_bit_range): Handle *MEM_REF's.
1880
1881 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
1882
1883         * rtlanal.c (tablejump_p): False for returns.
1884         * reorg.c (first_active_target_insn): New static function.
1885         (find_end_label): Set JUMP_LABEL for a new returnjump.
1886         (optimize_skip, get_jump_flags, rare_destination,
1887         mostly_true_jump, get_branch_condition,
1888         steal_delay_list_from_target, own_thread_p,
1889         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
1890         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
1891         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
1892         * jump.c (delete_related_insns): Likewise.
1893         (jump_to_label_p): New function.
1894         (redirect_target): New static function.
1895         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
1896         (redirect_jump_1): Assert that the new label is nonnull.
1897         (redirect_jump): Likewise.
1898         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
1899         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
1900         exit block.
1901         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
1902         changed.  Ensure that the right label is passed to redirect_jump.
1903         * function.c (emit_return_into_block,
1904         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
1905         ret_rtx in their JUMP_LABEL.
1906         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
1907         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
1908         pass ret_rtx as label.
1909         * cfglayout.c (fixup_reorder_chain): Use
1910         force_nonfallthru_and_redirect rather than force_nonfallthru.
1911         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
1912         * rtl.h (ANY_RETURN_P): New macro.
1913         (jump_to_label_p): Declare.
1914         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
1915         JUMP_LABELs.
1916         (mark_target_live_regs): Likewise.
1917         * basic-block.h (force_nonfallthru_and_redirect): Declare.
1918         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
1919         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
1920         alpha_tablejump_best_label): Remove functions.
1921         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
1922         alpha_tablejump_best_label): Remove declarations.
1923         * config/sh/sh.c (barrier_align, split_branches): Adjust for
1924         ret_rtx in JUMP_LABELs.
1925         * config/arm/arm.c (is_jump_table): Likewise.
1926
1927 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
1928
1929         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
1930         special predicate.  Remove explicit mode checks.
1931
1932 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
1933
1934         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
1935         DW_AT_data_member_location containing just DW_OP_plus_uconst.
1936
1937         PR debug/49871
1938         * dwarf2out.c (size_of_die, value_format, output_die): Use
1939         DW_FORM_udata instead of DW_FORM_data[48] for
1940         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
1941
1942 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1943
1944         * config/i386/i386.md (*tls_global_dynamic_64): Update
1945         length attribute.
1946
1947 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
1948
1949         PR target/47715
1950         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
1951         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
1952         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
1953         (tls_dynamic_gnu2_64): Ditto.
1954         (*tls_dynamic_gnu2_lea_64): Ditto.
1955         (*tls_dynamic_gnu2_call_64): Ditto.
1956         (*tls_dynamic_gnu2_combine_64): Ditto.
1957
1958 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1959
1960         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
1961
1962 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1963
1964         PR target/47364
1965         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
1966
1967 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1968
1969         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
1970         before the core constraints. Adjust attributes.
1971         ("*thumb2_movdf_vfp"): Likewise.
1972
1973 2011-07-28  Kai Tietz  <ktietz@redhat.com>
1974
1975         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
1976         (simplify_truth_ops_using_ranges): Likewise.
1977         (build_assert_expr_for): Likewise.
1978         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
1979         and handle BIT_NOT_EXPR for truth-operation.
1980
1981 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
1982
1983         PR target/49313
1984         Undo r176835 from trunk
1985         2011-07-27  Georg-Johann Lay
1986
1987 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
1988
1989         PR target/49687
1990         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
1991         Add _muluhisi3, _mulshisi3, _usmulhisi3.
1992         * config/avr/libgcc.S (__mulsi3): Rewrite.
1993         (__mulhisi3): Rewrite.
1994         (__umulhisi3): Rewrite.
1995         (__usmulhisi3): New.
1996         (__muluhisi3): New.
1997         (__mulshisi3): New.
1998         (__mulohisi3): New.
1999         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
2000         declare.
2001         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
2002         (pseudo_register_or_const_int_operand): New.
2003         (combine_pseudo_register_operand): New.
2004         (u16_operand): New.
2005         (s16_operand): New.
2006         (o16_operand): New.
2007         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
2008         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
2009         (any_extend, any_extend2): New code iterators.
2010         (extend_prefix): New code attribute.
2011         (mulsi3): Rewrite. Turn insn to expander.
2012         (mulhisi3): Ditto.
2013         (umulhisi3): Ditto.
2014         (usmulhisi3): New expander.
2015         (*mulsi3): New insn-and-split.
2016         (mulu<mode>si3): New insn-and-split.
2017         (muls<mode>si3): New insn-and-split.
2018         (mulohisi3): New insn-and-split.
2019         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
2020         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
2021         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
2022         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
2023         insn-and-split.
2024         (*mulsi3_call): Rewrite.
2025         (*mulhisi3_call): Rewrite.
2026         (*umulhisi3_call): Rewrite.
2027         (*usmulhisi3_call): New insn.
2028         (*muluhisi3_call): New insn.
2029         (*mulshisi3_call): New insn.
2030         (*mulohisi3_call): New insn.
2031         (extendqihi2): Use combine_pseudo_register_operand as predicate
2032         for operand 1.
2033         (extendqisi2): Ditto.
2034         (zero_extendqihi2): Ditto.
2035         (zero_extendqisi2): Ditto.
2036         (zero_extendhisi2): Ditto.
2037         (extendhisi2): Ditto. Don't early-clobber operand 0.
2038
2039 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
2040
2041         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
2042
2043 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2044
2045         PR tree-optimization/49471
2046         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
2047         iv only when the largest type is unsigned.  Do not call
2048         lang_hooks.types.type_for_size.
2049
2050 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2051
2052         PR middle-end/45450
2053         * graphite-poly.c (apply_poly_transforms): Disable legality check
2054         after an openscop read.
2055
2056 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2057
2058         PR middle-end/47691
2059         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
2060         copy_bb_and_scalar_dependences.
2061         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
2062         (graphite_copy_stmts_from_block): Update call to rename_uses.
2063         (copy_bb_and_scalar_dependences): Update call to
2064         graphite_copy_stmts_from_block.
2065         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2066
2067 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
2068
2069         PR target/49313
2070         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
2071         (__ctzsi2): Result for 0 may be undefined.
2072         (__ctzhi2): Result for 0 may be undefined.
2073         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
2074         (__popcountsi2): Ditto. And don't clobber r26.
2075         (__popcountdi2): Ditto. And don't clobber r27.
2076         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
2077         (parityhi2): New expand.
2078         (paritysi2): New expand.
2079         (popcounthi2): New expand.
2080         (popcountsi2): New expand.
2081         (clzhi2): New expand.
2082         (clzsi2): New expand.
2083         (ctzhi2): New expand.
2084         (ctzsi2): New expand.
2085         (ffshi2): New expand.
2086         (ffssi2): New expand.
2087         (copysignsf3): New insn.
2088         (bswapsi2): New expand.
2089         (*parityhi2.libgcc): New insn.
2090         (*parityqihi2.libgcc): New insn.
2091         (*paritysihi2.libgcc): New insn.
2092         (*popcounthi2.libgcc): New insn.
2093         (*popcountsi2.libgcc): New insn.
2094         (*popcountqi2.libgcc): New insn.
2095         (*popcountqihi2.libgcc): New insn-and-split.
2096         (*clzhi2.libgcc): New insn.
2097         (*clzsihi2.libgcc): New insn.
2098         (*ctzhi2.libgcc): New insn.
2099         (*ctzsihi2.libgcc): New insn.
2100         (*ffshi2.libgcc): New insn.
2101         (*ffssihi2.libgcc): New insn.
2102         (*bswapsi2.libgcc): New insn.
2103
2104 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
2105
2106         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
2107         the mode of symbolic_opreand RTXes.
2108
2109 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
2110
2111         * config/i386/predicates.md (x86_64_movabs_operand): Return false
2112         for pic_32bit_operand RTXes.
2113         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
2114         in DImode.
2115
2116 2011-07-27  Kai Tietz  <ktietz@redhat.com>
2117
2118         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
2119         for 32-bit, too.
2120         (ix86_handle_abi_attribute): Allow function attributes
2121         ms_abi/sysv_abi in 32-bit mode, too.
2122         * doc/extend.texi: Adjust attribute documentation.
2123
2124         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
2125         expression handling.
2126         (and_var_with_comparison_1): Likewise.
2127
2128 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
2129
2130         * params.h (ALLOW_STORE_DATA_RACES): New.
2131         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
2132         * Makefile.in (expr.o): Depend on PARAMS_H.
2133         * machmode.h (get_best_mode): Add argument.
2134         * fold-const.c (optimize_bit_field_compare): Add argument to
2135         get_best_mode.
2136         (fold_truthop): Same.
2137         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
2138         * expr.c (emit_group_store): Same.
2139         (copy_blkmode_from_reg): Same.
2140         (write_complex_part): Same.
2141         (optimize_bitfield_assignment_op): Add argument.
2142         Add argument to get_best_mode.
2143         (get_bit_range): New.
2144         (expand_assignment): Calculate maxbits and pass it down accordingly.
2145         (store_field): New argument.
2146         (expand_expr_real_2): New argument to store_field.  Include params.h.
2147         * expr.h (store_bit_field): New argument.
2148         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
2149         into account maxbits.
2150         * calls.c (store_unaligned_arguments_into_pseudos): New argument
2151         to store_bit_field.
2152         * expmed.c (store_bit_field_1): New argument.  Use it.
2153         (store_bit_field): Same.
2154         (store_fixed_bit_field): Same.
2155         (store_split_bit_field): Same.
2156         (extract_bit_field_1): Pass new argument to get_best_mode.
2157         (extract_bit_field): Same.
2158         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
2159         * doc/invoke.texi: Document parameter allow-store-data-races.
2160
2161 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
2162
2163         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
2164
2165 2011-07-27  Kai Tietz  <ktietz@redhat.com>
2166
2167         * tree-vrp.c (extract_range_from_binary_expr): Remove
2168         TRUTH-binary cases and add new bitwise-cases.
2169         (extract_range_from_assignment): Likewise.
2170         (register_edge_assert_for_1): Likeiwise.
2171         (register_edge_assert_for): Likewise.
2172         (simplify_truth_ops_using_ranges): Likewise.
2173         (simplify_stmt_using_ranges): Likewise.
2174
2175 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
2176
2177         PR target/47372
2178         * config/i386/i386.c (ix86_delegitimize_address): Call
2179         simplify_gen_subreg for PIC with mode of x only if modes of
2180         x and orig_x are different.
2181
2182 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
2183
2184         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
2185         to GC allocated copy of the string.
2186         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
2187         before .debug_line, not after it.
2188
2189 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2190
2191         PR middle-end/47046
2192         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
2193         evolution_function_is_affine_p on CHREC_RIGHT.
2194
2195 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2196
2197         * tree-data-ref.c (max_stmt_executions_tree): Do not call
2198         lang_hooks.types.type_for_size.
2199
2200 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2201
2202         PR middle-end/47653
2203         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
2204         loops using wrapping semantics.
2205
2206 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2207
2208         PR middle-end/48805
2209         * tree-scalar-evolution.c (instantiate_scev_r): Return
2210         chrec_dont_know for ADDR_EXPR.
2211
2212 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2213             H.J. Lu  <hongjiu.lu@intel.com>
2214
2215         PR target/47369
2216         PR target/49853
2217         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
2218         if legitimize_tls_address returned operand in wrong mode. Allow
2219         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
2220         if legitimize_pic_address returned operand in wrong mode.
2221
2222 2011-07-26  Martin Jambor  <mjambor@suse.cz>
2223
2224         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
2225         return false for invariants.
2226
2227 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2228
2229         * config/i386/i386.md (add->lea splitter): Implement using SWI
2230         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
2231         (add->lea zext splitter): Change operand 2 predicate to
2232         x86_64_nonmemory_operand.
2233
2234 2011-07-26  Richard Guenther  <rguenther@suse.de>
2235
2236         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
2237         frequency makes everything hot.
2238
2239 2011-07-26  Richard Guenther  <rguenther@suse.de>
2240
2241         PR tree-optimization/49840
2242         * tree-vrp.c (range_fits_type_p): Properly handle full
2243         double-int precision.
2244
2245 2011-07-26  Martin Jambor  <mjambor@suse.cz>
2246
2247         PR bootstrap/49786
2248         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
2249         counts.
2250         (update_specialized_profile): Likewise.
2251
2252 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2253             H.J. Lu  <hongjiu.lu@intel.com>
2254
2255         PR target/47381
2256         PR target/49832
2257         PR target/49833
2258         * config/i386/i386.md (i): Change SImode attribute to "e".
2259         (g): Change SImode attribute to "rme".
2260         (di): Change SImode attribute to "nF".
2261         (general_operand): Change SImode attribute to x86_64_general_operand.
2262         (general_szext_operand): Change SImode attribute to
2263         x86_64_szext_general_operand.
2264         (immediate_operand): Change SImode attribute to
2265         x86_64_immediate_operand.
2266         (nonmemory_operand): Change SImode attribute to
2267         x86_64_nonmemory_operand.
2268         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
2269         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
2270         (*lea_1): Use SWI48 mode iterator.
2271         (*lea_1_zext): New insn pattern.
2272         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
2273         (*bt<mode>): Ditto.
2274         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
2275         Update operand constraints.
2276         (addsi_1_zext): Ditto.
2277         (*add<mode>2): Ditto.
2278         (*addsi_3_zext): Ditto.
2279         (*subsi_1_zext): Ditto.
2280         (*subsi_2_zext): Ditto.
2281         (*subsi_3_zext): Ditto.
2282         (*addsi3_carry_zext): Ditto.
2283         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
2284         (*mulsi3_1_zext): Ditto.
2285         (*andsi_1): Ditto.
2286         (*andsi_1_zext): Ditto.
2287         (*andsi_2_zext): Ditto.
2288         (*<any_or:code>si_1_zext): Ditto.
2289         (*<any_or:code>si_2_zext): Ditto.
2290         (*test<mode>_1): Use <general_operand> predicate for operand 1.
2291         (*and<mode>_2): Ditto.
2292         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
2293         (add->lea splitter): Check operand modes in insn constraint.  Extend
2294         operands less than SImode wide to SImode.
2295         (add->lea zext splitter): Do not extend input operands to DImode.
2296         (*lea_general_1): Handle only QImode and HImode operands.
2297         (*lea_general_2): Ditto.
2298         (*lea_general_3): Ditto.
2299         (*lea_general_1_zext): Remove.
2300         (*lea_general_2_zext): Ditto.
2301         (*lea_general_3_zext): Ditto.
2302         (*lea_general_4): Check operand modes in insn constraint.  Extend
2303         operands less than SImode wide to SImode.
2304         (ashift->lea splitter): Ditto.
2305         * config/i386/i386.c (ix86_print_operand_address): Print address
2306         registers with 'q' modifier on 64bit targets.
2307         * config/i386/predicates.md (pic_32bit_opreand): Define as special
2308         predicate.  Reject non-SI and non-DI modes.
2309
2310 2011-07-25  Andrew Pinski  <apinski@cavium.com>
2311
2312         PR tree-opt/49671
2313         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
2314         TREE_THIS_NOTRAP into the inner most MEM_REF.
2315         Always copy TREE_THIS_VOLATILE.
2316         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
2317         arguments are not volatile references.
2318
2319 2011-07-25  Richard Henderson  <rth@redhat.com>
2320
2321         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
2322         * final.c (final_scan_insn): Don't test for it.
2323         (rest_of_clean_state): Likewise.
2324
2325 2011-07-25  Richard Henderson  <rth@redhat.com>
2326
2327         PR debug/49841
2328         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
2329         (emit_frame_save): Likewise.
2330         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
2331         insn onto a dummy blockage insn after the join label.
2332
2333 2011-07-25  Richard Henderson  <rth@redhat.com>
2334
2335         * dwarf2cfi.c (dw_trace_info): Add ID member.
2336         (get_trace_index): Remove.  Change users to use ID member.
2337         (before_next_cfi_note): New.
2338         (connect_traces): Remove unreachable traces before the main loop.
2339         Look across one trace and generate remember/restore_state if needed.
2340
2341 2011-07-25  Richard Henderson  <rth@redhat.com>
2342
2343         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
2344
2345 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
2346
2347         * genattr.c (write_upcase, gen_attr <enum definition writing>):
2348         Move to ...
2349         * genattr-common.c ... here.
2350         (main): Call gen_attr.
2351         * optc-gen.awk: Make generated program include insn-attr-common.h .
2352         * Makefile.in (oprions.o): Depend on insn-attr-common.h
2353
2354 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
2355
2356         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2357         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2358         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
2359         m32c_print_operand, m32c_print_operand_address): Remove.
2360         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
2361         Change return type to bool. Change argument type to bool.
2362         (m32c_print_operand, m32c_print_operand_address): Make static.
2363         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2364         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2365
2366 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2367
2368         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2369         attributes): Document mmap.
2370
2371 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
2372
2373         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2374         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2375         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
2376         mmix_print_operand, mmix_print_operand_address): Remove.
2377         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
2378         Change return type to bool. Change argument type to bool.
2379         (mmix_print_operand, mmix_print_operand_address): Make static.
2380         (mmix_intval, mmix_output_condition): Change 'x' argument type
2381         to const_rtx.
2382         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2383         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2384
2385 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
2386
2387         PR target/39386
2388         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
2389         shift counter for x << x and x >> x shifts.
2390
2391 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2392
2393         PR target/47124
2394         * config.gcc: Reject *-*-solaris2 configuration.
2395
2396 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
2397
2398         PR tree-optimization/49809
2399         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
2400         gimple_get_lhs instead of gimple_assign_lhs.
2401
2402 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2403
2404         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
2405
2406 2011-07-25  Richard Guenther  <rguenther@suse.de>
2407
2408         PR tree-optimization/49822
2409         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2410         more.  Make sure to preserve stmts with side-effects.  Properly
2411         handle virtual defs, follow a longer def chain.
2412
2413 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
2414
2415         PR plugins/45348
2416         PR plugins/48425
2417         PR plugins/46577
2418         * Makefile.in: Do not flatten c-family directory when installing
2419         plugin headers.
2420
2421 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
2422
2423         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
2424         original nodes if we are dealing with virtual clones.
2425
2426 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
2427
2428         * common/config/c6x/c6x-common.c: New file.
2429
2430 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
2431
2432         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
2433
2434 2011-07-25  Richard Guenther  <rguenther@suse.de>
2435
2436         PR tree-optimization/49715
2437         * tree-vrp.c: Include expr.h and optabs.h.
2438         (range_fits_type_): New function.
2439         (simplify_float_conversion_using_ranges): Likewise.
2440         (simplify_stmt_using_ranges): Call it.
2441         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
2442         * optabs.c (can_float_p): Export.
2443         * optabs.h (can_float_p): Declare.
2444
2445 2011-07-25  Richard Guenther  <rguenther@suse.de>
2446
2447         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
2448         (get_value_range): For out-of-range SSA names or names created
2449         after propagation return a read-only varying range.
2450         (dump_all_value_ranges): Adjust.
2451         (vrp_initialize): Likewise.
2452         (vrp_finalize): Likewise.
2453
2454 2011-07-24  Richard Henderson  <rth@redhat.com>
2455
2456         PR debug/49831
2457         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
2458         them entirely.
2459
2460 2011-07-24  Richard Henderson  <rth@redhat.com>
2461
2462         PR debug/49825
2463         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
2464         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
2465
2466 2011-07-24  Richard Henderson  <rth@redhat.com>
2467
2468         PR debug/49827
2469         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
2470
2471 2011-07-24  Richard Henderson  <rth@redhat.com>
2472
2473         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
2474         Zero args_size for abnormal edges.  Adjust all callers.
2475
2476 2011-07-24  Richard Henderson  <rth@redhat.com>
2477
2478         PR debug/49825
2479         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
2480
2481 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
2482
2483         PR bootstrap/49835
2484         * collect2.c (demangle_flag): Removed.
2485
2486 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
2487
2488         * configure.ac (demangler_in_ld): Default to yes.
2489         * configure: Regenerated.
2490         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
2491         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
2492         --no-demangle options straight through to ld.  When
2493         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
2494         way that has the intended effect on Windows.
2495
2496 2011-07-23  Richard Henderson  <rth@redhat.com>
2497
2498         * dwarf2cfi.c: Include basic-block.h.
2499         (dw_label_info): Remove.
2500         (trace_work_list, trace_index): New.
2501         (remember_row, emit_cfa_remember): Remove.
2502         (dw_trace_info_hash, dw_trace_info_eq): New.
2503         (get_trace_index, get_trace_info): New.
2504         (save_point_p): New.
2505         (free_cfi_row): Remove.
2506         (add_cfi): Do not emit DW_CFA_remember_state.
2507         (cfa_row_equal_p): New.
2508         (barrier_args_size): Remove.
2509         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
2510         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
2511         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
2512         (dwarf2out_cfi_begin_epilogue): Remove.
2513         (dwarf2out_frame_debug_restore_state): Remove.
2514         (connect_traces, create_pseudo_cfg): New.
2515         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
2516         * Makefile.in (dwarf2cfi.o): Update.
2517
2518 2011-07-23  Richard Henderson  <rth@redhat.com>
2519
2520         * dwarf2cfi.c (dw_trace_info): New.
2521         (dw_label_info): New.
2522         (cie_return_save): New.
2523         (cur_trace): New.
2524         (queued_args_size): Rename from args_size.  Update all users.
2525         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
2526         (def_cfa_1): Use cur_trace instead of cfa_*.
2527         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
2528         (clobbers_queued_reg_save, reg_saved_in): Likewise.
2529         (dwarf2out_frame_debug_expr): Likewise.
2530         (create_cie_data): Split out from ...
2531         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
2532
2533 2011-07-23  Richard Henderson  <rth@redhat.com>
2534
2535         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
2536         Update all users to match.
2537         (execute_dwarf2_frame): Free reg_saved_in_data.
2538
2539 2011-07-23  Richard Henderson  <rth@redhat.com>
2540
2541         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
2542         (queued_reg_saves): Don't GTY.  Change to a VEC.
2543         (queue_reg_save): Update to match.
2544         (dwarf2out_flush_queued_reg_saves): Likewise.
2545         (clobbers_queued_reg_save): Likewise.
2546         (reg_saved_in): Likewise.
2547         (execute_dwarf2_frame): Free queued_reg_saves.
2548
2549 2011-07-23  Richard Henderson  <rth@redhat.com>
2550
2551         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
2552
2553 2011-07-23  Richard Henderson  <rth@redhat.com>
2554
2555         * dwarf2cfi.c (add_cfi_args_size): Split out from...
2556         (dwarf2out_args_size): ... here.
2557         (add_cfi_restore): Split out from ...
2558         (dwarf2out_frame_debug_cfa_restore): ... here.
2559         (def_cfa_0): Split out from ...
2560         (def_cfa_1): ... here.
2561         (cfi_oprnd_equal_p, cfi_equal_p): New.
2562         (change_cfi_row): New.
2563         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
2564         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
2565         (output_cfis): Remove.
2566         * dwarf2out.c (output_fde): Simplify output_cfi loop.
2567         (dwarf2out_switch_text_section): Don't call output_cfis.
2568         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
2569         * dwarf2out.h: Update decls.
2570         (enum dw_val_class): Add dw_val_class_none.
2571
2572 2011-07-23  Richard Henderson  <rth@redhat.com>
2573
2574         * dwarf2cfi.c (update_row_reg_save): New.
2575         (dwarf2out_frame_debug_cfa_expression): Use it.
2576         (dwarf2out_frame_debug_cfa_restore): Likewise.
2577         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
2578
2579 2011-07-23  Richard Henderson  <rth@redhat.com>
2580
2581         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
2582
2583 2011-07-23  Richard Henderson  <rth@redhat.com>
2584
2585         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
2586         (cie_cfi_row): New.
2587         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
2588         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
2589         (cur_row, remember_row): New.
2590         (def_cfa_1): Use cur_row instead of the old_* variables.
2591         (dwarf2out_frame_debug_restore_state): Similarly.
2592         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
2593         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
2594         (dwarf2out_frame_debug_adjust_cfa): Likewise.
2595         (dwarf2out_frame_debug_cfa_offset): Likewise.
2596         (dwarf2out_frame_debug_expr): Likewise.
2597         (execute_dwarf2_frame): Set up cur_row.
2598         * dwarf2out.h (struct cfa_loc): Mark for GTY.
2599
2600 2011-07-23  Richard Henderson  <rth@redhat.com>
2601
2602         * basic-block.h (EDGE_PRESERVE): New.
2603         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
2604         * bb-reorder.c: Include except.h.
2605         (fix_up_crossing_landing_pad): New.
2606         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
2607         landing pads in the right partition.  Duplicate as necessary.
2608         (partition_hot_cold_basic_blocks): Fix up DF info after
2609         duplicating landing pads.
2610         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
2611         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
2612         is set properly.  Validate that EH edges are not CROSSING.
2613         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
2614         (dw2_build_landing_pads): ... here.
2615         (convert_to_eh_region_ranges): Remove code to fixup crossing
2616         landing pads.
2617         * except.h (expand_dw2_landing_pad_for_region): Declare.
2618         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
2619
2620 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
2621
2622         PR target/49816
2623         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
2624
2625 2011-07-22  Jason Merrill  <jason@redhat.com>
2626
2627         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
2628
2629 2011-07-22  Richard Henderson  <rth@redhat.com>
2630
2631         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
2632
2633 2011-07-22  Richard Henderson  <rth@redhat.com>
2634
2635         * jump.c (maybe_propagate_label_ref): Split out of...
2636         (mark_all_labels): ... here.  Do not attempt label_ref
2637         propagation while in cfglayout mode.
2638
2639 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
2640
2641         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
2642         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
2643         (dwarf_attr_name): Handle DW_AT_GNU_macros.
2644         (dwarf2out_define): If the vector is empty and
2645         lineno is 0, emit a dummy entry first.
2646         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
2647         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
2648         optimize_macinfo_range): New functions.
2649         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
2650         mergeable, optimize longer strings using
2651         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
2652         optimize longer sequences of define/undef ops from headers
2653         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
2654         emit a section headers.
2655         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
2656         and macinfo_section_label to DEBUG_MACRO_SECTION
2657         resp. DEBUG_MACRO_SECTION_LABEL.
2658         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
2659         instead of DW_AT_macro_info.
2660
2661         PR other/32998
2662         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
2663         options.
2664         * dwarf2out.c: Include opts.h.
2665         (dchar_p): New typedef.  Define heap VEC for it.
2666         (producer_string): New variable.
2667         (gen_producer_string): New function.
2668         (gen_compile_unit_die): Use it.
2669         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
2670         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
2671         * doc/invoke.texi: Document -grecord-gcc-switches and
2672         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
2673         to -frecord-gcc-switches description.
2674
2675 2011-07-22  Jason Merrill  <jason@redhat.com>
2676
2677         PR c++/30112
2678         * c-decl.c (c_linkage_bindings): Define.
2679
2680 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
2681
2682         PR debug/49815
2683         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
2684
2685 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
2686
2687         * config/i386/i386.c (ix86_option_override_internal): Disallow
2688         MS ABI in x32 mode.
2689         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
2690         only for TARGET_LP64.
2691         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
2692
2693 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
2694
2695         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
2696         avoid warnings when GCC is built with a C++ compiler.
2697
2698 2011-07-22  Martin Jambor  <mjambor@suse.cz>
2699
2700         PR lto/49796
2701         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
2702         if decl node is in another partition, call cgraph_get_node only once.
2703
2704 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
2705
2706         * config.gcc (x86_64-*-linux*): Set
2707         default_gnu_indirect_function to yes.
2708
2709 2011-07-22  Richard Guenther  <rguenther@suse.de>
2710
2711         PR tree-optimization/45819
2712         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2713         preserve volatile and notrap flags.
2714
2715 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2716             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2717
2718         PR bootstrap/49794
2719         * configure.ac: Test AM_ICONV with CXX.
2720         * configure: Regenerate.
2721         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
2722
2723 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2724
2725         PR bootstrap/49797
2726         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
2727         (set_cloog_options): Use it.
2728
2729 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
2730
2731         PR c++/49756
2732         * gcc.c (main): Call stack_limit_increase (64MB).
2733         * toplev.c (toplev_main): Likewise.
2734
2735 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2736
2737         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
2738         instead of force_reg.
2739
2740 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2741
2742         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
2743         needed and use force_reg after convert.
2744         (ix86_expand_call): Likewise.
2745         (ix86_expand_special_args_builtin): Likewise.
2746         (ix86_expand_builtin): Likewise.
2747
2748 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2749
2750         PR middle-end/47654
2751         PR middle-end/49649
2752         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
2753         in parameter.  Initialize v1 and v2 based on the values returned
2754         by clast_name_to_lb_ub.
2755         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
2756         values.
2757         (type_for_clast_bin): Same.
2758         (type_for_clast_expr): Same.
2759         (type_for_clast_eq): Update calls to type_for_clast_expr.
2760         (type_for_clast_for): Same.
2761         (build_iv_mapping): Same.
2762         * graphite-ppl.h (value_min): New.
2763
2764 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2765
2766         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
2767         types whenever possible.
2768
2769 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2770
2771         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
2772         and ub fields.
2773         (new_clast_name_index): Add lb and ub parameters.
2774         (free_clast_name_index): New.
2775         (clast_name_to_lb_ub): New.
2776         (save_clast_name_index): Add lb and ub parameters.
2777         (compute_bounds_for_param): New.
2778         (type_for_level): Removed.
2779         (type_for_clast_for): Removed level parameter.  Do not call
2780         type_for_level.
2781         (graphite_create_new_loop): Store the lb and ub for the clast_name
2782         of the iterator of the loop that has been generated.
2783         (graphite_create_new_loop_guard): Remove parameter level.
2784         (create_params_index): Store the lb and ub of each parameter.
2785         (gloog): Use free_clast_name_index.  Pass to create_params_index
2786         the current scop.
2787
2788 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2789
2790         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
2791         (max_precision_type): Inline max_signed_precision_type.
2792         (type_for_clast_red): Use max_precision_type.
2793         (type_for_clast_bin): Same.
2794         (type_for_clast_for): Same.
2795
2796 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2797
2798         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
2799         type_for_interval.
2800         (gcc_type_for_value): Renamed type_for_value.
2801         (gcc_type_for_clast_term): Renamed type_for_clast_term.
2802         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
2803         (gcc_type_for_clast_red): Renamed type_for_clast_red.
2804         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
2805         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
2806         (graphite_translate_clast_equation): Update calls.
2807         (compute_type_for_level): Renamed type_for_level.
2808         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
2809         (build_iv_mapping): Update calls.
2810         (graphite_create_new_loop_guard): Same.
2811
2812 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2813
2814         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
2815         comment.
2816
2817 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2818
2819         * graphite-clast-to-gimple.c (struct ivs_params): New.
2820         (clast_name_to_gcc): Use ivs_params to pass around parameters.
2821         (clast_to_gcc_expression): Same.
2822         (clast_to_gcc_expression_red): Same.
2823         (gcc_type_for_clast_term): Same.
2824         (gcc_type_for_clast_expr): Same.
2825         (gcc_type_for_clast_red): Same.
2826         (gcc_type_for_clast_bin): Same.
2827         (gcc_type_for_clast_eq): Same.
2828         (graphite_translate_clast_equation): Same.
2829         (graphite_create_guard_cond_expr): Same.
2830         (graphite_create_new_guard): Same.
2831         (graphite_create_new_loop): Same.
2832         (build_iv_mapping): Same.
2833         (translate_clast_user): Same.
2834         (graphite_create_new_loop_guard): Same.
2835         (translate_clast): Same.
2836         (translate_clast_for_loop): Same.
2837         (translate_clast_for): Same.
2838         (translate_clast_guard): Same.
2839         (initialize_cloog_names): Fix typo.
2840         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
2841
2842 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2843
2844         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
2845         (new_clast_name_index): Add level parameter.
2846         (clast_name_to_level): New.
2847         (save_clast_name_index): Add level parameter.
2848         (newivs_to_depth_to_newiv): Removed.
2849         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
2850         (graphite_create_new_loop): Add level parameter.  Pass level to
2851         save_clast_name_index.
2852         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
2853         (create_params_index): Pass level to save_clast_name_index.
2854
2855 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2856
2857         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
2858         recompute type, lb, and ub.  Get them from...
2859         (graphite_create_new_loop_guard): ...here.  Pass in parameter
2860         pointers to type, lb, and ub.
2861         (translate_clast_for_loop): Update function calls.
2862         (translate_clast_for): Same.
2863
2864 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2865
2866         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
2867         psct_dynamic_dim.
2868         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
2869         (gcc_type_for_iv_of_clast_loop): Update use of level.
2870         (gloog): Start counting nesting level from 0.
2871         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
2872         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
2873         psct_dynamic_dim on level.
2874
2875 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2876
2877         * config/i386/i386.c (ix86_legitimize_address): Convert to
2878         Pmode if needed.
2879
2880 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2881
2882         * config/i386/i386.c (function_value_64): Always return pointers
2883         in Pmode.
2884         (ix86_promote_function_mode): New.
2885         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
2886
2887 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2888
2889         PR tree-optimization/49749
2890         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
2891         remove no-longer-used maxrank variable.
2892
2893 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
2894
2895         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
2896
2897 2011-07-21  Jason Merrill  <jason@redhat.com>
2898
2899         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
2900         * recog.h (struct insn_data_d): Check it instead of
2901         HAVE_DESIGNATED_INITIALIZERS.
2902         * genoutput.c (output_insn_data): Likewise.
2903
2904 2011-07-21  Richard Guenther  <rguenther@suse.de>
2905
2906         PR tree-optimization/49770
2907         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
2908         valueized any operand.  Renamed from ...
2909         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
2910         (valueize_shared_reference_ops_from_ref): Return whether we
2911         valueized any operand.
2912         (vn_reference_lookup): Only when we valueized any operand
2913         use the valueized reference for alias analysis.  Do not preserve
2914         the original reference tree in this case.
2915
2916 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
2917
2918         * config/i386/i386.c (ix86_decompose_address): Reject all but
2919         register operands and subregs of DImode hard registers in index.
2920
2921 2011-07-21  Kai Tietz  <ktietz@redhat.com>
2922
2923         * fold-const.c (fold_unary_loc): Preserve indirect
2924         comparison cast to none-boolean type.
2925         * tree-ssa.c (useless_type_conversion_p): Preserve cast
2926         from/to boolean-type.
2927         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
2928         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
2929         * tree-cfg.c (verify_gimple_comparison): Check result
2930         type of comparison expression.
2931         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
2932         of condition result and disallow type-cast sinking into comparison.
2933
2934 2011-07-21  Richard Guenther  <rguenther@suse.de>
2935
2936         * tree-ssa-forwprop.c (combine_conversions): Return whether
2937         we have to run cfg-cleanup.  Properly remove dead stmts.
2938         (ssa_forward_propagate_and_combine): Adjust.
2939
2940 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
2941
2942         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
2943
2944 2011-07-21  Kai Tietz  <ktietz@redhat.com>
2945
2946         * tree-ssa-propagate.c (substitute_and_fold): Use
2947         do_dce flag to deside, if BB's statements are scanned
2948         in last to first, or first to last order.
2949
2950 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
2951
2952         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
2953
2954 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
2955             Uros Bizjak  <ubizjak@gmail.com>
2956             Richard Henderson  <rth@redhat.com>
2957
2958         * config/i386/constraints.md (w): New.
2959
2960         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
2961         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
2962
2963         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
2964         instead of TARGET_64BIT.
2965
2966         * config/i386/i386.md (indirect_jump): Replace
2967         nonimmediate_operand with indirect_branch_operand.
2968         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
2969         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
2970         Convert operand 0 to Pmode for x32 if not PIC.
2971         (*tablejump_1): Replace nonimmediate_operand with
2972         indirect_branch_operand.  Replace constraint "m" with "w".
2973         (*call_vzeroupper): Replace constraint "m" with "w".
2974         (*call): Likewise.
2975         (*call_rex64_ms_sysv_vzeroupper): Likewise.
2976         (*call_rex64_ms_sysv): Likewise.
2977         (*call_value_vzeroupper): Likewise.
2978         (*call_value): Likewise.
2979         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
2980         (*call_value_rex64_ms_sysv): Likewise.
2981         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
2982
2983         * config/i386/predicates.md (indirect_branch_operand): New.
2984         (call_insn_operand): Support x32.
2985
2986 2011-07-20  Michael Eager  <eager@eagercon.com>
2987
2988         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
2989
2990 2011-07-20  Richard Henderson  <rth@redhat.com>
2991
2992         * cfg.c (dump_bb_info): Dump basic_block->flags.
2993         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
2994
2995 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
2996
2997         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2998         of DImode hard registers in index.
2999         (ix86_legitimate_address_p): Allow subregs of base and index to span
3000         more than a word.  Assert that subregs of base and index satisfy
3001         register_no_elim_operand predicates.  Reject addresses where
3002         base and index have different modes.
3003
3004 2011-07-20  Robert Millan  <rmh@gnu.org>
3005
3006         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
3007
3008 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3009
3010         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
3011         removing now-unnecessary assignment.
3012
3013 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3014
3015         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
3016         memory address space to the type's address space.
3017
3018 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
3019
3020         PR target/36467
3021         PR target/49687
3022         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
3023         and expand appropriately if there is a CONST_INT in operand2.
3024         (usmulqihi3): New insn.
3025         (*sumulqihi3): New insn.
3026         (*osmulqihi3): New insn.
3027         (*oumulqihi3): New insn.
3028         (*muluqihi3.uconst): New insn_and_split.
3029         (*muluqihi3.sconst): New insn_and_split.
3030         (*mulsqihi3.sconst): New insn_and_split.
3031         (*mulsqihi3.uconst): New insn_and_split.
3032         (*mulsqihi3.oconst): New insn_and_split.
3033         (*ashifthi3.signx.const): New insn_and_split.
3034         (*ashifthi3.signx.const7): New insn_and_split.
3035         (*ashifthi3.zerox.const): New insn_and_split.
3036         (mulsqihi3): New insn.
3037         (muluqihi3): New insn.
3038         (muloqihi3): New insn.
3039         * config/avr/predicates.md (const_2_to_7_operand): New.
3040         (const_2_to_6_operand): New.
3041         (u8_operand): New.
3042         (s8_operand): New.
3043         (o8_operand): New.
3044         (s9_operand): New.
3045         (register_or_s9_operand): New.
3046
3047 2011-07-20  Kai Tietz  <ktietz@redhat.com>
3048
3049         * builtins.c (fold_builtin_expect): See through the cast
3050         from truthvalue_type_node to long.
3051
3052 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
3053
3054         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
3055         where we can use them from the standard and altivec instruction
3056         sets, instead of always using the 3 operand VSX forms that require
3057         the destination to overlap one of the inputs.
3058         (vsx_fms*): Ditto.
3059         (vsx_fnma*): Ditto.
3060         (vsx_fnms*): Ditto.
3061
3062         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
3063         for DF types.
3064         (fmsdf4_fpr): Ditto.
3065         (nfmadf4_fpr): Ditto.
3066         (nfmsdf4_fpr): Ditto.
3067
3068 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
3069
3070         * genrecog.c (make_insn_sequence): Correct position numbering
3071         when filtering out match_scratch and match_dup.
3072
3073 2011-07-20  Richard Guenther  <rguenther@suse.de>
3074
3075         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
3076         against already removed statements.
3077         (forward_propagate_into_comparison): Remove dead defining stmts.
3078         (forward_propagate_into_gimple_cond): Likewise.
3079         (forward_propagate_into_cond): Simplify.
3080         (ssa_forward_propagate_and_combine): Handle changed cfg from
3081         forward_propagate_into_comparison.
3082         * tree-ssa-phiopt.c (conditional_replacement): Use proper
3083         locations for newly built statements.
3084
3085 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
3086
3087         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
3088
3089 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3090
3091         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
3092         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
3093
3094 2011-07-20  Richard Guenther  <rguenther@suse.de>
3095
3096         PR middle-end/18908
3097         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
3098         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
3099         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
3100
3101 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
3102
3103         * config/frv/frv.c (frv_register_move_cost): Define explicitly
3104         costs for subclasses of GR_REGS.
3105
3106 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
3107
3108         PR target/49780
3109         * config/i386/predicates.md (no_seg_addres_operand): No more special.
3110         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3111         of DImode hard registers in base.
3112         (ix86_legitimate_address_p): Allow SImode and DImode base and index
3113         registers.
3114
3115 2011-07-20  Richard Guenther  <rguenther@suse.de>
3116
3117         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
3118         (unify_nodes): Deal with that.
3119         (solve_graph): Likewise.
3120
3121 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
3122
3123         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
3124         canonicalize left operand from ZERO_EXTEND to AND.
3125
3126 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
3127
3128         * target.def (class_max_nregs): New hook.
3129         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
3130         * doc/tm.texi: Regenerate.
3131         * targhooks.c (default_class_max_nregs): New function.
3132         * targhooks.h (default_class_max_nregs): Declare.
3133         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
3134         x_ira_reg_class_min_nregs arrays to unsigned char.
3135         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
3136         hook instead of CLASS_MAX_NREGS macro.
3137         * reginfo.c (restore_register_info): Ditto.
3138         * ira-conflicts.c (process_regs_for_copy): Use
3139         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3140         Change type rclass and aclass vars to reg_class_t.
3141         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
3142         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
3143         reg_class_t.
3144         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
3145         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3146
3147         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
3148         * config/i386/i386.c (ix86_class_max_nregs): New function.
3149         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
3150         instead of CLASS_MAX_NREGS macro.
3151         (TARGET_CLASS_MAX_NREGS): Define.
3152         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
3153         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
3154         * config/avr/avr.c (class_max_nregs): Remove function.
3155         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
3156         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
3157         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
3158         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
3159         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
3160         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
3161         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
3162         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
3163         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
3164         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
3165         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
3166         * config/score/score.h (CLASS_MAX_NREGS): Remove.
3167         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
3168         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
3169         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
3170
3171 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
3172
3173         * cif-code.def (OVERWRITABLE): Fix typo and move around.
3174         (TARGET_OPTIMIZATION_MISMATCH): Delete.
3175         (EH_PERSONALITY): Fix typo.
3176         (NON_CALL_EXCEPTIONS): Fix message.
3177         (OPTIMIZATION_MISMATCH): Adjust message.
3178         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
3179
3180 2011-07-19  Ian Lance Taylor  <iant@google.com>
3181
3182         * doc/install.texi (Configuration): Document
3183         --enable-build-poststage1-with-cxx.
3184
3185 2011-07-19  Robert Millan  <rmh@gnu.org>
3186
3187         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
3188         (GLIBC_DYNAMIC_LINKER): Remove.
3189
3190         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
3191         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3192         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3193         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
3194         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
3195         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
3196
3197         * config/mips/linux.h: Remove everything except for ...
3198         (GLIBC_DYNAMIC_LINKER): ... this macro.
3199
3200         * config/mips/linux64.h: Remove everything except for ...
3201         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3202         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3203         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
3204         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
3205         (GNU_USER_LINK_EMULATIONN32): New macros.
3206
3207         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
3208         Use the new headers.
3209
3210 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3211
3212         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
3213         Add offset_known_p and size_known_p fields.
3214         (MEM_OFFSET_KNOWN_P): Update accordingly.
3215         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
3216         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
3217         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
3218         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
3219         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
3220         (init_emit_regs): Likewise.
3221
3222 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3223
3224         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
3225         (MEM_OFFSET): Change from returning an rtx to returning a
3226         HOST_WIDE_INT.
3227         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
3228         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
3229         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3230         (clear_mem_offset): Declare.
3231         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
3232         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
3233         MEM_OFFSET to get a HOST_WIDE_INT offset.
3234         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
3235         (adjust_offset_for_component_ref): Take a bool "known_p"
3236         parameter and a HOST_WIDE_INT "offset" parameter.
3237         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
3238         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
3239         than an rtx.  Use clear_mem_offset to clear the offset.
3240         * cfgcleanup.c (merge_memattrs): Likewise.
3241         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
3242         * function.c (assign_parm_find_stack_rtl): Likewise.
3243         (assign_parm_setup_stack): Likewise.
3244         * print-rtl.c (print_rtx): Likewise.
3245         * reload.c (find_reloads_subreg_address): Likewise.
3246         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
3247         * var-tracking.c (INT_MEM_OFFSET): Likewise.
3248         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
3249         (get_mem_align_offset): Likewise.
3250         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3251         (clear_mem_offset): New function.
3252         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
3253         offset rather than an rtx.  Assume both the expressio and offset
3254         are available.
3255         (r10k_needs_protection_p_1): Update accordingly, checking the
3256         expression and offset availability here instead.
3257
3258 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3259
3260         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
3261         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
3262         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
3263         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
3264         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3265         (clear_mem_size): Declare.
3266         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3267         (clear_mem_size): New function.
3268         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
3269         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
3270         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
3271         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
3272         to clear the size.
3273         (nonoverlapping_memrefs_p): Likewise.
3274         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
3275         (expand_builtin_init_trampoline): Likewise.
3276         * calls.c (compute_argument_addresses): Likewise.
3277         * cfgcleanup.c (merge_memattrs): Likewise.
3278         * dce.c (find_call_stack_args): Likewise.
3279         * dse.c (record_store, scan_insn): Likewise.
3280         * dwarf2out.c (dw_sra_loc_expr): Likewise.
3281         * expr.c (emit_block_move_hints): Likewise.
3282         * function.c (assign_parm_find_stack_rtl): Likewise.
3283         * print-rtl.c (print_rtx): Likewise.
3284         * reload.c (find_reloads_subreg_address): Likewise.
3285         * rtlanal.c (may_trap_p_1): Likewise.
3286         * var-tracking.c (track_expr_p): Likewise.
3287         * varasm.c (assemble_trampoline_template): Likewise.
3288         * config/arm/arm.c (arm_print_operand): Likewise.
3289         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
3290         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
3291         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
3292         (expand_constant_setmem_prologue): Likewise.
3293         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
3294         * config/rs6000/rs6000.c (expand_block_move): Likewise.
3295         (adjacent_mem_locations): Likewise.
3296         * config/s390/s390.c (s390_expand_setmem): Likewise.
3297         (s390_expand_insv): Likewise.
3298         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
3299         (*extendqi<mode>2_short_displ): Likewise.
3300         * config/sh/sh.c (expand_block_move): Likewise.
3301         * config/sh/sh.md (extv, extzv): Likewise.
3302
3303 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3304
3305         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
3306         (mem_attrs_htab_eq): ...here.
3307         (find_mem_attrs): Replace with...
3308         (set_mem_attrs): ...this function.  Take a mem_attrs structure
3309         rather than individual fields.
3310         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3311         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3312         (set_mem_size, change_address, adjust_address_1, offset_address)
3313         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3314         Update accordingly.
3315
3316 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3317
3318         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
3319         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
3320         Provide a dummy definition of MEM_ADDR_SPACE for generators.
3321         (target_rtl): Add x_mode_mem_attrs.
3322         (mode_mem_attrs): New macro.
3323         (get_mem_attrs): New function.
3324         * emit-rtl.c (get_mem_attrs): Rename to...
3325         (find_mem_attrs): ...this.
3326         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3327         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3328         (set_mem_size, change_address, adjust_address_1, offset_address)
3329         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3330         Update accordingly.
3331         (init_emit_regs): Initialize mode_mem_attrs.
3332
3333 2011-07-19  Richard Guenther  <rguenther@suse.de>
3334
3335         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
3336         TRUTH_*_EXPR handling.
3337         * tree-ssa-operands.c (get_expr_operands): Likewise.
3338         * tree-ssa-pre.c (fully_constant_expression): Likewise.
3339         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
3340         Likewise.
3341         (is_and_or_or): Likewise.
3342         (is_norm_cond_subset_of): Likewise.
3343
3344 2011-07-19  Richard Guenther  <rguenther@suse.de>
3345
3346         * tree.h (fold_build_pointer_plus_loc): New helper function.
3347         (fold_build_pointer_plus_hwi_loc): Likewise.
3348         (fold_build_pointer_plus): Define.
3349         (fold_build_pointer_plus_hwi): Likewise.
3350         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
3351         (fold_builtin_memory_op): Likewise.
3352         (fold_builtin_stpcpy): Likewise.
3353         (fold_builtin_memchr): Likewise.
3354         (fold_builtin_strstr): Likewise.
3355         (fold_builtin_strchr): Likewise.
3356         (fold_builtin_strrchr): Likewise.
3357         (fold_builtin_strpbrk): Likewise.
3358         (fold_builtin_strcat): Likewise.
3359         (expand_builtin_memory_chk): Likewise.
3360         (fold_builtin_memory_chk): Likewise.
3361         * c-typeck.c (build_unary_op): Likewise.
3362         * cgraphunit.c (thunk_adjust): Likewise.
3363         * fold-const.c (build_range_check): Likewise.
3364         (fold_binary_loc): Likewise.
3365         * omp-low.c (extract_omp_for_data): Likewise.
3366         (expand_omp_for_generic): Likewise.
3367         (expand_omp_for_static_nochunk): Likewise.
3368         (expand_omp_for_static_chunk): Likewise.
3369         * tree-affine.c (add_elt_to_tree): Likewise.
3370         * tree-data-ref.c (split_constant_offset_1): Likewise.
3371         * tree-loop-distribution.c (generate_memset_zero): Likewise.
3372         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
3373         * tree-predcom.c (ref_at_iteration): Likewise.
3374         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
3375         (add_to_parts): Likewise.
3376         (create_mem_ref): Likewise.
3377         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3378         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
3379         (number_of_iterations_le): Likewise.
3380         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
3381         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3382         (vect_create_addr_base_for_vector_ref): Likewise.
3383         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
3384         (vect_create_cond_for_alias_checks): Likewise.
3385         * tree-vrp.c (extract_range_from_assert): Likewise.
3386         * config/alpha/alpha.c (alpha_va_start): Likewise.
3387         (alpha_gimplify_va_arg_1): Likewise.
3388         * config/i386/i386.c (ix86_va_start): Likewise.
3389         (ix86_gimplify_va_arg): Likewise.
3390         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3391         * config/mep/mep.c (mep_expand_va_start): Likewise.
3392         (mep_gimplify_va_arg_expr): Likewise.
3393         * config/mips/mips.c (mips_va_start): Likewise.
3394         (mips_gimplify_va_arg_expr): Likewise.
3395         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3396         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
3397         (rs6000_gimplify_va_arg): Likewise.
3398         * config/s390/s390.c (s390_va_start): Likewise.
3399         (s390_gimplify_va_arg): Likewise.
3400         * config/sh/sh.c (sh_va_start): Likewise.
3401         (sh_gimplify_va_arg_expr): Likewise.
3402         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
3403         * config/spu/spu.c (spu_va_start): Likewise.
3404         (spu_gimplify_va_arg_expr): Likewise.
3405         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3406         Likewise.
3407         (xstormy16_gimplify_va_arg_expr): Likewise.
3408         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
3409         (xtensa_gimplify_va_arg_expr): Likewise.
3410
3411 2011-07-19  Richard Guenther  <rguenther@suse.de>
3412
3413         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
3414         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
3415         handling.
3416
3417         PR middle-end/18908
3418         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
3419         result of BIT_*_EXPR to bitfield precision.
3420
3421 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
3422
3423         PR tree-optimization/49742
3424         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
3425         as a potential write.
3426
3427 2011-07-19  Richard Guenther  <rguenther@suse.de>
3428
3429         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
3430         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
3431         (forward_propagate_comparison): Simplify, remove obsolete code.
3432
3433 2011-07-19  Richard Guenther  <rguenther@suse.de>
3434
3435         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
3436         BIT_XOR_EXPR, same as the RTL expander does.
3437         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
3438         (verify_gimple_assign_unary): Likewise.
3439         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
3440         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
3441         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
3442
3443 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
3444
3445         PR tree-optimization/49768
3446         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
3447         if offset is smaller than bitoffset, but offset+size is bigger
3448         than bitoffset.
3449
3450 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
3451
3452         PR tree-optimization/49771
3453         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
3454         zero step, set segment length to the size of the data-ref's type.
3455
3456 2011-07-18  Martin Jambor  <mjambor@suse.cz>
3457
3458         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
3459         comments.
3460         (ipcp_values_pool): Declare.
3461         (ipcp_sources_pool): Likewise.
3462         (ipcp_lattice): Changed to forward declaration.
3463         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
3464         cannot_devirtualize.
3465         (ipa_node_params): New fields descriptors, lattices, known_vals,
3466         clone_for_all_contexts and node dead, removed fields params and
3467         count_scale.
3468         (ipa_set_param_count): Removed.
3469         (ipa_get_param_count): Made to work with descriptors vector.
3470         (ipa_get_param): Updated.
3471         (ipa_param_cannot_devirtualize_p): Removed.
3472         (ipa_param_types_vec_empty): Likewise.
3473         (ipa_set_param_used): New function.
3474         (ipa_get_param_used): Updated to use descriptors vector.
3475         (ipa_func_list): Removed.
3476         (ipa_init_func_list): Removed declaration.
3477         (ipa_push_func_to_list_1): Likewise.
3478         (ipa_pop_func_from_list): Likewise.
3479         (ipa_push_func_to_list): Removed.
3480         (ipa_lattice_from_jfunc): Remove declaration.
3481         (ipa_get_jf_pass_through_result): Declare.
3482         (ipa_get_jf_ancestor_result): Likewise.
3483         (ipa_value_from_jfunc): Likewise.
3484         (ipa_get_lattice): Update.
3485         (ipa_lat_is_single_const): New function.
3486         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
3487         (ipa_init_func_list): Likewise.
3488         (ipa_pop_func_from_list): Likewise.
3489         (ipa_get_param_decl_index): Fix coding style.
3490         (count_formal_params): Removed.
3491         (count_formal_params_1): Renamed to count_formal_params.
3492         (ipa_populate_param_decls): Update to use descriptors vector.
3493         (ipa_initialize_node_params): Likewise.
3494         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
3495         (ipa_analyze_params_uses): Likewise.
3496         (ipa_free_node_params_substructures): Likewise and free also lattices
3497         and known values.
3498         (duplicate_array): Removed.
3499         (ipa_edge_duplication_hook): Add the new edge to the list of edge
3500         clones.
3501         (ipa_node_duplication_hook): Update to use new lattices.
3502         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
3503         (ipa_free_all_structures_after_iinln): Likewise.
3504         (ipa_write_node_info): Update to use new lattices.
3505         (ipa_read_node_info): Likewise.
3506         (ipa_get_jf_pass_through_result): New function.
3507         (ipa_get_jf_ancestor_result): Likewise.
3508         (ipa_value_from_jfunc): Likewise.
3509         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
3510         * ipa-cp.c: Reimplemented.
3511         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
3512         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
3513         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
3514         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
3515         * doc/invoke.texi (devirt-type-list-size): Removed description.
3516         (ipa-cp-value-list-size): Added description.
3517
3518 2011-07-18  Richard Henderson  <rth@redhat.com>
3519
3520         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
3521         before calling create_basic_block.
3522
3523 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
3524
3525         PR middle-end/49675
3526         * tree.c (build_common_builtin_nodes): Register
3527         __builtin_return_address, __cyg_profile_func_enter
3528         and __cyg_profile_func_exit.
3529
3530 2011-07-18  Richard Henderson  <rth@redhat.com>
3531
3532         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
3533         (add_labels_and_missing_jumps): ... here.
3534         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
3535
3536 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
3537
3538         PR target/47744
3539         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3540         of DImode hard registers in PLUS address chains.
3541
3542 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3543
3544         PR bootstrap/49769
3545         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
3546         (alpha*-*-freebsd*): Likewise.
3547         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3548         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3549         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
3550         crtprec80.o, crtfastmath.o to extra_parts for all targets.
3551         (ia64*-*-elf*): Remove extra_parts.
3552         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
3553         (sparc64-*-linux*): Likewise.
3554         (sparc64-*-freebsd*): Likewise.
3555
3556         Revert:
3557         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
3558         (ia64*-*-linux*): Likewise.
3559         (mips64*-*-linux*): Likewise.
3560         (mips*-*-linux*): Likewise.
3561
3562 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
3563
3564         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
3565
3566 2011-07-18  Richard Guenther  <rguenther@suse.de>
3567
3568         * gimplify.c (gimplify_expr): Use input_location, not saved_location
3569         when building new trees.
3570
3571 2011-07-18  Richard Guenther  <rguenther@suse.de>
3572
3573         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
3574         expansion result to bitfield precision if required.
3575
3576 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3577
3578         * config.gcc (i[3456x]86-*-netware*): Remove.
3579
3580         * gthr-nks.h: Remove.
3581         * configure.ac (enable_threads): Remove nks.
3582         * configure: Regenerate.
3583
3584         * config/i386/i386.c (ix86_encode_section_info): Remove netware
3585         reference.
3586         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
3587         <netware.h> reference.
3588
3589         * config/i386/netware-libgcc.c,
3590         gcc/config/i386/netware-libgcc.def,
3591         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
3592         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
3593         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
3594         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
3595
3596         * doc/extend.texi (Function Attributes,
3597         callee_pop_aggregate_return): Remove i?86-netware reference.
3598         * doc/install.texi (Configuration, --enable-threads): Remove nks.
3599
3600 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3601
3602         PR target/49746
3603         Revert:
3604         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3605
3606         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
3607         patterns.
3608
3609 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
3610
3611         PR middle-end/49732
3612         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
3613
3614 2011-07-16  Matthias Klose  <doko@ubuntu.com>
3615
3616         * doc/install.texi: Document --enable-static-libjava.
3617
3618 2011-07-15  Richard Henderson  <rth@redhat.com>
3619
3620         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3621         Replace all three arguments by returning a VEC of edges.
3622         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
3623         pointers and counts.
3624         (fix_edges_for_rarely_executed_code): Merge ...
3625         (rest_of_handle_partition_blocks): ... into...
3626         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
3627         any work was performed.
3628         (pass_partition_blocks): Clear todo_flags_finish.
3629
3630 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
3631             Jakub Jelinek  <jakub@redhat.com>
3632             Jonathan Wakely  <jwakely.gcc@gmail.com>
3633
3634         PR libstdc++/49745
3635         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
3636         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
3637
3638 2011-07-15  Jason Merrill  <jason@redhat.com>
3639
3640         PR testsuite/49741
3641         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
3642         rather than --tool_opts.
3643
3644 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
3645
3646         * doc/plugins.texi (Building GCC plugins): gengtype needs its
3647         corresponding gtype.state.
3648
3649 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3650
3651         PR target/49723
3652         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
3653
3654 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
3655
3656         PR target/48220
3657         * doc/md.texi (Standard Names): Document window_save.
3658         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
3659         expand_debug_expr and expand_debug_source_expr.  If the target has
3660         a window_save instruction, adjust the ENTRY_VALUE_EXP.
3661         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
3662         SSA_NAME_VAR is a parameter.
3663         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
3664         * var-tracking.c (parm_reg_t): New type and associated vector type.
3665         (windowed_parm_regs): New variable.
3666         (adjust_insn): If the target has a window_save instruction and this
3667         is the instruction, make its effect on parameter registers explicit.
3668         (next_non_note_insn_var_location): New function.
3669         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
3670         (vt_add_function_parameter): If the target has a window_save insn,
3671         adjust the incoming RTL and record that in windowed_parm_regs.
3672         (vt_finalize): Free windowed_parm_regs.
3673
3674 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
3675
3676         * doc/invoke.texi (C6X Options): New section.
3677         * doc/md.texi (TI C6X family): New section.
3678         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
3679         tic6x-*-uclinux.
3680         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
3681         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
3682         Provide C6X definitions.
3683         * config/c6x/c6x.md: New file.
3684         * config/c6x/constraints.md: New file.
3685         * config/c6x/predicates.md: New file.
3686         * config/c6x/c6x-sched.md.in: New file.
3687         * config/c6x/c6x-sched.md: New file.
3688         * config/c6x/gensched.sh: New file.
3689         * config/c6x/c6x-mult.md.in: New file.
3690         * config/c6x/genmult.sh: New file.
3691         * config/c6x/c6x-mult.md: New file.
3692         * config/c6x/sync.md: New file.
3693         * config/c6x/c6x-protos.h: New file.
3694         * config/c6x/sfp-machine.h: New file.
3695         * config/c6x/c6x.c: New file.
3696         * config/c6x/c6x.h: New file.
3697         * config/c6x/crti.s: New file.
3698         * config/c6x/crtn.s: New file.
3699         * config/c6x/lib1funcs.asm: New file.
3700         * config/c6x/c6x-modes.def: New file.
3701         * config/c6x/genopt.sh: New file.
3702         * config/c6x/c6x.opt: New file.
3703         * config/c6x/c6x-tables.opt: New file.
3704         * config/c6x/c6x-opts.h: New file.
3705         * config/c6x/c6x-isas.def: New file.
3706         * config/c6x/elf.h: New file.
3707         * config/c6x/elf-common.h: New file.
3708         * config/c6x/uclinux-elf.h: New file.
3709         * config/c6x/t-c6x: New file.
3710         * config/c6x/t-c6x-elf: New file.
3711         * config/c6x/t-c6x-uclinux: New file.
3712         * config/c6x/t-c6x-softfp: New file.
3713         * config/c6x/gtd.c: New file.
3714         * config/c6x/gtf.c: New file.
3715         * config/c6x/ltd.c: New file.
3716         * config/c6x/ltf.c: New file.
3717         * config/c6x/ged.c: New file.
3718         * config/c6x/gef.c: New file.
3719         * config/c6x/led.c: New file.
3720         * config/c6x/lef.c: New file.
3721         * config/c6x/eqd.c: New file.
3722         * config/c6x/eqf.c: New file.
3723         * config/c6x/libgcc-c6xeabi.ver: New file.
3724
3725         Revert
3726         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
3727         PR rtl-optimization/11320
3728         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
3729         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
3730         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
3731         current_sched_info->compute_jump_reg_dependencies. Record which
3732         registers are used and which registers are set by the jump.
3733         Clear deps->reg_conditional_sets after a barrier.
3734         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
3735         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
3736         (init_deps): Initialize reg_conditional_sets.
3737         (free_deps): Clear reg_conditional_sets.
3738         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
3739         Mark registers live on entry of the fallthrough block and conditionally
3740         set as set by the jump. Mark registers live on entry of non-fallthrough
3741         blocks as used by the jump.
3742         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
3743         Mark new parameters as unused.
3744
3745 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
3746
3747         PR tree-opt/49309
3748         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
3749         Use fold_build2_loc instead of build2.
3750         Use the correct type for the new tree.
3751
3752 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
3753
3754         PR rtl-optimization/11320
3755         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
3756         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
3757
3758 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
3759
3760         PR target/49487
3761         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
3762         of REG.
3763         (*rotw<mode>): Use const_int_operand for operand2.
3764         Use match_scatch for operand3.
3765         (*rotb<mode>): Ditto
3766         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
3767
3768 2011-07-14  Richard Guenther  <rguenther@suse.de>
3769
3770         PR tree-optimization/49651
3771         * tree-ssa-structalias.c (get_constraint_for_1): Properly
3772         handle dereferences with subvariables.
3773
3774 2011-07-14  Richard Guenther  <rguenther@suse.de>
3775
3776         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
3777         (fold_stmt_1): Do it here directly on gimple and as a first thing.
3778
3779 2011-07-14  Richard Guenther  <rguenther@suse.de>
3780
3781         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
3782         not bool_var when folding bool_var != 1 or bool_var == 0.
3783
3784 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
3785
3786         * haifa-sched.c (schedule_insns): Remove outdated comment.
3787         (schedule_block): When computing a known value for TODO_SPEC,
3788         just set it rather than using logical operations.
3789         (try_ready): Likewise.  Use a local variable rather than a
3790         pointer to TODO_SPEC.  Reorder an if statement to move the
3791         easy case to the then block.
3792         * sched-deps.c (dep_spec_p): New static function.
3793         (update_dep): Use it to decide whether to call
3794         change_spec_dep_to_hard.
3795         (get_back_and_forw_lists): Use it.
3796         (sd_resolve_dep): Likewise.
3797         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
3798         (haifa_note_mem_dep): Likewise.
3799         (check_dep): Likewise.
3800         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
3801         (sched_free_deps): Free in two passes.
3802
3803 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
3804
3805         PR middle-end/49736
3806         * expr.c (all_zeros_p): Undo bogus part of last change.
3807
3808 2011-07-14  Matthias Klose <doko@ubuntu.com>
3809
3810         * doc/extend.texi (optimize attribute): Fix typo.
3811
3812 2011-07-14  Richard Guenther  <rguenther@suse.de>
3813
3814         * gimplify.c (gimplify_expr): Only do required conversions.
3815
3816 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
3817
3818         PR target/43746
3819         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
3820         i.e. use default_elf_select_section.
3821         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
3822         (READONLY_DATA_SECTION_ASM_OP): Remove.
3823         (TARGET_ASM_NAMED_SECTION): Move from here...
3824         * config/avr/avr.c: ...to here.
3825         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
3826         (avr_asm_named_section): Make static.
3827
3828 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3829
3830         PR bootstrap/49739
3831         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
3832         and crtfastmath.o for Linux/x86.
3833
3834 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
3835
3836         * haifa-sched.c: Include "hashtab.h"
3837         (sched_no_dce): New global variable.
3838         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
3839         SHADOW_P): New macros.
3840         (last_clock_var, cycle_issued_insns): Move declarations.
3841         (must_backtrack): New static variable.
3842         (struct delay_pair): New structure.
3843         (delay_htab, delay_htab_i2): New static variables.
3844         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
3845         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
3846         functions.
3847         (dep_cost_1): If delay pairs exist, try to look up the insns and
3848         use the correct pair delay if we find them.
3849         (rank-for_schedule): Tweak priority for insns that must be scheduled
3850         soon to avoid backtracking.
3851         (queue_insn): Detect conditions which force backtracking.
3852         (ready_add): Likewise.
3853         (struct sched_block_state): Add member shadows_only_p.
3854         (struct haifa_save_data): New structure.
3855         (backtrack_queue): New static variable.
3856         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
3857         unschedule_insns_until, restore_last_backtrack_point,
3858         free_topmost_backtrack_point, free_backtrack_queue,
3859         estimate_insn_tick, estimate_shadow_tick): New functions.
3860         (prune_ready_list): New arg shadows_only_p.  All callers changed.
3861         If true, remove everything that isn't SHADOW_P.  Look up delay
3862         pairs and estimate ticks to avoid scheduling the first insn too early.
3863         (verify_shadows): New function.
3864         (schedule_block): Add machinery to enable backtracking.
3865         (sched_init): Take sched_no_dce into account when setting
3866         DF_LR_RUN_DCE.
3867         (free_delay_pairs): New function.
3868         (init_h_i_d): Initialize INSN_EXACT_TICK.
3869         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
3870         * sched-deps.c (sd_unresolve_dep): New function.
3871         * sched-int. (struct haifa_sched_info): New fields save_state
3872         and restore_state.
3873         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
3874         feeds_backtrack_insn and shadow_p.
3875         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
3876         (sched_no_dce): Declare variable.
3877         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
3878         sd_unresolve_dep): Declare functions.
3879         * modulo-sched.c (sms_sched_info): Clear the two new fields.
3880         * sched-rgn.c (rgn_const_sched_info): Likewise.
3881         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
3882         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
3883         (ebb_sched_info): Add them for the two new fields.
3884         (add_deps_for_risky_insns): Call add_delay_dependencies.
3885
3886 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
3887
3888         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
3889         Rename -mr11.
3890         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
3891         (rs6000_call_indirect_aix): Ditto.
3892         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
3893         (call_indirect_aix<ptrsize>_internal): Ditto.
3894         (call_indirect_aix<ptrsize>_nor11): Ditto.
3895         (call_indirect_aix<ptrsize>_internal2): Ditto.
3896         (call_value_indirect_aix<ptrsize>): Ditto.
3897         (call_value_indirect_aix<ptrsize>_internal): Ditto.
3898         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3899         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3900         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
3901
3902 2011-07-13  Jason Merrill  <jason@redhat.com>
3903
3904         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
3905
3906 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3907
3908         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
3909         * config/spu/spu.md ("clrsb<mode>2"): New expander.
3910
3911 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
3912
3913         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
3914         * configure: Regenerate.
3915
3916 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3917
3918         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
3919         (asm_file_start): Remove.
3920         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
3921         free_bb_for_insn around code that modifies insns before
3922         restarting df analysis.
3923
3924 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3925
3926         PR target/49541
3927         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
3928         (LINK_SPEC): ... here.
3929
3930 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
3931
3932         * haifa-sched.c (struct sched_block_state): New.
3933         (schedule_block): Move some local variables into such a structure.
3934
3935 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3936
3937         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
3938         * config/i386/t-crtpc: Remove.
3939         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
3940         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
3941         tmake_file.
3942         (x86_64-*-darwin*): Likewise.
3943         (i[34567]86-*-linux*): Likewise.
3944         (x86_64-*-linux*): Likewise.
3945
3946         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
3947         Handle -mpc32, -mpc64, -mpc80.
3948
3949 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3950
3951         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
3952         * config/alpha/t-crtfm: Remove.
3953         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
3954         * config/i386/t-crtfm: Remove.
3955         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
3956         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
3957         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
3958         * config/sparc/t-crtfm: Remove.
3959
3960         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
3961         (alpha*-*-freebsd*): Likewise.
3962         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
3963         (x86_64-*-darwin*): Likewise.
3964         (i[34567]86-*-linux*): Likewise.
3965         (x86_64-*-linux*): Likewise.
3966         (x86_64-*-mingw*): Likewise.
3967         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
3968         (ia64*-*-freebsd*): Likewise.
3969         (ia64*-*-linux*): Likewise.
3970         (mips64*-*-linux*): Likewise.
3971         (mips*-*-linux*): Likewise.
3972         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
3973         (sparc64-*-linux*): Likewise.
3974         (sparc64-*-freebsd*): Likewise.
3975
3976 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3977
3978         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
3979         * config/darwin-crt3.c: Move to ../libgcc/config.
3980         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
3981         ($(T)crt3$(objext)): Remove.
3982         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
3983         ($(T)crt2$(objext)): Remove.
3984         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
3985         (powerpc64-*-darwin*): Likewise.
3986
3987 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
3988
3989         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
3990
3991         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
3992         (addsi_1_zext): This.
3993
3994 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
3995
3996         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
3997         * doc/tm.texi: Regenerate.
3998         * target.def (mergeable_rodata_prefix): New defhookpod.
3999         * varasm.c (mergeable_string_section, mergeable_constant_section):
4000         Use it. Allocate name with alloca.
4001
4002 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
4003
4004         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
4005
4006 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
4007
4008         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
4009         overlap check.
4010
4011 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
4012
4013         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
4014         (count_type_elements): Delete.
4015         (complete_ctor_at_level_p): Declare.
4016         * expr.c (flexible_array_member_p): New function, split out from...
4017         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
4018         parameter with for_ctor_p.  When for_ctor_p is true, return the
4019         number of elements that should appear in the top-level constructor,