OSDN Git Service

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