OSDN Git Service

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