OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
2
3         * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.
4
5 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
6
7         * doc/invoke.texi ([Wformat-zero-length]): Tidy.
8
9 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
10
11         * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr
12         also on COND_EXPR/VEC_COND_EXPR comparison operands if they are
13         ADDR_EXPRs.
14
15 2011-10-14  Richard Guenther  <rguenther@suse.de>
16
17         PR tree-optimization/50723
18         * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING.
19
20 2011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>
21
22         * gengtype.c (files_rules): Added rules for objc/objc-map.h and
23         objc/objc-map.c.
24
25 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
26
27         PR c++/17212
28         * c-family/c.opt ([Wformat-zero-length]): Add C++ and Objective-C++.
29         * doc/invoke.texi: Update.
30
31 2011-10-14  Iain Sandoe  <iains@gcc.gnu.org>
32
33         PR bootstrap/50699
34         * config/darwin.c (darwin_patch_builtin): Adjust argument type. Only
35         build for powerpc targets.  (darwin_patch_builtins): Only build for
36         powerpc targets.
37
38 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
39
40         * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to...
41         (avx_cvtdq2pd256_2): ... this.
42         (sseunpackfltmode): New mode attr.
43         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi,
44         vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize
45         using VI2_AVX2 iterator.
46         (vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New
47         expanders.
48
49 2011-10-13  David S. Miller  <davem@davemloft.net>
50
51         * config/sparc/sparc.md (plusminus): New code iterator.
52         (plusminus_insn): New code attr.
53         (addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge
54         using plusminus and plusminus_insn.
55         (fpadd64_vis, fpsub64_vis): Likewise.
56
57 2011-10-13  Richard Henderson  <rth@redhat.com>
58
59         * doc/md.texi (vec_perm): Document fallback to byte permutation.
60         * genopinit.c (optabs): Add vec_perm_const.
61         * optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p.
62         Reject non-vector modes.  Allow fallback to byte permutation.
63         (expand_vec_perm_expr_1): Split out from ...
64         (expand_vec_perm_expr): ... here.  Allow fallback to byte permutation.
65         * optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New.
66         * tree-vect-generic.c (lower_vec_perm): Update for name change.
67
68 2011-10-13  Richard Henderson  <rth@redhat.com>
69
70         * config/rs6000/altivec.md (vec_permv16qi): New pattern.
71
72         * config/rs6000/spu.md (vec_permv16qi): New pattern.
73
74         * config/i386/i386.c (ix86_expand_vec_perm_const): New.
75         * config/i386/i386-protos.h: Update.
76         * config/i386/sse.md (VEC_PERM_CONST): New mode iterator.
77         (vec_perm_const<VEC_PERM_CONST>): New expander.
78
79         * optabs.c (expand_vector_broadcast): New.
80         (expand_binop): Expand scalar shifts of vectors to vector shifts
81         of vectors, if the former isn't supported.
82         * tree-vect-generic.c (expand_vector_operations_1): Don't do that
83         here; always simplify to scalar shift of vector if possible.
84
85         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode
86         test for vector splat.
87
88 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
89
90         * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode
91         to V.
92
93 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
94             Richard Guenther  <rguenther@suse.de>
95
96         * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE
97         from vector or complex vars even if their DECL_UID is in not_reg_needs
98         bitmap.
99
100 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
101
102         * config/i386/sse.md (reduc_umin_v8hi): New pattern.
103         * config/i386/i386.c (ix86_build_const_vector): Handle
104         also V32QI, V16QI, V16HI and V8HI modes.
105         (emit_reduc_half): New function.
106         (ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN.
107         Use emit_reduc_half helper function.
108
109 2011-10-13   Lawrence Crowl  <crowl@google.com>
110              Diego Novillo  <dnovillo@google.com>
111
112         * lto-streamer-in.c (input_struct_function_base): Factor out of ...
113         (input_function): ... here.
114         * lto-streamer-out.c (output_struct_function_base): Factor out of ...
115         (output_function): ... here.
116
117 2011-10-13  Gabriel Charette  <gchare@google.com>
118             Diego Novillo  <dnovillo@google.com>
119
120         * streamer-hooks.h (struct streamer_hooks): Add hooks
121         input_location and output_location.
122         * lto-streamer-in.c (lto_input_location): Use
123         streamer_hooks.input_location, if set.
124         * lto-streamer-out.c (lto_output_location): Use
125         streamer_hooks.output_location, if set.
126
127 2011-10-13  Richard Guenther  <rguenther@suse.de>
128
129         PR tree-optimization/50712
130         * ipa-split.c (split_function): Always re-gimplify parameters
131         when they are not gimple vals before passing them.  Properly
132         check for type compatibility.
133
134 2011-10-13  Tom de Vries  <tom@codesourcery.com>
135
136         * function.c (gimplify_parameters): Set number of arguments of call to
137         BUILT_IN_ALLOCA_WITH_ALIGN to 2.
138
139 2011-10-13  Tom de Vries  <tom@codesourcery.com>
140
141         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_READONLY_P
142         for static const strings.
143         * varasm.c (build_constant_desc): Generate the memory location of the
144         constant using gen_const_mem.
145
146 2011-10-13  Richard Guenther  <rguenther@suse.de>
147
148         PR tree-optimization/50698
149         * tree-data-ref.c (split_constant_offset_1): Also process
150         offsets of &MEM.
151
152 2011-10-12  David S. Miller  <davem@davemloft.net>
153
154         * config/sparc/sparc.md (UNSPEC_FPMERGE): Delete.
155         (UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New
156         unspecs.
157         (fpmerge_vis): Remove inaccurate comment, represent using vec_select
158         of a vec_concat.
159         (vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns.
160         (fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis):
161         Reimplement as unspecs and remove inaccurate comments.
162         (vis3_shift_patname): New code attr.
163         (<vis3_shift_insn><vbits>_vis): Rename to "v<vis3_shift_patname><mode>3".
164         (vis3_addsub_ss_patname): New code attr.
165         (<vis3_addsub_ss_insn><vbits>_vis): Rename to
166         "<vis3_addsub_ss_patname><mode>3".
167         * config/sparc/sparc.c (sparc_vis_init_builtins): Update to
168         accommodate pattern name changes.
169
170         * config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF
171         to zero when assembler lacks support for such instructions.
172         * config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3
173         and MASK_FMAF in defaults when assembler lacks necessary support.
174
175 2011-10-12  Jakub Jelinek  <jakub@redhat.com>
176
177         * config/i386/sse.md (vec_unpacks_lo_<mode>,
178         vec_unpacks_hi_<mode>, vec_unpacku_lo_<mode>,
179         vec_unpacku_hi_<mode>): Change VI124_128 mode to
180         VI124_AVX2.
181         * config/i386/i386.c (ix86_expand_sse_unpack): Handle
182         V32QImode, V16HImode and V8SImode for TARGET_AVX2.
183
184         * config/i386/sse.md (vec_avx2): New mode_attr.
185         (mulv16qi3): Macroize to cover also mulv32qi3 for
186         TARGET_AVX2 into ...
187         (mul<mode>3): ... this.
188
189         * config/i386/i386.md (UNSPEC_VPERMDI): Remove.
190         * config/i386/i386.c (ix86_expand_vec_perm): Handle
191         V16QImode and V32QImode for TARGET_AVX2.
192         (MAX_VECT_LEN): Increase to 32.
193         (expand_vec_perm_blend): Add support for 32-byte integer
194         vectors with TARGET_AVX2.
195         (valid_perm_using_mode_p): New function.
196         (expand_vec_perm_pshufb): Add support for 32-byte integer
197         vectors with TARGET_AVX2.
198         (expand_vec_perm_vpshufb2_vpermq): New function.
199         (expand_vec_perm_vpshufb2_vpermq_even_odd): New function.
200         (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors
201         with TARGET_AVX2.
202         (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq
203         and expand_vec_perm_vpshufb2_vpermq_even_odd.
204         * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2
205         32-byte integer vector modes.
206         (vec_pack_trunc_<mode>): Use VI248_AVX2 instead of VI248_128.
207         (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto.
208         (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate
209         4 new operands.
210         (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use
211         match_dup, instead add 4 new operands and require they have
212         right cross-lane values.
213         (avx2_permv4di): Change into define_expand.
214         (avx2_permv4di_1): New instruction.
215         (avx2_permv2ti): Use nonimmediate_operand instead of register_operand
216         for "xm" constrained operand.
217         (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2.
218
219         * config/i386/sse.md (avx2_gathersi<mode>,
220         avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of
221         match_scratch, change memory_operand to register_operand,
222         add (mem:BLK (scratch)) use.
223         (*avx2_gathersi<mode>, *avx2_gatherdi<mode>,
224         *avx2_gatherdi<mode>256): Add clobber of match_scratch,
225         add earlyclobber to the output operand and match_scratch,
226         add (mem:BLK (scratch)) use, change the other mem to match_operand.
227         Use %p6 instead of %c6 in the pattern.
228         * config/i386/i386.c (ix86_expand_builtin): Adjust for
229         operand 2 being a Pmode register_operand instead of memory_operand.
230
231 2011-10-12  Kai Tietz  <ktietz@redhat.com>
232
233         * config/i386/i386.md (simple_return): Disable
234         if TARGET_SEH is active.
235
236 2011-10-12  Steve Ellcey  <sje@cup.hp.com>
237
238         * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses.
239
240 2011-10-12  Richard Guenther  <rguenther@suse.de>
241
242         * tree-ssa-alias.c (maybe_skip_until): Cache also at the point
243         of the first store we visit in a basic-block.
244         (get_continuation_for_phi): Search for a candidate VUSE that
245         might dominates all others.  Do pairwise disambiguation against
246         that candidate.
247
248 2011-10-12  Paul Koning  <pkoning@gcc.gnu.org>
249
250         PR tree-optimization/50189
251         * tree-vrp.c (extract_range_from_assert): Use the type of
252         the variable, not the limit.
253
254 2011-10-12  Richard Guenther  <rguenther@suse.de>
255
256         PR tree-optimization/50700
257         * tree-object-size.c (addr_object_size): Simplify and treat
258         MEM_REF bases consistently.
259
260 2011-10-12  Bernd Schmidt  <bernds@codesourcery.com>
261
262         * function.c (prepare_shrink_wrap, bb_active_p): New function.
263         (thread_prologue_and_epilogue_insns): Use bb_active_p.
264         Call prepare_shrink_wrap, then recompute bb_active_p for the
265         last block.
266
267 2011-10-12  Joseph Myers  <joseph@codesourcery.com>
268
269         PR c/50565
270         * convert.c (convert_to_integer): Do not narrow operands of
271         pointer subtraction.
272
273 2011-10-12  Nick Clifton  <nickc@redhat.com>
274
275         * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro.  Used to
276         emit a .eabi_attribute assembler directive, possibly with a
277         comment attached.
278         * config/arm/arm.c (arm_file_start): Use the new macro.
279         * config/arm/arm-c.c (arm_output_c_attributes): Likewise.
280
281 2011-10-12  Georg-Johann Lay  <avr@gjlay.de>
282
283         PR target/49939
284         * config/avr/avr.md (*movqi): Rename to movqi_insn.
285         (*call_insn): Rename to call_insn.
286         (*call_value_insn): Rename to call_value_insn.
287         * config/avr/avr.c (avr_2word_insn_p): New static function.
288         (jump_over_one_insn_p): Use it.
289
290 2011-10-12  Richard Sandiford  <richard.sandiford@linaro.org>
291
292         * expr.h (copy_blkmode_to_reg): Declare.
293         * expr.c (copy_blkmode_to_reg): New function.
294         (expand_assignment): Don't expand register RESULT_DECLs before
295         the lhs.  Use copy_blkmode_to_reg to copy BLKmode values into a
296         RESULT_DECL register.
297         (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
298         * stmt.c (expand_return): Move BLKmode-to-register code into
299         copy_blkmode_to_reg.
300
301 2011-10-11  Eric Botcazou  <ebotcazou@adacore.com>
302
303         PR target/49965
304         * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
305         (mov<F:mode>cc): Likewise.
306
307 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
308
309         * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
310
311 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
312
313         * tree.h (built_in_decls): Delete old interface with two parallel
314         arrays to hold standard builtin declarations, and replace it with
315         a function based interface that can support creating builtins on
316         the fly in the future.  Change all uses, and poison the old
317         names.  Make sure 0 is not a legitimate builtin index.
318         (implicit_built_in_decls): Ditto.
319         (built_in_info): Ditto.
320         (BUILTIN_VALID_P): Ditto.
321         (builtin_decl_explicit): Ditto.
322         (builtin_decl_implicit): Ditto.
323         (set_builtin_decl): Ditto.
324         (set_builtin_decl_implicit_p): Ditto.
325         (builtin_decl_explicit_p): Ditto.
326         (builtin_decl_implicit_p): Ditto.
327         * tree-complex.c (expand_complex_libcall): Ditto.
328         * tree-loop-distribution.c (generate_memset_zero): Ditto.
329         * tree-ssa-strlen.c (get_string_length): Ditto.
330         (handle_builtin_strcpy): Ditto.
331         (handle_builtin_strcat): Ditto.
332         * tree.c (iterative_hash_expr): Ditto.
333         (local_define_builtin): Ditto.
334         (build_common_builtin_nodes): Ditto.
335         * builtins.c (built_in_decls): Ditto.
336         (implicit_built_in_decls): Ditto.
337         (built_in_info): Ditto
338         (expand_builtin_classify_type): Ditto.
339         (mathfn_built_in_1): Ditto.
340         (expand_builtin_cexpi): Ditto.
341         (expand_builtin_mempcpy_args): Ditto.
342         (expand_builtin_stpcpy): Ditto.
343         (gimplify_va_arg_expr): Ditto.
344         (expand_builtin_sync_operation): Ditto.
345         (build_builtin_expect_predicate): Ditto.
346         (fold_builtin_memory_op): Ditto.
347         (fold_builtin_strcpy): Ditto.
348         (fold_builtin_stpcpy): Ditto.
349         (fold_builtin_strncpy): Ditto.
350         (fold_builtin_interclass_mathfn): Ditto.
351         (fold_builtin_classify): Ditto.
352         (fold_builtin_2): Ditto.
353         (fold_builtin_strstr): Ditto.
354         (fold_builtin_strrchr): Ditto.
355         (fold_builtin_strpbrk): Ditto.
356         (fold_builtin_strcat): Ditto.
357         (fold_builtin_strncat): Ditto.
358         (fold_builtin_strcspn): Ditto.
359         (fold_builtin_fputs): Ditto.
360         (fold_builtin_sprintf): Ditto.
361         (fold_builtin_snprintf): Ditto.
362         (expand_builtin_memory_chk): Ditto.
363         (fold_builtin_memory_chk): Ditto.
364         (fold_builtin_stxcpy_chk): Ditto.
365         (fold_builtin_strncpy_chk): Ditto.
366         (fold_builtin_strcat_chk): Ditto.
367         (fold_builtin_strncat_chk): Ditto.
368         (fold_builtin_sprintf_chk_1): Ditto.
369         (fold_builtin_snprintf_chk_1): Ditto.
370         (fold_builtin_printf): Ditto.
371         (fold_builtin_fprintf): Ditto.
372         (fold_call_stmt): Ditto.
373         (set_builtin_user_assembler_name): Ditto.
374         * tree-emutls.c (emutls_common_1): Ditto.
375         * omp-low.c (scan_omp): Ditto.
376         (lower_rec_input_clauses): Ditto.
377         (lower_reduction_clauses): Ditto.
378         (expand_parallel_call): Ditto.
379         (expand_task_call): Ditto.
380         (maybe_catch_exception): Ditto.
381         (optimize_omp_library_calls): Ditto.
382         (expand_omp_for_generic): Ditto.
383         (expand_omp_for_static_nochunk): Ditto.
384         (expand_omp_for_static_chunk): Ditto.
385         (expand_omp_sections): Ditto.
386         (expand_omp_atomic_fetch_op): Ditto.
387         (expand_omp_atomic_pipeline): Ditto.
388         (expand_omp_atomic_mutex): Ditto.
389         (lower_omp_single_simple): Ditto.
390         (lower_omp_single_copy): Ditto.
391         (lower_omp_master): Ditto.
392         (lower_omp_ordered): Ditto.
393         (lower_omp_critical): Ditto.
394         * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto.
395         * builtins.c (DEF_BUILTIN_STUB): Ditto.
396         (BUILT_IN_NONE): Ditto.
397         * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto.
398         * gimple-low.c (lower_function_body): Ditto.
399         (lower_builtin_setjmp): Ditto.
400         * c-decl.c (merge_decls): Ditto.
401         * tree-eh.c (lower_resx): Ditto.
402         (lower_resx): Ditto.
403         (lower_eh_dispatch): Ditto.
404         * function (gimplify_parameters): Ditto.
405         * c-typeck.c (build_function_call_vec): Ditto.
406         * gimplify.c (build_stack_save_restore): Ditto.
407         (gimplify_vla_decl): Ditto.
408         (gimplify_modify_expr_to_memcpy): Ditto.
409         (gimplify_modify_expr_to_memset): Ditto.
410         (gimplify_variable_sized_compare): Ditto.
411         (gimplify_function_tree): Ditto.
412         * calls.c (emit_call_1): Ditto.
413         * tree-ssa-forprop.c (simplify_builtin_call): Ditto.
414         * tree-nested.c (convert_nl_goto_reference): Ditto.
415         (convert_tramp_reference_op): Ditto.
416         (finalize_nesting_tree_1): Ditto.
417         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
418         (tree_ssa_prefetch_arrays): Ditto.
419         * tree-streamer-in.c (streamer_get_builtin_tree): Ditto.
420         * system.h (built_in_decls): Ditto.
421         (implicit_built_in_decls): Ditto.
422         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
423         * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto.
424         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
425         (ix86_veclibabi_svml): Ditto.
426         (ix86_veclibabi_acml): Ditto.
427         * config/vms/vms.c (vms_patch_builtins): Ditto.
428         * config/ia64/ia64.c (ia64_init_builtins): Ditto.
429         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto.
430         (rs6000_builtin_vectorized_libmass): Ditto.
431         (rs6000_init_builtins): Ditto.
432         * config/darwin.c (darwin_override_options): Ditto.
433         (darwin_patch_builtin): Ditto.
434         (darwin_rename_builtins): Ditto.
435         * config/pa/pa.c (pa_init_builtins): Ditto.
436
437 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
438
439         * tree.h (copy_ref_info): Expose existing function.
440         * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
441         * tree-ssa-address.c (copy_ref_info): ...here, and remove static token.
442
443 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
444
445         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New prototype.
446         (avr_regno_mode_code_ok_for_base_p): New prototype.
447         * config/avr/avr.h (BASE_REG_CLASS): Remove.
448         (REGNO_OK_FOR_BASE_P): Remove.
449         (REG_OK_FOR_BASE_NOSTRICT_P): Remove.
450         (REG_OK_FOR_BASE_STRICT_P): Remove.
451         (MODE_CODE_BASE_REG_CLASS): New define.
452         (REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
453         * config/avr/avr.c (avr_mode_code_base_reg_class): New function.
454         (avr_regno_mode_code_ok_for_base_p): New function.
455         (avr_reg_ok_for_addr_p): New static function.
456         (avr_legitimate_address_p): Use it.  Beautify.
457
458 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
459
460         PR target/50447
461         * config/avr/avr.md (cc): Add out_plus attribute alternative.
462         (addsi3): Use it.  Adapt avr_out_plus to new prototype.  Use
463         avr_out_plus for all CONST_INT addends.
464         * config/avr/avr-protos.h (avr_out_plus): Change prototype.
465         * config/avr/avr.c (notice_update_cc): Call avr_out_plus on
466         CC_OUT_PLUS.
467         (avr_out_plus_1): Change prototype and report effect on cc0.
468         (avr_out_plus): Ditto.
469         (adjust_insn_length): Adapt call to avr_out_plus to new prototype.
470
471 2011-10-11  H.J. Lu  <hongjiu.lu@intel.com>
472
473         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove
474         the extra break.
475
476 2011-10-11  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
477
478         * doc/invoke.texi: Document new warning.
479         * common.opt (Wvector-operation-performance): Define new warning.
480         * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded
481         vector operation.
482         (exapnd_vector_parallel): Warn about expanded vector operation.
483         (lower_vec_shuffle): Warn about expanded vector operation.
484         * c-typeck.c (c_build_vec_perm_expr): Store correct location
485         when creating VEC_PERM_EXPR.
486
487 2011-10-11  Richard Guenther  <rguenther@suse.de>
488
489         PR tree-optimization/50204
490         * tree-ssa-alias.c (get_continuation_for_phi_1): Split out
491         two argument handling from ...
492         (get_continuation_for_phi): ... here.  Handle arbitrary number
493         of PHI args.
494
495 2011-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
496
497         PR c++/33067
498         * c-family/c-pretty-print.c (pp_c_floating_constant): Output
499         max_digits10 (in the ISO C++ WG N1822 sense) decimal digits.
500
501 2011-10-11  Richard Sandiford  <richard.sandiford@linaro.org>
502
503         * modulo-sched.c: Fix comment typo.  Mention the possibility
504         of using scheduling windows of II+1 cycles.
505
506 2011-10-11  Tristan Gingold  <gingold@adacore.com>
507
508         * doc/invoke.texi (C Dialect Options): Document
509         -fallow-parameterless-variadic-functions.
510         * c-parser.c (c_parser_parms_list_declarator): Handle it.
511
512 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
513
514         * config/avr/avr.c (avr_option_override): Set
515         flag_omit_frame_pointer to 0 if frame pointer is needed for
516         unwinding.
517
518 2011-10-10  Uros Bizjak  <ubizjak@gmail.com>
519
520         PR bootstrap/50665
521         * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm.  Move from enum
522         optab_index to enum direct_optab_index.
523         (vec_perm_optab): Update.
524
525 2011-10-10  Anatoly Sokolov  <aesok@post.ru>
526
527         * config/cris/cris.c (cris_preferred_reload_class): New function.
528         (TARGET_PREFERRED_RELOAD_CLASS): Define.
529         * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
530
531 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
532
533         * config/avr/avr.md (*tablejump_rjmp): Change insn condition to
534         !AVR_HAVE_JMP_CALL.
535         (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
536         (*tablejump_enh, *tablejump): Remove insns.
537         * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
538         EIJMP for indirect jump.  Use LPM Z+ where available.
539
540 2011-10-10  Richard Henderson  <rth@redhat.com>
541
542         * doc/md.texi (vec_perm_const): Fix typo in cindex.
543
544 2011-10-10  Kirill Yukhin  <kirill.yukhin@intel.com>
545             Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
546
547         * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
548
549 2011-10-10  Richard Guenther  <rguenther@suse.de>
550
551         PR middle-end/50389
552         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
553         mark symbols for renaming.  Append the VUSE to all statements
554         that possibly can have one.
555
556 2011-10-10  Richard Guenther  <rguenther@suse.de>
557
558         * ipa-split.c (pass_split_functions): Add verification TODOs.
559         (pass_feedback_split_functions): Likewise.
560
561 2011-10-10  Richard Guenther  <rguenther@suse.de>
562
563         PR middle-end/50195
564         * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
565         only when optimizing.
566
567 2011-10-10  Nick Clifton  <nickc@redhat.com>
568
569         PR middle-end/49801
570         * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
571         df_get_live_out instead of accessing the bitmaps directly.
572         (execute_compare_elim_after_reload): Remove calls to df_set_flags,
573         df_live_add_problem and df_analyze.
574
575 2011-10-10  Michael Matz  <matz@suse.de>
576
577         PR middle-end/50638
578         * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
579
580 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
581
582         * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
583         (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
584         (node_sched_params): Remove first_reg_move and nreg_moves.
585         (ps_num_consecutive_stages, extend_node_sched_params): New functions.
586         (update_node_sched_params): Move up file.
587         (print_node_sched_params): Print the stage.  Don't dump info related
588         to first_reg_move and nreg_moves.
589         (set_columns_for_row): New function.
590         (set_columns_for_ps): Move up file and use set_columns_for_row.
591         (schedule_reg_move): New function.
592         (schedule_reg_moves): Call extend_node_sched_params and
593         schedule_reg_move.  Extend size of uses bitmap.  Initialize
594         num_consecutive_stages.  Return false if a move could not be
595         scheduled.
596         (apply_reg_moves): Don't emit moves here.
597         (permute_partial_schedule): Handle register moves.
598         (duplicate_insns_of_cycles): Remove for_prolog.  Emit moves according
599         to the same stage-count test as ddg nodes.
600         (generate_prolog_epilog): Update calls accordingly.
601         (sms_schedule): Allow move-scheduling to add a new first stage.
602
603 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
604
605         * modulo-sched.c (ps_insn): Adjust comment.
606         (ps_reg_move_info): New structure.
607         (partial_schedule): Add reg_moves field.
608         (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
609         (node_sched_params): Turn first_reg_move into an identifier.
610         (ps_reg_move): New function.
611         (ps_rtl_insn): Cope with register moves.
612         (ps_first_note): Adjust comment and assert that the instruction
613         isn't a register move.
614         (node_sched_params): Replace with...
615         (node_sched_param_vec): ...this vector.
616         (set_node_sched_params): Adjust accordingly.
617         (print_node_sched_params): Take a partial schedule instead of a ddg.
618         Use ps_rtl_insn and ps_reg_move.
619         (generate_reg_moves): Rename to...
620         (schedule_reg_moves): ...this.  Remove rescan parameter.  Record each
621         move in the partial schedule, but don't emit it here.  Don't perform
622         register substitutions here either.
623         (apply_reg_moves): New function.
624         (duplicate_insns_of_cycles): Use register indices directly,
625         rather than finding instructions using PREV_INSN.  Use ps_reg_move.
626         (sms_schedule): Call schedule_reg_moves before committing to
627         a partial schedule.   Try the next ii if the schedule fails.
628         Use apply_reg_moves instead of generate_reg_moves.  Adjust
629         call to print_node_sched_params.  Free node_sched_param_vec
630         instead of node_sched_params.
631         (create_partial_schedule): Initialize reg_moves.
632         (free_partial_schedule): Free reg_moves.
633
634 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
635
636         * modulo-sched.c (ps_insn): Replace node field with an identifier.
637         (SCHED_ASAP): Replace with..
638         (NODE_ASAP): ...this macro.
639         (SCHED_PARAMS): New macro.
640         (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
641         (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
642         (node_sched_params): Remove asap.
643         (ps_rtl_insn, ps_first_note): New functions.
644         (set_node_sched_params): Use XCNEWVEC.  Don't copy across the
645         asap values.
646         (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
647         (generate_reg_moves): Pass ids to the SCHED_* macros.
648         (update_node_sched_params): Take a ps insn identifier rather than
649         a node as parameter.  Use ps_rtl_insn.
650         (set_columns_for_ps): Update for above field and SCHED_* macro changes.
651         (permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
652         (optimize_sc): Update for above field and SCHED_* macro changes.
653         Update calls to try_scheduling_node_in_cycle and
654         update_node_sched_params.
655         (duplicate_insns_of_cycles): Adjust for above field and SCHED_*
656         macro changes.  Use ps_rtl_insn and ps_first_note.
657         (sms_schedule): Pass ids to the SCHED_* macros.
658         (get_sched_window): Adjust for above field and SCHED_* macro changes.
659         Use NODE_ASAP instead of SCHED_ASAP.
660         (try_scheduling_node_in_cycle): Remove node parameter.  Update
661         call to ps_add_node_check_conflicts.  Pass ids to the SCHED_*
662         macros.
663         (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
664         (ps_insert_empty_row): Adjust for above field changes.
665         (compute_split_row): Use ids rather than nodes.
666         (verify_partial_schedule): Adjust for above field changes.
667         (print_partial_schedule): Use ps_rtl_insn.
668         (create_ps_insn): Take an id rather than a node.
669         (ps_insn_find_column): Adjust for above field changes.
670         Use ps_rtl_insn.
671         (ps_insn_advance_column): Adjust for above field changes.
672         (add_node_to_ps): Remove node parameter.  Update call to
673         create_ps_insn.
674         (ps_has_conflicts): Use ps_rtl_insn.
675         (ps_add_node_check_conflicts): Replace node parameter than an id.
676
677 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
678
679         * modulo-sched.c (undo_replace_buff_elem): Delete.
680         (generate_reg_moves): Don't build and return an undo list.
681         (free_undo_replace_buff): Delete.
682         (sms_schedule): Adjust call to generate_reg_moves.
683         Don't call free_undo_replace_buff.
684
685 2011-10-10  Matthias Klose <doko@ubuntu.com>
686
687         * common/config/m32c: Remove empty directory.
688
689 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
690
691         * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
692
693 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
694
695         PR target/50652
696         * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
697         atmega164a to 0x100.
698
699 2011-10-09  Eric Botcazou  <ebotcazou@adacore.com>
700
701         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make
702         the replacement if the conversion to the LHS type is not useless.
703
704 2011-10-09  Ira Rosen  <ira.rosen@linaro.org>
705
706         PR tree-optimization/50635
707         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
708         DEF_STMT to the list of statements to be replaced by the
709         pattern statements.
710         (vect_handle_widen_mult_by_const): Don't check TYPE_OUT.
711
712 2011-10-09  Anatoly Sokolov  <aesok@post.ru>
713
714         * system.h: Commit forgotten hunk in previous patch.
715         (OUTPUT_ADDR_CONST_EXTRA): Poison.
716
717 2011-10-08  Nicola Pero  <nicola.pero@meta-innovation.com>
718
719         PR libobjc/50428
720         * doc/objc.texi (Garbage Collection): Updated example to protect
721         +initialize against execution in subclasses.
722
723 2011-10-07  Richard Henderson  <rth@redhat.com>
724
725         * doc/extend.texi (__builtin_shuffle): Improve the description to
726         include the modulus of the selector.  Mention OpenCL.
727         * doc/md.texi (vec_perm, vec_perm_const): Document named patterns.
728
729         * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
730         * genopinit.c (optabs): Rename vshuffle to vec_perm.
731         * c-typeck.c (c_build_vec_perm_expr): Rename from
732         c_build_vec_shuffle_expr.  Update for name changes.
733         * optabs.c (expand_vec_perm_expr_p): Rename from
734         expand_vec_shuffle_expr_p.
735         (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
736         * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
737         (vec_perm_optab): Rename from vshuffle_optab.
738         * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
739         c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
740         tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.
741
742         * config/i386/i386.c (ix86_expand_vec_perm): Rename from
743         ix86_expand_vshuffle.
744         * config/i386/i386-protos.h: Update.
745         * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
746         (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.
747
748 2011-10-07  Richard Henderson  <rth@redhat.com>
749
750         * config/i386/predicates.md (avx2_pblendw_operand): New.
751         * config/i386/sse.md (sse4_1_pblendw): Un-macroize.
752         (avx2_pblendw, *avx2_pblendw): New expander and insn.
753
754 2011-10-07  Richard Henderson  <rth@redhat.com>
755
756         * config/i386/i386.c (bdesc_args): Update code for
757         __builtin_ia32_palignr256.  Change type of __builtin_ia32_pslldqi256,
758         and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
759         (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
760         * config/i386/sse.md (mode iterator V16): Add V2TI.
761         (mode iterator SSESCALARMODE): Use V2TI not V4DI.
762         (mode attr ssse3_avx2): Add V2TI.
763         (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.
764
765 2011-10-07  David S. Miller  <davem@davemloft.net>
766
767         PR 50655
768         * configure.ac: Add .register directives to VIS3 test.
769         * configure: Regenerate.
770
771 2011-10-07  Richard Henderson  <rth@redhat.com>
772
773         * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
774
775 2011-10-07  Richard Henderson  <rth@redhat.com>
776
777         PR 49752
778         * fold-const.c (fold_checksum_tree): Remove out-of-date assert.
779
780 2011-10-07  Andrew Stubbs  <ams@codesourcery.com>
781
782         * config/arm/predicates.md (shift_amount_operand): Remove constant
783         range check.
784         (shift_operator): Check range of constants for all shift operators.
785
786 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
787
788         * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
789         Load GOT pointer for non-pic builds.
790         (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
791         (s390_emit_call): Likewise.
792
793 2011-10-07  Tom de Vries  <tom@codesourcery.com>
794
795         PR middle-end/50527
796         * tree.c (build_common_builtin_nodes): Add local_define_builtin for
797         BUILT_IN_ALLOCA_WITH_ALIGN.  Mark that BUILT_IN_ALLOCA_WITH_ALIGN can
798         throw.
799         * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
800         arglist.  Set align for BUILT_IN_ALLOCA_WITH_ALIGN.
801         (expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
802         (is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
803         * tree-ssa-ccp.c (evaluate_stmt): Set align for
804         BUILT_IN_ALLOCA_WITH_ALIGN.
805         (fold_builtin_alloca_for_var): Rename to ...
806         (fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd
807         BUILT_IN_ALLOCA_WITH_ALIGN argument.
808         (ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using
809         fold_builtin_alloca_with_align.
810         (optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
811         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
812         DEF_BUILTIN_STUB.
813         * ipa-pure-const.c (special_builtin_state): Handle
814         BUILT_IN_ALLOCA_WITH_ALIGN.
815         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
816         (call_may_clobber_ref_p_1): Same.
817         * function.c (gimplify_parameters): Lower vla to
818         BUILT_IN_ALLOCA_WITH_ALIGN.
819         * gimplify.c (gimplify_vla_decl): Same.
820         * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
821         * tree-mudflap.c (mf_xform_statements): Same.
822         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
823         (mark_all_reaching_defs_necessary_1, propagate_necessity): Same.
824         * varasm.c (incorporeal_function_p): Same.
825         * tree-object-size.c (alloc_object_size): Same.
826         * gimple.c (gimple_build_call_from_tree): Same.
827
828 2011-10-07  Bernd Schmidt  <bernds@codesourcery.com>
829
830         * function.c (frame_required_for_rtx): Remove function.
831         (requires_stack_frame_p): New arg set_up_by_prologue.  All callers
832         changed.  Compute a set of mentioned registers and compare against
833         the new arg rather than calling frame_required_for_rtx.
834         (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
835         reg set.  Convert the unconverted_simple_returns mechanism to store
836         jump insns rather than their basic blocks.  Also check the
837         orig_entry_edge destination for new blocks.
838
839 2011-10-07  Jakub Jelinek  <jakub@redhat.com>
840
841         PR tree-optimization/50650
842         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
843         call vect_is_simple_cond here, instead fail if cond_expr isn't
844         COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
845         for cond_expr's first operand.
846         * tree-vect-stmts.c (vect_is_simple_cond): Static again.
847         * tree-vectorizer.h (vect_is_simple_cond): Remove prototype.
848
849 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
850
851         * config/s390/s390.md (DWH, dwh): New mode macros.
852         ("umulsidi3"): Extend to support "umulditi3" as well.
853
854 2011-10-07  Uros Bizjak  <ubizjak@gmail.com>
855             H.J. Lu  <hongjiu.lu@intel.com>
856
857         PR target/50603
858         * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
859         integer PLUS RTX to a register to improve address combine.
860
861 2011-10-06  Richard Henderson  <rth@redhat.com>
862
863         * combine-stack-adjust.c (maybe_move_args_size_note): Add after
864         parameter; use it to decide whether to merge two notes.
865         (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
866         for the deallocation case as well.
867
868 2011-10-06  Anatoly Sokolov  <aesok@post.ru>
869
870         * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
871         * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
872         * doc/tm.texi: Regenerate.
873         * target.def (output_addr_const_extra): Use
874         hook_bool_FILEptr_rtx_false.
875         * targhooks.c (default_asm_output_addr_const_extra): Remove.
876         * targhooks.h (default_asm_output_addr_const_extra): Remove.
877         * hooks.c (hook_bool_FILEptr_rtx_false): New functions.
878         * hooks.h (hook_bool_FILEptr_rtx_false): Declare.
879
880 2011-10-06  David S. Miller  <davem@davemloft.net>
881
882         * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
883         (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
884         SI mode 64-bit code gen case explicitly zero-extend and truncate.
885         (*popcount<mode>_sp64): Split up into...
886         (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
887         SImode case use truncate.
888         (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
889         subtract so the compiler can optimize it.
890         (SIDI): Remove unused mode iterator.
891
892 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
893
894         * function.c (thread_prologue_and_epilogue_insns): Emit split prologue
895         on the orig_entry_edge. Don't account for it in prologue_clobbered.
896
897 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
898
899         PR tree-optimization/50596
900         * tree-vectorizer.h (vect_is_simple_cond): New prototype.
901         (NUM_PATTERNS): Change to 6.
902         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
903         function.
904         (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
905         (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
906         if it already has one, and don't set STMT_VINFO_VECTYPE in it
907         if it is already set.
908         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
909         COND_EXPR in pattern stmts.
910         (vect_is_simple_cond): No longer static.
911
912 2001-10-06  Richard Henderson  <rth@redhat.com>
913
914         * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
915         * config/i386/sse.md (sseshuffint): Remove.
916         (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
917         (VSHUFFLE_AVX2): New mode iterator.
918         (vshuffle<mode>): Use it.
919         (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
920
921         * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
922         for vector_all_ones_operand.
923         (ix86_expand_int_vcond): Distinguish between comparison mode
924         and data mode.  Allow them to differ.
925         (ix86_expand_vshuffle): Don't force data mode to match maskmode.
926
927 2001-10-06  Richard Henderson  <rth@redhat.com>
928
929         * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
930         mask operand.  Tidy the code.
931
932 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
933
934         * tree-vect-patterns.c (vect_pattern_recog_1): Use
935         vect_recog_func_ptr typedef for the first argument.
936         (vect_pattern_recog): Rename vect_recog_func_ptr variable
937         to vect_recog_func, use vect_recog_func_ptr typedef for it.
938
939         PR tree-optimization/49279
940         * tree-ssa-structalias.c (find_func_aliases): Don't handle
941         CAST_RESTRICT.
942         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
943         restrict propagation.
944         * tree-ssa.c (useless_type_conversion_p): Don't return false
945         if TYPE_RESTRICT differs.
946
947 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
948
949         * function.c (thread_prologue_and_epilogue_insns): Build a vector
950         of unconverted simple return blocks rather than trying to
951         recompute them later based on bb_flags bitmap tests.
952
953 2011-10-06  Michael Matz  <matz@suse.de>
954
955         * tree-flow.h (get_var_ann): Don't declare.
956         * tree-flow-inline.h (get_var_ann): Remove.
957         (set_is_used): Use var_ann, not get_var_ann.
958         * tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
959         * tree-profile.c (gimple_gen_edge_profiler): Call
960         find_referenced_var_in.
961         (gimple_gen_interval_profiler): Ditto.
962         (gimple_gen_pow2_profiler): Ditto.
963         (gimple_gen_one_value_profiler): Ditto.
964         (gimple_gen_average_profiler): Ditto.
965         (gimple_gen_ior_profiler): Ditto.
966         (gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
967         (gimple_gen_ic_func_profiler): Call add_referenced_var.
968         * tree-mudflap.c (execute_mudflap_function_ops): Call
969         add_referenced_var.
970
971 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
972
973         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
974         don't set SSA_NAME_DEF_STMT that has been already set by
975         gimple_build_assign_with_ops.
976         (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
977         vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
978         Likewise.
979
980         * tree.h (avoid_folding_inline_builtin): New prototype.
981         * builtins.c (avoid_folding_inline_builtin): No longer static.
982         * gimple-fold.c (gimple_fold_builtin): Give up if
983         avoid_folding_inline_builtin returns true.
984
985 2011-10-06  Richard Guenther  <rguenther@suse.de>
986
987         * tree-vect-generic.c (vector_element): Look at previous
988         generated results.
989
990 2011-10-06  David Edelsohn  <dje.gcc@gmail.com>
991
992         PR target/39950
993         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
994         __powerpc__, __PPC__, __unix__.
995
996 2011-10-06  Michael Matz  <matz@suse.de>
997
998         * i386/i386.opt (recip_mask, recip_mask_explicit,
999         x_recip_mask_explicit): New variables and cl_target member.
1000         (mrecip=): New option.
1001         * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
1002         RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
1003         (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
1004         TARGET_RECIP_VEC_SQRT): New tests.
1005         * i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
1006         (sqrt<mode>2): Check TARGET_RECIP_SQRT.
1007         * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
1008         (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
1009         * i386/i386.c (ix86_option_override_internal): Set recip_mask
1010         for -mrecip and -mrecip=options.
1011         (ix86_function_specific_save): Save recip_mask_explicit.
1012         (ix86_function_specific_restore): Restore recip_mask_explicit.
1013
1014         * doc/invoke.texi (ix86 Options): Document the new option.
1015
1016 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
1017
1018         PR target/49049
1019         * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
1020
1021 2011-10-06  Ulrich Weigand  <ulrich.weigand@linaro.org>
1022
1023         PR target/50305
1024         * config/arm/arm.c (arm_legitimize_reload_address): Recognize
1025         output of a previous pass through legitimize_reload_address.
1026         Do not attempt to optimize addresses if the base register is
1027         equivalent to a constant.
1028
1029 2011-10-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1030
1031         * function.c (thread_prologue_and_epilogue_insns): Mark
1032         last_bb_active as possibly unused.  It is unused for targets which
1033         do neither have "return" nor "simple_return" expanders.
1034
1035 2011-10-06  Richard Guenther  <rguenther@suse.de>
1036
1037         * fold-const.c (fold_ternary_loc): Also fold non-constant
1038         vector CONSTRUCTORs.  Make more efficient.
1039         * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
1040         (cprop_into_stmt): Don't propagate into virtual operands.
1041         (optimize_stmt): Really dump original statement.
1042
1043 2011-10-06  Nick Clifton  <nickc@redhat.com>
1044
1045         * config/rx/rx.md (smin3): Revert previous delta.
1046
1047 2011-10-06  Richard Guenther  <rguenther@suse.de>
1048
1049         PR tree-optimization/38884
1050         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
1051         reads from aggregate SSA names.
1052
1053 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
1054
1055         * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
1056         argument, truncate it at the beginning instead of allocating there
1057         and freeing at the end.
1058         (vect_pattern_recog): Allocate stmts_to_replace here and free at end,
1059         pass its address to vect_pattern_recog_1.
1060
1061 2011-10-05  David S. Miller  <davem@davemloft.net>
1062
1063         * config/sparc/sparc.opt (POPC): New option.
1064         * doc/invoke.texi: Document it.
1065         * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
1066         default on Niagara-2 and later.
1067         * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
1068         * config/sparc/sparc.md (SIDI): New mode iterator.
1069         (ffsdi2): Delete commented out pattern and comments.
1070         (popcount<mode>2, clz<mode>2): New expanders.
1071         (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
1072         *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.
1073
1074 2011-10-06  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
1075
1076         PR middle-end/50607
1077         * c-tree.h (c_expr_t): New typedef for struct c_expr.
1078         (C_EXPR_APPEND): New macro.
1079         * c-parser.c (c_parser_get_builtin_args): Preserve
1080         original_tree_code of c_expr structure.
1081         (c_parser_postfix_expression): Adjust to the new function.
1082
1083 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
1084
1085         * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
1086         if profiling after the prologue.
1087
1088 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
1089
1090         PR tree-optimization/50613
1091         * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
1092         operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
1093         and if it is neither that not SSA_NAME, give up.
1094
1095 2011-10-05  Richard Henderson  <rth@redhat.com>
1096
1097         * tree-vect-generic.c (vector_element): Never fail.  Use
1098         build_zero_cst.  Tidy up type references.
1099         (lower_vec_shuffle): Never fail.  Mask shuffle indicies.  Reduce
1100         code duplication.  Do update_stmt here ...
1101         (expand_vector_operations_1): ... not here.
1102
1103         * config/i386/i386.c (ix86_expand_vshuffle): Never fail.  Handle
1104         TARGET_XOP.  Fix pshufb constant vector creation.  Reduce code
1105         duplication.  Handle V2DI without SSE4.1.
1106         * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl.
1107         * config/i386/i386.md (vshuffle<V_128>): Remove assert for ok.
1108
1109 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
1110
1111         * config/i386/i386.c (distance_non_agu_define): Simplify calculation
1112         of "found".  Simplify return value calculation.
1113         (distance_agu_use): Ditto.
1114
1115 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
1116
1117         PR bootstrap/50621
1118         * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
1119         if the function was not shrink-wrapped.
1120         (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
1121         to an insn.
1122         * function.c (thread_prologue_and_epilogue_insns): Make sure the
1123         shrink_wrapped flag is set even if there is no dump file.
1124
1125 2011-10-05  DJ Delorie  <dj@redhat.com>
1126             Nick Clifton  <nickc@redhat.com>
1127
1128         * config/rx/rx.opt (mpid): Define.
1129         * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
1130         (MULTILIB_DIRNAMES): Add pid.
1131         * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
1132         (rx_num_interrupt_regs): New variable.
1133         (rx_gp_base_regnum): New function.  Returns the number of the
1134         small data area register.
1135         (rx_pid_base_regnum): New function.  Returns the number of the pid
1136         base register.
1137         (rx_decl_for_addr): New function.  Returns the symbolic part of a MEM.
1138         (rx_pid_data_operand): New function.  Returns whether an object is
1139         in the position independent data area.
1140         (rx_legitimize_address): New function.  Puts undecided PID
1141         objects in the PID data area.
1142         (rx_is_legitimate_address): Add support for PID operands.
1143         (rx_print_operand_address): Likewise.
1144         (rx_print_operand): Likewise.
1145         (rx_maybe_pidify_operand): New function.  Determine if an operand
1146         is suitable for PID addressing.
1147         (rx_gen_move_template): Add PID support.
1148         (rx_conditional_register_usage): Likewise.
1149         (rx_option_override): Initialise rx_num_interrupt_regs.
1150         (rx_is_legitimate_constant): Add support for PID constants.
1151         (TARGET_LEGITIMIZE_ADDRESS): Define.
1152         * config/rx/constraints.md (Rpid): Define.
1153         (Rpda): Define.
1154         * config/rx/rx.md (UNSPEC_PID_ADDR): Define.
1155         (tablejump): Add PID support.
1156         (mov<>): Likewise.
1157         (mov<>_internal): Likewise.
1158         (addsi3): Convert to an expander.  Add PID support.
1159         (pid_addr): New pattern.
1160         * config/rx/rx.h (CPP_SPEC): Define.
1161         (ASM_SPEC): Pass -mpid and -mint-register on to assembler.
1162         (CASE_VECTOR_PC_RELATIVE): Define.
1163         (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
1164         * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
1165         * doc/invoke.texi (RX Options): Document -mpid command line option.
1166
1167 2011-10-05  Richard Guenther  <rguenther@suse.de>
1168
1169         PR tree-optimization/38885
1170         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
1171         from constants.
1172
1173 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
1174
1175         * doc/invoke.texi (-fshrink-wrap): Document.
1176         * opts.c (default_options_table): Add it.
1177         * common.opt (fshrink-wrap): Add.
1178         * function.c (emit_return_into_block): Remove useless declaration.
1179         (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
1180         requires_stack_frame_p, gen_return_pattern): New static functions.
1181         (emit_return_into_block): New arg simple_p.  All callers changed.
1182         Use gen_return_pattern.
1183         (thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
1184         * config/i386/i386.md (return): Expand into a simple_return.
1185         (simple_return): New expander):
1186         (simple_return_internal, simple_return_internal_long,
1187         simple_return_pop_internal_long, simple_return_indirect_internal):
1188         Renamed from return_internal, return_internal_long,
1189         return_pop_internal_long and return_indirect_internal; changed to use
1190         simple_return.
1191         * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
1192         simple returns.
1193         (ix86_pad_returns): Likewise.
1194         * function.h (struct rtl_data): Add member shrink_wrapped.
1195         * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
1196         are not jumps or sibcalls can't be compared.
1197
1198 2011-10-05  Richard Guenther  <rguenther@suse.de>
1199
1200         * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
1201         vector type.
1202         (simplify_unary_expression): Handle BIT_FIELD_REFs.
1203         (try_to_simplify): Handle BIT_FIELD_REFs.
1204
1205 2011-10-05  Georg-Johann Lay  <avr@gjlay.de>
1206
1207         * config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
1208         * config/avr/avr.c (avr_out_addto_sp): New function.
1209         (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
1210         * config/avr/avr.md (adjust_len): Add "addto_sp".
1211         (*movhi_sp): Remove insn.
1212         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.
1213
1214 2011-10-05  Richard Guenther  <rguenther@suse.de>
1215
1216         * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops
1217         with an embedded expression valueize and fold that as well.
1218         * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
1219         results from gimple_fold_stmt_to_constant_1.
1220
1221 2011-10-05  Nick Clifton  <nickc@redhat.com>
1222
1223         * config/rx/rx.md (tablejump): Add missing label.
1224         (adddi3_internal): Mark operand 0 as early-clobbered.
1225         (smaxsi3): Revert previous delta.
1226         (adc_internal): Fix whitespace in generated asm.
1227         (adc_flags): Likewise.
1228
1229 2011-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1230
1231         * expmed.c (expand_mult_highpart_optab): Replace optab_handler
1232         with the new widening_optab_handler.
1233
1234 2011-10-05  Richard Guenther  <rguenther@suse.de>
1235
1236         PR tree-optimization/50609
1237         * gimple-fold.c (fold_array_ctor_reference): Also handle
1238         vector typed constructors.
1239         (fold_ctor_reference): Dispatch to fold_array_ctor_reference
1240         for vector typed constructors.
1241
1242 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
1243
1244         * config/i386/i386.c (ix86_emit_binop): New static function.
1245         (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
1246         instructions.
1247         (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.
1248
1249 2011-10-04  David S. Miller  <davem@davemloft.net>
1250
1251         * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
1252         UNSPEC_XMUL): New unspecs.
1253         (muldi3_v8plus): Use output_v8plus_mult.
1254         (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
1255         New VIS 3.0 combiner patterns.
1256         (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
1257         fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
1258         umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
1259         xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
1260         builtins patterns.
1261         * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins.
1262         (output_v8plus_mult): New function.
1263         * config/sparc/sparc-protos.h: Declare it.
1264         * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
1265         __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
1266         __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
1267         * doc/extend.texi: Document new builtins.
1268
1269 2011-10-04  Richard Henderson  <rth@redhat.com>
1270
1271         * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
1272         Avoid save_expr unless two_arguments.
1273
1274 2011-10-04  Ozkan Sezer  <sezeroz@gmail.com>
1275
1276         * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
1277         * config/i386/mingw32.h (CPP_SPEC): Likewise.
1278
1279 2011-10-04  David S. Miller  <davem@davemloft.net>
1280
1281         * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
1282         under Linux.
1283
1284 2011-10-04  Jakub Jelinek  <jakub@redhat.com>
1285
1286         PR tree-optimization/50604
1287         * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
1288         fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
1289         last argument to memcpy has size_type_node type instead of ssizetype.
1290         * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
1291         instead of TREE_TYPE (len) as type for newlen.
1292
1293         PR tree-optimization/50522
1294         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
1295         TYPE_RESTRICT.
1296         (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
1297         unconditionally.
1298
1299         * fold-const.c (fold_unary_loc): Don't optimize
1300         POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
1301         casting the inner pointer if it isn't TYPE_RESTRICT.
1302         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
1303         casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.
1304
1305 2011-10-04  Joseph Myers  <joseph@codesourcery.com>
1306
1307         * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff.
1308
1309 2011-10-04  Jan Hubicka  <jh@suse.cz>
1310
1311         * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
1312         * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
1313         * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
1314         * lto-cgraph.c (order_base): New static var.
1315         (lto_output_node): Stream in order.
1316         (lto_output_varpool_node): Stream out order.
1317         (input_node): Stream in order.
1318         (input_varpool_node): Stream out order.
1319         (input_cgraph_1): Initialize order base; update call of
1320         lto_input_toplevel_asms.
1321
1322 2011-10-04  Georg-Johann Lay  <avr@gjlay.de>
1323
1324         PR target/50566
1325         * config/avr/avr-protos.h (avr_legitimize_reload_address): New
1326         prototype.
1327         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
1328         from here...
1329         * config/avr/avr.c (avr_legitimize_reload_address) ...to this new
1330         function.  Log if avr_log.legitimize_reload_address.
1331
1332 2011-10-04  Eric Botcazou  <ebotcazou@adacore.com>
1333
1334         * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
1335
1336 2011-10-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1337
1338         * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
1339         variables.  Fix second operand of DR.  Swap inputs for sdiv_qrnnd.
1340
1341 2011-10-03  David S. Miller  <davem@davemloft.net>
1342
1343         * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
1344         GSR_REG an input operand to UNSPEC instead of a parallel USE.
1345         (faligndata<V64I:mode>_vis): Likewise and use DI mode.
1346         (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
1347         Reference GSR_REG in DI mode, simplify convoluted expressions by using
1348         zero_extract.
1349         (bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.
1350
1351 2011-10-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
1352
1353         * tree-eh.c (remove_unreachable_handlers): Obvious cleanup.
1354
1355 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
1356             Ian Lance Taylor  <iant@google.com>
1357
1358         * godump.c (go_output_typedef): Support printing enum values that
1359         don't fit in a signed HOST_WIDE_INT.
1360
1361 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
1362
1363         * config/cris/cris.c (cris_output_addr_const_extra): Make static.
1364         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1365         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1366         * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.
1367
1368 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
1369
1370         * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
1371         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1372         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1373         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.
1374
1375 2011-10-03  Steve Ellcey  <sje@cup.hp.com>
1376
1377         PR target/49967
1378         * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
1379         (gcc_cv_ld_static_option): Ditto.
1380         (gcc_cv_ld_dynamic_option): Ditto.
1381         * configure: Regenerate.
1382
1383 2011-10-03  David S. Miller  <davem@davemloft.net>
1384
1385         * config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
1386         and 'si' patterns which describe the GSR changes explicitly in the
1387         RTL using zero_extract.
1388         (bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.
1389
1390         * config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap
1391         GSR_REG in a USE, since it's now a true arg to the UNSPEC.
1392
1393 2011-10-03  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
1394
1395         * optabs.c (expand_vec_shuffle_expr_p): New function. Checks
1396         if given expression can be expanded by the target.
1397         (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR
1398         using target vector instructions.
1399         * optabs.h: New optab vshuffle.
1400         (expand_vec_shuffle_expr_p): New prototype.
1401         (expand_vec_shuffle_expr): New prototype.
1402         (vshuffle_optab): New optab.
1403         * genopinit.c: Adjust to support vecshuffle.
1404         * c-tree.h (c_build_vec_shuffle_expr): New prototype.
1405         * expr.c (expand_expr_real_2): Adjust.
1406         * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR
1407         recognizing the cases of two and three arguments.
1408         (convert_arguments) (build_binary_op)
1409         (scalar_to_vector) (build_array_ref): Spurious whitespace.
1410         * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR.
1411         * tree.def: New tree code VEC_SHUFFLE_EXPR.
1412         * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR.
1413         * tree-vect-generic.c (vector_element): New function. Returns an
1414         element of the vector at the given position.
1415         (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported
1416         by the backend or expand an expression piecewise.
1417         (expand_vector_operations_1): Adjusted.
1418         (gate_expand_vector_operations_noop): New gate function.
1419         * Makefile.in (tree-vect-generic.o): New include.
1420         * gimple.c (get_gimple_rhs_num_ops): Adjust.
1421         * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR.
1422         * passes.c: Move veclower down.
1423         * tree-pretty-print.c (dump_generic_node): Recognize
1424         VEC_SHUFFLE_EXPR as valid expression.
1425         * c-parser.c (c_parser_get_builtin_args): Helper function for the
1426         builtins with variable number of arguments.
1427         (c_parser_postfix_expression): Use a new helper function for
1428         RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE.
1429         * tree-ssa-operands: Adjust.
1430         * c-family/c-common.c: New __builtin_shuffle keyword.
1431         * c-family/c-common.h: New __builtin_shuffle keyword.
1432         * gcc/doc/extend.texi: Adjust.
1433
1434         * gcc/config/i386/sse.md: (sseshuffint) New mode_attr.  Correspondence
1435         between the vector and the type of the mask when shuffling.
1436         (vecshuffle<mode>): New expansion.
1437         * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype.
1438         * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function.
1439         (ix86_vectorize_builtin_vec_perm_ok): Adjust.
1440
1441 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
1442
1443         PR tree-optimization/50587
1444         * tree-ssa-reassoc.c (init_range_entry): Stop iterating when
1445         arg0 is not a SSA_NAME.
1446
1447 2011-10-03  Richard Sandiford  <rdsandiford@googlemail.com>
1448
1449         * ipa-inline-analysis.c (MAX_TIME): Update comment.
1450
1451 2011-10-02  Richard Henderson  <rth@redhat.com>
1452             David S. Miller  <davem@davemloft.net>
1453
1454         * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
1455         conditional insn type setting, we always emit a shift.
1456         (*ashlsi3_extend, *lshrsi3_extend0): New patterns.
1457         (*lshrsi3_extend): Rename to *lshrsi3_extend1.
1458         * config/sparc/predicates.md (const_one_operand): Delete.
1459
1460 2011-10-02  Gerald Pfeifer  <gerald@pfeifer.com>
1461
1462         * invoke.texi (SPARC Options): Refer to GNU/Linux.
1463
1464 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
1465
1466         * config/mips/mips.c (mips_frame_barrier): New function.
1467         (mips_expand_prologue): Call it after allocating stack space.
1468         (mips_deallocate_stack): New function.
1469         (mips_expand_epilogue): Call mips_frame_barrier and
1470         mips_deallocate_stack.
1471
1472 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
1473
1474         PR target/49696
1475         * config/mips/sync.md (sync_<optab>_12): Allow zero operands.
1476         (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
1477         (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.
1478
1479 2011-10-02  Jan Hubicka  <jh@suse.cz>
1480
1481         * cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
1482
1483         * cgraphunit.c (ipa_passes): Remove unrechable nodes.
1484         * lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
1485         * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
1486         functions are reachable when address is taken.
1487         * tree-sra.c (modify_function): Free dominance info.
1488
1489 2011-10-02  Jan Hubicka  <jh@suse.cz>
1490
1491         * ipa-inline-analysis.c (inline_summary_alloc): Bounds check.
1492
1493         * ipa-inline-analysis.c (reset_inline_edge_summary): New function.
1494         (reset_inline_summary): New function.
1495         (compute_inline_parameters, inline_node_removal_hook,
1496         inline_edge_removal_hook): Use it.
1497         (inline_free_summary): Reset holders correctly.
1498         (inline_generate_summary): Free summary before computing it.
1499
1500 2011-10-02  Paolo Carlini  <paolo.carlini@oracle.com>
1501
1502         PR preprocessor/36819
1503         * incpath.c (merge_include_chains): Call free_path on
1504         heads[QUOTE] and tails[QUOTE].
1505
1506 2011-10-02  Jan Hubicka  <jh@suse.cz>
1507
1508         PR lto/47247
1509         * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
1510         when resolution is already availbale from plugin.
1511         (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
1512         * cgraph.c (ld_plugin_symbol_resolution): Add
1513         prevailing_def_ironly_exp.
1514         * lto-cgraph.c (LDPR_NUM_KNOWN): Update.
1515         * ipa.c (varpool_externally_visible_p): IRONLY variables are never
1516         externally visible.
1517         * varasm.c (resolution_to_local_definition_p): Add
1518         LDPR_PREVAILING_DEF_IRONLY_EXP.
1519         (resolution_local_p): Likewise.
1520
1521 2011-10-01  David S. Miller  <davem@davemloft.net>
1522
1523         * config/sparc/sparc.opt (VIS3): New option.
1524         * doc/invoke.texi: Document it.
1525         * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
1526         not capable of such instructions.
1527         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
1528         to 0x300 when TARGET_VIS3.
1529         * config/sparc/sparc-modes.def: Create 16-byte vector modes.
1530         * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
1531         UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
1532         (V64N8, VASS): New mode iterators.
1533         (vis3_shift, vis3_addsub_ss): New code iterators.
1534         (vbits, vconstr): New mode attributes.
1535         (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
1536         (cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
1537         fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
1538         fmean16_vis, fpadd64_vis, fpsub64_vis,
1539         <vis3_addsub_ss_insn><vbits>_vis, fucmp<code>8<P:mode>_vis): New
1540         VIS 3.0 instruction patterns.
1541         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
1542         default when targetting capable cpus.  TARGET_VIS3 implies
1543         TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled.
1544         (sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
1545         (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
1546         is ignored.
1547         * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
1548         __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
1549         __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
1550         __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
1551         __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
1552         __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
1553         __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
1554         __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
1555         * doc/extend.texi: Document new VIS 3.0 builtins.
1556
1557 2011-10-01  Eric Botcazou  <ebotcazou@adacore.com>
1558
1559         * ira-color.c (assign_hard_reg): Fix typo.
1560
1561 2011-09-30  H.J. Lu  <hongjiu.lu@intel.com>
1562
1563         * doc/extend.texi: Add missing ','.
1564
1565 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
1566
1567         * common/config/c6x/c6x-common.c (c6x_option_optimization_table):
1568         Enable -fmodulo-sched at -O2 and above.
1569         * config/c6x/c6x.md (doloop_end): New expander.
1570         (mvilc, sploop, spkernel, loop_end): New patterns.
1571         (loop_end with memory destination splitter): New.
1572         * config/c6x/c6x.c: Include "hw-doloop.h".
1573         (enum unitreqs): New.
1574         (unit_req_table): New typedef.
1575         (unit_reqs): New static variable.
1576         (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
1577         res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
1578         hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
1579         hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
1580         (struct c6x_sched_context): New member last_scheduled_iter0.
1581         (init_sched_state): Initialize it.
1582         (c6x_variable_issue): Update it.
1583         (sploop_max_uid_iter0): New static variable.
1584         (c6x_sched_reorder_1): Be careful about issuing sploop.
1585         (c6x_reorg): Call c6x_hwlooops before the final schedule.
1586
1587 2011-09-30  Georg-Johann Lay  <avr@gjlay.de>
1588
1589         PR target/50566
1590         * config/avr/avr-protos.h (avr_log_t): New field address_cost.
1591         * config/avr/avr.c (avr_address_cost): Use it.
1592         * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
1593         (avr_log_vadump): Unknown %-codes finish printing.
1594
1595 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
1596
1597         PR inline-asm/50571
1598         * gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
1599         input constraints allow mem and not reg, pass true instead of
1600         false as second argument to maybe_fold_reference.
1601
1602         PR tree-optimization/46309
1603         * fold-const.c (make_range, merge_ranges): Remove prototypes.
1604         (make_range_step): New function.
1605         (make_range): Use it.
1606         * tree.h (make_range_step): New prototypes.
1607         * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
1608         * tree-ssa-reassoc.c: Include diagnostic-core.h.
1609         (struct range_entry): New type.
1610         (init_range_entry, range_entry_cmp, update_range_test,
1611         optimize_range_tests): New functions.
1612         (reassociate_bb): Call optimize_range_tests.
1613
1614 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
1615             Richard Guenther  <rguenther@suse.de>
1616
1617         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
1618         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
1619         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.  Fix
1620         handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
1621         (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
1622         BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
1623
1624 2011-09-30  Jan Beulich  <jbeulich@suse.com>
1625
1626         * lto-cgraph.c (output_cgraph): Remove processing of
1627         'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
1628         (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
1629         lto_input_toplevel_asms() instead.
1630         * lto-section-in.c (lto_section_name): Add "asm" entry.
1631         * lto-streamer-in.c (lto_input_toplevel_asms): New.
1632         * lto-streamer-out.c (lto_output_toplevel_asms): New.
1633         * lto-streamer.h (LTO_minor_version): Bump.
1634         (enum lto_section_type): Add LTO_section_asm.
1635         (struct lto_asm_header): New.
1636         (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
1637         * tree-streamer.h (streamer_write_string_cst): Declare.
1638         * tree-streamer-out.c (write_string_cst): Rename to
1639         streamer_write_string_cst and make global. Handle incoming string
1640         being NULL.
1641         (streamer_write_tree_header): Adjust call to renamed function.
1642
1643 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
1644
1645         * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
1646         modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
1647         modulo_last_stage): New static variables.
1648         (set_modulo_params, discard_delay_pairs_above): New functions.
1649         (struct delay_pair): New member stages.
1650         (htab_i2_traverse, htab_i1_traverse): New static functions.
1651         (record_delay_slot_pair): New arg stages.  All callers changed.
1652         Record it.
1653         (pair_delay): Take stages into account.
1654         (add_delay_dependencies): Don't do so for stage pairs.
1655         (struct sched_block_state): New member modulo_epilogue.
1656         (save_backtrack_point): Don't set SHADOW_P for stage pairs.
1657         (unschedule_insns_until): Decrease modulo_insns_scheduled.
1658         Set HARD_DEP without using or.
1659         (resolve_dependencies): New static function.
1660         (prune_ready_list): New arg modulo_epilogue_p.  All callers changed.
1661         If it is true, allow only insns with INSN_EXACT_TICK set.
1662         (schedule_block): Return bool, always true for normal scheduling,
1663         true or false depending on modulo scheduling success otherwise.
1664         Add bookkeeping for modulo scheduling, and call resolve_dependencies
1665         on everything left over after a modulo schedule.
1666         (haifa_sched_init): Remove check_cfg call.  Clear modulo_ii.
1667         * sched-int.h (schedule_block, record_delay_slot_pair): Adjust
1668         declarations.
1669         (set_modulo_params, discard_delay_pairs_above): Declare.
1670         * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
1671         * doc/invoke.texi (--param): Document it.
1672
1673         * sched-ebb.c (schedule_ebb): No longer static.  Remove declaration.
1674         New arg modulo_scheduling.  All callers changed.  Move note handling
1675         code here from schedule_ebbs.
1676         (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
1677         out of schedule_ebbs.
1678         (schedule_ebbs): Call them.  Remove note handling code moved to
1679         schedule_ebb.
1680         * sched-int.h (schedule_ebb, schedule_ebbs_init,
1681         schedule_ebbs_finish): Declare.
1682
1683 2011-09-30  Richard Guenther  <rguenther@suse.de>
1684
1685         PR middle-end/50574
1686         * tree-cfg.c (verify_gimple_comparison): Compare component
1687         mode sizes for vector comparisons.
1688
1689 2011-09-30  Revital Eres  <revital.eres@linaro.org>
1690
1691         * ddg.c (autoinc_var_is_used_p): New function.
1692         (create_ddg_dep_from_intra_loop_link,
1693         add_cross_iteration_register_deps): Call it.
1694         * ddg.h (autoinc_var_is_used_p): Declare.
1695         * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p.
1696         (sms_schedule): Handle instructions with REG_INC.
1697
1698 2011-09-30  Revital Eres  <revital.eres@linaro.org>
1699
1700         * modulo-sched.c (generate_reg_moves): Skip instructions that
1701         do not set a register and verify no regmoves are created for
1702         !single_set instructions.
1703
1704 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
1705
1706         * hw-doloop.c (scan_loop): Compute register usage only for non-debug
1707         insns.
1708
1709 2011-09-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1710
1711         PR target/50099
1712         * config/arm/iterators.md (qhs_zextenddi_cstr): New.
1713         (qhs_zextenddi_op): New.
1714         * config/arm/arm.md ("zero_extend<mode>di2"): Use them.
1715         * config/arm/predicates.md ("arm_extendqisi_mem_op"):
1716         Distinguish between ARM and Thumb2 states.
1717
1718 2011-09-30  David S. Miller  <davem@davemloft.net>
1719
1720         * config/sparc/sparc.opt (VIS2): New option.
1721         * doc/invoke.texi: Document it.
1722         * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
1723         UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
1724         UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
1725         (define_attr type): New insn type 'edgen'.
1726         (bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
1727         edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
1728         edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
1729         patterns.
1730         * niagara.md: Handle edgen.
1731         * niagara2.md: Likewise.
1732         * ultra1_2.md: Likewise.
1733         * ultra3.md: Likewise.
1734         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
1735         to 0x200 when TARGET_VIS2.
1736         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
1737         default when targetting capable cpus.  TARGET_VIS2 implies
1738         TARGET_VIS, clear and it when TARGET_FPU is disabled.
1739         (sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
1740         (sparc_expand_builtin): Fix predicate indexing when builtin returns
1741         void.
1742         (sparc_fold_builtin): Do not eliminate bmask when result is ignored.
1743         * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
1744         __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
1745         __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
1746         __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
1747         * doc/extend.texi: Document new VIS 2.0 builtins.
1748
1749 2011-09-29  Nick Clifton  <nickc@redhat.com>
1750             Bernd Schmidt  <bernds@codesourcery.com>
1751
1752         * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file.
1753         * config/frv/frvend.c: Likewise.
1754         * config/frv/frv.c (frv_function_prologue): Move misplaced
1755         CALL_ARG_LOCATION notes back to their proper locations.
1756
1757 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
1758
1759         PR target/50566
1760         * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool.
1761         * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed
1762         from avr_rtx_costs.
1763         (avr_legitimate_address_p): Use avr_edump to print log information
1764         filtered by avr_log.
1765         (extra_constraint_Q): Ditto.
1766         (avr_legitimize_address): Ditto.
1767         (avr_rtx_costs): Ditto.  Rewrite as wrapper for avr_rtx_costs_1.
1768         (final_prescan_insn): Use avr_log.rtx_costs as filter.
1769
1770 2011-09-29  Richard Sandiford  <richard.sandiford@linaro.org>
1771
1772         * config/arm/arm-protos.h (arm_modes_tieable_p): Declare.
1773         * config/arm/arm.h (MODES_TIEABLE_P): Use it.
1774         * config/arm/arm.c (arm_modes_tieable_p): New function.  Allow
1775         NEON vector and structure modes to be tied.
1776
1777 2011-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1778
1779         * graphite-scop-detection.c (make_close_phi_nodes_unique):  New
1780         forward declaration.
1781         (remove_duplicate_close_phi): Detect and repair creation of
1782         duplicate close-phis for a containing loop.
1783
1784 2011-09-27   Andi Kleen <ak@linux.intel.com>
1785
1786         * gcc.c (get_local_tick). Rename to get_random_number.  Read from
1787         /dev/urandom.  Add getpid call.
1788         (compare_debug_dump_opt_spec_function): Drop getpid call.
1789
1790 2011-09-26   Andi Kleen <ak@linux.intel.com>
1791
1792         * toplev.c (init_local_tick): Try reading random seed
1793         from /dev/urandom.
1794
1795 2011-09-26   Andi Kleen <ak@linux.intel.com>
1796
1797         * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
1798         * lto-streamer.c (lto_get_section_name): Remove crc32_string.
1799         Handle numerical random seed.
1800         * lto-streamer.h (lto_file_decl_data): Change id to
1801         unsigned HOST_WIDE_INT.
1802         * toplev.c (random_seed): Add.
1803         (init_random_seed): Change for numerical random seed.
1804         (get_random_seed): Return as HOST_WIDE_INT.
1805         (set_random_seed): Crc32 existing string.
1806         * toplev.h (get_random_seed): Change to numercal return.
1807         * tree.c (get_file_function_name): Remove CRC. Handle
1808         numerical random seed.
1809
1810 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
1811
1812         PR target/50566
1813         * config.gcc (extra_objs): Add avr-log.o for $target in:
1814         avr-*-rtems*, avr-*-*.
1815         * config/avr/t-avr (avr-log.o): New rule to compile...
1816         * config/avr/avr-log.c: ...this new file.
1817         * config/avr/avr.opt (mlog=): New option.
1818         * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
1819         (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
1820         (avr_log_set_avr_log): New prototype.
1821         (avr_log_t): New typedef.
1822         (avr_log): New declaration.
1823         * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.
1824
1825 2011-09-29  Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
1826
1827         * expr.c (do_store_flag): Expand vector comparison by
1828         building an appropriate VEC_COND_EXPR.
1829         * c-typeck.c (build_binary_op): Typecheck vector comparisons.
1830         (c_objc_common_truthvalue_conversion): Adjust.
1831         * tree-vect-generic.c (do_compare): Helper function.
1832         (expand_vector_comparison): Check if hardware supports
1833         vector comparison of the given type or expand vector piecewise.
1834         (expand_vector_operation): Treat comparison as binary
1835         operation of vector type.
1836         (expand_vector_operations_1): Adjust.
1837
1838 2011-09-29  Richard Guenther  <rguenther@suse.de>
1839
1840         * tree.c (build_opaque_vector_type): Make opaque vectors
1841         variant types of the corresponding non-opaque type.  Make
1842         sure to share opaque vector types properly.
1843
1844 2011-09-29  David S. Miller  <davem@davemloft.net>
1845
1846         * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
1847         UNSPEC_ARRAY32): New unspec.
1848         (define_attr type): New type 'array'.
1849         (array{8,16,32}<P:mode>_vis): New patterns.
1850         * config/sparc/ultra1_2.md: Add reservations for 'array'.
1851         * config/sparc/ultra3.md: Likewise.
1852         * config/sparc/niagara.md: Likewise.
1853         * config/sparc/niagara2.md: Likewise.
1854         * config/sparc/sparc.c (sparc_vis_init_builtins): Build new
1855         array builtins.
1856         * config/sparc/visintrin.h (__vis_array8, __vis_array16,
1857         __vis_array32): New.
1858         * doc/extend.texi: Document new VIS builtins.
1859
1860         * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
1861         (VIS pixel-compare insn): Just use <gcond:name>.
1862
1863         * config/sparc/sparc.md (VIS pixel-compare insn): There is only one
1864         code iterator used, so just use <code>.  There are two mode iterators
1865         so explicitly use <GCM:gcm_name>.
1866
1867 2011-09-29  Iain Sandoe  <iains@gcc.gnu.org>
1868
1869         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
1870         Darwin >= 9.
1871
1872 2011-09-28  David S. Miller  <davem@davemloft.net>
1873
1874         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
1875         UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
1876         (UNSPEC_FCMP): New unspec.
1877         (gcond): New code iterator.
1878         (gcond_name): New code attr.
1879         (GCM): New mode iterator.
1880         (gcm_name): New mode attr.
1881         (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.
1882
1883 2011-09-28  Oleg Endo  <oleg.endo@t-online.de>
1884
1885         PR target/49486
1886         * config/sh/sh.md (negdi2): Move expansion into split to
1887         allow more combination options.  Add T_REG clobber.
1888         (abssi2): New expander.
1889         (*negdi2, *abssi2, *negabssi2): New insns.
1890         (cneg): Change from insn to insn_and_split.  Rename to
1891         negsi_cond.  Add alternative for non-SH4.
1892
1893 2011-09-28  Richard Sandiford  <richard.sandiford@linaro.org>
1894
1895         * config/arm/neon.md (neon_move_lo_quad_<mode>): Delete.
1896         (neon_move_hi_quad_<mode>): Likewise.
1897         (move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves.
1898
1899 2011-09-28  Nick Clifton  <nickc@redhat.com>
1900
1901         * config/rx/predicates.md (rx_minmax_operand): New predicate.
1902         Accepts immediates and a restricted subset of MEMs.
1903         * config/rx/rx.md (int_modes): New iterator.
1904         (smaxsi3, sminsi3): Delete and replace with...
1905         (smax<int_mode>3, smin<int_mode>3): New patterns.
1906         (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns.
1907
1908 2011-09-28  Richard Guenther  <rguenther@suse.de>
1909
1910         PR middle-end/50460
1911         * fold-const.c (try_move_mult_to_index): Handle &a.array the
1912         same as &a.array[0].
1913
1914 2011-09-28  Kai Tietz  <ktietz@redhat.com>
1915
1916         * configure.ac: Add test for new section attribute
1917         specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
1918         * config.in: Regenerated.
1919         * configure: Regenerated.
1920         * config/i386/winnt.c (i386_pe_asm_named_section): Emit
1921         new section flag "e" for excluded sections, if supported.
1922         Otherwise we mark section withc SECTION_EXCLUDE flag as never-load.
1923
1924 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
1925
1926         * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
1927         throughout file.
1928
1929 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
1930
1931         * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
1932         throughout file.
1933
1934 2011-09-27  Sriraman Tallam  <tmsriram@google.com>
1935
1936         * output.h (SECTION_EXCLUDE): New macro.
1937         * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE.
1938
1939 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
1940
1941         * fwprop.c (forward_propagate_and_simplify): After checking
1942         reg/subreg combinations, check whether the modes are the same.
1943
1944 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
1945             Richard Sandiford  <rdsandiford@googlemail.com>
1946
1947         * config/mips/mips.c (mips_add_cfa_restore): New function.
1948         (mips16e_save_restore_reg): Use it.
1949         (mips_restore_reg): Likewise.  Split double FPRs for
1950         REG_CFA_RESTORE notes.
1951
1952 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
1953
1954         PR middle-end/50386
1955         PR middle-end/50326
1956         * tree-sra.c (build_ref_for_model): Use the type of the field as
1957         the type of the COMPONENT_REF.
1958
1959 2011-09-27  Jeff Law  <law@redhat.com>
1960
1961         * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument.  Scale
1962         non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE.
1963         (find_if_case_1): Use the probability of the THEN clause when
1964         determining if speculation is profitable.
1965         (find_if_case_2): Similarly for the ELSE clause.
1966
1967 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
1968
1969         * common.opt: Add -foptimize-strlen option.
1970         * Makefile.in (OBJS): Add tree-ssa-strlen.o.
1971         (tree-sssa-strlen.o): Add dependencies.
1972         * opts.c (default_options_table): Enable -foptimize-strlen
1973         by default at -O2 if not -Os.
1974         * passes.c (init_optimization_passes): Add pass_strlen
1975         after pass_object_sizes.
1976         * timevar.def (TV_TREE_STRLEN): New timevar.
1977         * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
1978         * tree-pass.h (pass_strlen): Declare.
1979         * tree-ssa-strlen.c: New file.
1980         * c-decl.c (merge_decls): If compatible stpcpy prototype
1981         is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
1982
1983 2011-09-27  Tom de Vries  <tom@codesourcery.com>
1984
1985         PR middle-end/43864
1986         * tree-ssa-tail-merge.c: New file.
1987         (struct same_succ_def): Define.
1988         (same_succ, const_same_succ): New typedef.
1989         (struct bb_cluster_def): Define.
1990         (bb_cluster, const_bb_cluster): New typedef.
1991         (struct aux_bb_info): Define.
1992         (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
1993         (gvn_uses_equal): New function.
1994         (same_succ_print, same_succ_print_traverse, update_dep_bb)
1995         (stmt_update_dep_bb, local_def, same_succ_hash)
1996         (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
1997         (same_succ_reset): New function.
1998         (same_succ_htab, same_succ_edge_flags)
1999         (deleted_bbs, deleted_bb_preds): New var.
2000         (debug_same_succ): New function.
2001         (worklist): New var.
2002         (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
2003         (init_worklist, delete_worklist, delete_basic_block_same_succ)
2004         (same_succ_flush_bbs, purge_bbs, update_worklist): New function.
2005         (print_cluster, debug_cluster, update_rep_bb)
2006         (add_bb_to_cluster, new_cluster, delete_cluster): New function.
2007         (all_clusters): New var.
2008         (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
2009         (merge_clusters, set_cluster): New function.
2010         (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
2011         (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
2012         (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
2013         (find_clusters_1, find_clusters): New function.
2014         (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
2015         (update_bbs): New var.
2016         (apply_clusters): New function.
2017         (update_debug_stmt, update_debug_stmts): New function.
2018         (tail_merge_optimize): New function.
2019         tree-pass.h (tail_merge_optimize): Declare.
2020         * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
2021         * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
2022         (tree-ssa-tail-merge.o): New rule.
2023         * opts.c (default_options_table): Set OPT_ftree_tail_merge by
2024         default at OPT_LEVELS_2_PLUS.
2025         * tree-ssa-sccvn.c (vn_valueize): Move to ...
2026         * tree-ssa-sccvn.h (vn_valueize): Here.
2027         * timevar.def (TV_TREE_TAIL_MERGE): New timevar.
2028         * common.opt (ftree-tail-merge): New switch.
2029         * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
2030         (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
2031         * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
2032         (-ftree-tail-merge, max-tail-merge-comparisons)
2033         (max-tail-merge-iterations): New item.
2034
2035 2011-09-27  Jan Hubicka  <jh@suse.cz>
2036
2037         * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
2038
2039 2011-09-27  Jan Hubicka  <jh@suse.cz>
2040
2041         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
2042         parameters passed by reference; handle loads from non-SSA scalars
2043         and update comments.
2044
2045 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
2046
2047         PR rtl-optimization/50249
2048         * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
2049         instead of opnum and type.  All callers changed.  Remove useless
2050         declaration.
2051         Search forward for other reloads of the same type for the same operand
2052         using the same register; if any are found, return false.
2053         (reload_regs_reach_end_p): Same argument changes; all callers changed.
2054
2055 2011-09-27  Andi Kleen  <ak@linux.intel.com>
2056             Jan Hubicka  <jh@suse.cz>
2057
2058         * doc/invoke.texi (ffat-lto-objects): Document.
2059         * toplev.c (compile_file): Do not output assembly when doing slim lto;
2060         Output __gnu_slim_lto when doing slim lto.
2061         * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
2062         (cgraph_optimize): Return early when doing slim lto.
2063         * opts.c (finish_options): Complain about lack of linker plugin
2064         when doing slim lto.
2065         * common.opt (ffat-lto-objects): New.
2066
2067 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
2068
2069         * ipa-inline-analysis.c (predicate_probability): Avoid comparison
2070         between signed and unsigned.
2071
2072 2011-09-27  Ira Rosen  <ira.rosen@linaro.org>
2073
2074         * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
2075         vectorization.
2076         (vectorizable_type_promotion): Likewise.
2077         (vect_analyze_stmt): Call vectorizable_type_demotion and
2078         vectorizable_type_promotion for basic blocks.
2079         (supportable_widening_operation): Don't assume loop vectorization.
2080         * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
2081         basic blocks.  Update vectorization factor for basic block
2082         vectorization.
2083         (vect_analyze_slp_instance): Allow multiple types for basic block
2084         vectorization.  Recheck unrolling factor after construction of SLP
2085         instance.
2086
2087 2011-09-27  Richard Guenther  <rguenther@suse.de>
2088
2089         * tree-object-size.c (compute_object_sizes): Fix dumping of
2090         folded statement.
2091
2092 2011-09-27  Richard Guenther  <rguenther@suse.de>
2093
2094         PR tree-optimization/50363
2095         * tree-ssa-pre.c (create_expression_by_pieces): Handle
2096         pointer conversions in POINTER_PLUS_EXPRs properly.
2097
2098 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
2099
2100         * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
2101         (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
2102         (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
2103         (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
2104         that produce subreg moves.  Define using VQX iterators.
2105
2106 2011-09-27  Georg-Johann Lay  <avr@gjlay.de>
2107
2108         * config/avr/avr.md (ashrqi3): Split alternative "n"
2109         into its remaining parts C03, C04, C05, C06, C07 and describe
2110         impact in CC by attribute "cc" appropriately.
2111         * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
2112         by digging RTX.
2113
2114 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
2115
2116         * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
2117         from 3 x MAX_MACHINE_MODE.
2118         (CONSTM1_RTX): Define.
2119         * emit-rtl.c (const_tiny_rtx): Change into array of
2120         4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE.
2121         (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
2122         CONSTM1_RTX.
2123         (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
2124         MODE_VECTOR_INT modes.
2125         * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
2126         Optimize if one operand is CONSTM1_RTX.
2127         * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
2128         into mask | x.
2129
2130 2011-09-26  David S. Miller  <davem@davemloft.net>
2131
2132         * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
2133         (fcmp{le,ne,gt,eq}{16,32}): Likewise.
2134         * config/sparc/visintrin.h: Update edge and pixel-compare
2135         intrinsics to return 'long' instead of 'int'.
2136         * doc/extend.texi: Update documentation to match.
2137         * config/sparc/sparc.c (eligible_for_return_delay): When leaf or
2138         flat, allow any instruction.  Otherwise, when V9 allow parallels
2139         which consist only of sets to registers outside of %o0 to %o5.
2140         (sparc_vis_init_builtins): Update VIS builtin types for edge
2141         and pixel-compare.
2142
2143         * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
2144         is enabled, mark %gsr as global.
2145         * config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
2146         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.
2147
2148         * config/sparc/sparc-c.c: New file implementing sparc_target_macros,
2149         which will now define __VIS and __VIS__ when -mvis is enabled.
2150         * config/sparc/t-sparc: Likewise.
2151         * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
2152         and add t-sparc to tmake_file for all sparc targets.
2153         * config/sparc/sparc-protos.h (sparc_target_macros): Declare.
2154         * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.
2155
2156         * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
2157         builtins for VIS vector addition and subtraction.
2158         * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
2159         __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
2160         __vis_fpsub32, __vis_fpsub32s): New.
2161         * doc/extend.texi: Document new VIS intrinsics.
2162
2163 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
2164
2165         * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
2166         * config/avr/avr.c (avr_out_compare): Print shorter sequence for
2167         EQ/NE comparisons against +/-1 in the case of unused-after,
2168         non-ld-regs target.
2169
2170 2011-09-26  Jakub Jelinek  <jakub@redhat.com>
2171
2172         * gimple-fold.c (gimplify_and_update_call_from_tree): Set
2173         gctx.into_ssa after push_gimplify_context.
2174
2175         * gimple.c (gimple_build_call_valist): New function.
2176         * gimple.h (gimple_build_call_valist): New prototype.
2177         * tree-ssa-propagate.c (finish_update_gimple_call): New function.
2178         (update_gimple_call): Likewise.
2179         (update_call_from_tree): Use finish_update_gimple_call.
2180         * tree-ssa-propagate.h (update_gimple_call): New prototype.
2181
2182 2011-09-26  Richard Guenther  <rguenther@suse.de>
2183
2184         PR tree-optimization/50472
2185         * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
2186         volatile references.
2187
2188 2011-09-26  Bingfeng Mei <bmei@broadcom.com>
2189
2190         * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
2191         * target.def: (addr_space_subset_p): Likewise.
2192
2193 2011-09-26  Tom de Vries  <tom@codesourcery.com>
2194
2195         * tree-ssa-alias.h (pt_solution_singleton_p): Declare.
2196         * tree-ssa-structalias.c (pt_solution_singleton_p): New function.
2197         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
2198         of new var.
2199
2200 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
2201
2202         PR target/50465
2203         * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
2204         * config/avr/avr.md (*reload_insi, *reload_insf): Change call to
2205         output_reload_insisf.
2206         (adjust_len): Set default to "no".
2207         Remove alternative "yes".  Add alternatives: "mov8", "mov16",
2208         "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
2209         "lshrhi", "ashlsi, "ashrsi", "lshrsi".
2210         (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
2211         *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
2212         *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
2213         *lshrsi3_const): Set attribute "adjust_len".
2214         * config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
2215         (output_movsisf): Don't pass insn to output_reload_insisf.
2216         (adjust_insn_length): Handle new alternatives to adjust_len.
2217         Remove handling of ADJUST_LEN_YES.  Clean-up code.
2218
2219 2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>
2220
2221         * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of
2222         may_trap_p to detect loads that may trap of fault.
2223
2224 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
2225
2226         * config/avr/avr-protos.h (output_reload_inhi): Change prototype.
2227         * config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
2228         (*reload_inhi): Use it.  Adapt call to output_reload_inhi to new
2229         prototype.
2230         (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
2231         * config/avr/avr.c: Rename output_reload_insisf_1 to
2232         output_reload_in_const.
2233         (avr_popcount_each_byte): Handle SFmode, too.
2234         (output_reload_in_const): Change so it can handle HI loads, too.
2235         Use avr_popcount_each_byte to work out if scratch register must be
2236         created on the fly.
2237         (output_reload_inhi): Rewrite using output_reload_in_const and...
2238         (output_movhi): ...use it to print constants' loads.
2239         (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.
2240
2241 2011-09-25  David S. Miller  <davem@davemloft.net>
2242
2243         * config/sparc/constraints.md (C, P, Z): New constraints for
2244         const_doube, const_int, and const_vector "all ones" values.
2245         Make unused constraint letters comment match reality.
2246         * config/sparc/predicates.md (const_all_ones_operand,
2247         register_or_zero_or_all_ones_operand): New predicates.
2248         * config/sparc/sparc.c (sparc_expand_move): Allow all ones
2249         as well as zero constants when VIS.
2250         (sparc_legitimate_constant_p): Likewise.
2251         * config/sparc/sparc.md (movsi_insn): Add fones alternative.
2252         (movsf_insn): Likewise
2253         (movdi_insn_sp64): Add fone alternative.
2254         (movdf_insn_sp32_v9): Likewise.
2255         (movdf_insn_sp64): Likewise.
2256
2257         * configure.ac: Add feature check to make sure the assembler
2258         supports the FMAF, HPC, and VIS 3.0 instructions found on
2259         Niagara-3 and later cpus.
2260         * configure: Rebuild.
2261         * config.in: Likewise.
2262         * config/sparc/sparc.opt: New option '-mfmaf'.
2263         * config/sparc/sparc.md: Add float fused multiply-add patterns.
2264         * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
2265         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
2266         * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
2267         ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
2268         * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
2269         by default for Niagara-3 and later.  Turn it off if TARGET_FPU is
2270         disabled.
2271         (sparc_rtx_costs): Handle 'FMA'.
2272         * doc/invoke.texi: Document -mfmaf.
2273
2274 2011-09-25  Jakub Jelinek  <jakub@redhat.com>
2275
2276         * tree-ssa-structalias.c (intra_create_variable_infos): Treat
2277         TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
2278         DECL_BY_REFERENCE parameters.
2279
2280 2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>
2281
2282         * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
2283         if there is no outgoing edge.
2284
2285         * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
2286         integral types.
2287
2288 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
2289
2290         * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
2291         of vect_analyze_bb here.
2292         (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.
2293
2294 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
2295
2296         * tree-data-ref.c (dr_analyze_innermost): Add new argument.
2297         Allow not simple iv if analyzing basic block.
2298         (create_data_ref): Update call to dr_analyze_innermost.
2299         (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
2300         * tree-loop-distribution.c (generate_memset_zero): Likewise.
2301         * tree-predcom.c (find_looparound_phi): Likewise.
2302         * tree-data-ref.h (dr_analyze_innermost): Add new argument.
2303
2304 2011-09-24  David S. Miller  <davem@davemloft.net>
2305
2306         * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
2307         (SPARC_GSR_REG): Define.
2308         (FIXED_REGISTERS): Mark GSR as fixed.
2309         (CALL_USED_REGISTERS): Mark GSR as call used.
2310         (HARD_REGNO_NREGS): GSR is always 1 register.
2311         (REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
2312         (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
2313         (REGISTER_NAMES): Add "%gsr".
2314         * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete.
2315         (UNSPEC_WRGSR): New unspec.
2316         (GSR_REG): New constant.
2317         (type): Add new insn type 'gsr'.
2318         (fpack16_vis, fpackfix_vis, fpack32_vis,
2319         faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
2320         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
2321         rdgsr_v8plus): New expanders and insns.
2322         (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
2323         using patterns which show that this is a plus in addition to a
2324         modification of GSR_REG, instead of an unspec.
2325         * config/sparc/ultra1_2.md: Handle 'gsr'.
2326         * config/sparc/ultra3.md: Likewise.
2327         * config/sparc/niagara.md: Likewise.
2328         * config/sparc/niagara2.md: Likewise.
2329         * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
2330         end of table.
2331         (sparc_option_override): Make -mvis imply -mv8plus.
2332         (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
2333         for %gsr.
2334         (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
2335         __builtin_vis_read_gsr.
2336         (sparc_expand_buildin): Handle builtins that take one argument and
2337         return void.
2338         (sparc_fold_builtin): Never fold writes to %gsr.
2339         * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
2340         * doc/extend.texi: Document new VIS intrinsics.
2341
2342 2011-09-23  Jan Hubicka  <jh@suse.cz>
2343
2344         * ipa-inline-transform.c (inline_call): Add comment.
2345         * ipa-inline.h (inline_param_summary): New structure and vector.
2346         (struct inline_edge_summary): Add param field.
2347         * ipa-inline-analysis.c (CHANGED): New constant.
2348         (add_clause): Handle CHANGED and NOT_CONSTANT.
2349         (predicate_probability): New function.
2350         (dump_condition): Dump CHANGED predicate.
2351         (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
2352         of unknown function wide invariant.
2353         (evaluate_conditions_for_edge): Handle change probabilities.
2354         (inline_edge_duplication_hook): Copy param summaries.
2355         (inline_edge_removal_hook): Free param summaries.
2356         (dump_inline_edge_summary): Fix dumping of indirect edges and callee
2357         sizes; dump param summaries.
2358         (will_be_nonconstant_predicate): Use CHANGED predicate.
2359         (record_modified_bb_info): New structure.
2360         (record_modified): New function.
2361         (param_change_prob): New function.
2362         (estimate_function_body_sizes): Compute param summaries.
2363         (estimate_edge_size_and_time): Add probability argument.
2364         (estimate_node_size_and_time): Add inline_param_summary argument;
2365         handle predicate probabilities.
2366         (remap_predicate): Fix formating.
2367         (remap_edge_change_prob): New function.
2368         (remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
2369         (remap_edge_predicates): ... this one.
2370         (inline_merge_summary): Remap edge summaries; handle predicate
2371         probabilities; remove param summaries after we are done.
2372         (do_estimate_edge_time): Update.
2373         (do_estimate_edge_growth): Update.
2374         (read_inline_edge_summary): Read param info.
2375         (inline_read_summary): Fix formating.
2376         (write_inline_edge_summary): Write param summaries.
2377
2378 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
2379
2380         * config/i386/i386.c (ix86_print_operand): Handle %~.
2381         (ix86_print_operand_punct_valid_p): Return true also for '~'.
2382         * config/i386/sse.md (i128): New mode_attr.
2383         (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
2384         avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
2385         *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
2386         vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
2387         patterns, use "<sseinsnmode>" for "mode" attribute.
2388         (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
2389         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
2390         %~128 in the patterns, use "OI" for "mode" attribute.
2391
2392 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
2393
2394         PR target/50447
2395         * config/avr/avr.md (adjust_len): Add alternatives "tsthi",
2396         "tstsi", "compare".
2397         (*cmpqi_sign_extend): Use s8_operand.
2398         (*cmphi, *cmpsi): Rewrite using avr_out_compare.
2399         * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
2400         prototypes.
2401         (out_tsthi, out_tstsi): Remove prototypes.
2402         (avr_out_tsthi, avr_out_tstsi): New prototypes.
2403         * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
2404         (avr_asm_len): Negative length now sets *plen to -length.
2405         (compare_sign_p): Return bool instead of int.
2406         (compare_diff_p, compare_eq_p): Ditto and make static.
2407         (avr_out_tsthi): New function.
2408         (avr_out_tstsi): New function.
2409         (avr_out_compare): New function.
2410         (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
2411         ADJUST_LEN_COMPARE.
2412
2413 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
2414
2415         PR target/50447
2416         * config/avr/avr.md: (adjust_len): Add alternative "out_plus".
2417         (addsi3): Rewrite using QI scratch register.  Adjust text
2418         peepholes using plus:SI.
2419         (*addsi3_zero_extend.hi): New insn.
2420         (*subsi3_zero_extend.hi): New insn.
2421         (*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
2422         (*subsi3_zero_extend): Ditto.
2423         (subsi3): Change predicate #2 to register_operand.
2424         * config/avr/avr-protos.h (avr_out_plus): New prototype.
2425         (avr_out_plus_1): New static function.
2426         (avr_out_plus): New function.
2427         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.
2428
2429 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
2430
2431         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
2432         GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.
2433
2434 2011-09-23  Ian Lance Taylor  <iant@google.com>
2435
2436         * godump.c (go_define): Treat a single character in single quotes,
2437         or a string, as an operand.
2438
2439 2011-09-23  Martin Jambor  <mjambor@suse.cz>
2440
2441         * ipa-prop.h (jump_func_type): Updated comments.
2442         (ipa_known_type_data): New type.
2443         (ipa_jump_func): Use it to describe known type jump functions.
2444         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
2445         reflect the new known type jump function contents.
2446         (compute_known_type_jump_func): Likewise.
2447         (combine_known_type_and_ancestor_jfs): Likewise.
2448         (try_make_edge_direct_virtual_call): Likewise.
2449         (ipa_write_jump_function): Likewise.
2450         (ipa_read_jump_function): Likewise.
2451         * ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
2452         (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
2453         (propagate_accross_jump_function): Likewise.
2454
2455 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
2456
2457         PR target/50446
2458         * config/avr/avr.md (rotlqi3): Support all offsets 0..7.
2459         (rotlqi3_4): Turn insn into expander.
2460         (*rotlqi3): New insn.
2461         (rotlhi3, rotlsi3): Support rotate left/right by 1.
2462         (*rotlhi2.1, *rotlhi2.15): New insns.
2463         (*rotlsi2.1, *rotlsi2.31): New insns.
2464         * config/avr/constraints.md (C03, C05, C06, C07): New constraints.
2465
2466 2011-09-23  Bin Cheng  <bin.cheng@arm.com>
2467
2468         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors.
2469
2470 2011-09-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2471
2472         * ipa-prop.c (ipa_print_node_jump_functions): Fix typos.
2473
2474 2011-09-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2475
2476         * reload.c (find_reloads): Set operand_mode to Pmode for address
2477         operands consisting of just a CONST_INT.
2478
2479 2011-09-22  Uros Bizjak  <ubizjak@gmail.com>
2480
2481         PR target/50482
2482         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
2483         blendv, force op_true to register if it doesn't satisfy
2484         nonimmediate_operand predicate.
2485
2486 2011-09-22  Richard Sandiford  <rdsandiford@googlemail.com>
2487
2488         PR middle-end/50113
2489         PR middle-end/50061
2490         * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
2491         get the locate.where_pad value for register-only arguments.
2492         * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
2493         (arm_pad_reg_upward): Handle null types.
2494
2495 2011-09-22  Jan Hubicka  <jh@suse.cz>
2496
2497         * ipa-inline-analysis.c: Fix overly long lines.
2498
2499 2011-09-22  Jan Hubicka  <jh@suse.cz>
2500
2501         * ipa-inline-transform.c (inline_call): Always update jump functions
2502         after inlining.
2503         * ipa-inline.c (ipa_inline): Likewise; do not call
2504         ipa_create_all_structures_for_iinln.
2505         (ipa_inline): Always free jump functions.
2506         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
2507         (remap_edge_predicates): Fix pasto.
2508         (inline_merge_summary): Remove nlined edge predicate; remove hack.
2509         (inline_analyze_function): Always initialize jump functions.
2510         (inline_generate_summary): Likewise.
2511         (inline_write_summary): Always write jump functions when ipa-cp
2512         is not doing that.
2513         (inline_read_summary): Always read jump functions when ipa-cp
2514         is not doing that.
2515         * ipa-prop.c (iinlining_processed_edges): Remove.
2516         (update_indirect_edges_after_inlining): Do not use
2517         iinlining_processed_edges; instead set param_index to -1.
2518         (propagate_info_to_inlined_callees): Only try to indirect inlining
2519         when asked to do so; update jump functions of indirect calls, too;
2520         remove jump functions of the inlined edge.
2521         (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
2522         (ipa_create_all_structures_for_iinln): Remove.
2523         (ipa_free_all_structures_after_iinln): Do not free
2524         iinlining_processed_edges.
2525         * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.
2526
2527 2011-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
2528
2529         * config/arm/predicates.md (expandable_comparison_operator): New
2530         predicate, extracted from...
2531         (arm_comparison_operator): ...here.
2532         * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
2533         (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
2534         (movdfcc): Use expandable_comparison_operator.
2535
2536 2011-09-22  Georg-Johann Lay  <avr@gjlay.de>
2537
2538         PR target/50447
2539         PR target/50465
2540         * config/avr/avr-protos.h (avr_out_bitop): New prototype.
2541         (avr_popcount_each_byte): New prototype.
2542         * config/avr/avr.c (avr_popcount): New static function.
2543         (avr_popcount_each_byte): New function.
2544         (avr_out_bitop): New function.
2545         (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
2546         avr_out_bitop.  Cleanup code.
2547         * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
2548         (Ca4, Co4, Cx4): New constraints.
2549         * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
2550         alternative.
2551         (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
2552         (andsi3, iorsi3, xorsi3): Ditto.
2553         (*iorhi3_clobber, *iorsi3_clobber): Remove insns.
2554
2555 2011-09-22  Ira Rosen  <ira.rosen@linaro.org>
2556
2557         PR tree-optimization/50451
2558         * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
2559         constant operands in reduction.
2560         (vect_get_slp_defs): Don't create vector operand for NULL scalar
2561         operand.
2562
2563 2011-09-22  David S. Miller  <davem@davemloft.net>
2564
2565         * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
2566         fpack16, fpack32, fpackfix as const.
2567
2568         * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
2569         I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
2570         constants.  Use them everywhere.
2571
2572 2011-09-22  Oleg Endo  <oleg.endo@t-online.de>
2573
2574         * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
2575         Added AND special case.  Adapted comments.
2576         (sh_rtx_costs): Added XOR and IOR case.
2577
2578 2011-09-21  Jan Hubicka  <jh@suse.cz>
2579
2580         * ipa-inline-analsis.c (compute_inline_parameters): Set
2581         cfun and current_function_decl.
2582
2583 2011-09-21  Jan Hubicka  <jh@suse.cz>
2584
2585         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
2586         handled components in parameter of builtin_constant_p.
2587         (will_be_nonconstant_predicate): Allow loads of non-SSA parameters.
2588
2589 2011-09-21  Jan Hubicka  <jh@suse.cz>
2590
2591         * ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
2592         * ipa-inline.h (estimate_edge_time): Fix pasto.
2593         * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.
2594
2595 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
2596
2597         * config/i386/i386.c (ix86_expand_sse_movcc): Use
2598         blendvps, blendvpd and pblendvb if possible.
2599
2600 2011-09-21  Uros Bizjak  <ubizjak@gmail.com>
2601
2602         PR target/50464
2603         * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
2604         operand 1 predicate to register_operand and operand 2 predicate
2605         to nonimmediate_operand.
2606         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
2607         xop_pcmov, force op_true to register.  Also, force op_false to
2608         register if it doesn't satisfy nonimmediate_operand predicate.
2609
2610 2011-09-21  Kirill Yukhin  <kirill.yukhin@intel.com>
2611
2612         * config/i386/bmi2intrin.h (_mulx_u64): New.
2613         (_mulx_u32): Ditto.
2614
2615 2011-09-21  Jan Hubicka  <jh@suse.cz>
2616
2617         PR tree-optimization/50433
2618         * ipa-inline-analysis.c (eliminated_by_inlining_prob):
2619         Use get_base_address.
2620
2621 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
2622
2623         * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
2624         nonimmediate_operand instead of register_operand predicate for operands
2625         1 and 2, force them into registers if expanding them as comparison.
2626         (<code><mode>3 umaxmin:VI124_128 expander): Similarly.  For UMAX
2627         V8HImode force into register just operand 1.
2628
2629 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
2630
2631         PR target/45099
2632         * config/avr/avr.c (avr_function_arg_advance): Change error to
2633         warning if a fixed register is needed as function argument.
2634
2635 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
2636
2637         PR target/50449
2638         PR target/50465
2639         * config/avr/avr.md (adjust_len): New insn attribute.
2640         (*reload_insi, *reload_insf): Use it.
2641         (*movsi, *movsf): Use new interface of output_movsisf.
2642         * config/avr/avr-protos.h (output_movsisf): Change prototype.
2643         * config/avr/avr.c (output_movsisf): Ditto.
2644         (adjust_insn_length): Use insn attribute "adjust_len" to adjust
2645         lengths of insns *reload_insi, *reload_insf.
2646         (output_reload_insisf_1): New static function.
2647         (output_reload_insisf): Use it.
2648
2649 2011-09-21  David S. Miller  <davem@davemloft.net>
2650
2651         * config/sparc/sparc.c (def_builtin): Change from macro into function.
2652         (def_builtin_const): New.
2653         (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins
2654         other than alignaddr and falignaddr.
2655
2656         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT,
2657         UNSPEC_FCMPEQ): New unspec codes.
2658         (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis,
2659         fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns.
2660         * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for
2661         new pixel compare VIS patterns.
2662         * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32,
2663         __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32,
2664         __vis_fcmpeq16, __vis_fcmpeq32): New.
2665         * doc/extend.texi: Document new pixel compare VIS intrinsics.
2666
2667 2011-09-21  Tom de Vries  <tom@codesourcery.com>
2668
2669         * final.c (final): Handle if JUMP_LABEL is not LABEL_P.
2670
2671 2011-09-20  David S. Miller  <davem@davemloft.net>
2672
2673         * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
2674         (aligneddrl<P:mode>_vis): New pattern.
2675         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
2676         edge32l_vis): Adjust to take Pmode arguments, and return SImode.
2677         * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
2678         alignaddrl insn, and adjust edge operations for updated types.
2679         * config/sparc/visintrin.h: Likewise.
2680         * doc/extend.texi: Make typing in VIS documentation match reality.
2681
2682 2011-09-20  Terry Guo  <terry.guo@arm.com>
2683
2684         * config/arm/arm-arches.def: Add armv6s-m.
2685         * config/arm/arm-tables.opt: Regenerate.
2686
2687 2011-09-20  Wei Guozhi  <carrot@google.com>
2688
2689         PR rtl-optimization/49452
2690         * postreload.c (reload_combine): Invalidate use information when across
2691         volatile insn.
2692
2693 2011-09-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
2694
2695         * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg):
2696         Remove maintenance overhead.
2697         (haifa_sched_init, sched_finish): Update.
2698
2699 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
2700
2701         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
2702         to calculate unit, prefix_rep and prefix_data16 attributes.
2703         (*mov<mode>_internal): Ditto for unit attribute.
2704         (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
2705         (*movv2sf_internal): Ditto.
2706         * config/i386/sse.md (VI1248_256): Remove mode iterator.
2707         (avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
2708         (*avx2_eq<mode>3): Ditto.
2709         (avx2_gt<mode>3): Ditto.
2710
2711 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
2712
2713         * config/i386/i386.md (maxmin): New code iterator.
2714         * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
2715         from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
2716         code iterator.
2717         (*avx2_<maxmin:code><mode>3): Macroize isn from
2718         *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
2719         maxmin code iterator.
2720         (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
2721         (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
2722         <umaxmin:code>v16qi3.
2723
2724 2011-09-19  Alan Modra  <amodra@gmail.com>
2725             Michael Meissner  <meissner@linux.vnet.ibm.com>
2726
2727         PR target/50341
2728         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not
2729         split the load of the indirect function's TOC from the call to
2730         prevent the compiler from moving the load of the new TOC above
2731         code that references the current function's TOC.
2732         (call_indirect_aix<ptrsize>_internal): Ditto.
2733         (call_indirect_aix<ptrsize>_nor11): Ditto.
2734         (call_indirect_aix<ptrsize>_internal2): Ditto.
2735         (call_value_indirect_aix<ptrsize>): Ditto.
2736         (call_value_indirect_aix<ptrsize>_internal): Ditto.
2737         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2738         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2739
2740 2011-09-19  Jakub Jelinek  <jakub@redhat.com>
2741
2742         * config/i386/sse.md (*sse4_1_extractps): Change into
2743         define_insn_and_split, add =x 0 n and =x x n alternatives
2744         and split them after reload.
2745
2746 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
2747
2748         * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.
2749
2750 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
2751
2752         * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.
2753
2754 2011-09-19  Ira Rosen  <ira.rosen@linaro.org>
2755
2756         PR tree-optimization/50413
2757         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
2758         a basic block if one of its data-refs can't be analyzed.
2759
2760 2011-09-19  Paul Brook  <paul@codesourcery.com>
2761
2762         * config/arm/predicates.md (shift_amount_operand): Check constant
2763         shift count is in range.
2764         (const_shift_operand): Remove.
2765
2766 2011-09-18  Eric Botcazou  <ebotcazou@adacore.com>
2767             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
2768
2769         PR target/50091
2770         * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
2771         * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
2772
2773 2011-09-18  H.J. Lu  <hongjiu.lu@intel.com>
2774
2775         * config/i386/bmiintrin.h: Remove tmp.
2776         * config/i386/tbmintrin.h: Likewise.
2777
2778 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
2779
2780         PR tree-optimization/50414
2781         * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
2782         MIN_EXPR.
2783
2784 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
2785
2786         PR tree-optimization/50412
2787         * tree-vect-data-refs.c (vect_analyze_group_access): Fail for
2788         acceses that require epilogue loop if vectorizing outer loop.
2789
2790 2011-09-17  David S. Miller  <davem@davemloft.net>
2791
2792         * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
2793         UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
2794         New unspecs.
2795         (define_attr type): New type 'edge'.
2796         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
2797         edge32l_vis): New patterns.
2798         * config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
2799         * config/sparc/ultra3.md: Likewise.
2800         * config/sparc/niagara.md: Likewise.
2801         * config/sparc/niagara2.md: Likewise.
2802         * config/sparc/sparc.d (sparc_vis_init_builtins): Generate
2803         builtins for VIS edge instructions.
2804         * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
2805         (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
2806         intrinsics.
2807         (__v8qi, __v4qi): Make unsigned.
2808         (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
2809         __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
2810         __vis_fpack32): Fix types.
2811         * doc/extend.texi: Document new 'edge' VIS intrinsics.
2812
2813         * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
2814         divide costs.
2815         (niagara3_costs): New.
2816         (sparc_option_override): Use it.
2817         * gcc/config/sparc/niagara2.md: Adjust with more accurate
2818         Niagara-3 reservations.
2819
2820 2011-09-17  Jakub Jelinek  <jakub@redhat.com>
2821
2822         * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
2823         (sse2_avx, sseinsnmode): Add V2TI.
2824         (REDUC_SMINMAX_MODE): New mode iterator.
2825         (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
2826         reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
2827         (reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
2828         (sse2_lshrv1ti3): Rename to...
2829         (<sse2_avx2>_lshr<mode>3): ... this.  Use VIMAX_AVX2 mode
2830         iterator.  Move before umaxmin expanders.
2831         * config/i386/i386.h (VALID_AVX256_REG_MODE,
2832         SSE_REG_MODE_P): Accept V2TImode.
2833         * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
2834         V16HImode, V8SImode and V4DImode.
2835
2836         * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
2837         and V4DImode.
2838         (ix86_build_signbit_mask): Likewise.
2839         (ix86_expand_int_vcond): Likewise.  Handle V16HImode and V32QImode.
2840         (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
2841         instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
2842         * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to...
2843         (<code><mode>3) ... this.
2844         (avx2_<code><mode>3 smaxmin expand): Rename to...
2845         (<code><mode>3) ... this.
2846         (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
2847         (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
2848         VI8_AVX2 mode iterator.
2849         (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
2850         VI8_AVX2 mode iterator.
2851         (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
2852         New expanders.
2853
2854 2011-09-17  Richard Sandiford  <rdsandiford@googlemail.com>
2855
2856         * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
2857         throughout file.
2858
2859 2011-09-16  David S. Miller  <davem@davemloft.net>
2860
2861         * config/sparc/visintrin.h: New file.
2862         * config.gcc: Add it to extra_headers on sparc.
2863
2864 2011-09-16  Jakub Jelinek  <jakub@redhat.com>
2865
2866         * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
2867         (ix86_expand_reduc): ... this.  Handle also V8SFmode and V4DFmode.
2868         * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
2869         reduc_smin_v4sf): Adjust callers.
2870         (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
2871         New expanders.
2872
2873         * config/i386/sse.md (vec_extract_hi_<mode>,
2874         vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
2875         vextracti128 instead of vextractf128 for -mavx2 and
2876         integer vectors.  For V4DFmode fix up mode attribute.
2877         (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
2878         (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
2879         instead of V8SF mode attribute.
2880         (avx2_extracti128): Change into define_expand.
2881         * config/i386/i386.c (ix86_expand_vector_extract): Handle
2882         32-byte vector modes if TARGET_AVX.
2883
2884 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
2885
2886         * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
2887         (umulqi3_highpart, smulqi3_highpart): Ditto.
2888         (*maddqihi4.const, *umaddqihi4.uconst): Ditto.
2889         (*msubqihi4.const, *umsubqihi4.uconst): Ditto.
2890         (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.
2891
2892 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
2893
2894         PR target/50358
2895         * config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
2896         (*maddqi4, *maddqi4.const): New insns.
2897         (*msubqi4, *msubqi4.const): New insns.
2898         * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
2899         PLUS:QI and MINUS:QI.  Increase costs of multiply-add/-sub for
2900         HImode by 1 in the case of multiplying with a CONST_INT.
2901         Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
2902
2903 2011-09-15   Jan Hubicka  <jh@suse.cz>
2904
2905         PR lto/50430
2906         * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
2907         error_mark_node in the DECL_INITIAL of vtable.
2908
2909 2011-09-15   Diego Novillo  <dnovillo@google.com>
2910
2911         * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
2912         @SYSROOT_CFLAGS_FOR_TARGET@.
2913         * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot.
2914         * configure: Regenerate.
2915         (site.exp): Add definition of TEST_ALWAYS_FLAGS.
2916         Remove setting of GCC_UNDER_TEST.
2917
2918 2011-09-15  Uros Bizjak  <ubizjak@gmail.com>
2919
2920         * config/i386/i386.c (output_fp_compare): Return %v prefixed
2921         instruction mnemonics for TARGET_AVX.
2922
2923         * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
2924         "type" attribute calculation.
2925         (*movdf_internal): Ditto.
2926         (*movsf_internal): Ditto.
2927
2928 2011-09-15  James Greenhalgh  <james.greenhalgh@arm.com>
2929
2930         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.
2931
2932 2011-09-15  Jason Merrill  <jason@redhat.com>
2933
2934         PR c++/50361
2935         * expr.c (count_type_elements): Handle NULLPTR_TYPE.
2936
2937 2011-09-15  Jan Hubicka  <jh@suse.cz>
2938
2939         * ipa-inline-analysis.c (add_condition): Add conditions parameter;
2940         simplify obviously true clauses.
2941         (and_predicates, or_predicates): Add conditions parameter.
2942         (inline_duplication_hoook): Update.
2943         (mark_modified): New function.
2944         (unmodified_parm): New function.
2945         (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
2946         set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
2947         Use unmodified_parm.
2948         (estimate_function_body_sizes): Update.
2949         (remap_predicate): Update.
2950
2951 2011-09-15  Ira Rosen  <ira.rosen@linaro.org>
2952
2953         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
2954         read-after-read dependencies in basic block SLP.
2955
2956 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2957
2958         * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
2959         throughout file.
2960
2961 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2962
2963         * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
2964         throughout file.
2965
2966 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2967
2968         * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
2969         throughout file.
2970
2971 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2972
2973         * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
2974         throughout file.
2975         * config/rs6000/constraints.md: Likewise.
2976
2977 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2978
2979         * config/microblaze/microblaze.md: Use match_test rather than
2980         eq/ne symbol_ref throughout file.
2981
2982 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2983
2984         * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
2985         throughout file.
2986
2987 2011-09-14  Tom de Vries  <tom@codesourcery.com>
2988
2989         PR middle-end/50251
2990         * explow.c (emit_stack_restore): Set crtl->need_drap if
2991         stack_restore is emitted.
2992
2993 2011-09-14  Julian Brown  <julian@codesourcery.com>
2994
2995         * config/arm/arm.c (arm_override_options): Add unaligned_access
2996         support.
2997         (arm_file_start): Emit attribute for unaligned access as appropriate.
2998         * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
2999         (UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
3000         (insv, extzv): Add unaligned-access support.
3001         (extv): Change to expander. Likewise.
3002         (extzv_t1, extv_regsi): Add helpers.
3003         (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
3004         (unaligned_storesi, unaligned_storehi): New.
3005         (*extv_reg): New (previous extv implementation).
3006         * config/arm/arm.opt (munaligned_access): Add option.
3007         * config/arm/constraints.md (Uw): New constraint.
3008         * expmed.c (store_bit_field_1): Adjust bitfield numbering according
3009         to size of access, not size of unit, when BITS_BIG_ENDIAN !=
3010         BYTES_BIG_ENDIAN. Don't use bitfield accesses for
3011         volatile accesses when -fstrict-volatile-bitfields is in effect.
3012         (extract_bit_field_1): Likewise.
3013
3014 2011-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
3015
3016         * simplify-rtx.c (simplify_subreg): Check that the inner mode is
3017         a scalar integer before applying integer-only optimisations to
3018         inner arithmetic.
3019
3020 2011-09-14  Bernd Schmidt  <bernds@codesourcery.com>
3021
3022         * config/mips/mips.c (mips_expand_epilogue): Generate a
3023         simple_return only if the return address is in r31.
3024
3025 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
3026
3027         * cfgcleanup.c (try_head_merge_bb): If get_condition returns
3028         NULL for a jump that is a cc0 insn, pick the previous insn for
3029         move_before.
3030
3031 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
3032
3033         * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
3034         throughout file.
3035
3036 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
3037
3038         * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
3039         throughout file.
3040
3041 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
3042
3043         * config/mn10300/mn10300.md: Use match_test rather than eq/ne
3044         symbol_ref throughout file.
3045
3046 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
3047
3048         * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
3049         throughout file.
3050
3051 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
3052
3053         * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
3054         throughout file.
3055
3056 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
3057
3058         * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
3059         throughout file.
3060         * config/arm/neon.md: Likewise.
3061         * config/arm/vfp.md: Likewise.
3062         * config/arm/thumb2.md: Likewise.
3063         * config/arm/cortex-m4.md: Likewise.
3064
3065 2011-09-13  Sevak Sargsyan <sevak.sargsyan@ispras.ru>
3066
3067         * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
3068         define_insn patterns for combine.
3069
3070 2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
3071
3072         * reorg.c: Always define make_return_insns.
3073
3074 2011-09-13  Jan Hubicka  <jh@suse.cz>
3075
3076         PR other/49533
3077         * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.
3078
3079 2011-09-13  Jan Hubicka  <jh@suse.cz>
3080
3081         PR other/49533
3082         * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.
3083
3084 2011-09-13  Paul Brook  <paul@codesourcery.com>
3085
3086         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
3087         (ARM_TARGET2_DWARF_FORMAT): Provide default definition.
3088         * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
3089         * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
3090         * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
3091         * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
3092         * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
3093         * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
3094         enabling unwind tables.
3095         (c6x_debug_unwind_info): New function.
3096         (TARGET_ARM_EABI_UNWINDER): Define.
3097         (TARGET_DEBUG_UNWIND_INFO): Define.
3098         * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
3099         (TARGET_EXTRA_CFI_SECTION): Remove.
3100         * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
3101         * ginclude/unwind-arm-common.h: New file.
3102
3103 2011-09-13  Georg-Johann Lay  <avr@gjlay.de>
3104
3105         PR target/50358
3106         * config/avr/predicates.md (const_1_to_6_operand): New predicate.
3107         * config/avr/avr.md: (extend_s): New code attribute.
3108         (mul_r_d): New code attribute.
3109         (*maddqihi4, *umaddqihi4): New insns.
3110         (*msubqihi4, *umsubqihi4): New insns.
3111         (*usmaddqihi4, *sumaddqihi4): New insns.
3112         (*usmsubqihi4, *susubdqihi4): New insns.
3113         (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
3114         (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
3115         (*umsubqihi4.uconst.ashift): New insn-and-split.
3116         (*msubqihi4.sconst.ashift): New insn-and-split.
3117         (*sumaddqihi4.uconst): New insn-and-split.
3118         (*sumsubqihi4.uconst): New insn-and-split.
3119         * config/avr/avr.c (avr_rtx_costs): Report costs of above in case
3120         PLUS:HI and MINUS:HI.
3121
3122 2011-09-13  Revital Eres  <revital.eres@linaro.org>
3123
3124         modulo-sched.c (remove_node_from_ps): Return void instead of bool.
3125         (optimize_sc): Adjust call to remove_node_from_ps.
3126         (sms_schedule): Add print info.
3127
3128 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
3129
3130         * rtl.c (copy_rtx): Do not handle frame_related, jump or call
3131         flags specially.
3132
3133 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
3134
3135         PR bootstrap/50010
3136         * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
3137         NOTE_INSN_CFI notes, with the exception of
3138         NOTE_INSN_SWITCH_TEXT_SECTIONS.
3139
3140 2011-09-12  Bernd Schmidt  <bernds@codesourcery.com>
3141             Richard Sandiford  <rdsandiford@googlemail.com>
3142
3143         * config/mips/mips.c (mips_epilogue): New structure.
3144         (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
3145         restoring registers.
3146         (mips_epilogue_emit_cfa_restores): New function.
3147         (mips_epilogue_set_cfa): Likewise.
3148         (mips_restore_reg): Queue REG_CFA_RESTORE notes.  When restoring
3149         the current CFA register from the stack, redefine the CFA in terms
3150         of the stack pointer.
3151         (mips_expand_epilogue): Set up mips_epilogue.  Attach CFA information
3152         to the epilogue instructions.
3153
3154 2011-09-12  Richard Sandiford  <rdsandiford@googlemail.com>
3155
3156         * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
3157         argument.
3158         (mips16e_build_save_restore): Update accordingly.
3159
3160 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
3161
3162         PR rtl-optimization/50212
3163         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3164         Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
3165
3166         PR debug/50299
3167         * calls.c (load_register_parameters): Use use_reg_mode instead
3168         of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
3169         entry.
3170         (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
3171         for stack CALL_INSN_FUNCTION_USAGE uses.
3172         * expr.h (use_reg_mode): New prototype.
3173         (use_reg): Changed into inline around use_reg_mode.
3174         * expr.c (use_reg): Renamed to...
3175         (use_reg_mode): ... this.  Added MODE argument, set EXPR_LIST
3176         mode to that mode instead of VOIDmode.
3177         * var-tracking.c (prepare_call_arguments): Don't track parameters
3178         whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
3179         to it using lowpart_subreg.  Convert VALUE and REG/MEM to the
3180         EXPR_LIST mode.
3181
3182 2011-09-12  Georg-Johann Lay  <avr@gjlay.de>
3183
3184         PR target/43746
3185         * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
3186         (progmem_section): New Variable.
3187         (avr_asm_init_sections): Initialize it.
3188         (TARGET_ASM_SELECT_SECTION): Define to...
3189         (avr_asm_select_section): ... this new Function.
3190         (avr_replace_prefix): New Function.
3191         (avr_asm_function_rodata_section): Use it.
3192         (avr_insert_attributes): Don't add section attribute for PROGMEM.
3193         (avr_section_type_flags): Use avr_progmem_p instead of section
3194         name to detect if object is in PROGMEM.
3195         (avr_asm_named_section): Set section name prefix for objects in
3196         PROGMEM.
3197
3198 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
3199
3200         PR bootstrap/50352
3201         * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
3202         sprintf format string.
3203
3204 2011-09-12  Richard Guenther  <rguenther@suse.de>
3205
3206         PR tree-optimization/50343
3207         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
3208         that the reduction is over an SSA name before checking its definition.
3209
3210 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
3211
3212         * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
3213         throughout file.
3214
3215 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
3216
3217         * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
3218         throughout file.
3219         * config/mips/sb1.md: Likewise.
3220         * config/mips/predicates.md: Replace (match_test "!...")
3221         with (not (match_test "..."))
3222         * config/mips/constraints.md: Likewise.
3223
3224 2011-09-09  Andrew Stubbs  <ams@codesourcery.com>
3225
3226         * config/arm/arm-cores.def (generic-armv7-a): New architecture.
3227         * config/arm/arm-tables.opt: Regenerate.
3228         * config/arm/arm-tune.md: Regenerate.
3229         * config/arm/arm.c (arm_file_start): Output .arch directive when
3230         user passes -mcpu=generic-*.
3231         (arm_issue_rate): Add genericv7a support.
3232         * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
3233         (ASM_CPU_SPEC): New define.
3234         * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
3235         * config/arm/semi.h (ASM_SPEC): Likewise.
3236         * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
3237         and -mtune=generic-*.
3238
3239 2011-09-09  Richard Guenther  <rguenther@suse.de>
3240
3241         PR tree-optimization/50328
3242         * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
3243         constant or default-def operand.
3244
3245 2011-09-09  Richard Guenther  <rguenther@suse.de>
3246
3247         * tree-ssa-pre.c (create_expression_by_pieces): Fold the
3248         last statement.
3249
3250 2011-09-09  Richard Guenther  <rguenther@suse.de>
3251
3252         * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
3253         instead of a statement.
3254         * gimple-fold.c (fold_stmt_inplace): Likewise.
3255         * sese.c (graphite_copy_stmts_from_block): Adjust.
3256         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
3257         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
3258         fold_stmt.
3259         (forward_propagate_addr_into_variable_array_index): Likewise.
3260         (forward_propagate_addr_expr_1): adjust.
3261         (associate_plusminus): Likewise.
3262         (ssa_forward_propagate_and_combine): Likewise.
3263         * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
3264         (execute_cse_reciprocals): Likewise.
3265         * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
3266
3267 2011-09-09  Nick Clifton  <nickc@redhat.com>
3268
3269         * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
3270         Return a positive value to indicate that the bits at the
3271         bottom of the register should be cleared.
3272
3273 2011-09-09  Richard Guenther  <rguenther@suse.de>
3274
3275         * tree-ssa-operands.c (swap_tree_operands): Always adjust
3276         existing operand positions.
3277
3278 2011-09-09  Richard Guenther  <rguenther@suse.de>
3279
3280         PR middle-end/50333
3281         * tree-data-ref.c (split_constant_offset): Do not try to handle
3282         ternary ops.
3283
3284 2011-09-08  Andrew Stubbs  <ams@codesourcery.com>
3285
3286         PR tree-optimization/50318
3287         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
3288         typo in use of mult_rhs1 and mult_rhs2.
3289
3290 2011-09-08  Uros Bizjak  <ubizjak@gmail.com>
3291
3292         * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
3293         (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
3294
3295 2011-09-08  Bernd Schmidt  <bernds@codesourcery.com>
3296
3297         * config/arm/arm.md (push_multi): Emit predicates.
3298         (push_fp_multi): Likewise.
3299         * config/arm/arm.c (vfp_output_fstmd): Likewise.
3300
3301 2011-09-08  Dodji Seketeli  <dodji@redhat.com>
3302
3303         PR c++/33255 - Support -Wunused-local-typedefs warning
3304         * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
3305         (pushdecl): Use the new record_locally_defined_typedef.
3306         (store_parm_decls): Allocate cfun->language.
3307         (finish_function): Use the new maybe_warn_unused_local_typedefs,
3308         and free cfun->language.
3309         (c_push_function_context): Allocate cfun->language here only if needed.
3310         (c_pop_function_context): Likewise, mark cfun->language
3311         for collection only when it should be done.
3312         * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
3313         * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
3314         maybe_record_local_typedef_use.
3315         * doc/invoke.texi: Update documentation for
3316         -Wunused-local-typedefs.
3317
3318 2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>
3319
3320         * config/i386/i386-protos.h (ix86_lea_outperforms): New.
3321         (ix86_avoid_lea_for_add): Likewise.
3322         (ix86_avoid_lea_for_addr): Likewise.
3323         (ix86_split_lea_for_addr): Likewise.
3324
3325         * config/i386/i386.c (LEA_MAX_STALL): New.
3326         (increase_distance): Likewise.
3327         (insn_defines_reg): Likewise.
3328         (insn_uses_reg_mem): Likewise.
3329         (distance_non_agu_define_in_bb): Likewise.
3330         (distance_agu_use_in_bb): Likewise.
3331         (ix86_lea_outperforms): Likewise.
3332         (ix86_ok_to_clobber_flags): Likewise.
3333         (ix86_avoid_lea_for_add): Likewise.
3334         (ix86_avoid_lea_for_addr): Likewise.
3335         (ix86_split_lea_for_addr): Likewise.
3336         (distance_non_agu_define): Search in pred BBs added.
3337         (distance_agu_use): Search in succ BBs added.
3338         (IX86_LEA_PRIORITY): Value changed from 2 to 0.
3339         (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
3340         (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
3341
3342         * config/i386/i386.md: Split added to transform non destructive
3343         add into move and add.
3344         (lea_1): transformed into insn_and_split to avoid AGU stalls.
3345         (lea<mode>_2): Likewise.
3346
3347 2011-09-08  Martin Jambor  <mjambor@suse.cz>
3348
3349         PR tree-optimization/50287
3350         * ipa-split.c (split_function): Do not create SSA names for
3351         non-gimple-registers.
3352
3353 2011-09-08  Richard Guenther  <rguenther@suse.de>
3354
3355         PR tree-optimization/19831
3356         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
3357         skip builtins with vdefs that do not really store something.
3358         (propagate_necessity): For calls to free that we can associate
3359         with an allocation function do not mark the freed pointer
3360         definition necessary.
3361         (eliminate_unnecessary_stmts): Remove a call to free if
3362         the associated call to an allocation function is not necessary.
3363
3364 2011-09-08  Richard Guenther  <rguenther@suse.de>
3365
3366         PR tree-optimization/19831
3367         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
3368         allocation functions as necessary.
3369
3370 2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>
3371
3372         * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
3373         cut from ...
3374         (darwin_default_min_version): Amended to provide defaults
3375         for the cross directory case.
3376         (darwin_driver_init): call darwin_default_min_version unconditionally.
3377         * config/darwin.h (DEF_MIN_OSX_VERSION): New.
3378         * config/darwin9.h: Likewise.
3379         * config/darwin10.h: Likewise.
3380         * config/rs6000/darwin7.h: Likewise.
3381
3382 2011-09-08  Jakub Jelinek  <jakub@redhat.com>
3383
3384         PR target/50310
3385         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
3386         code early if TARGET_AVX.
3387         (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
3388
3389 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
3390
3391         * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
3392         duplicates.
3393
3394         PR target/50310
3395         * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
3396         "mode" attribute computation.
3397
3398 2011-09-07  Bernd Schmidt  <bernds@codesourcery.com>
3399
3400         * regrename.c (struct du_head): Make nregs signed.
3401         (closed_chains): Remove.
3402         (create_new_chain): Return the new chain.
3403         (chain_from_id): New static function.
3404         (dump_def_use_chain): Change argument to be an int, indicating
3405         the first ID to print.  All callers changed.
3406         (merge_overlapping_regs): Use chain_from_id.  Assert that
3407         chains don't conflict with themselves.
3408         (rename_chains): Take no argument.  Iterate over id_to_chain
3409         rather to find chains to rename.  Clear tick before the main loop.
3410         (struct incoming_reg_info): New struct.
3411         (struct bb_rename_info): New struct.
3412         (init_rename_info, set_incoming_from_chain, merge_chains): New
3413         static functions.
3414         (regrename_analyze): New static function, broken out of
3415         regrename_optimize.  Record and make use of open chain information
3416         at basic block boundaries, and merge chains where possible.
3417         (scan_rtx_reg): Make this_nregs signed.  Don't update
3418         closed_chains.
3419         (build_def_use): Return a bool to indicate success.  All callers
3420         changed.  Don't initialize global data here.
3421         (regrename_optimize): Move most code out of here into
3422         regrename_analyze.
3423         * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
3424         range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
3425         static inline functions.
3426         * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
3427
3428         * bb-reorder.c (insert_section_boundary_note): Don't check
3429         optimize_function_for_speed_p.
3430         (gate_handle_partition_blocks): Do it here instead.
3431         (gate_handle_reorder_blocks): Move preliminary checks here ...
3432         (rest_of_handle_reorder_blocks): ... from here.
3433
3434 2011-09-07  Martin Jambor  <mjambor@suse.cz>
3435
3436         PR middle-end/50301
3437         * ipa-cp.c (find_more_values_for_callers_subset): Check jump
3438         function index bounds.
3439         (perhaps_add_new_callers): Likewise.
3440
3441 2011-09-07  Martin Jambor  <mjambor@suse.cz>
3442
3443         PR tree-optimization/49911
3444         * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
3445         enumerations to the corresponding plain integer type.
3446
3447 2011-09-07  Richard Guenther  <rguenther@suse.de>
3448
3449         PR tree-optimization/50319
3450         * tree-if-conv.c (set_bb_predicate): Assert we only set
3451         canonical predicates.
3452         (add_to_predicate_list): Simplify.  Allow TRUTH_NOT_EXPR
3453         around canonical predicates.
3454         (predicate_bbs): Do not re-gimplify already canonical
3455         predicates.  Properly unshare them though.
3456         (find_phi_replacement_condition): Simplify.
3457
3458 2011-09-07  Richard Sandiford  <richard.sandiford@linaro.org>
3459
3460         PR target/49030
3461         * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
3462         * config/arm/arm.c (maybe_get_arm_condition_code): New function,
3463         reusing the old code from get_arm_condition_code.  Return ARM_NV
3464         for invalid comparison codes.
3465         (get_arm_condition_code): Redefine in terms of
3466         maybe_get_arm_condition_code.
3467         * config/arm/predicates.md (arm_comparison_operator): Use
3468         maybe_get_arm_condition_code.
3469
3470 2011-09-07  Richard Guenther  <rguenther@suse.de>
3471
3472         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
3473         Canonicalize negated predicates by swapping edges.
3474         (forward_propagate_into_cond): Likewise.
3475
3476 2011-09-07  Richard Guenther  <rguenther@suse.de>
3477
3478         PR tree-optimization/50213
3479         * tree-flow.h (simple_iv_increment_p): Declare.
3480         * tree-ssa-dom.c (simple_iv_increment_p): Export.  Also handle
3481         POINTER_PLUS_EXPR.
3482         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
3483         not propagate simple IV counter increments.
3484
3485 2011-09-07  Eric Botcazou  <ebotcazou@adacore.com>
3486             Iain Sandoe  <iains@gcc.gnu.org>
3487
3488         * config/rs6000/rs6000.c (compute_save_world_info): Test
3489         cfun->has_nonlocal_label to determine if the out-of-line save
3490         world call may be used.
3491
3492 2011-09-07  Nick Clifton  <nickc@redhat.com>
3493
3494         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
3495         label on the parallel part of the insn.
3496
3497 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
3498
3499         PR debug/50191
3500         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
3501         avoid_constant_pool_reference first instead of last.
3502
3503 2011-09-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3504
3505         * doc/configfiles.texi (Configuration Files): Update documentation
3506         about tm_p.h and remove FIXME comment.
3507
3508 2011-09-06  Uros Bizjak  <ubizjak@gmail.com>
3509
3510         * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
3511         (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
3512
3513 2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>
3514
3515         * config/darwin10.h Remove duplicate LIB_SPEC.
3516
3517 2011-09-06  Enkovich Ilya  <ilya.enkovich@intel.com>
3518
3519         PR middle-end/44382
3520         * target.def (reassociation_width): New hook.
3521
3522         * doc/tm.texi.in (reassociation_width): Likewise.
3523
3524         * doc/tm.texi (reassociation_width): Likewise.
3525
3526         * doc/invoke.texi (tree-reassoc-width): New param documented.
3527
3528         * hooks.h (hook_int_uint_mode_1): New default hook.
3529
3530         * hooks.c (hook_int_uint_mode_1): Likewise.
3531
3532         * config/i386/i386.h (ix86_tune_indices): Add
3533         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
3534
3535         (TARGET_REASSOC_INT_TO_PARALLEL): New.
3536         (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
3537
3538         * config/i386/i386.c (initial_ix86_tune_features): Add
3539         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
3540
3541         (ix86_reassociation_width): New function.
3542
3543         * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
3544
3545         * tree-ssa-reassoc.c (get_required_cycles): New function.
3546         (get_reassociation_width): Likewise.
3547         (swap_ops_for_binary_stmt): Likewise.
3548         (rewrite_expr_tree_parallel): Likewise.
3549
3550         (rewrite_expr_tree): Refactored.  Part of code moved into
3551         swap_ops_for_binary_stmt.
3552
3553         (reassociate_bb): Now checks reassociation width to be used and
3554         call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
3555
3556 2011-09-06  Richard Guenther  <rguenther@suse.de>
3557
3558         PR tree-optimization/47025
3559         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
3560         uses nothing.
3561         (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
3562         BUILT_IN_FREE.
3563         (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
3564         definitely points to.
3565         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3566         BUILT_IN_VA_START doesn't let its va_list argument escape.
3567         * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
3568         not make any previous stores necessary.
3569
3570 2011-09-06  Martin Jambor  <mjambor@suse.cz>
3571
3572         * ipa-inline.h (struct inline_summary): Move versionable flag...
3573         * cgraph.h (struct cgraph_local_info): ...here
3574         * ipa-cp.c (determine_versionability): Use the new versionable flag.
3575         (determine_versionability): Likewise.
3576         (ipcp_versionable_function_p): Likewise.
3577         (ipcp_generate_summary): Likewise.
3578         * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
3579         versionable flag.
3580         (compute_inline_parameters): Do not clear the versionable flag.
3581         (inline_read_section): Do not stream the versionable flag.
3582         (inline_write_summary): Likewise.
3583         * lto-cgraph.c (lto_output_node): Stream the versionable flag.
3584         (input_overwrite_node): Likewise.
3585
3586 2011-09-06  Richard Guenther  <rguenther@suse.de>
3587
3588         PR tree-optimization/48149
3589         * tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
3590         (vn_valueize): Move earlier.
3591         (valueize_expr): Use vn_valueize.
3592         (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
3593         operands.
3594         (simplify_unary_expression): Simplify.
3595
3596 2011-09-06  Richard Guenther  <rguenther@suse.de>
3597
3598         PR tree-optimization/48317
3599         * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
3600         trailing array.
3601         (sizeof_vn_nary_op): New inline function.
3602         (vn_nary_op_lookup_pieces): Adjust.
3603         (vn_nary_op_insert_pieces): Likewise.
3604         * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
3605         (init_vn_nary_op_from_pieces): Adjust signature.  Deal with
3606         any number of operands.
3607         (vn_nary_length_from_stmt): New function.
3608         (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
3609         (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
3610         sized temporary.
3611         (vn_nary_op_lookup): Likewise.
3612         (vn_nary_op_lookup_stmt): Likewise.
3613         (vn_nary_op_insert_into): Likewise.
3614         (vn_nary_op_insert_stmt): Likewise.
3615         (visit_use): Handle CONSTRUCTOR as nary.
3616         * tree-ssa-pre.c (phi_translate_1): Adjust.
3617         (create_expression_by_pieces): Likewise.
3618         (compute_avail): Likewise.
3619
3620 2011-09-06  Ira Rosen  <ira.rosen@linaro.org>
3621
3622          * config/arm/arm.c (arm_preferred_simd_mode): Check
3623         TARGET_NEON_VECTORIZE_DOUBLE instead of
3624         TARGET_NEON_VECTORIZE_QUAD.
3625         (arm_autovectorize_vector_sizes): Likewise.
3626         * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
3627         mask of mvectorize-with-neon-double.  Add RejectNegative.
3628         (mvectorize-with-neon-double): New.
3629
3630 2011-09-06  Richard Guenther  <rguenther@suse.de>
3631
3632         * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
3633
3634 2011-09-06  Tom de Vries  <tom@codesourcery.com>
3635
3636         * recog.c (asm_labels_ok): New function.
3637         (check_asm_operands): Use asm_labels_ok.
3638
3639 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
3640
3641         PR target/49606
3642         * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
3643         (PMODE_INSN): New macro.
3644         * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
3645         (mips_got_load, mips_expand_synci_loop): Likewise.
3646         (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
3647         cprestore patterns.
3648         (mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
3649         copygp_mips16 patterns.
3650         (mips_expand_prologue): Handle SImode and DImode potential_cprestore
3651         and use_cprestore patterns.
3652         (mips_override_options): Check for incompatible -mabi and -mlong
3653         combinations.
3654         * config/mips/mips.md (unspec_got<mode>): Rename to...
3655         (unspec_got_<mode>): ...this.
3656         (copygp_mips16): Use the Pmode iterator.
3657         (potential_cprestore, cprestore, use_cprestore): Likewise.
3658         (clear_cache, indirect_jump): Use PMODE_INSN.
3659         (indirect_jump<mode>): Rename to...
3660         (indirect_jump_<mode>): ...this.
3661         (tablejump): Use PMODE_INSN.
3662         (tablejump<mode>): Rename to...
3663         (tablejump_<mode>): ...this.
3664         (exception_receiver): Handle restore_gp_si and restore_gp_di.
3665         (restore_gp): Use the Pmode iterator.
3666         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
3667         PMODE_INSN.
3668
3669 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
3670
3671         * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
3672         Fix the type of the BIT_AND_EXPR.
3673
3674 2011-09-05  David S. Miller  <davem@davemloft.net>
3675
3676         * config.host: Add driver-sparc.o and sparc/x-sparc on
3677         native sparc*-*-linux* builds.
3678         * config/sparc/driver-sparc.c: Correct Linux strings.
3679         * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
3680         * config/sparc/linux64.h: Likewise.
3681         * doc/invoke.texi: Document that Linux also supports
3682         -mcpu=native and -mtune=native on sparc.
3683
3684         * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
3685         PROCESSOR_NIAGARA4): New.
3686         * config/sparc/sparc.opt: Handle new processor types.
3687         * config/sparc/sparc.md: Add to "cpu" attribute.
3688         * config/sparc/sparc.h (TARGET_CPU_niagara3,
3689         TARGET_CPU_niagara4): New, treat as niagara2.
3690         * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
3691         * config/sparc/sol2.h: Likewise.
3692         * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
3693         * config/sparc/sparc.c (sparc_option_override): Add
3694         niagara3 and niagara4 handling.
3695         (sparc32_initialize_trampoline): Likewise.
3696         (sparc64_initialize_trampoline): Likewise.
3697         (sparc_use_sched_lookahead): Likewise.
3698         (sparc_issue_rate): Likewise.
3699         (sparc_register_move_cost): Likewise.
3700         * config/sparc/driver-sparc.c (cpu_names): Use niagara3
3701         and niagara4 as appropriate.
3702         * doc/invoke.texi: Document new processor types.
3703         * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
3704         and --with-tune options.
3705
3706         * config/sparc/sol2-64.h: Move ...
3707         * config/sparc/default-64.h: ... to here.  Update comment.
3708         * config.gcc: Update Solaris sparc to use default-64.h, also
3709         prefix this header into the list on sparc64-*-linux.
3710         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
3711         TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
3712         to MASK_HARD_QUAD.
3713
3714 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
3715
3716         PR target/50289
3717         * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
3718         that contain global register variable.
3719
3720 2011-09-05  Richard Guenther  <rguenther@suse.de>
3721
3722         * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
3723
3724 2011-09-05  Richard Guenther  <rguenther@suse.de>
3725
3726         * stor-layout.c (layout_type): Use size_binop for array size
3727         calculations.
3728
3729 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
3730
3731         * config/avr/avr.h (progmem_section): Remove Declaration.
3732         * config/avr/avr.c (progmem_section): Make static and rename to
3733         progmem_swtable_section.
3734         (avr_output_addr_vec_elt): No need to switch sections.
3735         (avr_asm_init_sections): Use output_section_asm_op as section
3736         callback for progmem_swtable_section.
3737         (avr_output_progmem_section_asm_op): Remove Function.
3738         (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
3739         (avr_asm_function_rodata_section): New static Function.
3740         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
3741         alignment 2**1 for jump tables.
3742
3743 2011-09-04  Jan Hubicka  <jh@suse.cz>
3744
3745         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
3746         parameter is SSA name.
3747
3748 2011-09-04  Richard Guenther  <rguenther@suse.de>
3749
3750         Revert
3751         2011-08-31  Richard Guenther  <rguenther@suse.de>
3752
3753         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
3754         special-casing.
3755
3756 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
3757
3758         PR debug/49901
3759         * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
3760
3761 2011-09-04  Jakub Jelinek  <jakub@redhat.com>
3762             Ira Rosen  <ira.rosen@linaro.org>
3763
3764         PR tree-optimization/50208
3765         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
3766         argument.  Check that def_stmt is inside the loop.
3767         (vect_recog_widen_mult_pattern): Update calls to
3768         vect_handle_widen_mult_by_cons.
3769         (vect_operation_fits_smaller_type): Check that def_stmt is
3770         inside the loop.
3771
3772 2011-09-04  Ira Rosen  <ira.rosen@linaro.org>
3773
3774         * tree-vectorizer.c (vect_print_dump_info): Print line
3775         number when dumping to a file.
3776         (vectorize_loops): Add new messages to dump file.
3777
3778 2011-09-03  Martin Jambor  <mjambor@suse.cz>
3779
3780         * ipa-prop.h (ipa_jump_func_t): New typedef.
3781         (struct ipa_edge_args): Removed field argument_count, field
3782         jump_functions turned into a vector.
3783         (ipa_set_cs_argument_count): Removed.
3784         (ipa_get_cs_argument_count): Updated to work on vectors.
3785         (ipa_get_ith_jump_func): Likewise.
3786         * ipa-prop.c (ipa_count_arguments): Removed.
3787         (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
3788         jump functions.  Update caller.
3789         (compute_pass_through_member_ptrs): Likewise.
3790         (compute_cst_member_ptr_arguments): Likewise.
3791         (ipa_compute_jump_functions_for_edge): Get number of arguments from
3792         the statement, allocate vector.
3793         (ipa_compute_jump_functions): Do not call ipa_count_arguments.
3794         (duplicate_ipa_jump_func_array): Removed.
3795         (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
3796         (ipa_read_node_info): Allocate vector.
3797
3798 2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3799
3800         PR middle-end/50232
3801         * config/pa/pa.md (return): Define "return" insn pattern.
3802         (epilogue): Use it when no epilogue is needed.
3803         * config/pa/pa.c (pa_can_use_return_insn): New function.
3804         * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
3805
3806 2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>
3807
3808         * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
3809         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
3810         Force at least BITS_PER_UNIT alignment on the new variable.
3811
3812 2011-09-02  Gary Funck <gary@intrepid.com>
3813
3814         * opts.c (print_specific_help): Fix off-by-one compare in
3815         assertion check.
3816         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
3817         CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
3818         Increase by +5 to allow for more languages.
3819         * optc-gen.awk: Generate #if that ensures that the number of
3820         languages is within the implementation-defined limit.
3821
3822 2011-09-02  Michael Matz  <matz@suse.de>
3823
3824         PR middle-end/50260
3825         * ipa-split.c (split_function): Call add_referenced_var.
3826
3827         * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
3828         (cond_if_else_store_replacement_1): Ditto.
3829         * tree-ssa-pre.c (get_representative_for): Ditto.
3830         (create_expression_by_pieces): Ditto.
3831         (insert_into_preds_of_block): Ditto.
3832         * tree-sra.c (create_access_replacement): Ditto.
3833         (get_replaced_param_substitute): Ditto.
3834
3835 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
3836
3837         * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
3838         automata_options.
3839         (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
3840         (l1w, s1w, l2w, s2w): Define in the main automaton.
3841         (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
3842         units.
3843         * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
3844         (c6x_unit_names): Add the new units.
3845         (c6x_unit_codes): New static array.
3846         (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
3847         UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
3848         UNIT_QID_SIDE_OFFSET): New macros.
3849         (RESERVATION_S2): Adjust value.
3850         (c6x_option_override): Compute c6x_unit_codes.
3851         (assign_reservations): Take the unit_mask of the last instruction
3852         into account.  Detect floating point reservations by looking for
3853         the new units.  Don't assign reservations if the field is already
3854         nonzero.
3855         (struct c6x_sched_context): Add member prev_cycle_state_ctx.
3856         (init_sched_state): Initialize it.
3857         (c6x_clear_sched_context): Free it.
3858         (insn_set_clock): Clear reservation.
3859         (prev_cycle_state): New static variable.
3860         (c6x_init_sched_context): Save it.
3861         (c6x_sched_init): Allocate space for it and clear it.
3862         (c6x_sched_dfa_pre_cycle_insn): New static function.
3863         (c6x_dfa_new_cycle): Save state at the start of a new cycle.
3864         (c6x_variable_issue): Only record units in the unit_mask that
3865         were not set at the start of the cycle.
3866         (c6x_variable_issue): Compute and store the unit_mask from the
3867         current state.
3868         (reorg_split_calls): Ensure the new information remains correct.
3869         (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3870         TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
3871         * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
3872         * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
3873         Add special reservations.
3874         * config/c6x/c6x-sched.md: Regenerate.
3875
3876 2011-09-02  Martin Jambor  <mjambor@suse.cz>
3877
3878         * ipa-prop.h (ipa_node_params): Removed fields
3879         called_with_var_arguments and node_versionable.
3880         (ipa_set_called_with_variable_arg): Removed.
3881         (ipa_is_called_with_var_arguments): Likewise.
3882         * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
3883         (determine_versionability): Do not check for type attributes and va
3884         builtins.  Record versionability into inline summary.
3885         (initialize_node_lattices): Do not check
3886         ipa_is_called_with_var_arguments.
3887         (propagate_constants_accross_call): Likewise, ignore arguments we do
3888         not have PARM_DECLs for, set variable flag for parameters that were
3889         not passed a value.
3890         (create_specialized_node): Dump info that we cannot change signature.
3891         * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
3892         number of arguments.
3893         (ipa_make_edge_direct_to_target): Likewise.
3894         (ipa_update_after_lto_read): Likewise.
3895         (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
3896         * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
3897         they were remapped.
3898
3899 2011-09-02  Richard Guenther  <rguenther@suse.de>
3900
3901         PR tree-optimization/27460
3902         PR middle-end/29269
3903         * doc/md.texi (vcond): Document.
3904         * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
3905         optab with two modes.
3906         * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
3907         (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
3908         (vcond_optab): Adjust.
3909         (vcondu_optab): Likewise.
3910         (expand_vec_cond_expr_p): Adjust prototype.
3911         * optabs.c (get_vcond_icode): Adjust.
3912         (expand_vec_cond_expr_p): Likewise.
3913         (expand_vec_cond_expr): Likewise.
3914         * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
3915         vector type.
3916         (vectorizable_condition): Allow differing types for comparison
3917         and result.
3918         * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
3919         for the comparison.
3920         * config/i386/sse.md (vcond<mode>): Split to
3921         vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
3922         vcond<V_128:mode><VI124_128:mode> and
3923         vcondu<V_128:mode><VI124_128:mode>.
3924         (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
3925         (vconduv2di): Likewise.
3926         * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
3927         (vcondu<mode>): Likewise.
3928         * config/ia64/vect.md (vcond<mode>): Likewise.
3929         (vcondu<mode>): Likewise.
3930         (vcondv2sf): Likewise.
3931         * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
3932         * config/rs6000/paired.md (vcondv2sf): Likewise.
3933         * config/rs6000/vector.md (vcond<mode>): Likewise.
3934         (vcondu<mode>): Likewise.
3935         * config/spu/spu.md (vcond<mode>): Likewise.
3936         (vcondu<mode>): Likewise.
3937
3938 2011-09-02  Richard Guenther  <rguenther@suse.de>
3939
3940         * pretty-print.h (pp_unsigned_wide_integer): New.
3941         * tree-pretty-print.c (dump_generic_node): Print unsigned
3942         host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
3943
3944 2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>
3945
3946         PR target/49987
3947         * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
3948         valid CONST_VECTOR operands.
3949         (rs6000_expand_vector_init): Likewise.
3950
3951 2011-09-02  Martin Jambor  <mjambor@suse.cz>
3952
3953         * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
3954         * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
3955         BINFO_VTABLE.  Parameter delta removed, all callers updated.
3956         * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
3957         BINFO_VTABLE.
3958         * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
3959         all calls.
3960         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
3961         handling of thunk_delta.
3962         * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
3963         (devirtualization_time_bonus): Do not handle thunk deltas.
3964         (ipcp_discover_new_direct_edges): Likewise.
3965         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
3966         (try_make_edge_direct_simple_call): Likewise.
3967         (try_make_edge_direct_virtual_call): Likewise.
3968         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
3969         parameter set as unused.
3970         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
3971         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
3972         parameter set as unused.
3973         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
3974         (input_edge_opt_summary): Likewise.
3975         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
3976         BINFO_VIRTUALS at all.
3977         * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
3978
3979 2011-09-02  Richard Guenther  <rguenther@suse.de>
3980
3981         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
3982         (ccp_fold_stmt): Continue replacing args when folding alloca fails.
3983
3984 2011-08-31  Richard Guenther  <rguenther@suse.de>
3985
3986         * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
3987         handling here, from ...
3988         (expand_expr_real_1): ... here.
3989         * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
3990         and VEC_COND_EXPR.
3991         * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
3992         a GIMPLE_TERNARY_RHS.
3993         * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
3994         and VEC_COND_EXPR here ...
3995         (verify_gimple_assign_single): ... not here.
3996         * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
3997         * tree-object-size.c (cond_expr_object_size): Adjust.
3998         (collect_object_sizes_for): Likewise.
3999         * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
4000         * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
4001         (ssa_forward_propagate_and_combine): Adjust.
4002         * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
4003         as ternary.
4004         * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
4005         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
4006         * tree-vect-stmt.c (vectorizable_condition): Likewise.
4007         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
4008         (extract_range_from_assignment): Likewise.
4009
4010 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
4011
4012         * config/i386/i386.md: Use (match_test ...) for attribute tests.
4013         * config/i386/mmx.md: Likewise.
4014         * config/i386/sse.md: Likewise.
4015         * config/i386/predicates.md (call_insn_operand): Use
4016         (not (match_test "...")) instead of (match_test "!...")
4017         * config/i386/constraints.md (w): Likewise.
4018
4019 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
4020
4021         * doc/md.texi: Describe the use of match_tests in attribute tests.
4022         * rtl.def (MATCH_TEST): Update commentary.
4023         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
4024         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
4025
4026 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
4027
4028         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
4029         (attr_string): Use copy_md_ptr_loc.
4030
4031 2011-08-31  Martin Jambor  <mjambor@suse.cz>
4032
4033         PR middle-end/49886
4034         * ipa-inline-analysis.c (compute_inline_parameters): Set
4035         can_change_signature of noes with typde attributes.
4036         * ipa-split.c (split_function): Do not skip any arguments if
4037         can_change_signature is set.
4038
4039 2011-08-31  Martin Jambor  <mjambor@suse.cz>
4040
4041         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
4042         check removed.
4043
4044 2011-08-31  Richard Guenther  <rguenther@suse.de>
4045
4046         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
4047         special-casing.
4048
4049 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
4050
4051         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
4052
4053 2011-08-31  Tom de Vries  <tom@codesourcery.com>
4054
4055         PR middle-end/43513
4056         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
4057         * tree-ssa-ccp.c (params.h): Include.
4058         (fold_builtin_alloca_for_var): New function.
4059         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
4060
4061 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
4062
4063         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
4064         Handle FMA option.
4065
4066 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
4067
4068         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
4069         b3 and b4 unsigned.
4070
4071 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
4072
4073         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
4074         when code is SET.
4075
4076 2011-08-30  Richard Guenther  <rguenther@suse.de>
4077
4078         PR middle-end/48571
4079         * gimple.h (maybe_fold_offset_to_address): Remove.
4080         (maybe_fold_offset_to_reference): Likewise.
4081         (maybe_fold_stmt_addition): Likewise.
4082         (may_propagate_address_into_dereference): Likewise.
4083         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
4084         array references.
4085         * gimple-fold.c (canonicalize_constructor_val): Likewise.
4086         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
4087         addresses instead.
4088         (may_propagate_address_into_dereference): Remove.
4089         (maybe_fold_offset_to_array_ref): Likewise.
4090         (maybe_fold_offset_to_reference): Likewise.
4091         (maybe_fold_offset_to_address): Likewise.
4092         (maybe_fold_stmt_addition): Likewise.
4093         (fold_gimple_assign): Do not reconstruct array references but
4094         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
4095         MEM_REF addresses.
4096         (gimple_fold_stmt_to_constant_1): Likewise.
4097         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
4098         * gimplify.c (gimplify_conversion): Likewise.
4099         (gimplify_expr): Likewise.
4100
4101 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
4102
4103         * config/i386/fmaintrin.h: New.
4104         * config.gcc: Add fmaintrin.h.
4105         * config/i386/i386.c
4106         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
4107         <IX86_BUILTIN_VFMADDSD3>: Likewise.
4108         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
4109         (*fmai_fmadd_<mode>): Likewise.
4110         (*fmai_fmsub_<mode>): Likewise.
4111         (*fmai_fnmadd_<mode>): Likewise.
4112         (*fmai_fnmsub_<mode>): Likewise.
4113         * config/i386/immintrin.h: Add fmaintrin.h.
4114
4115 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
4116
4117         * genautomata.c (NO_COMB_OPTION): New macro.
4118         (no_comb_flag): New static variable.
4119         (gen_automata_option): Handle NO_COMB_OPTION.
4120         (comb_vect_p): False if no_comb_flag.
4121         (add_vect): Move computation of min/max values.  Return early if
4122         no_comb_flag.
4123         * doc/md.texi (automata_option): Document no-comb-vect.
4124
4125         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
4126         "__x86.get_pc_thunk".
4127
4128         * bb-reorder.c (insert_section_boundary_note): Only do it if
4129         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
4130
4131 2011-08-30  Christian Bruel  <christian.bruel@st.com>
4132
4133         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
4134         flag_profile_use.
4135
4136 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
4137
4138         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
4139         to off.  Document switch.
4140         * doc/invoke.texi (-msave-toc-indirect): Ditto.
4141
4142 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
4143
4144         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
4145         conditionals and comments inside macro arguments.
4146
4147 2011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
4148             Richard Guenther  <rguenther@suse.de>
4149
4150         * tree.h (constant_boolean_node): Adjust prototype.
4151         * fold-const.c (fold_convert_loc): Move aggregate conversion
4152         leeway down.
4153         (constant_boolean_node): Make value parameter boolean, add
4154         vector type handling.
4155         (fold_unary_loc): Use constant_boolean_node.
4156         (fold_binary_loc): Preserve types properly when folding
4157         COMPLEX_EXPR <__real x, __imag x>.
4158         * gimplify.c (gimplify_expr): Handle vector comparison.
4159         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
4160         comparison.
4161         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
4162         comparisons.
4163
4164 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
4165
4166         PR middle-end/48722
4167         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
4168         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
4169         (verify_rtl_sharing): Likewise and verify_rtx_sharing
4170         in there too.
4171         (unshare_all_rtl_in_chain): For CALL_INSNs
4172         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
4173
4174 2011-08-29  Richard Guenther  <rguenther@suse.de>
4175
4176         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
4177         on the built ADDR_EXPR.
4178
4179 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
4180
4181         PR debug/50215
4182         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
4183         before adding ENTRY_VALUE to val->locs.
4184
4185 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
4186
4187         PR bootstrap/50218
4188         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
4189         comp.
4190
4191 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
4192
4193         * doc/rtl.texi (simple_return): Document.
4194         (parallel, PATTERN): Here too.
4195         * doc/md.texi (return): Mention it's allowed to expand to simple_return
4196         in some cases.
4197         (simple_return): Document standard pattern.
4198         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
4199         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
4200         * reorg.c (function_return_label, function_simple_return_label):
4201         New static variables, replacing...
4202         (end_of_function_label): ... this.
4203         (simplejump_or_return_p): New static function.
4204         (optimize_skip, steal_delay_list_from_fallthrough,
4205         fill_slots_from_thread): Use it.
4206         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
4207         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
4208         (find_end_label): Take a new arg which is one of the two return
4209         rtxs.  Depending on which, set either function_return_label or
4210         function_simple_return_label.  All callers changed.
4211         (make_return_insns): Make both kinds.
4212         (dbr_schedule): Adjust for two kinds of end labels.
4213         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
4214         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
4215         (gen_expand, gen_split): Use ANY_RETURN_P.
4216         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
4217         * rtl.def (SIMPLE_RETURN): New code.
4218         * ifcvt.c (find_if_case_1): Be more careful about
4219         redirecting jumps to the EXIT_BLOCK.
4220         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
4221         returnjump_p_1): Handle SIMPLE_RETURNs.
4222         * print-rtl.c (print_rtx): Likewise.
4223         * rtl.c (copy_rtx): Likewise.
4224         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
4225         * combine.c (simplify_set): Likewise.
4226         * resource.c (find_dead_or_set_registers, mark_set_resources):
4227         Likewise.
4228         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
4229         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
4230         (init_emit_regs): Initialize simple_return_rtx.
4231         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
4232         force_nonfallthru_and_redirect.
4233         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
4234         (GR_SIMPLE_RETURN): New enum value.
4235         (simple_return_rtx): New macro.
4236         * basic-block.h (force_nonfallthru_and_redirect): Adjust
4237         declaration.
4238         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
4239         argument.  All callers changed.  Be careful about what kinds of
4240         returnjumps to generate.
4241         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
4242         ix86_pad_short_function): Likewise.
4243         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
4244         of return.
4245         * config/mips/mips.md (any_return): New code_iterator.
4246         (optab): Add cases for return and simple_return.
4247         (return): Expand to a simple_return.
4248         (simple_return): New pattern.
4249         (*<optab>, *<optab>_internal for any_return): New patterns.
4250         (return_internal): Remove.
4251         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
4252         a simple_return_internal.
4253
4254 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
4255
4256         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
4257         (vec_extract_lo_<mode>): Prevent both operands in memory.
4258         (vec_extract_lo_v16hi): Ditto.
4259         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
4260
4261 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
4262
4263         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
4264         (*sse2_mulv4si3): Ditto.
4265         (mulv2di3): Ditto.
4266         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
4267         notes to REG_EQUAL.
4268
4269 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
4270
4271         PR target/50202
4272         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
4273         when all outputs are unused.
4274         (sse4_2_pcmpistr): Ditto.
4275
4276 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
4277
4278         * config/i386/i386.md (round<mode>2): New expander.
4279         * config/i386/i386.c (enum ix86_builtins): Add
4280         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
4281         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
4282         descriptions.
4283         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
4284         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
4285
4286 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
4287
4288         PR middle-end/50083
4289         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
4290         only when TARGET_C99_FUNCTIONS.
4291         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
4292         <BUILT_IN_RINT{,F,L}>: Ditto.
4293
4294 2011-08-26  Michael Matz  <matz@suse.de>
4295             Jakub Jelinek  <jakub@redhat.com>
4296
4297         PR lto/50165
4298         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
4299         don't call strlen twice, use memcpy.
4300
4301 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
4302
4303         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
4304         * config/i386/bmiintrin.h: Likewise.
4305         * config/i386/lzcntintrin.h: Likewise.
4306
4307         * config/i386/immintrin.h: Include <lzcntintrin.h>,
4308         <bmiintrin.h> and <bmi2intrin.h>.
4309
4310 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4311
4312         PR target/50166
4313         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
4314         * configure: Regenerate.
4315
4316 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
4317
4318         PR c/50179
4319         * c-typeck.c (c_process_expr_stmt): Skip over nops and
4320         call mark_exp_read even if exprv is ADDR_EXPR.
4321
4322 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
4323
4324         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
4325         to df_set_dead_notes_for_mw.
4326
4327 2011-08-26  Richard Guenther  <rguenther@suse.de>
4328
4329         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
4330
4331 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
4332             Tom de Vries  <tom@codesourcery.com>
4333
4334         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
4335         (struct ivopts_data): Add loop_single_exit_p field.
4336         (niter_for_exit): Change parameter desc_p into return value.  Return
4337         desc if desc->may_be_zero.  Free desc if unused.
4338         (niter_for_single_dom_exit): Change return type.
4339         (find_induction_variables): Handle changed return type of
4340         niter_for_single_dom_exit.  Dump may_be_zero.
4341         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
4342         (set_use_iv_cost): Add and handle comp parameter.
4343         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
4344         comp argument to set_use_iv_cost.
4345         (strip_wrap_conserving_type_conversions, expr_equal_p)
4346         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
4347         (may_eliminate_iv): Add comp parameter.  Handle new return type of
4348         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
4349         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
4350         and may_eliminate_iv.
4351         (rewrite_use_compare): Move call to iv_elimination_compare to ...
4352         (may_eliminate_iv): Here.
4353         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
4354
4355 2011-08-26  Tom de Vries  <tom@codesourcery.com>
4356
4357         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
4358         accessing TREE_TYPE.
4359
4360 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
4361
4362         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
4363         (*ior_scc_scc_cmp): Likewise
4364         (*and_scc_scc): Likewise.
4365         (*and_scc_scc_cmp): Likewise.
4366         (*and_scc_scc_nodom): Likewise.
4367         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
4368
4369 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
4370
4371         * rtlanal.c (nonzero_bits1): Handle CLRSB.
4372
4373 2011-08-26  Richard Guenther  <rguenther@suse.de>
4374
4375         * expr.c (string_constant): Handle &MEM_REF.
4376
4377 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
4378
4379         * config/arm/arm.c (struct four_ints): New type.
4380         (count_insns_for_constant): Delete function.
4381         (find_best_start): Delete function.
4382         (optimal_immediate_sequence): New function.
4383         (optimal_immediate_sequence_1): New function.
4384         (arm_gen_constant): Move constant splitting code to
4385         optimal_immediate_sequence.
4386         Rewrite constant negation/invertion code.
4387
4388 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
4389
4390         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
4391         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
4392         Remove prototype. Remove static function type.
4393         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
4394         Add arch attribute.
4395         * config/arm/constraints.md (Pj, PJ): New constraints.
4396
4397 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4398
4399         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
4400         ("cortex_a9_multiply_long"): New and use above.  Handle all
4401         long multiply cases.
4402         ("cortex_a9_multiply"): Handle smmul and smmulr.
4403         ("cortex_a9_mac"): Handle smmla.
4404
4405 2011-08-25  Richard Henderson  <rth@redhat.com>
4406
4407         PR 50132
4408         PR 49864
4409         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
4410         non-constant stack adjutment.
4411         * expr.c (find_args_size_adjust): Break out from ...
4412         (fixup_args_size_notes): ... here.
4413         * rtl.h (find_args_size_adjust): Declare.
4414
4415 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
4416
4417         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
4418         sse4 and sse4_noavx.
4419         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
4420         (*pushdf_rex64): Change Y2 register constraint to x.
4421         (*movdf_internal_rex64): Ditto.
4422         (*zero_extendsidi2_rex64): Ditto.
4423         (*movdi_internal): Change Y2 register constraint to x
4424         and update "isa" attribute.
4425         (*pushdf): Ditto.
4426         (*movdf internal): Ditto.
4427         (zero_extendsidi2_1): Ditto.
4428         (*truncdfdf_mixed): Ditto.
4429         (*truncxfdf2_mixed): Ditto.
4430         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
4431         register constraint to x.
4432         (*movv2sf_internal_rex64): Ditto.
4433         (*mov<mode>_internal): Change Y2 register constraint to x
4434         and add "isa" attribute.
4435         (*movv2sf_internal): Ditto.
4436         (*vec_extractv2si_1): Ditto.
4437         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
4438         constraints to x and update "isa" attribute.
4439         (*vec_interleave_highv2df): Change Y3 registerconstraint
4440         to x and update "isa" attribute.
4441         (*vec_interleave_lowv2df): Ditto.
4442         (*vec_concatv2df): Change Y2 register constraint to x and
4443         update "isa" attribute.
4444         (sse2_loadld): Ditto.
4445         (*vec_extractv2di_1): Ditto.
4446         (*vec_dupv4si): Ditto.
4447         (*vec_dupv2di): Ditto.
4448         (*vec_concatv4si): Ditto.
4449         (vec_concatv2di): Ditto.
4450         * config/i386/constraints.md (Y2): Remove.
4451         (Y3): Ditto.
4452         (Y4): Ditto.
4453
4454 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4455
4456         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
4457         dump_def_use_chain): Don't declare.
4458         (mark_conflict, create_new_chain): Move before users.
4459         (regrename_optimize): Move to near end of file.
4460
4461 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4462
4463         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
4464         (secondary_input_reload_class): Remove Prototype.
4465         * config/avr/avr.c (byte_immediate_operand): Remove Function.
4466         * config/avr/avr.md (setmemhi): Use u8_operand.
4467         (strlenhi): Use const0_rtx for comparison.
4468         * config/avr/avr.h (avr_reg_order): Remove Declaration.
4469
4470 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4471
4472         * config/avr/avr.c (reg_class_tab): Make local to
4473         avr_regno_reg_class.  Return smallest register class available.
4474
4475 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4476
4477         * config/avr/avr.c (STR_PREFIX_P): New Define.
4478         (avr_asm_declare_function_name): Use it.
4479         (avr_asm_named_section): Use it.
4480         (avr_section_type_flags): Use it.
4481
4482 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4483
4484         * doc/md.texi (automata_option): Document collapse-ndfa.
4485         * genautomata.c (COLLAPSE_OPTION): New macro.
4486         (collapse_flag): New static variable.
4487         (struct description): New member normal_decls_num.
4488         (struct automaton): New members advance_ainsn and collapse_ainsn.
4489         (gen_automata_option): Check for COLLAPSE_OPTION.
4490         (collapse_ndfa_insn_decl): New static variable.
4491         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
4492         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
4493         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
4494         necessary.  Use normal_decls_num rather than decls_num, remove
4495         test for special decls.
4496         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
4497         (make_automaton); Likewise.  Use the new advance_cycle_insn member
4498         of struct automaton.
4499         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
4500         is set.
4501         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
4502         transition.  Create the necessary transitions for it.
4503         (create_ainsns): Return void.  Take an automaton_t argument, and
4504         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
4505         callers changed.
4506         (COLLAPSE_NDFA_VALUE_NAME): New macro.
4507         (output_tables): Output code to define it.
4508         (output_internal_insn_code_evaluation): Output code to accept
4509         const0_rtx as collapse-ndfa transition.
4510         (output_default_latencies, output_print_reservation_func,
4511         output_print_description): Reorganize loops to use normal_decls_num
4512         as loop bound; remove special case for advance_cycle_insn_decl.
4513         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
4514         (check_automata_insn_issues): Check for collapse_ainsn.
4515         (expand_automate): Allocate sufficient space.  Initialize
4516         normal_decls_num.
4517
4518 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4519
4520         * config/avr/avr.md: Fix indentation from r177991.
4521
4522 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4523
4524         * regrename.c (struct du_head): Remove member terminated.
4525         (create_new_chain): Don't initialize it.
4526         (scan_rtx_reg): Don't set or test it, test the open_chains_set
4527         bitmap instead.
4528         (tick, this_tick): New global variables, moved out of
4529         regrename_optimize.
4530         (current_id, open_chains, closed_chains, open_chains_set,
4531         live_in_chains, live_hard_regs): Reorder declarations.
4532         (dump_def_use_chain): Move function earlier in the file.
4533         (rename_chains): New static function, broken out of
4534         regrename_optimize.
4535         (regrename_optimize): Use it.  Remove #if 0'ed code.
4536
4537 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4538
4539         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
4540
4541 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
4542
4543         PR target/50172
4544         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
4545
4546 2011-08-24  Richard Guenther  <rguenther@suse.de>
4547
4548         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
4549         ref in the basic-block case.  Move stripping array-refs
4550         to the place we create an access-function for it.  Remove
4551         bogus stripping down a MEM_REF to its base.
4552
4553 2011-08-24  Richard Guenther  <rguenther@suse.de>
4554
4555         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
4556         with -fno-strict-overflow.
4557
4558 2011-08-24  Richard Guenther  <rguenther@suse.de>
4559
4560         * tree-vectorizer.c (vect_print_dump_info): Avoid the
4561         file and location clutter when dumping to dump files.
4562
4563 2011-08-24  Simon Baldwin  <simonb@google.com>
4564
4565         * gengtype-state.c (write_state): Remove timestamped header line.
4566
4567 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
4568
4569         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
4570         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
4571         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
4572         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
4573         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
4574         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
4575         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
4576         rules.
4577         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
4578
4579 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
4580
4581         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
4582
4583 2011-08-24  Richard Guenther  <rguenther@suse.de>
4584
4585         PR tree-optimization/50067
4586         * tree-data-ref.c (dr_analyze_indices): Do not add an access
4587         function for a MEM_REF base that has no evolution in the loop
4588         nest or that is not analyzable.
4589
4590 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
4591
4592         * ira.c (ira_init_register_move_cost): Check small subclasses
4593         through ira_reg_class_max_nregs and ira_available_class_regs.
4594
4595 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
4596
4597         * config/i386/constraints.md (Yp): New register constraint.
4598         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
4599         Yp register constraint.
4600         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
4601         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
4602         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
4603
4604 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4605
4606         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
4607
4608 2011-08-23  Mark Heffernan  <meheff@google.com>
4609
4610         PR middle-end/38509
4611         * common.opt (Wfree-nonheap-object): New option.
4612         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
4613         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
4614         to warning.
4615         (expand_builtin): Make warning conditional.
4616
4617 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
4618
4619         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
4620         (length_immediate): Handle imulx, ishiftx and rotatex.
4621         (imm_disp): Ditto.
4622         (isa): Add bmi2.
4623         (enabled): Handle bmi2.
4624         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
4625         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
4626         (*bmi2_umulditi3_1): New insn pattern.
4627         (*bmi2_umulsidi3_1): Ditto.
4628         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
4629         (*bmi2_ashl<mode>3_1): New insn pattern.
4630         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
4631         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
4632         (*bmi2_ashlsi3_1_zext): New insn pattern.
4633         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
4634         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
4635         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
4636         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
4637         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
4638         flags dependency.
4639         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
4640         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
4641         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
4642         flags dependency.
4643         (*bmi2_rorx<mode>3_1): New insn pattern.
4644         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
4645         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
4646         (*rotatert<mode>3_1 splitter): Ditto.
4647         (*bmi2_rorxsi3_1_zext): New insn pattern.
4648         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
4649         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
4650         (*rotatertsi3_1_zext splitter): Ditto.
4651
4652 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4653
4654         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
4655         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
4656         (ix86_handle_option): Handle OPT_mbmi2 case.
4657         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
4658         (x86_64-*-*): Likewise.
4659         * config/i386/bmi2intrin.h: New file.
4660         * config/i386/cpuid.h (bit_BMI2): New.
4661         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4662         BMI2 feature.
4663         * config/i386/i386-c.c (ix86_target_macros_internal):
4664         Conditionally define __BMI2__.
4665         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
4666         Handle BMI2 option.
4667         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
4668         (print_reg): New code.
4669         (ix86_print_operand): Likewise.
4670         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
4671         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
4672         IX86_BUILTIN_PEXT64.
4673         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
4674         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
4675         IX86_BUILTIN_PEXT64.
4676         * config/i386/i386.h (TARGET_BMI2): New.
4677         * config/i386/i386.md (UNSPEC_PDEP): New.
4678         (UNSPEC_PEXT): Likewise.
4679         (*bmi2_bzhi_<mode>3): Likewise.
4680         (*bmi2_pdep_<mode>3): Likewise.
4681         (*bmi2_pext_<mode>3): Likewise.
4682         * config/i386/i386.opt (mbmi2): New.
4683         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
4684         is defined.
4685         * doc/extend.texi: Document BMI2 built-in functions.
4686         * doc/invoke.texi: Document -mbmi2.
4687
4688 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
4689
4690         PR middle-end/50161
4691         * simplify-rtx.c (simplify_const_unary_operation): If
4692         op is CONST_INT, don't look at op_mode, but use instead mode.
4693         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
4694         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
4695         operation and TRUNCATE/ZERO_EXTEND if needed.
4696         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
4697         Document that operand mode must be same as operation mode,
4698         or VOIDmode.
4699         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
4700         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
4701         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
4702         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
4703         use the mode of operand for the operation and add truncate
4704         or zero_extend around if needed.
4705         * config/c6x/c6x.md (ctzdi2): Likewise.
4706         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
4707
4708 2011-08-12  Michael Matz  <matz@suse.de>
4709
4710         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
4711         (gimple_expand_cfg): Merge alignment info for coalesced pointer
4712         SSA names.
4713
4714 2011-08-23  Richard Guenther  <rguenther@suse.de>
4715
4716         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
4717         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
4718         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
4719         from ...
4720         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
4721         (mem_refs_may_alias_p): Adjust.
4722         * tree-data-ref.h (dr_may_alias_p): Adjust.
4723         * tree-data-ref.c: Include tree-affine.h.
4724         (dr_analyze_indices): Do nothing for the non-loop case.
4725         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
4726         more cases in the non-loop case.
4727         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
4728         calls to dr_may_alias_p.
4729         (write_alias_graph_to_ascii_ecc): Likewise.
4730         (write_alias_graph_to_ascii_dot): Likewise.
4731         (build_alias_set_optimal_p): Likewise.
4732
4733 2011-08-23  Richard Guenther  <rguenther@suse.de>
4734
4735         PR tree-optimization/50162
4736         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
4737
4738 2011-08-23  Richard Guenther  <rguenther@suse.de>
4739
4740         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
4741         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
4742         (create_data_ref): Also dump access functions for the created data-ref.
4743
4744 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
4745             Kirill Yukhin  <kirill.yukhin@intel.com>
4746
4747         PR target/50155
4748         * config/i386/sse.md (VI_AVX2): New.
4749         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
4750         (*<plusminus_insn><mode>3): Ditto.
4751         (<sse2_avx2>_andnot<mode>3): Ditto.
4752         (*andnot<mode>3): Fix order of cond operands.
4753         Add asserts for correct TARGET_xxx.
4754         (*<any_logic:code><mode>3): Ditto.
4755
4756 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
4757
4758         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
4759         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
4760         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
4761         regclass argument type to reg_class_t. Change 'max' and 'v' vars
4762         and return types to unsigned char. Use reg_class_contents instead
4763         of class_contents.
4764         (TARGET_CLASS_MAX_NREGS): Define.
4765
4766 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
4767
4768         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
4769         to make computed_jump_p return true.
4770
4771 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4772
4773         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
4774         (PICFLAG_FOR_TARGET): Substitute.
4775         * aclocal.m4: Regenerate.
4776         * configure: Regenerate.
4777
4778 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
4779
4780         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
4781         after reading in the pch.
4782
4783 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
4784
4785         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
4786         * configure: Regenerated.
4787
4788 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
4789
4790         PR tree-optimization/50133
4791         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
4792         from stmt instead of some statement around gsi.
4793
4794         PR middle-end/50141
4795         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
4796         innerdecl is a VAR_DECL.
4797
4798 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4799
4800         * config/i386/avx2intrin.h: New file.
4801         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
4802         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
4803         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
4804         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
4805         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
4806         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
4807         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
4808         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
4809         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
4810         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
4811         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
4812         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
4813         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
4814         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
4815         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
4816         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
4817         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
4818         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
4819         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
4820         VOID_FTYPE_PV8SI_V8SI_V8SI,
4821         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
4822         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
4823         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
4824         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
4825         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
4826         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
4827         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
4828         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
4829         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
4830         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
4831         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
4832         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
4833         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
4834         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
4835         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
4836         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
4837         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
4838         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
4839         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
4840         V4DI_FTYPE_V4DI_INT_CONVERT,
4841         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
4842         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
4843         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
4844         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
4845         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
4846         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
4847         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
4848         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
4849         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
4850         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
4851         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
4852         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
4853         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
4854         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
4855         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
4856         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
4857         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
4858         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
4859         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
4860         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
4861         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
4862         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
4863         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
4864         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
4865         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
4866         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
4867         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
4868         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
4869         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
4870         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
4871         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
4872         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
4873         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
4874         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
4875         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
4876         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
4877         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
4878         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
4879         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
4880         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
4881         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
4882         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
4883         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
4884         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
4885         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
4886         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
4887         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
4888         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
4889         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
4890         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
4891         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
4892         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
4893         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
4894         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
4895         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
4896         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
4897         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
4898         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
4899         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
4900         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
4901         IX86_BUILTIN_VBROADCASTSS_PS256,
4902         IX86_BUILTIN_VBROADCASTSD_PD256,
4903         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
4904         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
4905         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
4906         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
4907         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
4908         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
4909         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
4910         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
4911         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
4912         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
4913         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
4914         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
4915         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
4916         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
4917         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
4918         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
4919         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
4920         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
4921         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
4922         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
4923         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
4924         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
4925         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
4926         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
4927         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
4928         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
4929         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
4930         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
4931         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
4932         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
4933         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
4934         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
4935         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
4936         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
4937         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
4938         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
4939         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
4940         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
4941         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
4942         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
4943         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
4944         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
4945         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
4946         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
4947         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
4948         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
4949         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
4950         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
4951         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
4952         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
4953         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
4954         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
4955         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
4956         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
4957         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
4958         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
4959         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
4960         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
4961         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
4962         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
4963         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
4964         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
4965         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
4966         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
4967         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
4968         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
4969         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
4970         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
4971         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
4972         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
4973         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
4974         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
4975         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
4976         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
4977         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
4978         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
4979         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
4980         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
4981         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
4982         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
4983         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
4984         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
4985         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
4986         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
4987         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
4988         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
4989         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
4990         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
4991         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
4992         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
4993         IX86_BUILTIN_VBROADCASTSD_PD256,
4994         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
4995         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
4996         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
4997         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
4998         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
4999         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
5000         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
5001         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
5002         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
5003         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
5004         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
5005         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
5006         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
5007         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
5008         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
5009         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
5010         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
5011         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
5012         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
5013         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
5014         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
5015         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
5016         IX86_BUILTIN_GATHERDIV8SI.
5017         (ix86_preferred_simd_mode): Support AVX2 modes.
5018         (ix86_expand_args_builtin): Support AVX2 builtins.
5019         (ix86_expand_special_args_builtin): Likewise.
5020         (ix86_expand_builtin): Likewise.
5021         * config/i386/i386.md (UNSPEC_VPERMSI): New.
5022         (UNSPEC_VPERMDF): Likewise.
5023         (UNSPEC_VPERMSF): Likewise.
5024         (UNSPEC_VPERMDI): Likewise.
5025         (UNSPEC_VPERMTI): Likewise.
5026         (UNSPEC_GATHER): Likewise.
5027         (ssemodesuffix): Extend.
5028         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
5029         is defined.
5030         * config/i386/predicates.md (const1248_operand): New.
5031         * config/i386/sse.md (VI1_AVX2): New mode iterator.
5032         (VI2_AVX2): Likewise.
5033         (VI4_AVX2): Likewise.
5034         (VI8_AVX2): Likewise.
5035         (VIMAX_AVX2): Likewise.
5036         (SSESCALARMODE): Likewise.
5037         (VI12_AVX2): Likewise.
5038         (VI24_AVX2): Likewise.
5039         (VI124_AVX2): Likewise.
5040         (VI248_AVX2): Likewise.
5041         (VI48_AVX2): Likewise.
5042         (VI4SD_AVX2): Likewise.
5043         (V48_AVX2): Likewise.
5044         (AVX256MODE2P): Likewise.
5045         (AVXMODE48P_DI): Likewise.
5046         (sse2_avx2): New mode attribute.
5047         (ssse3_avx2): Likewise.
5048         (sse4_1_avx2): Likewise.
5049         (avx_avx2): Likewise.
5050         (ssebytemode): Likewise.
5051         (AVXTOSSEMODE): Likewise.
5052         (AVXMODE48P_DI): Likewise.
5053         (gthrfirstp): Likewise.
5054         (gthrlastp): Likewise.
5055         (lshift): New code_iterator
5056         (lshift): New code attribute.
5057         (lshift): Likewise.
5058         (ssescalarmodesuffix): Update.
5059         (sseunpackmode): Likewise.
5060         (ssepackmode): Likewise.
5061         (avx2_vec_dupv4sf): New insn pattern.
5062         (avx2_vec_dupv8sf): Likewise.
5063         (avx2_interleave_highv4di): Likewise.
5064         (avx2_interleave_lowv4di): Likewise.
5065         (avx2_umulv4siv4di3): Likewise
5066         (*avx2_umulv4siv4di3): Likewise
5067         (avx2_pmaddwd): Likewise.
5068         (*avx2_pmaddwd): Likewise.
5069         (avx2_lshrqv4di3): Likewise.
5070         (avx2_lshlqv4di3): Likewise.
5071         (avx2_lshl<mode>3): Likewise.
5072         (avx2_<umaxmin:code><mode>3): Likewise.
5073         (*avx2_<umaxmin:code><mode>3): Likewise.
5074         (avx2_<smaxmin:code><mode>3): Likewise.
5075         (*avx2_<smaxmin:code><mode>3): Likewise.
5076         (avx2_eq<mode>3): Likewise.
5077         (*avx2_eq<mode>3): Likewise.
5078         (avx2_gt<mode>3): Likewise.
5079         (avx2_interleave_highv32qi): New.
5080         (avx2_interleave_lowv32qi): Likewise.
5081         (avx2_interleave_highv16hi): Likewise.
5082         (avx2_interleave_lowv16hi): Likewise.
5083         (avx2_interleave_highv8si): Likewise.
5084         (avx2_interleave_lowv8si): Likewise.
5085         (avx2_pshufd): Likewise.
5086         (avx2_pshufd_1): Likewise.
5087         (avx2_pshuflwv3): Likewise.
5088         (avx2_pshuflw_1): Likewise.
5089         (avx2_pshufhwv3): Likewise.
5090         (avx2_pshufhw_1): Likewise.
5091         (avx2_uavgv32qi3): Likewise.
5092         (*avx2_uavgv32qi3): Likewise.
5093         (avx2_uavgv16hi3): Likewise.
5094         (*avx2_uavgv16hi3): Likewise.
5095         (avx2_pmovmskb): Likewise.
5096         (avx2_phaddwv16hi3): Likewise.
5097         (avx2_phadddv8si3): Likewise.
5098         (avx2_phaddswv16hi3): Likewise.
5099         (avx2_phsubwv16hi3): Likewise.
5100         (avx2_phsubdv8si3): Likewise.
5101         (avx2_phsubswv16hi3): Likewise.
5102         (avx2_pmaddubsw256): Likewise.
5103         (avx2_umulhrswv16hi3): Likewise.
5104         (*avx2_umulhrswv16hi3): Likewise.
5105         (avx2_packusdw): Likewise.
5106         (avx2_pblendd<mode>): Likewise.
5107         (avx2_<code>v16qiv16hi2): Likewise.
5108         (avx2_<code>v8qiv8si2): Likewise.
5109         (avx2_<code>v8hiv8si2): Likewise.
5110         (avx2_<code>v4qiv4di2): Likewise.
5111         (avx2_<code>v4hiv4di2): Likewise.
5112         (avx2_<code>v4siv4di2): Likewise.
5113         (avx2_pbroadcast<mode>): Likewise.
5114         (avx2_permvarv8si): Likewise.
5115         (avx2_permv4df): Likewise.
5116         (avx2_permvarv8sf): Likewise.
5117         (avx2_permv4di): Likewise.
5118         (avx2_permv2ti): Likewise.
5119         (avx2_vec_dupv4df): Likewise.
5120         (avx2_vbroadcasti128_<mode>): Likewise.
5121         (avx2_vec_set_lo_v4di): Likewise.
5122         (avx2_vec_set_hi_v4di): Likewise.
5123         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
5124         (avx2_extracti128): Likewise.
5125         (avx2_inserti128): Likewise.
5126         (avx2_ashrvv8si): Likewise.
5127         (avx2_ashrvv4si): Likewise.
5128         (avx2_<lshift>vv8si): Likewise.
5129         (avx2_<lshift>v<mode>): Likewise.
5130         (avx2_<lshift>vv2di): Likewise.
5131         (avx2_gathersi<mode>): Likewise.
5132         (*avx2_gathersi<mode>): Likewise.
5133         (avx2_gatherdi<mode>): Likewise.
5134         (*avx2_gatherdi<mode>): Likewise.
5135         (avx2_gatherdi<mode>256): Likewise.
5136         (*avx2_gatherdi<mode>256): Likewise.
5137         (<plusminus_insn><mode>3): Use VI mode iterator.
5138         (*<plusminus_insn><mode>3): Use VI mode iterator.
5139         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
5140         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
5141         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
5142         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
5143         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
5144         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
5145         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
5146         Use VI2_AVX2 mode iterator.
5147         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
5148         Use VI2_AVX2 mode iterator.
5149         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
5150         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
5151         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
5152         Use VI4_AVX2 mode iterator.
5153         (ashr<mode>3): Use VI24_AVX2 mode iterator.
5154         (lshr<mode>3): Use VI248_AVX2 mode iterator.
5155         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
5156         Use VIMAX_AVX2 mode iterator.
5157         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
5158         Use VI mode iterator.
5159         (*andnot<mode>3): Update for AVX2.
5160         (*<any_logic:code><mode>3): Likewise.
5161         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
5162         Use VI1_AVX mode iterator.
5163         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
5164         Use VI2_AVX mode iterator.
5165         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
5166         Use VI1_AVX mode iterator.
5167         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
5168         Use VI8_AVX2 mode iterator.
5169         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
5170         Use VI1_AVX2 mode iterator.
5171         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
5172         Use VI124_AVX2 mode iterator.
5173         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
5174         Use SSESCALARMODE mode iterator.
5175         (abs<mode>2): Use VI124_AVX2 mode iterator.
5176         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
5177         Use VI8_AVX2 mode iterator.
5178         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
5179         Use VI1_AVX2 mode iterator.
5180         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
5181         Use VI1_AVX2 mode iterator.
5182         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
5183         Use VI2_AVX2 mode iterator.
5184         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
5185         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
5186         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
5187         avx_maskstore<ssemodesuffix><avxsizesuffix>.
5188         Use V48_AVX2 mode iterator.
5189         * doc/extend.texi: Document AVX2 built-in functions.
5190         * doc/invoke.texi: Document -mavx2.
5191
5192 2011-08-22  Matthias Klose <doko@debian.org>
5193
5194         Revert:
5195         2011-07-11  Arthur Loiret  <aloiret@debian.org>
5196                     Matthias Klose <doko@debian.org>
5197         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
5198         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
5199         convention.
5200         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
5201
5202 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
5203
5204         PR bootstrap/50146
5205         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
5206         to #ifndef HONOR_REG_ALLOC_ORDER block.
5207
5208 2011-08-21  Richard Henderson  <rth@redhat.com>
5209
5210         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
5211         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
5212         * resource.c (next_insn_no_annul): Likewise.
5213         (mark_set_resources): Likewise.
5214         * reorg.c (delete_from_delay_slot): Likewise.
5215         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
5216         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
5217
5218 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
5219
5220         * config/i386/i386.md (any_div): Remove.
5221         (sgnprefix): Update for removal.
5222         (u): Ditto.
5223
5224 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
5225
5226         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
5227         for ira_reg_class_max_nregs.  Increase pressure by 1.
5228         (mark_pseudo_regno_subword_dead): Use allocno class
5229         for ira_reg_class_max_nregs.
5230
5231 2011-08-20  Richard Henderson  <rth@redhat.com>
5232
5233         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
5234         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
5235         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
5236         config/c6x/ltf.c: Adjust include path for soft-fp.
5237
5238 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
5239
5240         PR other/46770
5241         * config.gcc (tm_file): Add initfini-array.h if
5242         .init_arrary/.fini_array are supported.
5243
5244         * crtstuff.c: Don't generate .ctors nor .dtors sections if
5245         USE_INITFINI_ARRAY is defined.
5246
5247         * output.h (default_elf_init_array_asm_out_constructor): New.
5248         (default_elf_fini_array_asm_out_destructor): Likewise.
5249         * varasm.c (elf_init_array_section): Likewise.
5250         (elf_fini_array_section): Likewise.
5251         (get_elf_initfini_array_priority_section): Likewise.
5252         (default_elf_init_array_asm_out_constructor): Likewise.
5253         (default_elf_fini_array_asm_out_destructor): Likewise.
5254
5255         * config/initfini-array.h: New.
5256
5257 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
5258
5259         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
5260         OK for ST_REGS and FP_REGS before taking those classes into account.
5261
5262 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
5263
5264         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
5265         before checking for annulled branches.
5266
5267 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
5268
5269         * config/i386/i386.c (ix86_binary_operator_ok): Use
5270         satisfies_constraint_L.
5271
5272 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
5273             Michael Matz  <matz@suse.de>
5274
5275         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
5276         trunc (a + copysign (nextafter (0.5, 0.0), a)).
5277
5278 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
5279
5280         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
5281         * doc/tm.texi: Regenerate.
5282         * targhooks.c (default_preferred_output_reload_class): Don't use
5283         PREFERRED_OUTPUT_RELOAD_CLASS macro.
5284         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
5285
5286 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
5287
5288         PR tree-optimization/48739
5289         * tree-ssa.c: Include cfgloop.h.
5290         (execute_update_addresses_taken): When updating ssa, if in loop closed
5291         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
5292         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
5293
5294 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
5295
5296         PR rtl-optimization/49936
5297         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
5298         for calculation of max register move costs.
5299
5300 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5301
5302         * c-parser.c (c_parser_postfix_expression): Convert operands of
5303         __builtin_complex to their semantic types.
5304
5305 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
5306
5307         PR middle-end/49721
5308         * explow.c (convert_memory_address_addr_space): Also permute the
5309         conversion and addition of constant for zero-extend.
5310
5311 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5312
5313         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
5314         * doc/extend.texi (__builtin_complex): Document.
5315
5316 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5317
5318         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
5319         beyond conversions.
5320         (convert_mult_to_widen): Convert constant inputs to the right type.
5321         (convert_plusminus_to_widen): Don't automatically reject inputs that
5322         are not an SSA_NAME.
5323         Convert constant inputs to the right type.
5324
5325 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5326
5327         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
5328         to the correct type.
5329
5330 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5331
5332         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
5333         unsigned inputs of different modes.
5334         (convert_plusminus_to_widen): Likewise.
5335
5336 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5337
5338         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
5339         'type'.
5340         Use 'type' from caller, not inferred from 'rhs'.
5341         Don't reject non-conversion statements. Do return lhs in this case.
5342         (is_widening_mult_p): Add new argument 'type'.
5343         Use 'type' from caller, not inferred from 'stmt'.
5344         Pass type to is_widening_mult_rhs_p.
5345         (convert_mult_to_widen): Pass type to is_widening_mult_p.
5346         (convert_plusminus_to_widen): Likewise.
5347
5348 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5349
5350         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
5351         Ensure the the larger type is the first operand.
5352
5353 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5354
5355         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
5356         unsupported unsigned multiplies to signed.
5357         (convert_plusminus_to_widen): Likewise.
5358
5359 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5360
5361         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
5362         conversion statement separating multiply-and-accumulate.
5363
5364 2011-08-19  Richard Guenther  <rguenther@suse.de>
5365
5366         PR tree-optimization/50067
5367         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
5368         offset only if we accounted for it.
5369
5370 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5371
5372         * config/arm/arm.md (maddhidi4): Remove '*' from name.
5373         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
5374         * optabs.c (find_widening_optab_handler_and_mode): New function.
5375         (expand_widen_pattern_expr): Use find_widening_optab_handler.
5376         (expand_binop_directly): Likewise.
5377         (expand_binop): Likewise.
5378         * optabs.h (find_widening_optab_handler): New macro define.
5379         (find_widening_optab_handler_and_mode): New prototype.
5380         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
5381         type precision rules.
5382         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
5383         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
5384         (is_widening_mult_rhs_p): Allow widening by more than one mode.
5385         Explicitly disallow mis-matched input types.
5386         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
5387         input types to fit the new handler.
5388         (convert_plusminus_to_widen): Likewise.
5389
5390 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5391
5392         * expr.c (expand_expr_real_2): Use widening_optab_handler.
5393         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
5394         (gen_insn): $N now means $a must be wider than $b, not consecutive.
5395         * optabs.c (widened_mode): New function.
5396         (expand_widen_pattern_expr): Use widening_optab_handler.
5397         (expand_binop_directly): Likewise.
5398         (expand_binop): Likewise.
5399         * optabs.h (widening_optab_handlers): New struct.
5400         (optab_d): New member, 'widening'.
5401         (widening_optab_handler): New function.
5402         (set_widening_optab_handler): New function.
5403         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
5404         widening_optab_handler.
5405         (convert_plusminus_to_widen): Likewise.
5406
5407 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5408
5409         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
5410         pedantic.
5411         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
5412         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
5413
5414 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5415
5416         * opth-gen.awk: Do not declare target save/restore structures and
5417         functions if IN_RTS defined.
5418
5419 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
5420
5421         PR target/49437
5422         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
5423         when stack was realigned in interrupt handler prologue.
5424
5425 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
5426
5427         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
5428         (quals_from_declspecs): Assert _Noreturn not present.
5429         (grokdeclarator): Handle _Noreturn.
5430         (build_null_declspecs): Initialize noreturn_p.
5431         (declspecs_add_scspec): Handle RID_NORETURN.
5432         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
5433         (c_parser_attributes): Handle RID_NORETURN.
5434         * c-tree.h (struct c_declspecs): Add noreturn_p.
5435         * ginclude/stdnoreturn.h: New.
5436         * Makefile.in (USER_H): Add stdnoreturn.h.
5437
5438 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5439
5440         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
5441         (OPTION_MASK_ISA_AVX_UNSET): Update.
5442         (OPTION_MASK_ISA_AVX2_UNSET): New.
5443         (ix86_handle_option): Handle OPT_mavx2 case.
5444         * config/i386/cpuid.h (bit_AVX2): New.
5445         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5446         AVX2 feature.
5447         * config/i386/i386-c.c (ix86_target_macros_internal):
5448         Conditionally define __AVX2__.
5449         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
5450         Define "core-avx2" processor alias.  Handle avx2 option.
5451         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
5452         * config/i386/i386.h (TARGET_AVX2): New.
5453         * config/i386/i386.opt (mavx2): New.
5454         * doc/invoke.texi: Document -mavx2.
5455
5456 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
5457
5458         PR rtl-optimization/49890
5459         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
5460         subclasses of class which is superset of a pressure class.
5461
5462 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
5463             Igor Zamyatin <igor.zamyatin@intel.com>
5464
5465         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
5466         with HOST_WIDE_INT for isa_flag.
5467         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
5468         isa variables.
5469
5470         * config/i386/i386.c (ix86_target_string): Replace int with
5471         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
5472         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
5473         (pta_flags): Removed.
5474         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
5475         (pta): Use HOST_WIDE_INT on flags.
5476         (builtin_isa): Use HOST_WIDE_INT on isa.
5477         (ix86_add_new_builtins): Likewise.
5478         (def_builtin): Use HOST_WIDE_INT on mask.
5479         (def_builtin_const): Likewise.
5480         (builtin_description): Likewise.
5481
5482         * config/i386/i386.opt (ix86_isa_flags): Replace int with
5483         HOST_WIDE_INT.
5484         (ix86_isa_flags_explicit): Likewise.
5485         (x_ix86_isa_flags_explicit): Likewise.
5486
5487 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
5488
5489         PR rtl-optimization/50107
5490         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
5491         (ira_hard_reg_in_set_p): New.
5492
5493         * ira-color.c (calculate_saved_nregs): New.
5494         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
5495         hard regs.
5496         (allocno_reload_assign, fast_allocation): Use
5497         ira_hard_reg_set_intersection_p instead of
5498         ira_hard_reg_not_in_set_p.
5499
5500         * ira.c (setup_reg_renumber): Use
5501         ira_hard_reg_set_intersection_p instead of
5502         ira_hard_reg_not_in_set_p.
5503         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
5504         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
5505
5506         * ira-costs.c (ira_tune_allocno_costs): Use
5507         ira_hard_reg_set_intersection_p instead of
5508         ira_hard_reg_not_in_set_p.
5509
5510 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
5511             Igor Zamyatin <igor.zamyatin@intel.com>
5512
5513         * hwint.h (HOST_WIDE_INT_1): New.
5514
5515         * opt-functions.awk (switch_bit_fields): Initialize the
5516         host_wide_int field.
5517         (host_wide_int_var_name): New.
5518         (var_type_struct): Check and return HOST_WIDE_INT.
5519
5520         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
5521
5522         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
5523
5524         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
5525         check masks for HOST_WIDE_INT.
5526
5527         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
5528         (option_enabled): Likewise.
5529         (get_option_state): Likewise.
5530
5531         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
5532         to HOST_WIDE_INT.
5533
5534 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5535             Marc Glisse  <marc.glisse@normalesup.org>
5536
5537         PR libstdc++-v3/1773
5538         * target.def (decl_mangling_context): New C++ hook.
5539         * doc/tm.texi: Regenerate.
5540         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
5541         * config/sol2-protos.h: Group by source file.
5542         (solaris_cxx_decl_mangling_context): Declare.
5543         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
5544         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
5545         Use $<.
5546         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
5547         Add sol2-stubs.o to extra_objs.
5548
5549 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
5550
5551         PR target/50009
5552         * stor-layout.c (update_alignment_for_field): Don't ICE on
5553         packed flexible array members if ms_bitfield_layout_p.
5554
5555         PR target/50092
5556         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
5557         on the result before returning it.
5558
5559         PR debug/50017
5560         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
5561         is a debug stmt, use location of the first non-debug stmt after it.
5562
5563 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5564
5565         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
5566         (arm_size_rtx_costs): Likewise.
5567
5568 2011-08-18  Richard Guenther  <rguenther@suse.de>
5569
5570         * tree.h (tree_int_cst_msb): Remove.
5571         * tree.c (tree_int_cst_msb): Likewise.
5572         (tree_int_cst_sign_bit): Move from ...
5573         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
5574
5575 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5576
5577         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
5578         * doc/tm.texi: Regenerate.
5579         * target.def (rtx_costs): Add an opno parameter.
5580         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
5581         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
5582         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
5583         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
5584         * cse.c (COST_IN): Add an opno parameter.
5585         (notreg_cost): Likewise.  Update call to rtx_cost.
5586         (COST, fold_rtx): Update accordingly.
5587         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
5588         * expmed.c (emit_store_flag): Likewise.
5589         * optabs.c (avoid_expensive_constant): Add an opno parameter.
5590         Update call to rtx_cost.
5591         (expand_binop_directly, expand_binop): Likewise.
5592         (expand_twoval_binop, prepare_cmp_insn): Likewise.
5593         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
5594         (set_src_cost, get_full_set_src_cost): Update accordingly.
5595         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
5596         to target hook.
5597         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
5598         (default_adress_cost): Update calls to rtx_cost.
5599
5600         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
5601         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
5602         (arm_rtx_costs): Add an opno parameter.
5603         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
5604         adjust any recursive rtx-cost calls.
5605         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
5606         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
5607         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
5608         * config/cris/cris.c (cris_rtx_costs): Likewise.
5609         * config/frv/frv.c (frv_rtx_costs): Likewise.
5610         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
5611         * config/i386/i386.c (ix86_rtx_costs): Likewise.
5612         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
5613         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
5614         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
5615         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
5616         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
5617         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
5618         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
5619         * config/mep/mep.c (mep_rtx_cost): Likewise.
5620         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
5621         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
5622         (mips_zero_extend_cost): Add an opno parameter.
5623         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
5624         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
5625         to rtx_cost.
5626         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
5627         rtx-cost calls.
5628         * config/pa/pa.c (hppa_rtx_costs): Likewise.
5629         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
5630         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
5631         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
5632         (rs6000_debug_rtx_costs): Likewise.
5633         * config/s390/s390.c (s390_rtx_costs): Likewise.
5634         * config/score/score-protos.h (score_rtx_costs): Likewise.
5635         * config/score/score.c (score_rtx_costs): Likewise.
5636         * config/sh/sh.c (andcosts): Update call to rtx_cost.
5637         (sh_rtx_costs): Add an opno parameter.
5638         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
5639         * config/spu/spu.c (spu_rtx_costs): Likewise.
5640         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
5641         * config/v850/v850.c (v850_rtx_costs): Likewise.
5642         * config/vax/vax.c (vax_rtx_costs): Likewise.
5643         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
5644
5645 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5646
5647         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
5648         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
5649         rtx_cost.
5650         * calls.c (precompute_register_parameters): Likewise.
5651         * combine.c (expand_compound_operation, make_extraction): Likewise.
5652         (force_to_mode, distribute_and_simplify_rtx): Likewise.
5653         * dse.c (find_shift_sequence): Likewise.
5654         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
5655         * expr.c (compress_float_constant): Likewise.
5656         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
5657         * gcse.c (want_to_gcse_p): Likewise.
5658         * ifcvt.c (noce_try_sign_mask): Likewise.
5659         * loop-doloop.c (doloop_optimize): Likewise.
5660         * loop-invariant.c (create_new_invariant): Likewise.
5661         * optabs.c (avoid_expensive_constant): Likewise.
5662         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
5663         (try_replace_in_use, reload_cse_move2add): Likewise.
5664         * reload1.c (calculate_elim_costs_all_insns): Likewise.
5665         (note_reg_elim_costly): Likewise.
5666         * rtlanal.c (insn_rtx_cost): Likewise.
5667         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5668         * stmt.c (lshift_cheap_p): Likewise.
5669         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
5670         * config/avr/avr.c (final_prescan_insn): Likewise.
5671         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
5672         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
5673
5674 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5675
5676         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
5677         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
5678         * cfgloopanal.c (seq_cost): Likewise.
5679         * loop-invariant.c (create_new_invariant): Likewise.
5680         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
5681         (reload_cse_move2add): Use get_full_set_rtx_cost.
5682
5683 2011-08-18  Richard Guenther  <rguenther@suse.de>
5684
5685         * expr.c (get_inner_reference): Fix typo in last change.
5686
5687 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
5688             Joseph Myers  <joseph@codesourcery.com>
5689
5690         PR tree-optimization/49963
5691         * hwint.c (absu_hwi): Define.
5692         * hwint.h (absu_hwi): Declare.
5693         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
5694         of abs_hwi.
5695         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
5696         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
5697
5698 2011-08-18  Richard Guenther  <rguenther@suse.de>
5699
5700         * expr.c (get_inner_reference): Sign-extend the constant
5701         twos-complement offset before doing arbitrary precision
5702         arithmetic on it.
5703         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
5704         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
5705         to get_constraint_for_ptr_offset.
5706
5707 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5708
5709         PR target/50068
5710         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
5711
5712 2011-08-17  Richard Guenther  <rguenther@suse.de>
5713
5714         * tree.h (convert_to_ptrofftype_loc): New function.
5715         (convert_to_ptrofftype): Define.
5716         * builtins.c (expand_builtin_bzero): Use size_type_node.
5717         (fold_builtin_bzero): Likewise.
5718         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
5719         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
5720         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
5721         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
5722         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
5723         * fold-const.c (build_range_check): Negate using the original type.
5724         (fold_unary_loc): Use fold_build_pointer_plus_loc.
5725         * gimple-fold.c (gimple_adjust_this_by_delta): Use
5726         convert_to_ptrofftype.
5727         * gimplify.c (gimplify_self_mod_expr): Likewise.
5728         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
5729         (graphite_create_new_loop_guard): Likewise.
5730         * graphite-sese-to-poly.c (my_long_long): Remove.
5731         (scop_ivs_can_be_represented): Adjust.
5732         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
5733         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
5734         * tree-loop-distribution.c (build_size_arg_loc): Use
5735         size_type_node.
5736         (generate_memset_zero): Simplify.
5737         * tree-mudflap.c: Use fold_convert, not convert.
5738         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
5739         its own type.
5740         (determine_offset): Likewise for DR_STEP.
5741         (valid_initializer_p): Likewise.
5742         * tree-profile.c (prepare_instrumented_value): Convert the pointer
5743         to an integer type of same size.
5744         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
5745         to sizetype without need.
5746         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
5747         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
5748         * tree-ssa-loop-manip.c (create_iv): Likewise.
5749         (determine_exit_conditions): Adjust comment.
5750         * tree-ssa-pre.c (create_expression_by_pieces): Use
5751         convert_to_ptrofftype.
5752         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
5753         * varasm.c (array_size_for_constructor): Compute using double_ints.
5754
5755 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5756
5757         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
5758         when generating an integer result where possible.  Short-cut
5759         comparison against 0 also for QImode.
5760
5761 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5762
5763         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
5764         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
5765         prototype.
5766         * config/spu/spu.c (spu_legitimize_reload_address): New function.
5767         (spu_legitimate_address_p): Do not check displacement if the base
5768         is an eliminable stack register.
5769
5770 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
5771
5772         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
5773         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
5774         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
5775         m32c_preferred_output_reload_class): Remove.
5776         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
5777         Change rclass argument and return types to reg_class_t. Use
5778         reg_class_subset_p instead of class_sizes.
5779         (m32c_preferred_output_reload_class): Make static. Change rclass
5780         argument and return types to reg_class_t.
5781         (TARGET_PREFERRED_RELOAD_CLASS,
5782         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5783
5784 2011-08-16  Kai Tietz  <ktietz@redhat.com>
5785
5786         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
5787
5788 2011-08-16  Richard GUenther  <rguenther@suse.de>
5789
5790         PR tree-optimization/50082
5791         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
5792         warnings here, instead of ...
5793         (ssa_forward_propagate_and_combine): ... here.
5794         (forward_propagate_into_comparison_1): Adjust.
5795         (forward_propagate_into_comparison): Likewise.
5796         (forward_propagate_into_gimple_cond): Likewise.
5797         (forward_propagate_into_cond): Likewise.
5798
5799 2011-08-16  Andreas Schwab  <schwab@redhat.com>
5800
5801         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
5802         instead of ggc_alloc_zone_vec_rtvec_def.
5803
5804 2011-08-16  Richard Guenther  <rguenther@suse.de>
5805
5806         * tree.h (ptrofftype_p): New helper function.
5807         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
5808         offset verification.
5809         (verify_gimple_assign_binary): Likewise.
5810         * tree.c (build2_stat): Likewise.
5811         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
5812         (reset_evolution_in_loop): Likewise.
5813         * tree-chrec.h (build_polynomial_chrec): Likewise.
5814
5815 2011-08-16  Liang Wang  <lwang1@marvell.com>
5816
5817         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
5818         ggc_alloc_zone_vec_rtvec_def.
5819
5820 2011-08-16  Richard Guenther  <rguenther@suse.de>
5821
5822         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
5823         helper factored out from ...
5824         (extract_range_from_binary_expr_1): ... here.  Re-structure
5825         to not glob handling too different tree codes.
5826
5827 2011-08-15  Richard Henderson  <rth@redhat.com>
5828
5829         PR middle-end/50006
5830         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
5831         setting out to include allocate_stack named pattern as well.
5832         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
5833         * stmt.c (expand_stack_restore): Likewise.
5834
5835 2011-08-15  Richard Guenther  <rguenther@suse.de>
5836
5837         PR middle-end/50082
5838         * fold-const.c (maybe_canonicalize_comparison_1): Properly
5839         convert the modified operand to the other operand type.
5840         (fold_comparison): Call maybe_canonicalize_comparison_1 with
5841         useless conversions stripped from comparison operands.
5842
5843 2011-08-15  Richard Guenther  <rguenther@suse.de>
5844
5845         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
5846         (extract_range_from_unary_expr_1): Restructure.
5847
5848 2011-08-15  Richard Guenther  <rguenther@suse.de>
5849
5850         PR tree-optimization/50058
5851         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
5852         copy matching.
5853
5854 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5855
5856         PR target/50022
5857         * config/arm/arm.c (output_move_double): Add 2 parameters
5858         to count the number of insns emitted and whether to emit or not.
5859         Use the flag to decide when to emit and count number of instructions
5860         that will be emitted.
5861         Handle case where output_move_double might be called for calculating
5862         lengths with an invalid constant.
5863         (arm_count_output_move_double_insns): Define.
5864         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
5865         (output_move_double): Adjust prototype.
5866         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
5867         output_move_double.
5868         ("*movdi_vfp_cortexa8"): Likewise and add attribute
5869         for ce_count.
5870         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
5871         ("*movdf_soft_insn"): Likewise.
5872         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
5873         ("*cirrus_thumb2_movdi"): Likewise.
5874         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
5875         ("*cirrus_movdf_hard_insn"): Likewise.
5876         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
5877         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
5878         ("mov<mode>_internal VMMX"): Likewise.
5879         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
5880
5881 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
5882
5883         * config/i386/i386.c (ix86_expand_round_sse4): New function.
5884         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
5885         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
5886         for TARGET_ROUND.
5887
5888         (rint<mode>2): Simplify TARGET_ROUND check.
5889         (floor<mode>2): Ditto.
5890         (ceil<mode>2): Ditto.
5891         (btrunc<mode>2): Ditto.
5892
5893 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
5894
5895         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
5896         as mmix_preferred_output_reload_class.
5897
5898 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
5899
5900         * PR target/49903
5901         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
5902         (branch_unspec): New insn.
5903         (branch): Beauty farm.
5904         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
5905         to be IF_THEN_ELSE.
5906         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
5907         New static functions.
5908         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
5909         Use CONST_INT_P.  Beauty.
5910
5911 2011-08-12  Richard Henderson  <rth@redhat.com>
5912
5913         PR rtl-opt/49994
5914         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
5915         * sched-deps.c (init_deps): Clear it.
5916         (deps_analyze_insn): Consume it.
5917         (sched_analyze_insn): Fill it.
5918
5919 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5920
5921         PR target/48328
5922         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
5923         for tbh instructions.
5924
5925 2011-08-12  Diego Novillo  <dnovillo@google.com>
5926
5927         * data-streamer.h (streamer_write_zero): Rename from output_zero.
5928         (streamer_write_uhwi): Rename from lto_output_uleb128.
5929         (streamer_write_hwi): Rename from output_sleb128.
5930         (streamer_write_string): Rename from lto_output_string.
5931         (streamer_string_index): Rename from lto_string_index.
5932         (streamer_write_string_with_length): Rename from
5933         lto_output_string_with_length.
5934         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
5935         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
5936         (streamer_read_string): Rename from lto_input_string.
5937         (streamer_read_indexed_string): Rename from input_string_internal.
5938         (streamer_read_uhwi): Rename from lto_input_uleb128.
5939         (streamer_read_hwi): Rename from lto_input_sleb128.
5940         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
5941         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
5942         (streamer_write_enum): Rename from lto_output_enum.
5943         (streamer_read_enum): Rename from lto_input_enum.
5944         (streamer_write_record_start): Rename from output_record_start.
5945         (streamer_read_record_start): Rename from input_record_start.
5946         (streamer_write_bitpack): Rename from lto_output_bitpack.
5947         (streamer_read_bitpack): Rename from lto_input_bitpack.
5948         (streamer_write_char_stream): Rename from lto_output_1_stream.
5949         (streamer_read_uchar): Rename from lto_input_1_unsigned.
5950         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
5951         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
5952         (streamer_read_string_cst): Rename from input_string_cst.
5953         (streamer_read_chain): Rename from lto_input_chain.
5954         (streamer_alloc_tree): Rename from lto_materialize_tree.
5955         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
5956         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
5957         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
5958         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
5959         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
5960         (streamer_write_chain): Rename from lto_output_chain.
5961         (streamer_write_tree_header): Rename from lto_output_tree_header.
5962         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
5963         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
5964         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
5965         (streamer_write_builtin): Rename from lto_output_builtin_tree.
5966         (streamer_check_handled_ts_structures): Rename from
5967         check_handled_ts_structures.
5968         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
5969         (streamer_tree_cache_insert_at): Rename from
5970         lto_streamer_cache_insert_at.
5971         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
5972         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
5973         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
5974         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
5975         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
5976         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
5977         (write_identifier): Rename from output_identifier.
5978         (write_ts_common_tree_pointers): Rename from
5979         lto_output_ts_common_tree_pointers.
5980         (write_ts_vector_tree_pointers): Rename from
5981         lto_output_ts_vector_tree_pointers.
5982         (write_ts_complex_tree_pointers): Rename from
5983         lto_output_ts_complex_tree_pointers.
5984         (write_ts_decl_minimal_tree_pointers): Rename from
5985         lto_output_ts_decl_minimal_tree_pointers.
5986         (write_ts_decl_common_tree_pointers): Rename from
5987         lto_output_ts_decl_common_tree_pointers.
5988         (write_ts_decl_non_common_tree_pointers): Rename from
5989         lto_output_ts_decl_non_common_tree_pointers.
5990         (write_ts_decl_with_vis_tree_pointers): Rename from
5991         lto_output_ts_decl_with_vis_tree_pointers.
5992         (write_ts_field_decl_tree_pointers): Rename from
5993         lto_output_ts_field_decl_tree_pointers.
5994         (write_ts_function_decl_tree_pointers): Rename from
5995         lto_output_ts_function_decl_tree_pointers.
5996         (write_ts_type_common_tree_pointers): Rename from
5997         lto_output_ts_type_common_tree_pointers.
5998         (write_ts_type_non_common_tree_pointers): Rename from
5999         lto_output_ts_type_non_common_tree_pointers.
6000         (write_ts_list_tree_pointers): Rename from
6001         lto_output_ts_list_tree_pointers.
6002         (write_ts_vec_tree_pointers): Rename from
6003         lto_output_ts_vec_tree_pointers.
6004         (write_ts_exp_tree_pointers): Rename from
6005         lto_output_ts_exp_tree_pointers.
6006         (write_ts_block_tree_pointers): Rename from
6007         lto_output_ts_block_tree_pointers.
6008         (write_ts_binfo_tree_pointers): Rename from
6009         lto_output_ts_binfo_tree_pointers.
6010         (write_ts_constructor_tree_pointers): Rename from
6011         lto_output_ts_constructor_tree_pointers.
6012         (write_ts_target_option): Rename from lto_output_ts_target_option.
6013         (write_ts_translation_unit_decl_tree_pointers): Rename from
6014         lto_output_ts_translation_unit_decl_tree_pointers.
6015         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
6016         Rename from lto_streamer_cache_add_to_node_array.
6017         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
6018         (record_common_node): Rename from lto_record_common_node.
6019
6020         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
6021         declarations.
6022         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
6023         function.
6024         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
6025         unused function.
6026         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
6027         (ipa-reference.o): Likewise.
6028         * lto-section-out.c: Include data-streamer.h.
6029         * ipa-reference.c: Include data-streamer.h.
6030
6031 2011-08-12  Nick Clifton  <nickc@redhat.com>
6032
6033         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
6034         * doc/md.texi (cmpstrn): Note that the comparison stops if both
6035         fetched bytes are zero.
6036         (cmpstr): Likewise.
6037         (cmpmem): Note that the comparison does not stop if both of the
6038         fetched bytes are zero.
6039
6040 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
6041
6042         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
6043         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
6044         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
6045         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
6046         to integer_type_node.
6047         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
6048         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
6049         * builtins.c (expand_builtin_in): Ditto.
6050         (mathfn_built_in_1): Ditto.
6051         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
6052         BUILT_IN_IFLOOR.
6053         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
6054         BUILT_IN_IROUND.
6055         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
6056         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
6057         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
6058
6059 2011-08-12  Richard Guenther  <rguenther@suse.de>
6060
6061         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
6062
6063 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
6064
6065         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
6066
6067 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
6068
6069         * config/arm/arm.c (get_label_padding): New function.
6070         (create_fix_barrier, arm_reorg): Use it.
6071
6072 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
6073
6074         PR target/49781
6075         * config/i386/i386.md (*lea_5_zext): New.
6076         (*lea_6_zext): Ditto.
6077         * config/i386/predicates.md (const_32bit_mask): New predicate.
6078         (lea_address_operand): Reject AND.
6079         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
6080         const_32bit_mask immediate.
6081         (ix86_print_operand_address): Handle AND.
6082         (memory_address_length): Ditto.
6083
6084 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
6085             Brian Hackett  <bhackett1024@gmail.com>
6086
6087         * plugin.def: Add event for finish_decl.
6088         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
6089         * c-decl.c (finish_decl): Invoke callbacks on above event.
6090         * doc/plugins.texi: Document above event.
6091
6092 2011-08-11  Richard Guenther  <rguenther@suse.de>
6093
6094         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
6095         lookups, make looking through aggregate copies stronger.
6096
6097 2011-08-11  Richard Henderson  <rth@redhat.com>
6098
6099         PR bootstrap/50018
6100         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
6101
6102 2011-08-11  Richard Guenther  <rguenther@suse.de>
6103
6104         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
6105         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
6106         (vrp_visit_stmt): Likewise.
6107
6108 2011-08-11  Richard Guenther  <rguenther@suse.de>
6109
6110         PR middle-end/50040
6111         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
6112         load of the other piece with TREE_NO_WARNING.
6113         * tree-flow.h (warn_uninit): Adjust prototype.
6114         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
6115         the base variable and the expression that is used separately.
6116         Properly query all TREE_NO_WARNING flags.
6117         (struct walk_data): Remove.
6118         (warn_uninitialized_var): Likewise.
6119         (warn_uninitialized_vars): Do not walk gimple pieces but simply
6120         look at all SSA uses of the statement.  Handle unused memory
6121         separately.
6122         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
6123
6124 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
6125
6126         * config/rx/rx.md (movsicc): Allow register to register transfers.
6127         (*movsicc): Likewise.
6128         (*stcc): Restrict this pattern to EQ and NE compares.
6129         (*stcc_reg): New pattern.  Works for any comparison but only for
6130         register transfers.
6131
6132 2011-08-11   Diego Novillo  <dnovillo@google.com>
6133
6134         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
6135         Call stream_write_tree instead of output_record_start.
6136         (lto_output_ts_binfo_tree_pointers): Likewise.
6137
6138         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
6139         Convert it to a macro.
6140         (stream_read_tree): Likewise.
6141
6142         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
6143         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
6144
6145         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
6146         and tree_read_bitfields.
6147         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
6148         (lto_write_tree): Call it.
6149         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
6150         * streamer-hooks.h (struct streamer_hooks): Remove fields
6151         name, is_streamable and alloc_tree. Update all users.
6152         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
6153         (lto_materialize_tree): ... here.
6154         Handle CALL_EXPR codes.
6155         Remove call to lto_streamer_cache_append.
6156         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
6157         * tree-streamer.h (tree_read_bitfields): Declare.
6158
6159         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
6160         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
6161         * tree-streamer.h (stream_read_tree): New.  Replace all calls
6162         to lto_input_tree with it.
6163         (stream_write_tree): New.  Replace all calls to lto_output_tree,
6164         lto_output_tree_ref and lto_output_tree_or_ref with it.
6165         * lto-streamer-in.c (lto_read_tree): Inline code from
6166         lto_streamer_read_tree.
6167         (lto_input_tree): Move from tree-streamer-in.c.
6168         * lto-streamer-out.c (lto_output_tree_ref): Make static.
6169         Remove handling of NULL values for EXPR.
6170         Do not handle EXPRs that are not indexable.
6171         (lto_write_tree): Move from tree-streamer-out.c.
6172         Inline lto_streamer_write_tree.
6173         (lto_output_tree): Move from tree-streamer-out.c.
6174         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
6175         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
6176         (lto_preload_common_nodes): Likewise.
6177         Remove assertions and adjustments for nodes
6178         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
6179         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
6180         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
6181         * lto-streamer.h (lto_input_tree): Declare.
6182         (lto_output_tree_ref): Remove.
6183         * streamer-hooks.h (struct streamer_hooks): Remove fields
6184         preload_common_nodes, indexable_with_decls_p,
6185         pack_value_fields, unpack_value_fields and output_tree_header.
6186         Update all users.
6187         * tree-streamer-in.c (lto_materialize_tree): Make extern.
6188         (lto_input_tree_pointers): Likewise.
6189         (lto_read_tree): Move to lto-streamer-in.c.
6190         (lto_input_integer_cst): Make extern.
6191         (lto_get_pickled_tree): Likewise.
6192         (lto_get_builtin_tree): Likewise.
6193         (lto_input_tree): Move to lto-streamer-in.c.
6194         * tree-streamer-out.c (pack_value_fields): Make extern.
6195         (lto_output_tree_or_ref): Remove.  Replace all callers with
6196         calls to stream_write_tree.
6197         (lto_output_builtin_tree): Make extern.
6198         (lto_streamer_write_tree): Inline into lto_write_tree.
6199         (lto_output_tree_pointers): Make extern.
6200         (lto_output_tree_header): Likewise.
6201         (lto_output_integer_cst): Likewise.
6202         (lto_write_tree): Move to lto-streamer-out.c.
6203         (lto_output_tree): Likewise.
6204         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
6205         (preload_common_nodes): Likewise.
6206         (lto_streamer_cache_create): Call it.
6207         * tree-streamer.h: Include streamer-hooks.h.
6208         (stream_write_tree): New.
6209         (stream_read_tree): New.
6210         (lto_input_tree): Remove.
6211         (lto_materialize_tree): Declare.
6212         (lto_input_tree_pointers): Declare.
6213         (lto_get_pickled_tree): Declare.
6214         (lto_get_builtin_tree): Declare.
6215         (lto_input_integer_cst): Declare.
6216         (lto_output_tree_header): Declare.
6217         (pack_value_fields): Declare.
6218         (lto_output_tree_pointers): Declare.
6219         (lto_output_integer_cst): Declare.
6220         (lto_output_builtin_tree): Declare.
6221
6222 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6223
6224         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
6225         only if producer writes to the register given by regno.
6226
6227 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6228             Alexander Monakov  <amonakov@ispras.ru>
6229
6230         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
6231         (sched_get_condition_with_rev_uncached): ... this.  Factor out
6232         condition caching logic into ...
6233         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
6234         attempt to use cache for instructions with zero luid.
6235         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
6236         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
6237
6238 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6239
6240         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
6241         get_seqno_for_a_jump.  Update the caller.
6242         (get_seqno_by_succs): New.  Use it ...
6243         (get_seqno_for_a_jump): ... here to find a seqno if looking at
6244         predecessors was not sufficient.
6245         (get_seqno_by_preds): Include head in iteration range, exclude insn.
6246
6247 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
6248
6249         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
6250
6251 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6252
6253         * sel-sched-ir.h (register_unavailable_p): Declare.
6254         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
6255         (set_unavailable_target_for_expr): ... here to properly test
6256         availability of a register.
6257         (speculate_expr): Ditto.
6258         * sel-sched.c (substitute_reg_in_expr): Ditto.
6259         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
6260
6261 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6262
6263         * sel-sched.c (verify_target_availability): Fix usage of
6264         hard_regno_nregs.
6265
6266 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
6267
6268         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
6269         recognized by cannot_copy_insn_p hook and volatile instructions.
6270
6271 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
6272
6273         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
6274
6275 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
6276
6277         * doc/md.texi (define_bypass): Say that the instruction names can
6278         be filename-style globs.
6279         * Makefile.in (FNMATCH_H): Define.
6280         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
6281         * genattrtab.c: Include fnmatch.h.
6282         (bypass_list): Change field name from "insn" to "pattern".
6283         (gen_bypass_1): Update accordingly.
6284         (process_bypasses): Use fnmatch to check for matches between
6285         insn reservations and define_bypasses.
6286         * genautomata.c: Include fnmatch.h.
6287         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
6288         and out_pattern respectively.
6289         (gen_bypass, insert_bypass): Update accordingly.
6290         (for_each_matching_insn, process_bypass_2, process_bypass_1)
6291         (process_bypass): New functions.
6292         (process_decls): Use process_bypass.  Update after field name changes.
6293
6294 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
6295
6296         PR target/49687
6297         * config/avr/avr.md (smulqi3_highpart): New insn.
6298         (umulqi3_highpart): New insn.
6299         (*subqi3.ashiftrt7): New insn.
6300         (smulhi3_highpart): New expander.
6301         (umulhi3_highpart): Nex expander.
6302         (*smulhi3_highpart_call): New insn.
6303         (*umulhi3_highpart_call): New insn.
6304         (extend_u): New code attribute.
6305         (extend_prefix): Rename code attribute to extend_su.
6306         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
6307         widening QI/HI multiply.
6308
6309 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
6310
6311         PR tree-optimization/50039
6312         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
6313         that DEF_STMT has a stmt_vec_info.
6314
6315 2011-08-10  Richard Guenther  <rguenther@suse.de>
6316
6317         * tree.h (can_trust_pointer_alignment): Remove.
6318         * builtins.c (can_trust_pointer_alignment): Remove.
6319
6320 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
6321
6322         * c-typeck.c (scalar_to_vector): New function. Try scalar to
6323         vector conversion.
6324         (stv_conv): New enum for scalar_to_vector return type.
6325         (build_binary_op): Adjust.
6326         * doc/extend.texi: Description of scalar to vector expansion.
6327
6328 2011-08-10  Richard Guenther  <rguenther@suse.de>
6329
6330         * tree.h (get_pointer_alignment): Remove max-align argument.
6331         (get_object_alignment): Likewise.
6332         * builtins.c (get_object_alignment_1): Adjust.
6333         (get_object_alignment): Remove max-align argument.
6334         (get_pointer_alignment): Likewise.
6335         (expand_builtin_strlen): Adjust.
6336         (expand_builtin_memcpy): Likewise.
6337         (expand_builtin_mempcpy_args): Likewise.
6338         (expand_builtin_strncpy): Likewise.
6339         (expand_builtin_memset_args): Likewise.
6340         (expand_builtin_memcmp): Likewise.
6341         (expand_builtin_strcmp): Likewise.
6342         (expand_builtin_strncmp): Likewise.
6343         (get_builtin_sync_mem): Likewise.
6344         (fold_builtin_memset): Likewise.
6345         (fold_builtin_memory_op): Likewise.
6346         (expand_builtin_memory_chk): Likewise.
6347         * emit-rtl.c (get_mem_align_offset): Likewise.
6348         (set_mem_attributes_minus_bitpos): Likewise.
6349         * expr.c (expand_assignment): Likewise.
6350         (expand_expr_real_1): Likewise.
6351         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
6352         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
6353         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
6354         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
6355         * value-prof.c (gimple_stringops_transform): Likewise.
6356
6357 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
6358
6359         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
6360         * doc/tm.texi: Regenerate.
6361
6362 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
6363
6364         PR target/29560
6365         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
6366         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
6367         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
6368         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
6369         shift target is unused.
6370
6371 2011-08-10  Richard Guenther  <rguenther@suse.de>
6372
6373         PR tree-optimization/49937
6374         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
6375         using get_object_alignment_1.
6376
6377 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
6378
6379         * config/i386/i386.c (ix86_emit_i387_round): New function.
6380         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
6381         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
6382         Use ix86_emit_i387_round to expand round function for i387 math.
6383         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
6384         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
6385
6386 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6387
6388         * config/sync.c: Move to ../libgcc.
6389         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
6390         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
6391         Remove.
6392
6393 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
6394
6395         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
6396         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
6397         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
6398         Change 'from' and 'to' arguments type to reg_class_t.
6399         (TARGET_REGISTER_MOVE_COST): Define.
6400
6401 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
6402
6403         PR target/50026
6404         Revert:
6405         PR rtl-optimization/49990
6406         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
6407         ignore classes which can not change mode.
6408         (find_costs_and_classes): Ditto.
6409
6410 2011-08-09  Richard Guenther  <rguenther@suse.de>
6411
6412         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
6413         information for ranges with only negative values.
6414         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
6415         BIT_AND_EXPR handling to handle ranges with negative values.
6416
6417 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
6418
6419         * config/i386/i386.c: Remove traling spaces.
6420         * config/i386/sse.md: Likewise.
6421         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
6422         (*fma_fmsub_<mode>): Likewise.
6423         (*fma_fnmadd_<mode>): Likewise.
6424         (*fma_fnmsub_<mode>): Likewise.
6425
6426 2011-08-09  Nick Clifton  <nickc@redhat.com>
6427
6428         * config/rx/rx.md: Disable extender peepholes at -O3.
6429
6430 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
6431
6432         PR target/49781
6433         * config/i386/i386.md (reload_noff_load): New.
6434         (reload_noff_store): Ditto.
6435         * config/i386/i386.c (ix86_secondary_reload): Use
6436         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
6437         double-word moves from/to non-offsetable addresses instead of
6438         generating XMM temporary.
6439
6440 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
6441
6442         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
6443
6444 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
6445
6446         PR tree-optimization/50014
6447         * tree-vect-loop.c (vectorizable_reduction): Get def type before
6448         calling vect_get_vec_def_for_stmt_copy ().
6449
6450 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
6451
6452         PR rtl-optimization/49990
6453         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
6454         ignore classes which can not change mode.
6455         (find_costs_and_classes): Ditto.
6456
6457 2011-08-08  Richard Henderson  <rth@redhat.com>
6458
6459         PR middle-end/49990
6460         * config/i386/i386.c (ix86_expand_prologue): Call
6461         for SEH target gen_prologue_use instead of gen_blockage
6462         at prologue's end.
6463
6464 2011-08-08  Martin Jambor  <mjambor@suse.cz>
6465
6466         PR middle-end/49923
6467         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
6468         memory alignment.
6469
6470 2011-08-08   Diego Novillo  <dnovillo@google.com>
6471
6472         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
6473         (DATA_STREAMER_H): New.
6474         (GIMPLE_STREAMER_H): New.
6475         (TREE_STREAMER_H): New.
6476         (STREAMER_HOOKS_H): New.
6477         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
6478         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
6479         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
6480         (data-streamer.o): New.
6481         (data-streamer-in.o): New.
6482         (data-streamer-out.o): New.
6483         (gimple-streamer-in.o): New.
6484         (gimple-streamer-out.o): New.
6485         (streamer-hooks.o): New.
6486         (tree-streamer.o): New.
6487         (tree-streamer-in.o): New.
6488         (tree-streamer-out.o): New.
6489         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
6490         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
6491         GIMPLE_STREAMER_H and TREE_STREAMER_H.
6492         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
6493         GIMPLE_STREAMER_H and TREE_STREAMER_H.
6494         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
6495         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
6496         (ipa-inline-analysis.o): Likewise.
6497         (ipa-pure-const.o): Likewise.
6498         * data-streamer-in.c: New.
6499         * data-streamer-out.c: New.
6500         * data-streamer.c: New.
6501         * data-streamer.h: New.
6502         * gimple-streamer-in.c: New.
6503         * gimple-streamer-out.c: New.
6504         * gimple-streamer.h: New.
6505         * ipa-inline-analysis.c: Include data-streamer.h.
6506         * ipa-prop.c: Include data-streamer.h.
6507         * ipa-pure-const.c: Include data-streamer.h.
6508         * lto-cgraph.c: Include data-streamer.h.
6509         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
6510         (lto_input_widest_uint_uleb128): Likewise.
6511         (lto_input_sleb128): Likewise.
6512         (bp_unpack_var_len_unsigned): Likewise.
6513         (bp_unpack_var_len_int): Likewise.
6514         * lto-section-out.c (lto_output_uleb128_stream): Move to
6515         data-streamer-out.c.
6516         (lto_output_widest_uint_uleb128_stream): Likewise.
6517         (lto_output_sleb128_stream): Likewise.
6518         (bp_pack_var_len_unsigned): Likewise.
6519         (bp_pack_var_len_int): Likewise.
6520         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
6521         (struct string_slot): Remove.  Update all users.
6522         (lto_tag_check_set): Make extern.
6523         (lto_tag_check_range): Move to lto-streamer.h.
6524         (lto_tag_check): Likewise.
6525         (hash_string_slot_node): Remove.  Update all users.
6526         (eq_string_slot_node): Remove.  Update all users.
6527         (string_for_index): Move to data-streamer-in.c
6528         (input_string_internal): Likewise.
6529         (input_string_cst): Move to tree-streamer-in.c.
6530         (input_identifier): Likewise.
6531         (lto_input_string): Move to data-streamer-in.c
6532         (input_record_start): Move to data-streamer.h
6533         (canon_file_name): Use new definition of struct string_slot
6534         from data-streamer.h.  Set S_SLOT.LEN.
6535         (lto_input_location): Make extern.
6536         (lto_input_chain): Move to tree-streamer-in.c.
6537         (lto_init_eh): Make extern.
6538         (input_phi): Move to gimple-streamer-in.c.
6539         (input_gimple_stmt): Likewise.
6540         (input_bb): Likewise.
6541         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
6542         (unpack_ts_real_cst_value_fields): Likewise.
6543         (unpack_ts_fixed_cst_value_fields): Likewise.
6544         (unpack_ts_decl_common_value_fields): Likewise.
6545         (unpack_ts_decl_wrtl_value_fields): Likewise.
6546         (unpack_ts_decl_with_vis_value_fields): Likewise.
6547         (unpack_ts_function_decl_value_fields): Likewise.
6548         (unpack_ts_type_common_value_fields): Likewise.
6549         (unpack_ts_block_value_fields): Likewise.
6550         (unpack_ts_translation_unit_decl_value_fields): Likewise.
6551         (unpack_value_fields): Likewise.
6552         (lto_materialize_tree): Likewise.
6553         (lto_input_ts_common_tree_pointers): Likewise.
6554         (lto_input_ts_vector_tree_pointers): Likewise.
6555         (lto_input_ts_complex_tree_pointers): Likewise.
6556         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
6557         (lto_input_ts_decl_common_tree_pointers): Likewise.
6558         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
6559         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
6560         (lto_input_ts_field_decl_tree_pointers): Likewise.
6561         (lto_input_ts_function_decl_tree_pointers): Likewise.
6562         (lto_input_ts_type_common_tree_pointers): Likewise.
6563         (lto_input_ts_type_non_common_tree_pointers): Likewise.
6564         (lto_input_ts_list_tree_pointers): Likewise.
6565         (lto_input_ts_vec_tree_pointers): Likewise.
6566         (lto_input_ts_exp_tree_pointers): Likewise.
6567         (lto_input_ts_block_tree_pointers): Likewise.
6568         (lto_input_ts_binfo_tree_pointers): Likewise.
6569         (lto_input_ts_constructor_tree_pointers): Likewise.
6570         (lto_input_ts_target_option): Likewise.
6571         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
6572         (lto_input_tree_pointers): Likewise.
6573         (lto_get_pickled_tree): Likewise.
6574         (lto_get_builtin_tree): Likewise.
6575         (lto_read_tree): Likewise.
6576         (lto_input_integer_cst): Likewise.
6577         (lto_input_tree): Likewise.
6578         * lto-streamer-out.c: Include data-streamer.h,
6579         gimple-streamer.h and streamer-hooks.h.
6580         (struct string_slot): Move to data-streamer.h.
6581         (hash_string_slot_node): Likewise.
6582         (eq_string_slot_node): Likewise.
6583         (lto_string_index): Move to data-streamer-out.c.
6584         (lto_output_string_with_length): Likewise.
6585         (lto_output_string): Likewise.
6586         (output_string_cst): Move to tree-streamer-out.c.
6587         (output_identifier): Likewise.
6588         (output_zero): Move to data-streamer-out.c
6589         (output_uleb128): Likewise.
6590         (output_sleb128): Likewise.
6591         (output_record_start): Move to data-streamer.h
6592         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
6593         (pack_ts_real_cst_value_fields): Likewise.
6594         (pack_ts_fixed_cst_value_fields): Likewise.
6595         (pack_ts_decl_common_value_fields): Likewise.
6596         (pack_ts_decl_wrtl_value_fields): Likewise.
6597         (pack_ts_decl_with_vis_value_fields): Likewise.
6598         (pack_ts_function_decl_value_fields): Likewise.
6599         (pack_ts_type_common_value_fields): Likewise.
6600         (pack_ts_block_value_fields): Likewise.
6601         (pack_ts_translation_unit_decl_value_fields): Likewise.
6602         (pack_value_fields): Likewise.
6603         (lto_output_chain): Likewise.
6604         (lto_output_ts_common_tree_pointers): Likewise.
6605         (lto_output_ts_vector_tree_pointers): Likewise.
6606         (lto_output_ts_complex_tree_pointers): Likewise.
6607         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
6608         (lto_output_ts_decl_common_tree_pointers): Likewise.
6609         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
6610         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
6611         (lto_output_ts_field_decl_tree_pointers): Likewise.
6612         (lto_output_ts_function_decl_tree_pointers): Likewise.
6613         (lto_output_ts_type_common_tree_pointers): Likewise.
6614         (lto_output_ts_type_non_common_tree_pointers): Likewise.
6615         (lto_output_ts_list_tree_pointers): Likewise.
6616         (lto_output_ts_vec_tree_pointers): Likewise.
6617         (lto_output_ts_exp_tree_pointers): Likewise.
6618         (lto_output_ts_block_tree_pointers): Likewise.
6619         (lto_output_ts_binfo_tree_pointers): Likewise.
6620         (lto_output_ts_constructor_tree_pointers): Likewise.
6621         (lto_output_ts_target_option): Likewise.
6622         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
6623         (lto_output_tree_pointers): Likewise.
6624         (lto_output_tree_header): Likewise.
6625         (lto_output_builtin_tree): Likewise.
6626         (lto_write_tree): Likewise.
6627         (lto_output_integer_cst): Likewise.
6628         (lto_output_tree): Likewise.
6629         (output_phi): Move to gimple-streamer-out.c.
6630         (output_gimple_stmt): Likewise.
6631         (output_bb): Likewise.
6632         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
6633         (streamer_hooks): Move to streamer-hooks.c.
6634         (check_handled_ts_structures): Move to tree-streamer.c
6635         (lto_streamer_cache_add_to_node_array): Likewise.
6636         (lto_streamer_cache_insert_1): Likewise.
6637         (lto_streamer_cache_insert): Likewise.
6638         (lto_streamer_cache_insert_at): Likewise.
6639         (lto_streamer_cache_append): Likewise.
6640         (lto_streamer_cache_lookup): Likewise.
6641         (lto_streamer_cache_get): Likewise.
6642         (lto_record_common_node): Likewise.
6643         (lto_preload_common_nodes): Likewise.
6644         (lto_streamer_cache_create): Likewise.
6645         (lto_streamer_cache_delete): Likewise.
6646         (streamer_hooks_init): Move to streamer-hooks.c.
6647         * lto-streamer.h: Include diagnostic.h
6648         (struct output_block, struct lto_input_block,
6649         struct data_in, struct bitpack_d): Remove forward declarations.
6650         (struct bitpack_d): Move to data-streamer.h.
6651         (struct lto_streamer_cache_d): Move to tree-streamer.h.
6652         (struct streamer_hooks): Move to streamer-hooks.h.
6653         (bp_pack_var_len_unsigned): Move to data-streamer.h.
6654         (bp_pack_var_len_int): Likewise.
6655         (bp_unpack_var_len_unsigned): Likewise.
6656         (bp_unpack_var_len_int): Likewise.
6657         (lto_input_location): Declare.
6658         (lto_tag_check_set): Declare.
6659         (lto_init_eh): Declare.
6660         (lto_output_tree_ref): Declare.
6661         (lto_output_location): Declare.
6662         (bitpack_create): Move to data-streamer.h.
6663         (bp_pack_value): Likewise.
6664         (lto_output_bitpack): Likewise.
6665         (lto_input_bitpack): Likewise.
6666         (bp_unpack_value): Likewise.
6667         (lto_output_1_stream): Likewise.
6668         (lto_input_1_unsigned): Likewise.
6669         (lto_output_int_in_range): Likewise.
6670         (lto_input_int_in_range): Likewise.
6671         (bp_pack_int_in_range): Likewise.
6672         (bp_unpack_int_in_range): Likewise.
6673         (lto_output_enum): Likewise.
6674         (lto_input_enum): Likewise.
6675         (bp_pack_enum): Likewise.
6676         (bp_unpack_enum): Likewise.
6677         * streamer-hooks.c: New.
6678         * streamer-hooks.h: New.
6679         * tree-streamer-in.c: New.
6680         * tree-streamer-out.c: New.
6681         * tree-streamer.c: New.
6682         * tree-streamer.h: New.
6683
6684 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6685
6686         * gthr-posix95.h: Remove.
6687         * gthr.h [_PTHREADS95]: Remove.
6688         * configure.ac (enable_threads): Remove posix95.
6689         * configure: Regenerate.
6690         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
6691
6692 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
6693
6694         PR target/49781
6695         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
6696         SImode addresses.
6697         (ix86_print_operand_address): Handle zero-extended addresses.
6698         (memory_address_length): Add length of addr32 prefix for
6699         zero-extended addresses.
6700         (ix86_secondary_reload): Handle moves to/from double-word general
6701         registers from/to zero-extended addresses.
6702         * config/i386/predicates.md (lea_address_operand): Reject
6703         zero-extended operands.
6704
6705 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
6706
6707         PR other/48007
6708         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
6709
6710         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
6711         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
6712
6713         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
6714         (_Unwind_Context_Reg_Val): Likewise.
6715         (_Unwind_Get_Unwind_Word): Likewise.
6716         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
6717         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
6718         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
6719         for EXTENDED_CONTEXT_BIT.
6720         (__frame_state_for): Likewise.
6721         (uw_init_context_1): Likewise.
6722         (_Unwind_GetGR): Updated.
6723         (_Unwind_SetGR): Likewise.
6724         (_Unwind_GetGRPtr): Likewise.
6725         (_Unwind_SetGRPtr): Likewise.
6726         (_Unwind_SetGRValue): Likewise.
6727         (_Unwind_GRByValue): Likewise.
6728         (uw_install_context_1): Likewise.
6729
6730         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
6731         ASSUME_EXTENDED_UNWIND_CONTEXT.
6732         * doc/tm.texi: Regenerated.
6733
6734 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6735
6736         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
6737
6738 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6739
6740         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
6741         Linux/GNU-specific.
6742         (DEC Alpha Options, -mtune): Likewise.
6743         (MIPS Options, -march): native is supported on IRIX.
6744
6745 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6746
6747         * config/sparc/driver-sparc.c: New file.
6748         * config/sparc/x-sparc: New file.
6749         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
6750         * config/sparc/sparc.opt (native): New value for enum processor_type.
6751         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
6752         * config/sparc/sparc.c (sparc_option_override): Abort if
6753         PROCESSOR_NATIVE gets here.
6754         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
6755         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
6756         DRIVER_SELF_SPECS): Define.
6757         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
6758         (SPARC Options, -mtune): Likewise.
6759         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
6760         Substitute result.
6761         * configure: Regenerate.
6762         * Makefile.in (EXTRA_GCC_LIBS): Set.
6763         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
6764         (cpp$(exeext)): Likewise.
6765
6766 2011-08-08  Richard Guenther  <rguenther@suse.de>
6767
6768         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
6769         split out from ...
6770         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
6771         by composition.
6772
6773 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
6774
6775         PR tree-optimization/50005
6776         * ipa-inline-analysis (remap_predicate): Add cast to
6777         silence signed/unsigned comparison warning.
6778
6779 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
6780
6781         * modulo-sched.c (get_sched_window): Use a table for the debug output.
6782         Print the current ii.
6783         (sms_schedule_by_order): Reduce whitespace in dump line.
6784
6785 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
6786
6787         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
6788         and one loop for successors.  Fix upper bound of memory range.
6789
6790 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
6791
6792         PR target/50001
6793         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
6794         (TARGET_INSTANTIATE_DECLS): New define.
6795
6796 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
6797             Mikael Morin   <mikael.morin@sfr.fr>
6798
6799         * Makefile.in (INCLUDES_FOR_TARGET): New.
6800         (LIBGCC2_CFLAGS): Use it.
6801         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
6802
6803 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
6804
6805         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
6806         frame->save_regs_using_mov calculation.
6807
6808 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
6809
6810         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
6811         * config/i386/sse.md (castmode): New mode attribute.
6812         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
6813         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
6814
6815 2011-08-05  Jan Hubicka  <jh@suse.cz>
6816
6817         PR middle-end/49494
6818         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
6819
6820 2011-08-05  Jan Hubicka  <jh@suse.cz>
6821
6822         PR middle-end/49500
6823         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
6824         handle aliases.
6825         (create_emultls_var):New function.
6826         (ipa_lower_emutls): Handle aliases correctly.
6827
6828 2011-08-05  Jan Hubicka  <jh@suse.cz>
6829
6830         PR middle-end/49735
6831         * ipa-inline.c (recursive_inlining): Look through aliases.
6832
6833 2011-08-05  Jason Merrill  <jason@redhat.com>
6834
6835         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
6836         declarations to beginning of function.
6837
6838 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
6839
6840         PR rtl-optimization/49900
6841         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
6842         ensure basic blocks stay in the same order.
6843
6844 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
6845
6846         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
6847         store_bit_field.
6848         (s390_expand_atomic): Same.
6849
6850 2011-08-05  Richard Henderson  <rth@redhat.com>
6851
6852         PR rtl-opt/49977
6853         * dwarf2cfi.c (scan_insn_after): Split out of ...
6854         (scan_trace): ... here.  Correctly place notes wrt sequences.
6855
6856 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6857             Richard Henderson  <rth@redhat.com>
6858
6859         PR rtl-opt/49982
6860         * expr.c (fixup_args_size_notes): Look through no-op moves.
6861
6862 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6863
6864         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
6865         of "m" for operand 0.  Add type and mode attribute.
6866         (*pushxf_nointeger"): Use "<" constraint for operand 0.
6867         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
6868         constraint instead of "o" for opreand 1.
6869         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
6870         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
6871         operand 0, alternative 4.
6872         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
6873
6874 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6875
6876         * config/i386/predicates.md (lea_address_operand): Rename from
6877         no_seg_address_operand.
6878         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
6879         (*lea_1_zext): Ditto.
6880         (*lea_2): Ditto.
6881         (*lea_2_zext): Ditto.
6882
6883 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6884
6885         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
6886         parts.base and parts.index.
6887         * config/i386/predicates.md (aligned_operand): Ditto.
6888         (cmpxchg8b_pic_memory_operand): Ditto.
6889
6890 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6891
6892         * config/soft-fp: Move to ../libgcc.
6893         * Makefile.in (SFP_MACHINE): Remove.
6894         (libgcc-support): Remove $(SFP_MACHINE) dependency.
6895         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
6896         * config/arm/t-arm-softfp: Move to
6897         ../libgcc/config/arm/t-softfp.
6898         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
6899         * config/c6x/t-c6x-softfp: Remove.
6900         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
6901         * config/i386/t-fprules-softfp: Move to
6902         ../libgcc/config/t-softfp-tf.
6903         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
6904         * config/ia64/t-fprules-softfp: Remove.
6905         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
6906         * config/lm32/t-fprules-softfp: Remove.
6907         * config/moxie/sfp-machine.h: Remove.
6908         * config/moxie/t-moxie-softfp: Remove.
6909         * config/rs6000/darwin-ldouble-format: Move to
6910         ../libgcc/config/rs6000/ibm-ldouble-format.
6911         * config/rs6000/darwin-ldouble.c: Move to
6912         ../libgcc/config/rs6000/ibm-ldouble.c
6913         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
6914         * config/rs6000/libgcc-ppc64.ver: Likewise.
6915         * config/rs6000/sfp-machine.h: Likewise.
6916         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
6917         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
6918         (LIB2FUNCS_EXTRA): Remove.
6919         (TARGET_LIBGCC2_CFLAGS): Remove.
6920         * config/rs6000/t-aix52: Likewise
6921         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
6922         $(srcdir)/config/rs6000/darwin-ldouble.c.
6923         (SHLIB_MAPFILES): Remove.
6924         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
6925         $(srcdir)/config/rs6000/darwin-ldouble.c.
6926         * config/rs6000/t-fprules-softfp: Move to
6927         ../libgcc/config/t-softfp-sfdf.
6928         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
6929         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
6930         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
6931         $(srcdir)/config/rs6000/darwin-ldouble.c.
6932         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
6933         * config/score/t-score-softfp: Remove.
6934         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
6935         soft-fp/t-softfp from tmake_file.
6936         (arm*-*-uclinux*): Likewise.
6937         (arm*-*-ecos-elf): Likewise.
6938         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
6939         (arm*-*-rtems*): Likewise.
6940         (arm*-*-elf): Likewise.
6941         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
6942         tmake_file.
6943         (moxie-*-uclinux*): Likewise.
6944         (moxie-*-rtems*): Likewise.
6945         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
6946         tmake_file.
6947         (lm32-*-rtems*): Likewise.
6948         (lm32-*-uclinux*): Likewise.
6949         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
6950         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
6951         (powerpc-*-linux*, powerpc64-*-linux*): Remove
6952         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
6953         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
6954         tmake_file.
6955         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
6956         tmake_file.
6957         (tic6x-*-uclinux): Likewise.
6958         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
6959         soft-fp/t-softfp from tmake_file.
6960         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
6961         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
6962         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
6963         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
6964         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
6965
6966 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6967
6968         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
6969         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
6970         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
6971         TPBIT, TPBIT_FUNCS.
6972         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
6973         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
6974         Remove.
6975         * config/arm/t-vxworks: Likewise.
6976         * config/arm/t-wince-pe: Likewise.
6977         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
6978         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6979         * config/bfin/t-bfin-elf: Likewise.
6980         * config/bfin/t-bfin-linux: Likewise.
6981         * config/bfin/t-bfin-uclinux: Likewise.
6982         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
6983         Remove.
6984         * config/fr30/t-fr30: Likewise.
6985         * config/frv/t-frv: Likewise.
6986         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
6987         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6988         * config/m32c/t-m32c: Likewise.
6989         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
6990         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6991         * config/mcore/t-mcore: Likewise.
6992         * config/mep/t-mep: Likewise.
6993         * config/microblaze/t-microblaze: Likewise.
6994         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
6995         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6996         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
6997         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6998         * config/mn10300/t-linux: Remove.
6999         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
7000         * config/pdp11/t-pdp11: Likewise.
7001         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
7002         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
7003         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
7004         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
7005         * config/rs6000/t-aix52: Likewise.
7006         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
7007         $(srcdir)/config/rs6000/ppc64-fp.c.
7008         * config/rs6000/t-fprules-fpbit: Remove.
7009         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
7010         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
7011         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
7012         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
7013         * config/sparc/t-elf: Likewise.
7014         * config/sparc/t-leon: Likewise.
7015         * config/sparc/t-leon3: Likewise.
7016         * config/spu/t-spu-elf: Likewise.
7017         (DPBIT_FUNCS): Remove.
7018         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
7019         * config/v850/t-v850: Likewise.
7020         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
7021         (avr-*-*): Likewise.
7022         (h8300-*-rtems*): Set libgcc_tm_file.
7023         (h8300-*-elf*): Likewise.
7024         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
7025         tmake_file.
7026         (powerpc-*-eabisim*): Likewise.
7027         (powerpc-*-elf*): Likewise.
7028         (powerpc-*-eabialtivec*): Likewise.
7029         (powerpc-xilinx-eabi*): Likewise.
7030         (powerpc-*-eabi*): Likewise.
7031         (powerpc-*-rtems*): Likewise.
7032         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
7033         (powerpcle-*-elf*): Likewise.
7034         (powerpcle-*-eabisim*): Likewise.
7035         (powerpcle-*-eabi*): Likewise.
7036         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
7037         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
7038         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
7039         Remove.
7040
7041 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7042
7043         * Makefile.in (UNWIND_H): Remove.
7044         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
7045         ../libgcc/Makefile.in.
7046         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
7047         (LIBUNWINDDEP): Remove.
7048         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
7049         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
7050         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
7051         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
7052         Don't copy $(UNWIND_H).
7053         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
7054         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
7055         * aclocal.m4: Regenerate.
7056         * configure: Regenerate.
7057         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
7058         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
7059         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
7060         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
7061         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
7062         * config/arm/libunwind.S, config/arm/pr-support.c,
7063         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
7064         ../libgcc/config/arm.
7065         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
7066         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
7067         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
7068         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
7069         ($(T)frvend$(objext)): Likewise.
7070         * config/ia64/t-glibc (LIB2ADDEH): Remove.
7071         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
7072         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
7073         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
7074         ../libgcc/config/ia64.
7075         * config/ia64/t-hpux (LIB2ADDEH): Remove.
7076         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
7077         * config/ia64/t-vms (LIB2ADDEH): Remove.
7078         * config/ia64/vms.h (UNW_IVMS_MODE,
7079         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
7080         * config/picochip/t-picochip (LIB2ADDEH): Remove.
7081         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
7082         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
7083         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
7084         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
7085         $(srcdir)/../libgcc to refer to unwinder sources.
7086         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
7087         * config/t-darwin (LIB2ADDEH): Remove.
7088         * config/t-freebsd (LIB2ADDEH): Remove.
7089         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
7090         * config/t-libunwind-elf: Move to ../libgcc/config.
7091         * config/t-linux (LIB2ADDEH): Remove.
7092         * config/t-sol2 (LIB2ADDEH): Remove.
7093         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
7094         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
7095
7096 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
7097
7098         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
7099
7100         * doc/invoke.texi: Document core-avx-i.
7101
7102 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7103
7104         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
7105
7106 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
7107
7108         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
7109         result of multiple results reduction when extracting the final
7110         value using scalar code.
7111
7112 2011-08-05  Richard Guenther  <rguenther@suse.de>
7113
7114         PR tree-optimization/49984
7115         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
7116
7117 2011-08-05  Richard Guenther  <rguenther@suse.de>
7118
7119         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
7120         return true for constant integer ranges.
7121         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
7122         BIT_IOR_EXPR handling.
7123
7124 2011-08-04  Kai Tietz  <ktietz@redhat.com>
7125
7126         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
7127         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
7128
7129 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
7130
7131         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
7132         pattern def statement, and its access macro.
7133         (NUM_PATTERNS): Set to 5.
7134         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
7135         pattern def statement.
7136         (vect_transform_loop): Likewise.
7137         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
7138         function vect_recog_over_widening_pattern ().
7139         (vect_operation_fits_smaller_type): New function.
7140         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
7141         Likewise.
7142         (vect_pattern_recog_1): Move the code that marks pattern
7143         statements to vect_mark_pattern_stmts (), and call it.  Update
7144         documentation.
7145         * tree-vect-stmts.c (vect_supportable_shift): New function.
7146         (vect_analyze_stmt): Handle pattern def statement.
7147         (new_stmt_vec_info): Initialize pattern def statement.
7148
7149 2011-08-04  Richard Henderson  <rth@redhat.com>
7150
7151         PR target/49964
7152         * config/i386/i386.c (ix86_expand_call): Don't create nested
7153         PARALLELs for TARGET_VZEROUPPER.
7154         (ix86_split_call_vzeroupper): Fix extraction of the original call.
7155         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
7156         recognize nested PARALLELs.
7157         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
7158         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
7159         *sibcall_value_pop_vzeroupper): Likewise.
7160
7161 2011-08-04  Richard Henderson  <rth@redhat.com>
7162
7163         PR middle-end/49968
7164         * calls.c (expand_call): Use fixup_args_size_notes for
7165         emit_stack_restore.
7166         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
7167         in non-standard modes.
7168
7169 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
7170
7171         * gcc.c (self_spec): New variable.
7172         (static_specs): Add self_spec.
7173         (main): Call do_self_spec on "self_spec" specs after reading
7174         user specs files.  Move compare_debug handling right after that.
7175
7176 2011-08-04  Richard Guenther  <rguenther@suse.de>
7177
7178         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
7179         (value_range_nonnegative_p): New function.
7180         (ssa_name_nonnegative_p): Use it.
7181         (value_range_constant_singleton): New function.
7182         (op_with_constant_singleton_value_range): Use it.
7183         (extract_range_from_binary_expr_1): New function, split out from ...
7184         (extract_range_from_binary_expr): ... this.  Remove fallback
7185         constant folding done here.
7186
7187 2011-08-04  Richard Guenther  <rguenther@suse.de>
7188
7189         PR tree-optimization/49806
7190         * tree-vrp.c (op_with_boolean_value_range_p): New function.
7191         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
7192         a new statement for a final conversion to bool.
7193
7194 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
7195
7196         * gengtype-state.c: Include "bconfig.h" if
7197         GENERATOR_FILE is defined, "config.h" otherwise.
7198         * gengtype.c: Likewise.
7199         * gengtype-lex.l: Likewise.
7200         * gengtype-parse.c: Likewise.
7201         * Makefile.in (gengtype-lex.o-warn): New variable.
7202         (plugin_resourcesdir): Likewise.
7203         (plugin_bindir): Likewise.
7204         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
7205         (MOSTLYCLEANFILES): Add gengtype$(exeext).
7206         (native): Depend on gengtype$(exeext) is $enable_plugin
7207         is set to "yes".
7208         (gtype.state): Depend on s-gtype. Use temporary file.
7209         (gengtype-lex.o): New rule.
7210         (gengtype-parse.o): Likewise.
7211         (gengtype-state.o): Likewise.
7212         (gengtype$(exeext)): Likewise.
7213         (install-gengtype): Likewise.
7214         (gengtype.o): Likewise.
7215         (build/gengtype.o): Depend on version.h.
7216         (build/gengtype-state): Depend on double-int.h, version.h,
7217         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
7218         (install-plugin): Depend on install-gengtype.
7219
7220 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
7221
7222         PR middle-end/49905
7223         * tree.h (init_attributes): New prototype.
7224         * attribs.c (init_attributes): No longer static.
7225
7226 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7227
7228         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
7229         maybe_suffix.
7230
7231 2011-08-03   David Li  <davidxl@google.com>
7232
7233         * tree-optimize.c (execute_fixup_cfg): Fix up entry
7234         outgoing edge counts after inlining.
7235
7236 2011-08-03   David Li  <davidxl@google.com>
7237
7238         * profile.c (compute_branch_probabilities): Compute
7239         function frequency after profile annotation.
7240
7241 2011-08-04  Alan Modra  <amodra@gmail.com>
7242
7243         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
7244         use_backchain_to_restore_sp initialisation.
7245         (rs6000_legitimate_offset_address_p): Simplify offset test.
7246
7247 2011-08-03  Richard Henderson  <rth@redhat.com>
7248
7249         * config/spu/spu.md: Use define_c_enum instead of define_constants.
7250         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
7251         (UNSPECV_NOP): New.
7252
7253 2011-08-03  Richard Henderson  <rth@redhat.com>
7254
7255         PR target/34888
7256         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
7257
7258 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
7259
7260         PR tree-optimization/49948
7261         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
7262
7263 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
7264
7265         * config/m32c/m32c.c (class_sizes): Remove.
7266         (reduce_class): Change arguments and return type to reg_class_t.
7267         Change type cc var to HARD_REG_SET. Change type best var to
7268         reg_class_t. Change type best_size var to unsigned int. Remove
7269         initialization class_sizes var. Use reg_class_size array instead
7270         of class_sizes. Use reg_class_contents array instead
7271         of class_contents.
7272
7273 2011-08-03  Richard Guenther  <rguenther@suse.de>
7274
7275         PR middle-end/49958
7276         * fold-const.c (fold_binary_loc): Only associate
7277         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
7278         overflow wraps.
7279
7280 2011-08-03  Alan Modra  <amodra@gmail.com>
7281
7282         PR rtl-optimization/49941
7283         * jump.c (mark_jump_label): Comment.
7284         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
7285         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
7286         (mark_used_flags): Don't mark RETURN.
7287
7288 2011-08-03  Richard Guenther  <rguenther@suse.de>
7289
7290         PR tree-optimization/49938
7291         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
7292         deal with a POLYNOMIAL_CHREC.
7293
7294 2011-08-03  Revital Eres  <revital.eres@linaro.org>
7295
7296         * modulo-sched.c (calculate_stage_count,
7297         calculate_must_precede_follow, get_sched_window,
7298         try_scheduling_node_in_cycle, remove_node_from_ps): Add
7299         declaration.
7300         (update_node_sched_params, set_must_precede_follow, optimize_sc):
7301         New functions.
7302         (reset_sched_times): Call update_node_sched_params.
7303         (sms_schedule): Call optimize_sc.
7304         (get_sched_window): Change function arguments.
7305         (sms_schedule_by_order): Update call to get_sched_window.
7306         Call set_must_precede_follow.
7307         (calculate_stage_count): Add function argument.
7308
7309 2011-08-02  Richard Henderson  <rth@redhat.com>
7310
7311         PR target/49864
7312         PR target/49879
7313         * reg-notes.def (REG_ARGS_SIZE): New.
7314         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
7315         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
7316         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
7317         different stack levels.
7318         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
7319         (maybe_move_args_size_note): New.
7320         (combine_stack_adjustments_for_block): Use it.
7321         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
7322         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
7323         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
7324         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
7325         (cur_cfa): New.
7326         (queued_args_size): Remove.
7327         (add_cfi_args_size): Assert size is non-negative.
7328         (stack_adjust_offset, dwarf2out_args_size): Remove.
7329         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
7330         (notice_args_size, notice_eh_throw): New.
7331         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
7332         (dwarf2out_frame_debug_adjust_cfa): Likewise.
7333         (dwarf2out_frame_debug_cfa_offset): Likewise.
7334         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
7335         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
7336         (change_cfi_row): Don't emit args_size.
7337         (maybe_record_trace_start_abnormal): Split out from ...
7338         (maybe_record_trace_start): Here.  Set args_size_undefined.
7339         (create_trace_edges): Update to match.
7340         (scan_trace): Handle REG_ARGS_SIZE.
7341         (connect_traces): Connect args_size between EH insns.
7342         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
7343         * explow.c (suppress_reg_args_size): New.
7344         (adjust_stack_1): Split out from ...
7345         (adjust_stack): ... here.
7346         (anti_adjust_stack): Use it.
7347         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
7348         * expr.c (mem_autoinc_base): New.
7349         (fixup_args_size_notes): New.
7350         (emit_single_push_insn_1): Rename from emit_single_push_insn.
7351         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
7352         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
7353         * reload1.c (reload_as_needed): Likewise.
7354         * rtl.h (fixup_args_size_notes): Declare.
7355
7356 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
7357
7358         PR bootstrap/49914
7359         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
7360         of abs.
7361         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
7362         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
7363
7364 2011-08-02  Richard Henderson  <rth@redhat.com>
7365
7366         * config/h8300/h8300.c (push, pop): Return the insn.
7367         (h8300_swap_into_er6): Generate correct unwind info.
7368         (h8300_swap_out_of_er6): Likewise.
7369         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
7370         complex cfa expression.
7371         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
7372
7373 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
7374
7375         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
7376
7377 2011-08-02  Richard Henderson  <rth@redhat.com>
7378
7379         PR target/49878
7380         * config/h8300/h8300.c (h8300_move_ok): New.
7381         * config/h8300/h8300-protos.h: Declare it.
7382         * config/h8300/h8300.md (P): New mode iterator.
7383         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
7384         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
7385         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
7386         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
7387         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
7388         and pushqi1_h8300hs_normal; use PRE_MODIFY and
7389         register_no_sp_elim_operand.
7390         (*pushhi1_h8300hs_<P>): Similarly.
7391         (pushqi1, pushhi1, pushhi1_h8300): Remove.
7392         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
7393
7394 2011-08-02  Richard Henderson  <rth@redhat.com>
7395
7396         PR target/49881
7397         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
7398
7399 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
7400
7401         * c-parser.c (enum c_parser_prec): New enum, moved from within
7402         c_parser_binary_expression.
7403         (c_parser_binary_expression): Add PREC argument.  Stop parsing
7404         if operator has lower or equal precedence than PREC.
7405         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
7406         callers.
7407         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
7408         Adjust c_finish_omp_atomic caller.
7409         (c_parser_omp_taskyield): New function.
7410         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
7411         (c_parser_omp_clause_name): Handle final and mergeable clauses.
7412         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
7413         functions.
7414         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
7415         and PRAGMA_OMP_CLAUSE_MERGEABLE.
7416         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
7417         (c_parser_omp_clause_reduction): Handle min and max.
7418         * c-typeck.c (c_finish_omp_clauses): Don't complain about
7419         const qualified predetermined vars in firstprivate clause.
7420         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7421         Handle MIN_EXPR and MAX_EXPR.
7422         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
7423         and OMP_CLAUSE_MERGEABLE.
7424         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
7425         and OMP_ATOMIC_CAPTURE_NEW.
7426         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
7427         OMP_CLAUSE_MERGEABLE.
7428         (omp_clause_code_name): Likewise.
7429         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7430         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
7431         and OMP_CLAUSE_MERGEABLE.
7432         (OMP_CLAUSE_FINAL_EXPR): Define.
7433         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
7434         OMP_CLAUSE_MERGEABLE.
7435         (expand_task_call): Likewise.
7436         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
7437         (expand_omp_atomic_fetch_op): Handle cases where old or new
7438         value is needed afterwards.
7439         (expand_omp_atomic): Call expand_omp_atomic_load resp.
7440         expand_omp_atomic_store.
7441         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
7442         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
7443         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
7444         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7445         * tree-nested.c (convert_nonlocal_omp_clauses,
7446         convert_local_omp_clauses): Likewise.
7447         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
7448         OMP_ATOMIC_CAPTURE_NEW): New.
7449         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
7450         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
7451         New inlines.
7452         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
7453         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
7454         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7455
7456 2011-08-02  Kai Tietz  <ktietz@redhat.com>
7457
7458         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
7459         boolean-type.
7460         (ssa_forward_propagate_and_combine): Interprete result of
7461         forward_propagate_comparison.
7462         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
7463         boolean-typed operands for comparisons.
7464
7465 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
7466
7467         * config/avr/libgcc.S: Gather related function in the
7468         same input section.
7469         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
7470         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
7471         references.
7472         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
7473         __udivmodsi4, __divmodsi4, __prologue_saves__,
7474         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
7475         __do_copy_data, __do_clear_bss, __do_global_ctors,
7476         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
7477
7478 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
7479
7480         PR target/47766
7481         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
7482         (stack_protect_test): The pattern compares ptr_mode value.
7483
7484 2011-08-02  Alan Modra  <amodra@gmail.com>
7485
7486         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
7487         note for save_LR_around_toc_setup sequence.
7488
7489 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7490
7491         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
7492
7493 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
7494             Joseph Myers  <joseph@codesourcery.com>
7495
7496         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
7497         * hwint.c: Include diagnostic-core.h.
7498         (abs_hwi): New.
7499         (gcd): Moved here...
7500         (pos_mul_hwi): New.
7501         (mul_hwi): New.
7502         (least_common_multiple): Moved here...
7503         * hwint.h (gcd): ... from here.
7504         (least_common_multiple): ... from here.
7505         (HOST_WIDE_INT_MIN): New.
7506         (HOST_WIDE_INT_MAX): New.
7507         (abs_hwi): Declared.
7508         (gcd): Declared.
7509         (pos_mul_hwi): Declared.
7510         (mul_hwi): Declared.
7511         (least_common_multiple): Declared.
7512         * omega.c (check_pos_mul): Removed.
7513         (check_mul): Removed.
7514         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
7515         mul_hwi instead of check_mul.
7516
7517 2011-08-01  Richard Henderson  <rth@redhat.com>
7518
7519         PR target/49881
7520         * config/avr/avr.h (PUSH_ROUNDING): New.
7521         * config/avr/avr.md (pushqi1): Rename from *pushqi.
7522         (*pushhi, *pushsi, *pushsf): Remove.
7523         (MPUSH): New mode iterator.
7524         (push<MPUSH>1): New expander.
7525
7526 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
7527
7528         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
7529         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
7530         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
7531         mmix_preferred_output_reload_class): Remove.
7532         * config/mmix/mmix.c (mmix_preferred_reload_class,
7533         mmix_preferred_output_reload_class): Make static. Change rclass
7534         argument and return type to reg_class_t.
7535         (TARGET_PREFERRED_RELOAD_CLASS,
7536         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7537
7538 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
7539
7540         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
7541         handling.
7542
7543 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7544
7545         PR target/47766
7546         * config/i386/i386.md (PTR): New.
7547         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
7548         (stack_protect_test): Likewise.
7549         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
7550         (stack_tls_protect_set_<mode>): Likewise.
7551         (stack_tls_protect_test_<mode>): Likewise.
7552
7553 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
7554
7555         PR target/49927
7556         * config/i386/i386.c (ix86_address_subreg_operand): New.
7557         (ix86_decompose_address): Use ix86_address_subreg_operand.
7558         (ix86_legitimate_address_p): Do not assert that subregs satisfy
7559         register_no_elim_operand in DImode.
7560
7561 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
7562
7563         PR tree-optimization/49926
7564         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
7565         in a chain doesn't have uses both inside and outside the loop.
7566
7567 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
7568
7569         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
7570         * config/avr/avr-devices.c (avr_mcu_types): Use it.
7571         * config/avr/avr-mcus.def (AVR_MCU): Use it.
7572         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
7573         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
7574         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
7575         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
7576         to detect if XJMP must not be skipped.
7577
7578 2011-08-02  Alan Modra  <amodra@gmail.com>
7579
7580         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
7581         Delete.
7582         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
7583         (rs6000_emit_prologue): Don't prematurely return when
7584         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
7585         save_toc_in_prologue case.
7586         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
7587         calls_alloca.
7588
7589 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
7590
7591         * config/avr/avr-devices.c: Delete SVN property svn:executable.
7592         * config/avr/predicates.md: Ditto.
7593         * config/avr/driver-avr.c: Ditto.
7594         * config/avr/genopt.sh: Set SVN property svn:executable to *.
7595
7596 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7597
7598         * calls.c (emit_library_call_value_1): Declare size only if
7599         BLOCK_REG_PADDING is defined.
7600
7601 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
7602
7603         PR target/49547
7604         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
7605         (x86_64-*-*): Likewise.
7606         * config/i386/i386.opt (mlzcnt): New.
7607         * config/i386/abmintrin.h: File removed.
7608         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
7609         * config/i386/lzcntintrin.h: ... here.  New file.
7610         (__lzcnt): Rename to ...
7611         (__lzcnt32): ... this.
7612         * config/i386/bmiintrin.h (head): Update copyright year.
7613         (__lzcnt_u16): Removed.
7614         (__lzcnt_u32): Likewise.
7615         (__lzcnt_u64): Likewise.
7616         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
7617         is defined, remove abmintrin.h.
7618         * config/i386/cpuid.h (bit_LZCNT): New.
7619         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7620         LZCNT feature.
7621         * config/i386/i386-c.c (ix86_target_macros_internal): Define
7622         __LZCNT__ if needed.
7623         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
7624         (ix86_option_override_internal): Handle LZCNT option.
7625         (ix86_valid_target_attribute_inner_p): Likewise.
7626         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
7627         * config/i386/i386.h (TARGET_LZCNT): New.
7628         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
7629         * config/i386/i386.md (clz<mode>2): Update insn constraint.
7630         (clz<mode>2_lzcnt): Likewise.
7631         * doc/invoke.texi: Mention -mlzcnt option.
7632         * doc/extend.texi: Likewise.
7633
7634 2011-08-01  Julian Brown  <julian@codesourcery.com>
7635
7636         * configure.ac (fixed-point): Add ARM support.
7637         * configure: Regenerate.
7638         * config/arm/arm.c (arm_fixed_mode_set): New struct.
7639         (arm_set_fixed_optab_libfunc): New.
7640         (arm_set_fixed_conv_libfunc): New.
7641         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
7642         ARM-specific names.
7643         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
7644         return values in SImode.
7645         (arm_return_in_msb): Return fixed-point types in the msb.
7646         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
7647         upwards.
7648         (arm_scalar_mode_supported_p): Support fixed-point modes.
7649         (arm_vector_mode_supported_p): Support vector fixed-point modes.
7650         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
7651         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
7652         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
7653         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
7654         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
7655         New mode iterators.
7656         (qaddsub_suf): New mode attribute.
7657         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
7658         vector modes.
7659         * config/arm/predicates.md (sat_shift_operator): New predicate.
7660         * config/arm/arm-fixed.md: New.
7661         * config/arm/arm.md: Include arm-fixed.md.
7662         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
7663
7664 2011-08-01  Julian Brown  <julian@codesourcery.com>
7665
7666         * calls.c (emit_library_call_value_1): Support padding for libcall
7667         arguments and return values.
7668         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
7669         downwards in big-endian mode.
7670
7671 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7672
7673         PR debug/49887
7674         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
7675         * config/sol2-protos.h: Likewise.
7676         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
7677         solaris_code_end.
7678         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
7679         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
7680         solaris_file_end.
7681         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
7682
7683 2011-08-01  Julian Brown  <julian@codesourcery.com>
7684
7685         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
7686
7687 2011-08-01  Julian Brown  <julian@codesourcery.com>
7688
7689         * final.c (output_addr_const): Print fixed-point constants as
7690         decimal not hex.
7691
7692 2011-08-01  Richard Guenther  <rguenther@suse.de>
7693
7694         * stor-layout.c (initialize_sizetypes): Properly sign-extend
7695         bitsiztype TYPE_MAX_VALUE.
7696
7697 2011-08-01  Julian Brown  <julian@codesourcery.com>
7698
7699         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
7700         comparison helpers.
7701
7702 2011-07-31  Richard Henderson  <rth@redhat.com>
7703
7704         * config/h8300/crti.asm: Add flags to .section directive.
7705         * config/h8300/crtn.asm: Likewise.
7706
7707 2011-07-31  Richard Henderson  <rth@redhat.com>
7708
7709         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
7710         * tree.c (build_common_tree_nodes): Likewise.
7711
7712 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
7713
7714         PR target/49880
7715         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
7716         (divsi3_i1): Likewise.
7717
7718 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7719
7720         PR tree-optimization/49749
7721         * tree-ssa-reassoc.c (get_rank): New forward declaration.
7722         (PHI_LOOP_BIAS): New macro.
7723         (phi_rank): New function.
7724         (loop_carried_phi): Likewise.
7725         (propagate_rank): Likewise.
7726         (get_rank): Add calls to phi_rank and propagate_rank.
7727
7728 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
7729
7730         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
7731         of TARGET_64BIT.
7732         (PTRDIFF_TYPE): Likewise.
7733
7734 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
7735
7736         PR target/49920
7737         * config/i386/i386.md (strset): Do not expand strset_singleop
7738         when %eax or $edi are fixed.
7739         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
7740         (*strsetsi_1): Ditto.
7741         (*strsethi_1): Ditto.
7742         (*strsetqi_1): Ditto.
7743         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
7744         (*rep_stossi): Ditto.
7745         (*rep_stosqi): Ditto.
7746         (*strlenqi_1): Ditto.
7747         (cmpstrnsi): Also fail when %ecx is fixed.
7748         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
7749         (*cmpstrnqi_1): Ditto.
7750         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
7751         (*strmovsi_1): Ditto.
7752         (*strmovhi_1): Ditto.
7753         (*strmovqi_1): Ditto.
7754         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
7755         (*rep_movsi): Ditto.
7756         (*rep_movqi): Ditto.
7757
7758 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
7759
7760         PR target/47908
7761         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
7762         Disable instruction scheduling for non-ColdFire targets.
7763         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7764
7765 2011-07-31  Revital Eres  <revital.eres@linaro.org>
7766
7767         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
7768         of anti-dep edge from a branch.
7769         (add_cross_iteration_register_deps): Create anti-dep edge from
7770         a branch.
7771
7772 2011-07-31  Revital Eres  <revital.eres@linaro.org>
7773
7774         * modulo-sched.c: Change comment.
7775         (reset_sched_times): Fix print message.
7776         (print_partial_schedule): Add print info.
7777
7778 2011-07-31  Tom de Vries  <tom@codesourcery.com>
7779
7780         PR middle-end/43513
7781         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
7782         get_object_alignment and TYPE_ALIGN.
7783
7784 2011-07-30  Tom de Vries  <tom@codesourcery.com>
7785
7786         PR middle-end/43513
7787         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
7788         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
7789
7790 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7791
7792         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
7793         <sys/sbd.h>.
7794         (cpu_types): New array.
7795         (cputype): New function.
7796         (host_detect_local_cpu): Only define buf, f if !__sgi__.
7797         Use scaninvent instead of /proc/cpuinfo if __sgi__.
7798         * config.host: Also use driver-native.o, mips/x-native on
7799         mips-sgi-irix*.
7800         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
7801         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
7802         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
7803
7804 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
7805
7806         PR middle-end/49897
7807         PR middle-end/49898
7808         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
7809         in nested parallel and outer is a gimple_reg, mark it as addressable
7810         and set its bit in task_shared_vars bitmap too.
7811
7812 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
7813
7814         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
7815
7816 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7817
7818         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
7819         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
7820         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
7821         AMASK_LOCKPFTCHOK): Define.
7822         (host_detect_local_cpu): Remove buf, f, cpu_names.
7823         Define cpu_types, implver, amask.
7824         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
7825         native CPU.
7826         * config.host: Also use driver-alpha.o, alpha/x-alpha on
7827         alpha*-dec-osf*.
7828         * config/alpha/osf5.h [__alpha__ || __alpha]
7829         (host_detect_local_cpu): Declare.
7830         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
7831         (DRIVER_SELF_SPECS): Define.
7832
7833 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
7834
7835         PR target/47715
7836         * config/i386/i386.md (*load_tp_x32): New.
7837         (*load_tp_x32_zext): Ditto.
7838         (*add_tp_x32): Ditto.
7839         (*add_tp_x32_zext): Ditto.
7840         (*load_tp_<mode>): Disable for TARGET_X32 targets.
7841         (*add_tp_<mode>): Ditto.
7842         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
7843         ptr_mode and convert to Pmode if needed.
7844
7845 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
7846
7847         PR target/49687
7848         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
7849         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
7850         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
7851         Add X to register footprint: Clobber r26/r27.
7852
7853 2011-07-29  Richard Guenther  <rguenther@suse.de>
7854
7855         * builtins.c (fold_builtin_signbit): Build the comparison
7856         with a proper type.
7857
7858 2011-07-29  Richard Guenther  <rguenther@suse.de>
7859
7860         PR tree-optimization/49893
7861         * tree-predcom.c (suitable_reference_p): Volatile references
7862         are not suitable.
7863
7864 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
7865
7866         PR target/49313
7867         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
7868         (__ctzsi2): Result for 0 may be undefined.
7869         (__ctzhi2): Result for 0 may be undefined.
7870         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
7871         (__popcountsi2): Ditto. And don't clobber r26.
7872         (__popcountdi2): Ditto. And don't clobber r27.
7873         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
7874         (parityhi2): New expand.
7875         (paritysi2): New expand.
7876         (popcounthi2): New expand.
7877         (popcountsi2): New expand.
7878         (clzhi2): New expand.
7879         (clzsi2): New expand.
7880         (ctzhi2): New expand.
7881         (ctzsi2): New expand.
7882         (ffshi2): New expand.
7883         (ffssi2): New expand.
7884         (copysignsf3): New insn.
7885         (bswapsi2): New expand.
7886         (*parityhi2.libgcc): New insn.
7887         (*parityqihi2.libgcc): New insn.
7888         (*paritysihi2.libgcc): New insn.
7889         (*popcounthi2.libgcc): New insn.
7890         (*popcountsi2.libgcc): New insn.
7891         (*popcountqi2.libgcc): New insn.
7892         (*popcountqihi2.libgcc): New insn-and-split.
7893         (*clzhi2.libgcc): New insn.
7894         (*clzsihi2.libgcc): New insn.
7895         (*ctzhi2.libgcc): New insn.
7896         (*ctzsihi2.libgcc): New insn.
7897         (*ffshi2.libgcc): New insn.
7898         (*ffssihi2.libgcc): New insn.
7899         (*bswapsi2.libgcc): New insn.
7900
7901 2011-07-29  Richard Guenther  <rguenther@suse.de>
7902
7903         * tree-vrp.c (get_value_range): Only set parameter default
7904         definitions to varying, leave others at undefined.
7905         (extract_range_from_binary_expr): Fix undefined handling.
7906         (vrp_visit_phi_node): Handle merged undefined state.
7907
7908 2011-07-29  Wei Guozhi  <carrot@google.com>
7909
7910         PR rtl-optimization/49799
7911         * combine.c (make_compound_operation): Check if the bit field is valid
7912         before change it to bit field extraction.
7913
7914 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
7915
7916         PR rtl-optimization/49891
7917         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
7918         newly created returnjumps.
7919
7920 2011-07-28  DJ Delorie  <dj@redhat.com>
7921
7922         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
7923         local frame in a naked function, and produce a suitable error for
7924         that specific case.
7925
7926         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
7927         registers to be reloaded in HI classes when the target is HI.
7928
7929 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7930
7931         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
7932         bound_one, bound_two.
7933
7934 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7935
7936         PR middle-end/48648
7937         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
7938         CLAST assignments.
7939         (translate_clast): Same.
7940         (translate_clast_assignment): New.
7941
7942 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7943
7944         PR tree-optimization/49876
7945         * sese.c (rename_uses): Do not return false on gloog_error: set
7946         the new_expr to integer_zero_node and continue code generation.
7947         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
7948
7949 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
7950
7951         PR debug/49846
7952         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
7953         arguments also check if they aren't initialized with a MODE_INT
7954         mode of the same size.
7955
7956 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
7957
7958         * expr.c (get_bit_range): Handle *MEM_REF's.
7959
7960 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
7961
7962         * rtlanal.c (tablejump_p): False for returns.
7963         * reorg.c (first_active_target_insn): New static function.
7964         (find_end_label): Set JUMP_LABEL for a new returnjump.
7965         (optimize_skip, get_jump_flags, rare_destination,
7966         mostly_true_jump, get_branch_condition,
7967         steal_delay_list_from_target, own_thread_p,
7968         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
7969         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
7970         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
7971         * jump.c (delete_related_insns): Likewise.
7972         (jump_to_label_p): New function.
7973         (redirect_target): New static function.
7974         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
7975         (redirect_jump_1): Assert that the new label is nonnull.
7976         (redirect_jump): Likewise.
7977         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
7978         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
7979         exit block.
7980         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
7981         changed.  Ensure that the right label is passed to redirect_jump.
7982         * function.c (emit_return_into_block,
7983         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
7984         ret_rtx in their JUMP_LABEL.
7985         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
7986         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
7987         pass ret_rtx as label.
7988         * cfglayout.c (fixup_reorder_chain): Use
7989         force_nonfallthru_and_redirect rather than force_nonfallthru.
7990         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
7991         * rtl.h (ANY_RETURN_P): New macro.
7992         (jump_to_label_p): Declare.
7993         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
7994         JUMP_LABELs.
7995         (mark_target_live_regs): Likewise.
7996         * basic-block.h (force_nonfallthru_and_redirect): Declare.
7997         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
7998         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
7999         alpha_tablejump_best_label): Remove functions.
8000         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
8001         alpha_tablejump_best_label): Remove declarations.
8002         * config/sh/sh.c (barrier_align, split_branches): Adjust for
8003         ret_rtx in JUMP_LABELs.
8004         * config/arm/arm.c (is_jump_table): Likewise.
8005
8006 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
8007
8008         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
8009         special predicate.  Remove explicit mode checks.
8010
8011 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
8012
8013         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
8014         DW_AT_data_member_location containing just DW_OP_plus_uconst.
8015
8016         PR debug/49871
8017         * dwarf2out.c (size_of_die, value_format, output_die): Use
8018         DW_FORM_udata instead of DW_FORM_data[48] for
8019         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
8020
8021 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
8022
8023         * config/i386/i386.md (*tls_global_dynamic_64): Update
8024         length attribute.
8025
8026 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
8027
8028         PR target/47715
8029         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
8030         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
8031         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
8032         (tls_dynamic_gnu2_64): Ditto.
8033         (*tls_dynamic_gnu2_lea_64): Ditto.
8034         (*tls_dynamic_gnu2_call_64): Ditto.
8035         (*tls_dynamic_gnu2_combine_64): Ditto.
8036
8037 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
8038
8039         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
8040
8041 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
8042
8043         PR target/47364
8044         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
8045
8046 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8047
8048         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
8049         before the core constraints. Adjust attributes.
8050         ("*thumb2_movdf_vfp"): Likewise.
8051
8052 2011-07-28  Kai Tietz  <ktietz@redhat.com>
8053
8054         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
8055         (simplify_truth_ops_using_ranges): Likewise.
8056         (build_assert_expr_for): Likewise.
8057         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
8058         and handle BIT_NOT_EXPR for truth-operation.
8059
8060 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
8061
8062         PR target/49313
8063         Undo r176835 from trunk
8064         2011-07-27  Georg-Johann Lay
8065
8066 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
8067
8068         PR target/49687
8069         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
8070         Add _muluhisi3, _mulshisi3, _usmulhisi3.
8071         * config/avr/libgcc.S (__mulsi3): Rewrite.
8072         (__mulhisi3): Rewrite.
8073         (__umulhisi3): Rewrite.
8074         (__usmulhisi3): New.
8075         (__muluhisi3): New.
8076         (__mulshisi3): New.
8077         (__mulohisi3): New.
8078         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
8079         declare.
8080         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
8081         (pseudo_register_or_const_int_operand): New.
8082         (combine_pseudo_register_operand): New.
8083         (u16_operand): New.
8084         (s16_operand): New.
8085         (o16_operand): New.
8086         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
8087         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
8088         (any_extend, any_extend2): New code iterators.
8089         (extend_prefix): New code attribute.
8090         (mulsi3): Rewrite. Turn insn to expander.
8091         (mulhisi3): Ditto.
8092         (umulhisi3): Ditto.
8093         (usmulhisi3): New expander.
8094         (*mulsi3): New insn-and-split.
8095         (mulu<mode>si3): New insn-and-split.
8096         (muls<mode>si3): New insn-and-split.
8097         (mulohisi3): New insn-and-split.
8098         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
8099         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
8100         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
8101         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
8102         insn-and-split.
8103         (*mulsi3_call): Rewrite.
8104         (*mulhisi3_call): Rewrite.
8105         (*umulhisi3_call): Rewrite.
8106         (*usmulhisi3_call): New insn.
8107         (*muluhisi3_call): New insn.
8108         (*mulshisi3_call): New insn.
8109         (*mulohisi3_call): New insn.
8110         (extendqihi2): Use combine_pseudo_register_operand as predicate
8111         for operand 1.
8112         (extendqisi2): Ditto.
8113         (zero_extendqihi2): Ditto.
8114         (zero_extendqisi2): Ditto.
8115         (zero_extendhisi2): Ditto.
8116         (extendhisi2): Ditto. Don't early-clobber operand 0.
8117
8118 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
8119
8120         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
8121
8122 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
8123
8124         PR tree-optimization/49471
8125         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
8126         iv only when the largest type is unsigned.  Do not call
8127         lang_hooks.types.type_for_size.
8128
8129 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
8130
8131         PR middle-end/45450
8132         * graphite-poly.c (apply_poly_transforms): Disable legality check
8133         after an openscop read.
8134
8135 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
8136
8137         PR middle-end/47691
8138         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
8139         copy_bb_and_scalar_dependences.
8140         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
8141         (graphite_copy_stmts_from_block): Update call to rename_uses.
8142         (copy_bb_and_scalar_dependences): Update call to
8143         graphite_copy_stmts_from_block.
8144         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
8145
8146 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
8147
8148         PR target/49313
8149         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
8150         (__ctzsi2): Result for 0 may be undefined.
8151         (__ctzhi2): Result for 0 may be undefined.
8152         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
8153         (__popcountsi2): Ditto. And don't clobber r26.
8154         (__popcountdi2): Ditto. And don't clobber r27.
8155         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
8156         (parityhi2): New expand.
8157         (paritysi2): New expand.
8158         (popcounthi2): New expand.
8159         (popcountsi2): New expand.
8160         (clzhi2): New expand.
8161         (clzsi2): New expand.
8162         (ctzhi2): New expand.
8163         (ctzsi2): New expand.
8164         (ffshi2): New expand.
8165         (ffssi2): New expand.
8166         (copysignsf3): New insn.
8167         (bswapsi2): New expand.
8168         (*parityhi2.libgcc): New insn.
8169         (*parityqihi2.libgcc): New insn.
8170         (*paritysihi2.libgcc): New insn.
8171         (*popcounthi2.libgcc): New insn.
8172         (*popcountsi2.libgcc): New insn.
8173         (*popcountqi2.libgcc): New insn.
8174         (*popcountqihi2.libgcc): New insn-and-split.
8175         (*clzhi2.libgcc): New insn.
8176         (*clzsihi2.libgcc): New insn.
8177         (*ctzhi2.libgcc): New insn.
8178         (*ctzsihi2.libgcc): New insn.
8179         (*ffshi2.libgcc): New insn.
8180         (*ffssihi2.libgcc): New insn.
8181         (*bswapsi2.libgcc): New insn.
8182
8183 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
8184
8185         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
8186         the mode of symbolic_opreand RTXes.
8187
8188 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
8189
8190         * config/i386/predicates.md (x86_64_movabs_operand): Return false
8191         for pic_32bit_operand RTXes.
8192         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
8193         in DImode.
8194
8195 2011-07-27  Kai Tietz  <ktietz@redhat.com>
8196
8197         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
8198         for 32-bit, too.
8199         (ix86_handle_abi_attribute): Allow function attributes
8200         ms_abi/sysv_abi in 32-bit mode, too.
8201         * doc/extend.texi: Adjust attribute documentation.
8202
8203         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
8204         expression handling.
8205         (and_var_with_comparison_1): Likewise.
8206
8207 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
8208
8209         * params.h (ALLOW_STORE_DATA_RACES): New.
8210         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
8211         * Makefile.in (expr.o): Depend on PARAMS_H.
8212         * machmode.h (get_best_mode): Add argument.
8213         * fold-const.c (optimize_bit_field_compare): Add argument to
8214         get_best_mode.
8215         (fold_truthop): Same.
8216         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
8217         * expr.c (emit_group_store): Same.
8218         (copy_blkmode_from_reg): Same.
8219         (write_complex_part): Same.
8220         (optimize_bitfield_assignment_op): Add argument.
8221         Add argument to get_best_mode.
8222         (get_bit_range): New.
8223         (expand_assignment): Calculate maxbits and pass it down accordingly.
8224         (store_field): New argument.
8225         (expand_expr_real_2): New argument to store_field.  Include params.h.
8226         * expr.h (store_bit_field): New argument.
8227         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
8228         into account maxbits.
8229         * calls.c (store_unaligned_arguments_into_pseudos): New argument
8230         to store_bit_field.
8231         * expmed.c (store_bit_field_1): New argument.  Use it.
8232         (store_bit_field): Same.
8233         (store_fixed_bit_field): Same.
8234         (store_split_bit_field): Same.
8235         (extract_bit_field_1): Pass new argument to get_best_mode.
8236         (extract_bit_field): Same.
8237         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
8238         * doc/invoke.texi: Document parameter allow-store-data-races.
8239
8240 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
8241
8242         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
8243
8244 2011-07-27  Kai Tietz  <ktietz@redhat.com>
8245
8246         * tree-vrp.c (extract_range_from_binary_expr): Remove
8247         TRUTH-binary cases and add new bitwise-cases.
8248         (extract_range_from_assignment): Likewise.
8249         (register_edge_assert_for_1): Likeiwise.
8250         (register_edge_assert_for): Likewise.
8251         (simplify_truth_ops_using_ranges): Likewise.
8252         (simplify_stmt_using_ranges): Likewise.
8253
8254 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
8255
8256         PR target/47372
8257         * config/i386/i386.c (ix86_delegitimize_address): Call
8258         simplify_gen_subreg for PIC with mode of x only if modes of
8259         x and orig_x are different.
8260
8261 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
8262
8263         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
8264         to GC allocated copy of the string.
8265         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
8266         before .debug_line, not after it.
8267
8268 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8269
8270         PR middle-end/47046
8271         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
8272         evolution_function_is_affine_p on CHREC_RIGHT.
8273
8274 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8275
8276         * tree-data-ref.c (max_stmt_executions_tree): Do not call
8277         lang_hooks.types.type_for_size.
8278
8279 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8280
8281         PR middle-end/47653
8282         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
8283         loops using wrapping semantics.
8284
8285 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8286
8287         PR middle-end/48805
8288         * tree-scalar-evolution.c (instantiate_scev_r): Return
8289         chrec_dont_know for ADDR_EXPR.
8290
8291 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
8292             H.J. Lu  <hongjiu.lu@intel.com>
8293
8294         PR target/47369
8295         PR target/49853
8296         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
8297         if legitimize_tls_address returned operand in wrong mode. Allow
8298         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
8299         if legitimize_pic_address returned operand in wrong mode.
8300
8301 2011-07-26  Martin Jambor  <mjambor@suse.cz>
8302
8303         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
8304         return false for invariants.
8305
8306 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
8307
8308         * config/i386/i386.md (add->lea splitter): Implement using SWI
8309         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
8310         (add->lea zext splitter): Change operand 2 predicate to
8311         x86_64_nonmemory_operand.
8312
8313 2011-07-26  Richard Guenther  <rguenther@suse.de>
8314
8315         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
8316         frequency makes everything hot.
8317
8318 2011-07-26  Richard Guenther  <rguenther@suse.de>
8319
8320         PR tree-optimization/49840
8321         * tree-vrp.c (range_fits_type_p): Properly handle full
8322         double-int precision.
8323
8324 2011-07-26  Martin Jambor  <mjambor@suse.cz>
8325
8326         PR bootstrap/49786
8327         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
8328         counts.
8329         (update_specialized_profile): Likewise.
8330
8331 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
8332             H.J. Lu  <hongjiu.lu@intel.com>
8333
8334         PR target/47381
8335         PR target/49832
8336         PR target/49833
8337         * config/i386/i386.md (i): Change SImode attribute to "e".
8338         (g): Change SImode attribute to "rme".
8339         (di): Change SImode attribute to "nF".
8340         (general_operand): Change SImode attribute to x86_64_general_operand.
8341         (general_szext_operand): Change SImode attribute to
8342         x86_64_szext_general_operand.
8343         (immediate_operand): Change SImode attribute to
8344         x86_64_immediate_operand.
8345         (nonmemory_operand): Change SImode attribute to
8346         x86_64_nonmemory_operand.
8347         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
8348         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
8349         (*lea_1): Use SWI48 mode iterator.
8350         (*lea_1_zext): New insn pattern.
8351         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
8352         (*bt<mode>): Ditto.
8353         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
8354         Update operand constraints.
8355         (addsi_1_zext): Ditto.
8356         (*add<mode>2): Ditto.
8357         (*addsi_3_zext): Ditto.
8358         (*subsi_1_zext): Ditto.
8359         (*subsi_2_zext): Ditto.
8360         (*subsi_3_zext): Ditto.
8361         (*addsi3_carry_zext): Ditto.
8362         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
8363         (*mulsi3_1_zext): Ditto.
8364         (*andsi_1): Ditto.
8365         (*andsi_1_zext): Ditto.
8366         (*andsi_2_zext): Ditto.
8367         (*<any_or:code>si_1_zext): Ditto.
8368         (*<any_or:code>si_2_zext): Ditto.
8369         (*test<mode>_1): Use <general_operand> predicate for operand 1.
8370         (*and<mode>_2): Ditto.
8371         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
8372         (add->lea splitter): Check operand modes in insn constraint.  Extend
8373         operands less than SImode wide to SImode.
8374         (add->lea zext splitter): Do not extend input operands to DImode.
8375         (*lea_general_1): Handle only QImode and HImode operands.
8376         (*lea_general_2): Ditto.
8377         (*lea_general_3): Ditto.
8378         (*lea_general_1_zext): Remove.
8379         (*lea_general_2_zext): Ditto.
8380         (*lea_general_3_zext): Ditto.
8381         (*lea_general_4): Check operand modes in insn constraint.  Extend
8382         operands less than SImode wide to SImode.
8383         (ashift->lea splitter): Ditto.
8384         * config/i386/i386.c (ix86_print_operand_address): Print address
8385         registers with 'q' modifier on 64bit targets.
8386         * config/i386/predicates.md (pic_32bit_opreand): Define as special
8387         predicate.  Reject non-SI and non-DI modes.
8388
8389 2011-07-25  Andrew Pinski  <apinski@cavium.com>
8390
8391         PR tree-opt/49671
8392         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
8393         TREE_THIS_NOTRAP into the inner most MEM_REF.
8394         Always copy TREE_THIS_VOLATILE.
8395         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
8396         arguments are not volatile references.
8397
8398 2011-07-25  Richard Henderson  <rth@redhat.com>
8399
8400         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
8401         * final.c (final_scan_insn): Don't test for it.
8402         (rest_of_clean_state): Likewise.
8403
8404 2011-07-25  Richard Henderson  <rth@redhat.com>
8405
8406         PR debug/49841
8407         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
8408         (emit_frame_save): Likewise.
8409         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
8410         insn onto a dummy blockage insn after the join label.
8411
8412 2011-07-25  Richard Henderson  <rth@redhat.com>
8413
8414         * dwarf2cfi.c (dw_trace_info): Add ID member.
8415         (get_trace_index): Remove.  Change users to use ID member.
8416         (before_next_cfi_note): New.
8417         (connect_traces): Remove unreachable traces before the main loop.
8418         Look across one trace and generate remember/restore_state if needed.
8419
8420 2011-07-25  Richard Henderson  <rth@redhat.com>
8421
8422         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
8423
8424 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
8425
8426         * genattr.c (write_upcase, gen_attr <enum definition writing>):
8427         Move to ...
8428         * genattr-common.c ... here.
8429         (main): Call gen_attr.
8430         * optc-gen.awk: Make generated program include insn-attr-common.h .
8431         * Makefile.in (oprions.o): Depend on insn-attr-common.h
8432
8433 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
8434
8435         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
8436         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
8437         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
8438         m32c_print_operand, m32c_print_operand_address): Remove.
8439         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
8440         Change return type to bool. Change argument type to bool.
8441         (m32c_print_operand, m32c_print_operand_address): Make static.
8442         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
8443         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
8444
8445 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8446
8447         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
8448         attributes): Document mmap.
8449
8450 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
8451
8452         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
8453         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
8454         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
8455         mmix_print_operand, mmix_print_operand_address): Remove.
8456         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
8457         Change return type to bool. Change argument type to bool.
8458         (mmix_print_operand, mmix_print_operand_address): Make static.
8459         (mmix_intval, mmix_output_condition): Change 'x' argument type
8460         to const_rtx.
8461         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
8462         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
8463
8464 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
8465
8466         PR target/39386
8467         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
8468         shift counter for x << x and x >> x shifts.
8469
8470 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8471
8472         PR target/47124
8473         * config.gcc: Reject *-*-solaris2 configuration.
8474
8475 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
8476
8477         PR tree-optimization/49809
8478         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
8479         gimple_get_lhs instead of gimple_assign_lhs.
8480
8481 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8482
8483         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
8484
8485 2011-07-25  Richard Guenther  <rguenther@suse.de>
8486
8487         PR tree-optimization/49822
8488         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
8489         more.  Make sure to preserve stmts with side-effects.  Properly
8490         handle virtual defs, follow a longer def chain.
8491
8492 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
8493
8494         PR plugins/45348
8495         PR plugins/48425
8496         PR plugins/46577
8497         * Makefile.in: Do not flatten c-family directory when installing
8498         plugin headers.
8499
8500 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
8501
8502         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
8503         original nodes if we are dealing with virtual clones.
8504
8505 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
8506
8507         * common/config/c6x/c6x-common.c: New file.
8508
8509 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
8510
8511         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
8512
8513 2011-07-25  Richard Guenther  <rguenther@suse.de>
8514
8515         PR tree-optimization/49715
8516         * tree-vrp.c: Include expr.h and optabs.h.
8517         (range_fits_type_): New function.
8518         (simplify_float_conversion_using_ranges): Likewise.
8519         (simplify_stmt_using_ranges): Call it.
8520         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
8521         * optabs.c (can_float_p): Export.
8522         * optabs.h (can_float_p): Declare.
8523
8524 2011-07-25  Richard Guenther  <rguenther@suse.de>
8525
8526         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
8527         (get_value_range): For out-of-range SSA names or names created
8528         after propagation return a read-only varying range.
8529         (dump_all_value_ranges): Adjust.
8530         (vrp_initialize): Likewise.
8531         (vrp_finalize): Likewise.
8532
8533 2011-07-24  Richard Henderson  <rth@redhat.com>
8534
8535         PR debug/49831
8536         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
8537         them entirely.
8538
8539 2011-07-24  Richard Henderson  <rth@redhat.com>
8540
8541         PR debug/49825
8542         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
8543         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
8544
8545 2011-07-24  Richard Henderson  <rth@redhat.com>
8546
8547         PR debug/49827
8548         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
8549
8550 2011-07-24  Richard Henderson  <rth@redhat.com>
8551
8552         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
8553         Zero args_size for abnormal edges.  Adjust all callers.
8554
8555 2011-07-24  Richard Henderson  <rth@redhat.com>
8556
8557         PR debug/49825
8558         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
8559
8560 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
8561
8562         PR bootstrap/49835
8563         * collect2.c (demangle_flag): Removed.
8564
8565 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
8566
8567         * configure.ac (demangler_in_ld): Default to yes.
8568         * configure: Regenerated.
8569         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
8570         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
8571         --no-demangle options straight through to ld.  When
8572         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
8573         way that has the intended effect on Windows.
8574
8575 2011-07-23  Richard Henderson  <rth@redhat.com>
8576
8577         * dwarf2cfi.c: Include basic-block.h.
8578         (dw_label_info): Remove.
8579         (trace_work_list, trace_index): New.
8580         (remember_row, emit_cfa_remember): Remove.
8581         (dw_trace_info_hash, dw_trace_info_eq): New.
8582         (get_trace_index, get_trace_info): New.
8583         (save_point_p): New.
8584         (free_cfi_row): Remove.
8585         (add_cfi): Do not emit DW_CFA_remember_state.
8586         (cfa_row_equal_p): New.
8587         (barrier_args_size): Remove.
8588         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
8589         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
8590         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
8591         (dwarf2out_cfi_begin_epilogue): Remove.
8592         (dwarf2out_frame_debug_restore_state): Remove.
8593         (connect_traces, create_pseudo_cfg): New.
8594         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
8595         * Makefile.in (dwarf2cfi.o): Update.
8596
8597 2011-07-23  Richard Henderson  <rth@redhat.com>
8598
8599         * dwarf2cfi.c (dw_trace_info): New.
8600         (dw_label_info): New.
8601         (cie_return_save): New.
8602         (cur_trace): New.
8603         (queued_args_size): Rename from args_size.  Update all users.
8604         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
8605         (def_cfa_1): Use cur_trace instead of cfa_*.
8606         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
8607         (clobbers_queued_reg_save, reg_saved_in): Likewise.
8608         (dwarf2out_frame_debug_expr): Likewise.
8609         (create_cie_data): Split out from ...
8610         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
8611
8612 2011-07-23  Richard Henderson  <rth@redhat.com>
8613
8614         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
8615         Update all users to match.
8616         (execute_dwarf2_frame): Free reg_saved_in_data.
8617
8618 2011-07-23  Richard Henderson  <rth@redhat.com>
8619
8620         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
8621         (queued_reg_saves): Don't GTY.  Change to a VEC.
8622         (queue_reg_save): Update to match.
8623         (dwarf2out_flush_queued_reg_saves): Likewise.
8624         (clobbers_queued_reg_save): Likewise.
8625         (reg_saved_in): Likewise.
8626         (execute_dwarf2_frame): Free queued_reg_saves.
8627
8628 2011-07-23  Richard Henderson  <rth@redhat.com>
8629
8630         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
8631
8632 2011-07-23  Richard Henderson  <rth@redhat.com>
8633
8634         * dwarf2cfi.c (add_cfi_args_size): Split out from...
8635         (dwarf2out_args_size): ... here.
8636         (add_cfi_restore): Split out from ...
8637         (dwarf2out_frame_debug_cfa_restore): ... here.
8638         (def_cfa_0): Split out from ...
8639         (def_cfa_1): ... here.
8640         (cfi_oprnd_equal_p, cfi_equal_p): New.
8641         (change_cfi_row): New.
8642         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
8643         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
8644         (output_cfis): Remove.
8645         * dwarf2out.c (output_fde): Simplify output_cfi loop.
8646         (dwarf2out_switch_text_section): Don't call output_cfis.
8647         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
8648         * dwarf2out.h: Update decls.
8649         (enum dw_val_class): Add dw_val_class_none.
8650
8651 2011-07-23  Richard Henderson  <rth@redhat.com>
8652
8653         * dwarf2cfi.c (update_row_reg_save): New.
8654         (dwarf2out_frame_debug_cfa_expression): Use it.
8655         (dwarf2out_frame_debug_cfa_restore): Likewise.
8656         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
8657
8658 2011-07-23  Richard Henderson  <rth@redhat.com>
8659
8660         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
8661
8662 2011-07-23  Richard Henderson  <rth@redhat.com>
8663
8664         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
8665         (cie_cfi_row): New.
8666         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
8667         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
8668         (cur_row, remember_row): New.
8669         (def_cfa_1): Use cur_row instead of the old_* variables.
8670         (dwarf2out_frame_debug_restore_state): Similarly.
8671         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
8672         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
8673         (dwarf2out_frame_debug_adjust_cfa): Likewise.
8674         (dwarf2out_frame_debug_cfa_offset): Likewise.
8675         (dwarf2out_frame_debug_expr): Likewise.
8676         (execute_dwarf2_frame): Set up cur_row.
8677         * dwarf2out.h (struct cfa_loc): Mark for GTY.
8678
8679 2011-07-23  Richard Henderson  <rth@redhat.com>
8680
8681         * basic-block.h (EDGE_PRESERVE): New.
8682         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
8683         * bb-reorder.c: Include except.h.
8684         (fix_up_crossing_landing_pad): New.
8685         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
8686         landing pads in the right partition.  Duplicate as necessary.
8687         (partition_hot_cold_basic_blocks): Fix up DF info after
8688         duplicating landing pads.
8689         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
8690         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
8691         is set properly.  Validate that EH edges are not CROSSING.
8692         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
8693         (dw2_build_landing_pads): ... here.
8694         (convert_to_eh_region_ranges): Remove code to fixup crossing
8695         landing pads.
8696         * except.h (expand_dw2_landing_pad_for_region): Declare.
8697         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
8698
8699 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
8700
8701         PR target/49816
8702         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
8703
8704 2011-07-22  Jason Merrill  <jason@redhat.com>
8705
8706         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
8707
8708 2011-07-22  Richard Henderson  <rth@redhat.com>
8709
8710         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
8711
8712 2011-07-22  Richard Henderson  <rth@redhat.com>
8713
8714         * jump.c (maybe_propagate_label_ref): Split out of...
8715         (mark_all_labels): ... here.  Do not attempt label_ref
8716         propagation while in cfglayout mode.
8717
8718 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
8719
8720         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
8721         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
8722         (dwarf_attr_name): Handle DW_AT_GNU_macros.
8723         (dwarf2out_define): If the vector is empty and
8724         lineno is 0, emit a dummy entry first.
8725         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
8726         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
8727         optimize_macinfo_range): New functions.
8728         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
8729         mergeable, optimize longer strings using
8730         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
8731         optimize longer sequences of define/undef ops from headers
8732         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
8733         emit a section headers.
8734         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
8735         and macinfo_section_label to DEBUG_MACRO_SECTION
8736         resp. DEBUG_MACRO_SECTION_LABEL.
8737         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
8738         instead of DW_AT_macro_info.
8739
8740         PR other/32998
8741         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
8742         options.
8743         * dwarf2out.c: Include opts.h.
8744         (dchar_p): New typedef.  Define heap VEC for it.
8745         (producer_string): New variable.
8746         (gen_producer_string): New function.
8747         (gen_compile_unit_die): Use it.
8748         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
8749         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
8750         * doc/invoke.texi: Document -grecord-gcc-switches and
8751         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
8752         to -frecord-gcc-switches description.
8753
8754 2011-07-22  Jason Merrill  <jason@redhat.com>
8755
8756         PR c++/30112
8757         * c-decl.c (c_linkage_bindings): Define.
8758
8759 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
8760
8761         PR debug/49815
8762         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
8763
8764 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
8765
8766         * config/i386/i386.c (ix86_option_override_internal): Disallow
8767         MS ABI in x32 mode.
8768         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
8769         only for TARGET_LP64.
8770         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
8771
8772 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
8773
8774         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
8775         avoid warnings when GCC is built with a C++ compiler.
8776
8777 2011-07-22  Martin Jambor  <mjambor@suse.cz>
8778
8779         PR lto/49796
8780         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
8781         if decl node is in another partition, call cgraph_get_node only once.
8782
8783 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
8784
8785         * config.gcc (x86_64-*-linux*): Set
8786         default_gnu_indirect_function to yes.
8787
8788 2011-07-22  Richard Guenther  <rguenther@suse.de>
8789
8790         PR tree-optimization/45819
8791         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
8792         preserve volatile and notrap flags.
8793
8794 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8795             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8796
8797         PR bootstrap/49794
8798         * configure.ac: Test AM_ICONV with CXX.
8799         * configure: Regenerate.
8800         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
8801
8802 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8803
8804         PR bootstrap/49797
8805         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
8806         (set_cloog_options): Use it.
8807
8808 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
8809
8810         PR c++/49756
8811         * gcc.c (main): Call stack_limit_increase (64MB).
8812         * toplev.c (toplev_main): Likewise.
8813
8814 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8815
8816         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
8817         instead of force_reg.
8818
8819 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8820
8821         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
8822         needed and use force_reg after convert.
8823         (ix86_expand_call): Likewise.
8824         (ix86_expand_special_args_builtin): Likewise.
8825         (ix86_expand_builtin): Likewise.
8826
8827 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8828
8829         PR middle-end/47654
8830         PR middle-end/49649
8831         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
8832         in parameter.  Initialize v1 and v2 based on the values returned
8833         by clast_name_to_lb_ub.
8834         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
8835         values.
8836         (type_for_clast_bin): Same.
8837         (type_for_clast_expr): Same.
8838         (type_for_clast_eq): Update calls to type_for_clast_expr.
8839         (type_for_clast_for): Same.
8840         (build_iv_mapping): Same.
8841         * graphite-ppl.h (value_min): New.
8842
8843 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8844
8845         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
8846         types whenever possible.
8847
8848 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8849
8850         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
8851         and ub fields.
8852         (new_clast_name_index): Add lb and ub parameters.
8853         (free_clast_name_index): New.
8854         (clast_name_to_lb_ub): New.
8855         (save_clast_name_index): Add lb and ub parameters.
8856         (compute_bounds_for_param): New.
8857         (type_for_level): Removed.
8858         (type_for_clast_for): Removed level parameter.  Do not call
8859         type_for_level.
8860         (graphite_create_new_loop): Store the lb and ub for the clast_name
8861         of the iterator of the loop that has been generated.
8862         (graphite_create_new_loop_guard): Remove parameter level.
8863         (create_params_index): Store the lb and ub of each parameter.
8864         (gloog): Use free_clast_name_index.  Pass to create_params_index
8865         the current scop.
8866
8867 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8868
8869         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
8870         (max_precision_type): Inline max_signed_precision_type.
8871         (type_for_clast_red): Use max_precision_type.
8872         (type_for_clast_bin): Same.
8873         (type_for_clast_for): Same.
8874
8875 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8876
8877         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
8878         type_for_interval.
8879         (gcc_type_for_value): Renamed type_for_value.
8880         (gcc_type_for_clast_term): Renamed type_for_clast_term.
8881         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
8882         (gcc_type_for_clast_red): Renamed type_for_clast_red.
8883         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
8884         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
8885         (graphite_translate_clast_equation): Update calls.
8886         (compute_type_for_level): Renamed type_for_level.
8887         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
8888         (build_iv_mapping): Update calls.
8889         (graphite_create_new_loop_guard): Same.
8890
8891 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8892
8893         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
8894         comment.
8895
8896 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8897
8898         * graphite-clast-to-gimple.c (struct ivs_params): New.
8899         (clast_name_to_gcc): Use ivs_params to pass around parameters.
8900         (clast_to_gcc_expression): Same.
8901         (clast_to_gcc_expression_red): Same.
8902         (gcc_type_for_clast_term): Same.
8903         (gcc_type_for_clast_expr): Same.
8904         (gcc_type_for_clast_red): Same.
8905         (gcc_type_for_clast_bin): Same.
8906         (gcc_type_for_clast_eq): Same.
8907         (graphite_translate_clast_equation): Same.
8908         (graphite_create_guard_cond_expr): Same.
8909         (graphite_create_new_guard): Same.
8910         (graphite_create_new_loop): Same.
8911         (build_iv_mapping): Same.
8912         (translate_clast_user): Same.
8913         (graphite_create_new_loop_guard): Same.
8914         (translate_clast): Same.
8915         (translate_clast_for_loop): Same.
8916         (translate_clast_for): Same.
8917         (translate_clast_guard): Same.
8918         (initialize_cloog_names): Fix typo.
8919         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
8920
8921 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8922
8923         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
8924         (new_clast_name_index): Add level parameter.
8925         (clast_name_to_level): New.
8926         (save_clast_name_index): Add level parameter.
8927         (newivs_to_depth_to_newiv): Removed.
8928         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
8929         (graphite_create_new_loop): Add level parameter.  Pass level to
8930         save_clast_name_index.
8931         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
8932         (create_params_index): Pass level to save_clast_name_index.
8933
8934 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8935
8936         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
8937         recompute type, lb, and ub.  Get them from...
8938         (graphite_create_new_loop_guard): ...here.  Pass in parameter
8939         pointers to type, lb, and ub.
8940         (translate_clast_for_loop): Update function calls.
8941         (translate_clast_for): Same.
8942
8943 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8944
8945         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
8946         psct_dynamic_dim.
8947         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
8948         (gcc_type_for_iv_of_clast_loop): Update use of level.
8949         (gloog): Start counting nesting level from 0.
8950         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
8951         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
8952         psct_dynamic_dim on level.
8953
8954 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8955
8956         * config/i386/i386.c (ix86_legitimize_address): Convert to
8957         Pmode if needed.
8958
8959 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8960
8961         * config/i386/i386.c (function_value_64): Always return pointers
8962         in Pmode.
8963         (ix86_promote_function_mode): New.
8964         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
8965
8966 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8967
8968         PR tree-optimization/49749
8969         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
8970         remove no-longer-used maxrank variable.
8971
8972 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
8973
8974         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
8975
8976 2011-07-21  Jason Merrill  <jason@redhat.com>
8977
8978         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
8979         * recog.h (struct insn_data_d): Check it instead of
8980         HAVE_DESIGNATED_INITIALIZERS.
8981         * genoutput.c (output_insn_data): Likewise.
8982
8983 2011-07-21  Richard Guenther  <rguenther@suse.de>
8984
8985         PR tree-optimization/49770
8986         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
8987         valueized any operand.  Renamed from ...
8988         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
8989         (valueize_shared_reference_ops_from_ref): Return whether we
8990         valueized any operand.
8991         (vn_reference_lookup): Only when we valueized any operand
8992         use the valueized reference for alias analysis.  Do not preserve
8993         the original reference tree in this case.
8994
8995 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
8996
8997         * config/i386/i386.c (ix86_decompose_address): Reject all but
8998         register operands and subregs of DImode hard registers in index.
8999
9000 2011-07-21  Kai Tietz  <ktietz@redhat.com>
9001
9002         * fold-const.c (fold_unary_loc): Preserve indirect
9003         comparison cast to none-boolean type.
9004         * tree-ssa.c (useless_type_conversion_p): Preserve cast
9005         from/to boolean-type.
9006         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
9007         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
9008         * tree-cfg.c (verify_gimple_comparison): Check result
9009         type of comparison expression.
9010         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
9011         of condition result and disallow type-cast sinking into comparison.
9012
9013 2011-07-21  Richard Guenther  <rguenther@suse.de>
9014
9015         * tree-ssa-forwprop.c (combine_conversions): Return whether
9016         we have to run cfg-cleanup.  Properly remove dead stmts.
9017         (ssa_forward_propagate_and_combine): Adjust.
9018
9019 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
9020
9021         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
9022
9023 2011-07-21  Kai Tietz  <ktietz@redhat.com>
9024
9025         * tree-ssa-propagate.c (substitute_and_fold): Use
9026         do_dce flag to deside, if BB's statements are scanned
9027         in last to first, or first to last order.
9028
9029 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
9030
9031         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
9032
9033 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
9034             Uros Bizjak  <ubizjak@gmail.com>
9035             Richard Henderson  <rth@redhat.com>
9036
9037         * config/i386/constraints.md (w): New.
9038
9039         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
9040         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
9041
9042         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
9043         instead of TARGET_64BIT.
9044
9045         * config/i386/i386.md (indirect_jump): Replace
9046         nonimmediate_operand with indirect_branch_operand.
9047         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
9048         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
9049         Convert operand 0 to Pmode for x32 if not PIC.
9050         (*tablejump_1): Replace nonimmediate_operand with
9051         indirect_branch_operand.  Replace constraint "m" with "w".
9052         (*call_vzeroupper): Replace constraint "m" with "w".
9053         (*call): Likewise.
9054         (*call_rex64_ms_sysv_vzeroupper): Likewise.
9055         (*call_rex64_ms_sysv): Likewise.
9056         (*call_value_vzeroupper): Likewise.
9057         (*call_value): Likewise.
9058         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
9059         (*call_value_rex64_ms_sysv): Likewise.
9060         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
9061
9062         * config/i386/predicates.md (indirect_branch_operand): New.
9063         (call_insn_operand): Support x32.
9064
9065 2011-07-20  Michael Eager  <eager@eagercon.com>
9066
9067         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
9068
9069 2011-07-20  Richard Henderson  <rth@redhat.com>
9070
9071         * cfg.c (dump_bb_info): Dump basic_block->flags.
9072         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
9073
9074 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
9075
9076         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
9077         of DImode hard registers in index.
9078         (ix86_legitimate_address_p): Allow subregs of base and index to span
9079         more than a word.  Assert that subregs of base and index satisfy
9080         register_no_elim_operand predicates.  Reject addresses where
9081         base and index have different modes.
9082
9083 2011-07-20  Robert Millan  <rmh@gnu.org>
9084
9085         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
9086
9087 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9088
9089         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
9090         removing now-unnecessary assignment.
9091
9092 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9093
9094         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
9095         memory address space to the type's address space.
9096
9097 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
9098
9099         PR target/36467
9100         PR target/49687
9101         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
9102         and expand appropriately if there is a CONST_INT in operand2.
9103         (usmulqihi3): New insn.
9104         (*sumulqihi3): New insn.
9105         (*osmulqihi3): New insn.
9106         (*oumulqihi3): New insn.
9107         (*muluqihi3.uconst): New insn_and_split.
9108         (*muluqihi3.sconst): New insn_and_split.
9109         (*mulsqihi3.sconst): New insn_and_split.
9110         (*mulsqihi3.uconst): New insn_and_split.
9111         (*mulsqihi3.oconst): New insn_and_split.
9112         (*ashifthi3.signx.const): New insn_and_split.
9113         (*ashifthi3.signx.const7): New insn_and_split.
9114         (*ashifthi3.zerox.const): New insn_and_split.
9115         (mulsqihi3): New insn.
9116         (muluqihi3): New insn.
9117         (muloqihi3): New insn.
9118         * config/avr/predicates.md (const_2_to_7_operand): New.
9119         (const_2_to_6_operand): New.
9120         (u8_operand): New.
9121         (s8_operand): New.
9122         (o8_operand): New.
9123         (s9_operand): New.
9124         (register_or_s9_operand): New.
9125
9126 2011-07-20  Kai Tietz  <ktietz@redhat.com>
9127
9128         * builtins.c (fold_builtin_expect): See through the cast
9129         from truthvalue_type_node to long.
9130
9131 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
9132
9133         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
9134         where we can use them from the standard and altivec instruction
9135         sets, instead of always using the 3 operand VSX forms that require
9136         the destination to overlap one of the inputs.
9137         (vsx_fms*): Ditto.
9138         (vsx_fnma*): Ditto.
9139         (vsx_fnms*): Ditto.
9140
9141         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
9142         for DF types.
9143         (fmsdf4_fpr): Ditto.
9144         (nfmadf4_fpr): Ditto.
9145         (nfmsdf4_fpr): Ditto.
9146
9147 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
9148
9149         * genrecog.c (make_insn_sequence): Correct position numbering
9150         when filtering out match_scratch and match_dup.
9151
9152 2011-07-20  Richard Guenther  <rguenther@suse.de>
9153
9154         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
9155         against already removed statements.
9156         (forward_propagate_into_comparison): Remove dead defining stmts.
9157         (forward_propagate_into_gimple_cond): Likewise.
9158         (forward_propagate_into_cond): Simplify.
9159         (ssa_forward_propagate_and_combine): Handle changed cfg from
9160         forward_propagate_into_comparison.
9161         * tree-ssa-phiopt.c (conditional_replacement): Use proper
9162         locations for newly built statements.
9163
9164 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
9165
9166         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
9167
9168 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9169
9170         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
9171         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
9172
9173 2011-07-20  Richard Guenther  <rguenther@suse.de>
9174
9175         PR middle-end/18908
9176         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
9177         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
9178         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
9179
9180 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
9181
9182         * config/frv/frv.c (frv_register_move_cost): Define explicitly
9183         costs for subclasses of GR_REGS.
9184
9185 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
9186
9187         PR target/49780
9188         * config/i386/predicates.md (no_seg_addres_operand): No more special.
9189         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
9190         of DImode hard registers in base.
9191         (ix86_legitimate_address_p): Allow SImode and DImode base and index
9192         registers.
9193
9194 2011-07-20  Richard Guenther  <rguenther@suse.de>
9195
9196         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
9197         (unify_nodes): Deal with that.
9198         (solve_graph): Likewise.
9199
9200 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
9201
9202         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
9203         canonicalize left operand from ZERO_EXTEND to AND.
9204
9205 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
9206
9207         * target.def (class_max_nregs): New hook.
9208         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
9209         * doc/tm.texi: Regenerate.
9210         * targhooks.c (default_class_max_nregs): New function.
9211         * targhooks.h (default_class_max_nregs): Declare.
9212         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
9213         x_ira_reg_class_min_nregs arrays to unsigned char.
9214         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
9215         hook instead of CLASS_MAX_NREGS macro.
9216         * reginfo.c (restore_register_info): Ditto.
9217         * ira-conflicts.c (process_regs_for_copy): Use
9218         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
9219         Change type rclass and aclass vars to reg_class_t.
9220         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
9221         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
9222         reg_class_t.
9223         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
9224         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
9225
9226         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
9227         * config/i386/i386.c (ix86_class_max_nregs): New function.
9228         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
9229         instead of CLASS_MAX_NREGS macro.
9230         (TARGET_CLASS_MAX_NREGS): Define.
9231         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
9232         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
9233         * config/avr/avr.c (class_max_nregs): Remove function.
9234         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
9235         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
9236         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
9237         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
9238         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
9239         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
9240         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
9241         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
9242         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
9243         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
9244         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
9245         * config/score/score.h (CLASS_MAX_NREGS): Remove.
9246         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
9247         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
9248         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
9249
9250 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
9251
9252         * cif-code.def (OVERWRITABLE): Fix typo and move around.
9253         (TARGET_OPTIMIZATION_MISMATCH): Delete.
9254         (EH_PERSONALITY): Fix typo.
9255         (NON_CALL_EXCEPTIONS): Fix message.
9256         (OPTIMIZATION_MISMATCH): Adjust message.
9257         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
9258
9259 2011-07-19  Ian Lance Taylor  <iant@google.com>
9260
9261         * doc/install.texi (Configuration): Document
9262         --enable-build-poststage1-with-cxx.
9263
9264 2011-07-19  Robert Millan  <rmh@gnu.org>
9265
9266         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
9267         (GLIBC_DYNAMIC_LINKER): Remove.
9268
9269         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
9270         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
9271         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
9272         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
9273         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
9274         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
9275
9276         * config/mips/linux.h: Remove everything except for ...
9277         (GLIBC_DYNAMIC_LINKER): ... this macro.
9278
9279         * config/mips/linux64.h: Remove everything except for ...
9280         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
9281         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
9282         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
9283         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
9284         (GNU_USER_LINK_EMULATIONN32): New macros.
9285
9286         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
9287         Use the new headers.
9288
9289 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9290
9291         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
9292         Add offset_known_p and size_known_p fields.
9293         (MEM_OFFSET_KNOWN_P): Update accordingly.
9294         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
9295         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
9296         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
9297         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
9298         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
9299         (init_emit_regs): Likewise.
9300
9301 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9302
9303         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
9304         (MEM_OFFSET): Change from returning an rtx to returning a
9305         HOST_WIDE_INT.
9306         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
9307         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
9308         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
9309         (clear_mem_offset): Declare.
9310         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
9311         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
9312         MEM_OFFSET to get a HOST_WIDE_INT offset.
9313         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
9314         (adjust_offset_for_component_ref): Take a bool "known_p"
9315         parameter and a HOST_WIDE_INT "offset" parameter.
9316         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
9317         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
9318         than an rtx.  Use clear_mem_offset to clear the offset.
9319         * cfgcleanup.c (merge_memattrs): Likewise.
9320         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
9321         * function.c (assign_parm_find_stack_rtl): Likewise.
9322         (assign_parm_setup_stack): Likewise.
9323         * print-rtl.c (print_rtx): Likewise.
9324         * reload.c (find_reloads_subreg_address): Likewise.
9325         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
9326         * var-tracking.c (INT_MEM_OFFSET): Likewise.
9327         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
9328         (get_mem_align_offset): Likewise.
9329         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
9330         (clear_mem_offset): New function.
9331         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
9332         offset rather than an rtx.  Assume both the expressio and offset
9333         are available.
9334         (r10k_needs_protection_p_1): Update accordingly, checking the
9335         expression and offset availability here instead.
9336
9337 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9338
9339         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
9340         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
9341         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
9342         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
9343         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
9344         (clear_mem_size): Declare.
9345         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
9346         (clear_mem_size): New function.
9347         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
9348         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
9349         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
9350         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
9351         to clear the size.
9352         (nonoverlapping_memrefs_p): Likewise.
9353         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
9354         (expand_builtin_init_trampoline): Likewise.
9355         * calls.c (compute_argument_addresses): Likewise.
9356         * cfgcleanup.c (merge_memattrs): Likewise.
9357         * dce.c (find_call_stack_args): Likewise.
9358         * dse.c (record_store, scan_insn): Likewise.
9359         * dwarf2out.c (dw_sra_loc_expr): Likewise.
9360         * expr.c (emit_block_move_hints): Likewise.
9361         * function.c (assign_parm_find_stack_rtl): Likewise.
9362         * print-rtl.c (print_rtx): Likewise.
9363         * reload.c (find_reloads_subreg_address): Likewise.
9364         * rtlanal.c (may_trap_p_1): Likewise.
9365         * var-tracking.c (track_expr_p): Likewise.
9366         * varasm.c (assemble_trampoline_template): Likewise.
9367         * config/arm/arm.c (arm_print_operand): Likewise.
9368         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
9369         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
9370         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
9371         (expand_constant_setmem_prologue): Likewise.
9372         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
9373         * config/rs6000/rs6000.c (expand_block_move): Likewise.
9374         (adjacent_mem_locations): Likewise.
9375         * config/s390/s390.c (s390_expand_setmem): Likewise.
9376         (s390_expand_insv): Likewise.
9377         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
9378         (*extendqi<mode>2_short_displ): Likewise.
9379         * config/sh/sh.c (expand_block_move): Likewise.
9380         * config/sh/sh.md (extv, extzv): Likewise.
9381
9382 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9383
9384         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
9385         (mem_attrs_htab_eq): ...here.
9386         (find_mem_attrs): Replace with...
9387         (set_mem_attrs): ...this function.  Take a mem_attrs structure
9388         rather than individual fields.
9389         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
9390         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
9391         (set_mem_size, change_address, adjust_address_1, offset_address)
9392         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
9393         Update accordingly.
9394
9395 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9396
9397         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
9398         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
9399         Provide a dummy definition of MEM_ADDR_SPACE for generators.
9400         (target_rtl): Add x_mode_mem_attrs.
9401         (mode_mem_attrs): New macro.
9402         (get_mem_attrs): New function.
9403         * emit-rtl.c (get_mem_attrs): Rename to...
9404         (find_mem_attrs): ...this.
9405         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
9406         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
9407         (set_mem_size, change_address, adjust_address_1, offset_address)
9408         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
9409         Update accordingly.
9410         (init_emit_regs): Initialize mode_mem_attrs.
9411
9412 2011-07-19  Richard Guenther  <rguenther@suse.de>
9413
9414         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
9415         TRUTH_*_EXPR handling.
9416         * tree-ssa-operands.c (get_expr_operands): Likewise.
9417         * tree-ssa-pre.c (fully_constant_expression): Likewise.
9418         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
9419         Likewise.
9420         (is_and_or_or): Likewise.
9421         (is_norm_cond_subset_of): Likewise.
9422
9423 2011-07-19  Richard Guenther  <rguenther@suse.de>
9424
9425         * tree.h (fold_build_pointer_plus_loc): New helper function.
9426         (fold_build_pointer_plus_hwi_loc): Likewise.
9427         (fold_build_pointer_plus): Define.
9428         (fold_build_pointer_plus_hwi): Likewise.
9429         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
9430         (fold_builtin_memory_op): Likewise.
9431         (fold_builtin_stpcpy): Likewise.
9432         (fold_builtin_memchr): Likewise.
9433         (fold_builtin_strstr): Likewise.
9434         (fold_builtin_strchr): Likewise.
9435         (fold_builtin_strrchr): Likewise.
9436         (fold_builtin_strpbrk): Likewise.
9437         (fold_builtin_strcat): Likewise.
9438         (expand_builtin_memory_chk): Likewise.
9439         (fold_builtin_memory_chk): Likewise.
9440         * c-typeck.c (build_unary_op): Likewise.
9441         * cgraphunit.c (thunk_adjust): Likewise.
9442         * fold-const.c (build_range_check): Likewise.
9443         (fold_binary_loc): Likewise.
9444         * omp-low.c (extract_omp_for_data): Likewise.
9445         (expand_omp_for_generic): Likewise.
9446         (expand_omp_for_static_nochunk): Likewise.
9447         (expand_omp_for_static_chunk): Likewise.
9448         * tree-affine.c (add_elt_to_tree): Likewise.
9449         * tree-data-ref.c (split_constant_offset_1): Likewise.
9450         * tree-loop-distribution.c (generate_memset_zero): Likewise.
9451         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
9452         * tree-predcom.c (ref_at_iteration): Likewise.
9453         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
9454         (add_to_parts): Likewise.
9455         (create_mem_ref): Likewise.
9456         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
9457         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
9458         (number_of_iterations_le): Likewise.
9459         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
9460         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
9461         (vect_create_addr_base_for_vector_ref): Likewise.
9462         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
9463         (vect_create_cond_for_alias_checks): Likewise.
9464         * tree-vrp.c (extract_range_from_assert): Likewise.
9465         * config/alpha/alpha.c (alpha_va_start): Likewise.
9466         (alpha_gimplify_va_arg_1): Likewise.
9467         * config/i386/i386.c (ix86_va_start): Likewise.
9468         (ix86_gimplify_va_arg): Likewise.
9469         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
9470         * config/mep/mep.c (mep_expand_va_start): Likewise.
9471         (mep_gimplify_va_arg_expr): Likewise.
9472         * config/mips/mips.c (mips_va_start): Likewise.
9473         (mips_gimplify_va_arg_expr): Likewise.
9474         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
9475         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
9476         (rs6000_gimplify_va_arg): Likewise.
9477         * config/s390/s390.c (s390_va_start): Likewise.
9478         (s390_gimplify_va_arg): Likewise.
9479         * config/sh/sh.c (sh_va_start): Likewise.
9480         (sh_gimplify_va_arg_expr): Likewise.
9481         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
9482         * config/spu/spu.c (spu_va_start): Likewise.
9483         (spu_gimplify_va_arg_expr): Likewise.
9484         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
9485         Likewise.
9486         (xstormy16_gimplify_va_arg_expr): Likewise.
9487         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
9488         (xtensa_gimplify_va_arg_expr): Likewise.
9489
9490 2011-07-19  Richard Guenther  <rguenther@suse.de>
9491
9492         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
9493         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
9494         handling.
9495
9496         PR middle-end/18908
9497         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
9498         result of BIT_*_EXPR to bitfield precision.
9499
9500 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
9501
9502         PR tree-optimization/49742
9503         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
9504         as a potential write.
9505
9506 2011-07-19  Richard Guenther  <rguenther@suse.de>
9507
9508         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
9509         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
9510         (forward_propagate_comparison): Simplify, remove obsolete code.
9511
9512 2011-07-19  Richard Guenther  <rguenther@suse.de>
9513
9514         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
9515         BIT_XOR_EXPR, same as the RTL expander does.
9516         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
9517         (verify_gimple_assign_unary): Likewise.
9518         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
9519         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
9520         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
9521
9522 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
9523
9524         PR tree-optimization/49768
9525         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
9526         if offset is smaller than bitoffset, but offset+size is bigger
9527         than bitoffset.
9528
9529 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
9530
9531         PR tree-optimization/49771
9532         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
9533         zero step, set segment length to the size of the data-ref's type.
9534
9535 2011-07-18  Martin Jambor  <mjambor@suse.cz>
9536
9537         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
9538         comments.
9539         (ipcp_values_pool): Declare.
9540         (ipcp_sources_pool): Likewise.
9541         (ipcp_lattice): Changed to forward declaration.
9542         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
9543         cannot_devirtualize.
9544         (ipa_node_params): New fields descriptors, lattices, known_vals,
9545         clone_for_all_contexts and node dead, removed fields params and
9546         count_scale.
9547         (ipa_set_param_count): Removed.
9548         (ipa_get_param_count): Made to work with descriptors vector.
9549         (ipa_get_param): Updated.
9550         (ipa_param_cannot_devirtualize_p): Removed.
9551         (ipa_param_types_vec_empty): Likewise.
9552         (ipa_set_param_used): New function.
9553         (ipa_get_param_used): Updated to use descriptors vector.
9554         (ipa_func_list): Removed.
9555         (ipa_init_func_list): Removed declaration.
9556         (ipa_push_func_to_list_1): Likewise.
9557         (ipa_pop_func_from_list): Likewise.
9558         (ipa_push_func_to_list): Removed.
9559         (ipa_lattice_from_jfunc): Remove declaration.
9560         (ipa_get_jf_pass_through_result): Declare.
9561         (ipa_get_jf_ancestor_result): Likewise.
9562         (ipa_value_from_jfunc): Likewise.
9563         (ipa_get_lattice): Update.
9564         (ipa_lat_is_single_const): New function.
9565         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
9566         (ipa_init_func_list): Likewise.
9567         (ipa_pop_func_from_list): Likewise.
9568         (ipa_get_param_decl_index): Fix coding style.
9569         (count_formal_params): Removed.
9570         (count_formal_params_1): Renamed to count_formal_params.
9571         (ipa_populate_param_decls): Update to use descriptors vector.
9572         (ipa_initialize_node_params): Likewise.
9573         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
9574         (ipa_analyze_params_uses): Likewise.
9575         (ipa_free_node_params_substructures): Likewise and free also lattices
9576         and known values.
9577         (duplicate_array): Removed.
9578         (ipa_edge_duplication_hook): Add the new edge to the list of edge
9579         clones.
9580         (ipa_node_duplication_hook): Update to use new lattices.
9581         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
9582         (ipa_free_all_structures_after_iinln): Likewise.
9583         (ipa_write_node_info): Update to use new lattices.
9584         (ipa_read_node_info): Likewise.
9585         (ipa_get_jf_pass_through_result): New function.
9586         (ipa_get_jf_ancestor_result): Likewise.
9587         (ipa_value_from_jfunc): Likewise.
9588         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
9589         * ipa-cp.c: Reimplemented.
9590         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
9591         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
9592         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
9593         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
9594         * doc/invoke.texi (devirt-type-list-size): Removed description.
9595         (ipa-cp-value-list-size): Added description.
9596
9597 2011-07-18  Richard Henderson  <rth@redhat.com>
9598
9599         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
9600         before calling create_basic_block.
9601
9602 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
9603
9604         PR middle-end/49675
9605         * tree.c (build_common_builtin_nodes): Register
9606         __builtin_return_address, __cyg_profile_func_enter
9607         and __cyg_profile_func_exit.
9608
9609 2011-07-18  Richard Henderson  <rth@redhat.com>
9610
9611         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
9612         (add_labels_and_missing_jumps): ... here.
9613         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
9614
9615 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
9616
9617         PR target/47744
9618         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
9619         of DImode hard registers in PLUS address chains.
9620
9621 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9622
9623         PR bootstrap/49769
9624         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
9625         (alpha*-*-freebsd*): Likewise.
9626         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
9627         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
9628         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
9629         crtprec80.o, crtfastmath.o to extra_parts for all targets.
9630         (ia64*-*-elf*): Remove extra_parts.
9631         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
9632         (sparc64-*-linux*): Likewise.
9633         (sparc64-*-freebsd*): Likewise.
9634
9635         Revert:
9636         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
9637         (ia64*-*-linux*): Likewise.
9638         (mips64*-*-linux*): Likewise.
9639         (mips*-*-linux*): Likewise.
9640
9641 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
9642
9643         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
9644
9645 2011-07-18  Richard Guenther  <rguenther@suse.de>
9646
9647         * gimplify.c (gimplify_expr): Use input_location, not saved_location
9648         when building new trees.
9649
9650 2011-07-18  Richard Guenther  <rguenther@suse.de>
9651
9652         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
9653         expansion result to bitfield precision if required.
9654
9655 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9656
9657         * config.gcc (i[3456x]86-*-netware*): Remove.
9658
9659         * gthr-nks.h: Remove.
9660         * configure.ac (enable_threads): Remove nks.
9661         * configure: Regenerate.
9662
9663         * config/i386/i386.c (ix86_encode_section_info): Remove netware
9664         reference.
9665         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
9666         <netware.h> reference.
9667
9668         * config/i386/netware-libgcc.c,
9669         gcc/config/i386/netware-libgcc.def,
9670         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
9671         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
9672         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
9673         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
9674
9675         * doc/extend.texi (Function Attributes,
9676         callee_pop_aggregate_return): Remove i?86-netware reference.
9677         * doc/install.texi (Configuration, --enable-threads): Remove nks.
9678
9679 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9680
9681         PR target/49746
9682         Revert:
9683         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9684
9685         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
9686         patterns.
9687
9688 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
9689
9690         PR middle-end/49732
9691         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
9692
9693 2011-07-16  Matthias Klose  <doko@ubuntu.com>
9694
9695         * doc/install.texi: Document --enable-static-libjava.
9696
9697 2011-07-15  Richard Henderson  <rth@redhat.com>
9698
9699         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
9700         Replace all three arguments by returning a VEC of edges.
9701         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
9702         pointers and counts.
9703         (fix_edges_for_rarely_executed_code): Merge ...
9704         (rest_of_handle_partition_blocks): ... into...
9705         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
9706         any work was performed.
9707         (pass_partition_blocks): Clear todo_flags_finish.
9708
9709 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
9710             Jakub Jelinek  <jakub@redhat.com>
9711             Jonathan Wakely  <jwakely.gcc@gmail.com>
9712
9713         PR libstdc++/49745
9714         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
9715         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
9716
9717 2011-07-15  Jason Merrill  <jason@redhat.com>
9718
9719         PR testsuite/49741
9720         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
9721         rather than --tool_opts.
9722
9723 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
9724
9725         * doc/plugins.texi (Building GCC plugins): gengtype needs its
9726         corresponding gtype.state.
9727
9728 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9729
9730         PR target/49723
9731         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
9732
9733 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
9734
9735         PR target/48220
9736         * doc/md.texi (Standard Names): Document window_save.
9737         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
9738         expand_debug_expr and expand_debug_source_expr.  If the target has
9739         a window_save instruction, adjust the ENTRY_VALUE_EXP.
9740         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
9741         SSA_NAME_VAR is a parameter.
9742         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
9743         * var-tracking.c (parm_reg_t): New type and associated vector type.
9744         (windowed_parm_regs): New variable.
9745         (adjust_insn): If the target has a window_save instruction and this
9746         is the instruction, make its effect on parameter registers explicit.
9747         (next_non_note_insn_var_location): New function.
9748         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
9749         (vt_add_function_parameter): If the target has a window_save insn,
9750         adjust the incoming RTL and record that in windowed_parm_regs.
9751         (vt_finalize): Free windowed_parm_regs.
9752
9753 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
9754
9755         * doc/invoke.texi (C6X Options): New section.
9756         * doc/md.texi (TI C6X family): New section.
9757         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
9758         tic6x-*-uclinux.
9759         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
9760         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
9761         Provide C6X definitions.
9762         * config/c6x/c6x.md: New file.
9763         * config/c6x/constraints.md: New file.
9764         * config/c6x/predicates.md: New file.
9765         * config/c6x/c6x-sched.md.in: New file.
9766         * config/c6x/c6x-sched.md: New file.
9767         * config/c6x/gensched.sh: New file.
9768         * config/c6x/c6x-mult.md.in: New file.
9769         * config/c6x/genmult.sh: New file.
9770         * config/c6x/c6x-mult.md: New file.
9771         * config/c6x/sync.md: New file.
9772         * config/c6x/c6x-protos.h: New file.
9773         * config/c6x/sfp-machine.h: New file.
9774         * config/c6x/c6x.c: New file.
9775         * config/c6x/c6x.h: New file.
9776         * config/c6x/crti.s: New file.
9777         * config/c6x/crtn.s: New file.
9778         * config/c6x/lib1funcs.asm: New file.
9779         * config/c6x/c6x-modes.def: New file.
9780         * config/c6x/genopt.sh: New file.
9781         * config/c6x/c6x.opt: New file.
9782         * config/c6x/c6x-tables.opt: New file.
9783         * config/c6x/c6x-opts.h: New file.
9784         * config/c6x/c6x-isas.def: New file.
9785         * config/c6x/elf.h: New file.
9786         * config/c6x/elf-common.h: New file.
9787         * config/c6x/uclinux-elf.h: New file.
9788         * config/c6x/t-c6x: New file.
9789         * config/c6x/t-c6x-elf: New file.
9790         * config/c6x/t-c6x-uclinux: New file.
9791         * config/c6x/t-c6x-softfp: New file.
9792         * config/c6x/gtd.c: New file.
9793         * config/c6x/gtf.c: New file.
9794         * config/c6x/ltd.c: New file.
9795         * config/c6x/ltf.c: New file.
9796         * config/c6x/ged.c: New file.
9797         * config/c6x/gef.c: New file.
9798         * config/c6x/led.c: New file.
9799         * config/c6x/lef.c: New file.
9800         * config/c6x/eqd.c: New file.
9801         * config/c6x/eqf.c: New file.
9802         * config/c6x/libgcc-c6xeabi.ver: New file.
9803
9804         Revert
9805         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
9806         PR rtl-optimization/11320
9807         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
9808         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
9809         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
9810         current_sched_info->compute_jump_reg_dependencies. Record which
9811         registers are used and which registers are set by the jump.
9812         Clear deps->reg_conditional_sets after a barrier.
9813         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
9814         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
9815         (init_deps): Initialize reg_conditional_sets.
9816         (free_deps): Clear reg_conditional_sets.
9817         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
9818         Mark registers live on entry of the fallthrough block and conditionally
9819         set as set by the jump. Mark registers live on entry of non-fallthrough
9820         blocks as used by the jump.
9821         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
9822         Mark new parameters as unused.
9823
9824 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
9825
9826         PR tree-opt/49309
9827         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
9828         Use fold_build2_loc instead of build2.
9829         Use the correct type for the new tree.
9830
9831 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9832
9833         PR rtl-optimization/11320
9834         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
9835         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
9836
9837 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
9838
9839         PR target/49487
9840         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
9841         of REG.
9842         (*rotw<mode>): Use const_int_operand for operand2.
9843         Use match_scatch for operand3.
9844         (*rotb<mode>): Ditto
9845         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
9846
9847 2011-07-14  Richard Guenther  <rguenther@suse.de>
9848
9849         PR tree-optimization/49651
9850         * tree-ssa-structalias.c (get_constraint_for_1): Properly
9851         handle dereferences with subvariables.
9852
9853 2011-07-14  Richard Guenther  <rguenther@suse.de>
9854
9855         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
9856         (fold_stmt_1): Do it here directly on gimple and as a first thing.
9857
9858 2011-07-14  Richard Guenther  <rguenther@suse.de>
9859
9860         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
9861         not bool_var when folding bool_var != 1 or bool_var == 0.
9862
9863 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9864
9865         * haifa-sched.c (schedule_insns): Remove outdated comment.
9866         (schedule_block): When computing a known value for TODO_SPEC,
9867         just set it rather than using logical operations.
9868         (try_ready): Likewise.  Use a local variable rather than a
9869         pointer to TODO_SPEC.  Reorder an if statement to move the
9870         easy case to the then block.
9871         * sched-deps.c (dep_spec_p): New static function.
9872         (update_dep): Use it to decide whether to call
9873         change_spec_dep_to_hard.
9874         (get_back_and_forw_lists): Use it.
9875         (sd_resolve_dep): Likewise.
9876         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
9877         (haifa_note_mem_dep): Likewise.
9878         (check_dep): Likewise.
9879         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
9880         (sched_free_deps): Free in two passes.
9881
9882 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
9883
9884         PR middle-end/49736
9885         * expr.c (all_zeros_p): Undo bogus part of last change.
9886
9887 2011-07-14  Matthias Klose <doko@ubuntu.com>
9888
9889         * doc/extend.texi (optimize attribute): Fix typo.
9890
9891 2011-07-14  Richard Guenther  <rguenther@suse.de>
9892
9893         * gimplify.c (gimplify_expr): Only do required conversions.
9894
9895 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
9896
9897         PR target/43746
9898         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
9899         i.e. use default_elf_select_section.
9900         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
9901         (READONLY_DATA_SECTION_ASM_OP): Remove.
9902         (TARGET_ASM_NAMED_SECTION): Move from here...
9903         * config/avr/avr.c: ...to here.
9904         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
9905         (avr_asm_named_section): Make static.
9906
9907 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9908
9909         PR bootstrap/49739
9910         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
9911         and crtfastmath.o for Linux/x86.
9912
9913 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9914
9915         * haifa-sched.c: Include "hashtab.h"
9916         (sched_no_dce): New global variable.
9917         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
9918         SHADOW_P): New macros.
9919         (last_clock_var, cycle_issued_insns): Move declarations.
9920         (must_backtrack): New static variable.
9921         (struct delay_pair): New structure.
9922         (delay_htab, delay_htab_i2): New static variables.
9923         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
9924         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
9925         functions.
9926         (dep_cost_1): If delay pairs exist, try to look up the insns and
9927         use the correct pair delay if we find them.
9928         (rank-for_schedule): Tweak priority for insns that must be scheduled
9929         soon to avoid backtracking.
9930         (queue_insn): Detect conditions which force backtracking.
9931         (ready_add): Likewise.
9932         (struct sched_block_state): Add member shadows_only_p.
9933         (struct haifa_save_data): New structure.
9934         (backtrack_queue): New static variable.
9935         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
9936         unschedule_insns_until, restore_last_backtrack_point,
9937         free_topmost_backtrack_point, free_backtrack_queue,
9938         estimate_insn_tick, estimate_shadow_tick): New functions.
9939         (prune_ready_list): New arg shadows_only_p.  All callers changed.
9940         If true, remove everything that isn't SHADOW_P.  Look up delay
9941         pairs and estimate ticks to avoid scheduling the first insn too early.
9942         (verify_shadows): New function.
9943         (schedule_block): Add machinery to enable backtracking.
9944         (sched_init): Take sched_no_dce into account when setting
9945         DF_LR_RUN_DCE.
9946         (free_delay_pairs): New function.
9947         (init_h_i_d): Initialize INSN_EXACT_TICK.
9948         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
9949         * sched-deps.c (sd_unresolve_dep): New function.
9950         * sched-int. (struct haifa_sched_info): New fields save_state
9951         and restore_state.
9952         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
9953         feeds_backtrack_insn and shadow_p.
9954         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
9955         (sched_no_dce): Declare variable.
9956         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
9957         sd_unresolve_dep): Declare functions.
9958         * modulo-sched.c (sms_sched_info): Clear the two new fields.
9959         * sched-rgn.c (rgn_const_sched_info): Likewise.
9960         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
9961         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
9962         (ebb_sched_info): Add them for the two new fields.
9963         (add_deps_for_risky_insns): Call add_delay_dependencies.
9964
9965 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
9966
9967         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
9968         Rename -mr11.
9969         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
9970         (rs6000_call_indirect_aix): Ditto.
9971         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
9972         (call_indirect_aix<ptrsize>_internal): Ditto.
9973         (call_indirect_aix<ptrsize>_nor11): Ditto.
9974         (call_indirect_aix<ptrsize>_internal2): Ditto.
9975         (call_value_indirect_aix<ptrsize>): Ditto.
9976         (call_value_indirect_aix<ptrsize>_internal): Ditto.
9977         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
9978         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
9979         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
9980
9981 2011-07-13  Jason Merrill  <jason@redhat.com>
9982
9983         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
9984
9985 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9986
9987         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
9988         * config/spu/spu.md ("clrsb<mode>2"): New expander.
9989
9990 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
9991
9992         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
9993         * configure: Regenerate.
9994
9995 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9996
9997         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
9998         (asm_file_start): Remove.
9999         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
10000         free_bb_for_insn around code that modifies insns before
10001         restarting df analysis.
10002
10003 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10004
10005         PR target/49541
10006         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
10007         (LINK_SPEC): ... here.
10008
10009 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
10010
10011         * haifa-sched.c (struct sched_block_state): New.
10012         (schedule_block): Move some local variables into such a structure.
10013
10014 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10015
10016         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
10017         * config/i386/t-crtpc: Remove.
10018         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
10019         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
10020         tmake_file.
10021         (x86_64-*-darwin*): Likewise.
10022         (i[34567]86-*-linux*): Likewise.
10023         (x86_64-*-linux*): Likewise.
10024
10025         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
10026         Handle -mpc32, -mpc64, -mpc80.
10027
10028 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10029
10030         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
10031         * config/alpha/t-crtfm: Remove.
10032         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
10033         * config/i386/t-crtfm: Remove.
10034         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
10035         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
10036         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
10037         * config/sparc/t-crtfm: Remove.
10038
10039         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
10040         (alpha*-*-freebsd*): Likewise.
10041         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
10042         (x86_64-*-darwin*): Likewise.
10043         (i[34567]86-*-linux*): Likewise.
10044         (x86_64-*-linux*): Likewise.
10045         (x86_64-*-mingw*): Likewise.
10046         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
10047         (ia64*-*-freebsd*): Likewise.
10048         (ia64*-*-linux*): Likewise.
10049         (mips64*-*-linux*): Likewise.
10050         (mips*-*-linux*): Likewise.
10051         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
10052         (sparc64-*-linux*): Likewise.
10053         (sparc64-*-freebsd*): Likewise.
10054
10055 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10056
10057         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
10058         * config/darwin-crt3.c: Move to ../libgcc/config.
10059         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
10060         ($(T)crt3$(objext)): Remove.
10061         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
10062         ($(T)crt2$(objext)): Remove.
10063         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
10064         (powerpc64-*-darwin*): Likewise.
10065
10066 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
10067
10068         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
10069
10070         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
10071         (addsi_1_zext): This.
10072
10073 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
10074
10075         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
10076         * doc/tm.texi: Regenerate.
10077         * target.def (mergeable_rodata_prefix): New defhookpod.
10078         * varasm.c (mergeable_string_section, mergeable_constant_section):
10079         Use it. Allocate name with alloca.
10080
10081 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
10082
10083         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
10084
10085 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
10086
10087         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
10088         overlap check.
10089
10090 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
10091
10092         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
10093         (count_type_elements): Delete.
10094         (complete_ctor_at_level_p): Declare.
10095         * expr.c (flexible_array_member_p): New function, split out from...
10096         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
10097         parameter with for_ctor_p.  When for_ctor_p is true, return the
10098         number of elements that should appear in the top-level constructor,
10099         otherwise return an estimate of the number of scalars.
10100         (categorize_ctor_elements): Replace p_must_clear with p_complete.
10101         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
10102         (complete_ctor_at_level_p): New function, borrowing union logic
10103         from old categorize_ctor_elements_1.
10104         (mostly_zeros_p): Return true if the constructor is not complete.
10105         (all_zeros_p): Update call to categorize_ctor_elements.
10106         * gimplify.c (gimplify_init_constructor): Update call to
10107         categorize_ctor_elements.  Don't call count_type_elements.
10108         Unconditionally prevent clearing for variable-sized types,
10109         otherwise rely on categorize_ctor_elements to detect
10110         incomplete initializers.
10111
10112 2011-07-13  Richard Guenther  <rguenther@suse.de>
10113
10114         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
10115         the final type is integral.
10116
10117 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
10118
10119         * sched-int.h (struct _dep): Add member cost.
10120         (DEP_COST, UNKNOWN_DEP_COST): New macros.
10121         * sched-deps.c (init_dep_1): Initialize DEP_COST.
10122         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
10123         (sched_change_pattern): Reset it for dependent insns.
10124
10125 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10126
10127         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
10128         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
10129         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
10130         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
10131         (CRT0_S, MCRT0_S): Remove.
10132         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
10133         Remove.
10134         (s-crt0): Remove.
10135         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
10136
10137 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
10138
10139         * cse.c (insert_with_costs): Put semi-colon after empty loop body
10140         on the next line.
10141         * emit-rtl.c (push_to_sequence): Likewise.
10142         * haifa-sched.c (max_issue): Likewise.
10143         * matrix-reorg.c (add_allocation_site): Likewise.
10144         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
10145         * reload.c (alternative_allows_const_pool_ref): Likewise.
10146         * sched-rgn.c (rgn_add_block): Likewise.
10147         (rgn_fix_recovery_cfg): Likewise.
10148         * tree.c (attribute_list_contained): Likewise.
10149
10150 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
10151
10152         * config/i386/i386.c: Tidy processor feature bitmasks.
10153         (m_P4_NOCONA): New.
10154
10155 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
10156
10157         PR rtl-opt/49474
10158         * cprop.c (find_implicit_sets): Correct the condition.
10159
10160 2011-07-12  Richard Henderson  <rth@redhat.com>
10161
10162         PR target/49713
10163         * dwarf2out.h (dwarf_frame_regnum): Remove.
10164         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
10165         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
10166         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
10167         (execute_dwarf2_frame): Initialize them.
10168         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
10169         users of the macros with the variables.
10170         (expand_builtin_dwarf_sp_column): Revert last change.
10171         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
10172         result of DWARF_FRAME_REGNUM into a local variable.
10173
10174 2011-07-12  Richard Henderson  <rth@redhat.com>
10175
10176         PR target/49714
10177         * config/i386/i386.c (x86_output_mi_thunk): Use
10178         machopic_indirect_call_target instead of machopic_indirection_name
10179         directly.
10180
10181 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
10182             Eric Botcazou  <ebotcazou@adacore.com>
10183
10184         * prefix.h: Wrap up in extern "C" block.
10185
10186 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
10187
10188         AMD bdver2 Enablement
10189         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
10190         (case ${target}): Add bdver2.
10191         * config/i386/driver-i386.c (host_detect_local_cpu): Let
10192         -march=native recognize bdver2 processors.
10193         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10194         bdver2 def_and_undef
10195         * config/i386/i386.c (struct processor_costs bdver2_cost): New
10196         bdver2 cost table.
10197         (m_BDVER2): New definition.
10198         (m_AMD_MULTIPLE): Includes m_BDVER2.
10199         (initial_ix86_tune_features): Add bdver2 tuning.
10200         (processor_target_table): Add bdver2 entry.
10201         (static const char *const cpu_names): Add bdver2 entry.
10202         (ix86_option_override_internal): Add bdver2 instruction sets.
10203         (ix86_issue_rate): Add bdver2.
10204         (ix86_adjust_cost): Add bdver2.
10205         (has_dispatch): Add bdver2.
10206         * config/i386/i386.h (TARGET_BDVER2): New definition.
10207         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
10208         (enum processor_type): Add PROCESSOR_BDVER2.
10209         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
10210         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
10211         description.
10212
10213 2011-07-12  Richard Henderson  <rth@redhat.com>
10214
10215         PR target/49714
10216         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
10217         destination address in memory on some paths.
10218
10219 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
10220
10221         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
10222         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
10223         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
10224         * function.c (locate_and_pad_parm): Take it into account.
10225         * target.def (function_arg_round_boundary): New hook.
10226         * targhooks.c (default_function_arg_round_boundary): New function.
10227         * targhooks.h (default_function_arg_round_boundary): Declare.
10228         * doc/tm.texi: Regenerate.
10229
10230 2011-07-12  Richard Guenther  <rguenther@suse.de>
10231
10232         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
10233         Do not perform no-op changes.
10234
10235 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
10236
10237         * config/arm/predicates.md (neon_struct_operand): Make a normal
10238         predicate.
10239         (neon_struct_or_register_operand): New predicate.
10240         * config/arm/neon.md (movmisalign<mode>): Replace predicates
10241         with neon_struct_or_register_operand.
10242         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
10243         neon_struct_operand instead of memory_operand.
10244
10245 2011-07-12  Martin Jambor  <mjambor@suse.cz>
10246
10247         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
10248         * cgraph.c (cgraph_get_node_or_alias): Removed.
10249         (change_decl_assembler_name): Changed all calls to
10250         cgraph_get_node_or_alias to a call to cgraph_get_node.
10251         (cgraph_make_decl_local): Likewise.
10252         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
10253         * varasm.c (default_binds_local_p_1): Likewise.
10254         (decl_binds_to_current_def_p): Likewise.
10255
10256 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
10257
10258         PR tree-optimization/49712
10259         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
10260
10261 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
10262
10263         * genautomata.c (add_arc): Return void.  All callers changed.
10264         (make_automaton): Remove dead code.
10265
10266 2011-07-11  Richard Henderson  <rth@redhat.com>
10267
10268         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
10269         (DW_FRAME_POINTER_REGNUM): New.
10270         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
10271         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
10272         (dwf_regno): New.
10273         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
10274         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
10275         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
10276         Use it.
10277         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
10278         * dwarf2out.h (dwarf_frame_regnum): New.
10279         (struct cfa_loc): Document the domain of the reg member.
10280
10281 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
10282
10283         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
10284         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
10285
10286 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
10287
10288         PR debug/49676
10289         * dwarf2out.c (int_shift_loc_descriptor): New function.
10290         (int_loc_descriptor): If shorter, emit i as
10291         (i >> shift), shift, DW_OP_shl for suitable shift value.
10292         Similarly, try to optimize large negative values using
10293         DW_OP_neg of a positive value if shorter.
10294         (size_of_int_shift_loc_descriptor): New function.
10295         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
10296         changes.
10297         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
10298         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
10299         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
10300         is shorter.
10301         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
10302         addend as added DW_OP_plus if it is shorter.
10303
10304 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10305
10306         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
10307         (DTORS_SECTION_ASM_OP): Define.
10308
10309 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10310
10311         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
10312         * config/t-dfprules: Move to ../libgcc/config.
10313         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
10314         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
10315         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
10316         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
10317         Likewise.
10318         (i[34567]86-*-cygwin*): Likewise.
10319         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
10320         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
10321         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
10322         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
10323         D64PBIT_FUNCS, D128PBIT_FUNCS.
10324
10325 2011-07-11  Richard Guenther  <rguenther@suse.de>
10326
10327         * tree-vrp.c (simplify_conversion_using_ranges): Manually
10328         translate the source value-range through the conversion chain.
10329
10330 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
10331
10332         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
10333
10334 2011-07-11  Arthur Loiret  <aloiret@debian.org>
10335
10336         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
10337         a bi-arch compiler defaulting to 31-bit. In this case:
10338         (tmake_file): Add s390/t-linux64.
10339         * doc/install.texi: Add s390-linux to the list of targets supporting
10340         --enable-targets=all.
10341
10342 2011-07-11  Arthur Loiret  <aloiret@debian.org>
10343             Matthias Klose <doko@debian.org>
10344
10345         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
10346         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
10347         (tm_file): Add mips/linux64.h.
10348         (tmake_file): Add mips/t-linux64.
10349         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
10350         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
10351         instead of hardcoded mabi=n32.
10352         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
10353         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
10354         convention.
10355
10356 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10357
10358         * passes.c (init_optimization_passes): Add invariant motion pass
10359         after induction variable optimization.
10360
10361 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
10362
10363         PR target/39633
10364         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
10365         offsets 1..5 set cc0 in a usable way.
10366
10367 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
10368
10369         * tree.h (call_expr_arg): Remove.
10370         (call_expr_argp): Likewise.
10371
10372 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
10373
10374         * config/sparc/sparc.md (save_register_window_1): Rename to...
10375         (window_save): ...this.
10376         * config/sparc/sparc.c (emit_save_register_window): Rename to...
10377         (emit_window_save): ...this.
10378         (sparc_expand_prologue): Adjust to above renaming.
10379
10380 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
10381
10382         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
10383         of movabs for x32.
10384
10385 2011-07-10  Richard Henderson  <rth@redhat.com>
10386
10387         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
10388         run final, instead of emitting text directly.
10389
10390 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
10391
10392         * config/i386/i386.c (ix86_option_override_internal): Turn on
10393         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
10394         small PIC models for TARGET_X32.
10395
10396 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
10397
10398         PR target/49684
10399         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
10400         $(LIBGCC2_CFLAGS).
10401
10402         PR bootstrap/49680
10403         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
10404         stray notes and debug insns by using prev_nonnote_nondebug_insn
10405         instead of PREV_INSN.
10406
10407 2011-07-09  Richard Henderson  <rth@redhat.com>
10408
10409         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
10410         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
10411         * dwarf2out.c: ... here.
10412         (output_all_cfis): Remove.
10413         (dwarf2out_switch_text_section): Use output_cfis directly.
10414         (size_of_locs): Export.
10415         (output_loc_sequence, output_loc_sequence_raw): Export.
10416         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
10417         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
10418         output_cfa_loc_raw): Move to ...
10419         * dwarfcfi.c: ... here.
10420         * dwarf2out.h: Update decls.
10421
10422 2011-07-09  Richard Henderson  <rth@redhat.com>
10423
10424         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
10425         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
10426         * dwarf2cfi.c: ... here.
10427         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
10428         (DWARF_ROUND, DWARF_CIE_ID): Remove.
10429         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
10430         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
10431         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
10432
10433 2011-07-09  Richard Henderson  <rth@redhat.com>
10434
10435         * dwarf2cfi.c (cie_return_save): New.
10436         (queue_reg_save): Use compare_reg_or_pc.
10437         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
10438         (dwarf2out_frame_debug_expr): Likewise.
10439         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
10440         (initial_return_save): Likewise.
10441         (execute_dwarf2_frame): Save and restore initial return save from
10442         the cie to the fde.
10443         * config/mips/mips.c (mips_frame_set): Remove special case for
10444         DWARF_FRAME_RETURN_COLUMN.
10445
10446 2011-07-09  Richard Henderson  <rth@redhat.com>
10447
10448         * dwarf2cfi.c (lookup_cfa): Remove.
10449         (execute_dwarf2_frame): Assert queues are empty on entry.
10450         Setup initial cfa directly, not via lookup_cfa.
10451         Don't clear args_size state here.
10452
10453 2011-07-09  Richard Henderson  <rth@redhat.com>
10454
10455         * dwarf2cfi.c (add_cfi_vec): New.
10456         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
10457         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
10458         (execute_dwarf2_frame): Set add_cfi_vec.
10459
10460 2011-07-09  Richard Henderson  <rth@redhat.com>
10461
10462         * defaults.h (ASM_COMMENT_START): Move here...
10463         * dwarf2asm.c: ... from here.
10464         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
10465         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
10466         * varasm.c: Likewise.
10467
10468 2011-07-09  Richard Henderson  <rth@redhat.com>
10469
10470         PR debug/49686
10471         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
10472         (create_cfi_notes): ... do it here instead.
10473
10474 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
10475
10476         PR debug/49676
10477         * dwarf2out.c (size_of_int_loc_descriptor): New function.
10478         (address_of_int_loc_descriptor): Use it.
10479         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
10480
10481 2011-07-09  Richard Henderson  <rth@redhat.com>
10482
10483         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
10484         (prologue, epilogue): New.
10485         (return, *rts): New.
10486         (blockage, setd, seti): New.
10487         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
10488         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
10489         (pdp11_saved_regno): New.
10490         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
10491         generate rtl instead of text.
10492         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
10493         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
10494         * config/pdp11/pdp11-protos.h: Update.
10495
10496 2011-07-09  Richard Henderson  <rth@redhat.com>
10497
10498         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
10499         try to insert an rtl prologue here.
10500         (rs6000_output_function_epilogue): Similarly.
10501         * config/rs6000/rs6000.md (prologue): Emit a barrier to
10502         satisfy !TARGET_SCHED_PROLOG.
10503         (epilogue, sibcall_epilogue): Likewise.
10504
10505 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
10506
10507         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
10508         (FP_REG_P): Delete.
10509         (IN_OR_GLOBAL_P): Likewise.
10510
10511 2011-07-08  Jason Merrill  <jason@redhat.com>
10512
10513         PR c++/45437
10514         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
10515         compound assignment.
10516
10517         * cgraph.c (cgraph_add_to_same_comdat_group): New.
10518         * cgraph.h: Declare it.
10519         * ipa.c (function_and_variable_visibility): Make sure thunks
10520         have the right visibility.
10521
10522 2011-07-08  Richard Henderson  <rth@redhat.com>
10523
10524         PR bootstrap/49680
10525         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
10526         any tablejump vector.
10527
10528         PR bootstrap/49680
10529         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
10530         end of the prologue.
10531
10532 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
10533
10534         PR target/49621
10535         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
10536         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
10537         * config/rs6000/vector.md (vector_select_<mode>,
10538         vector_select_<mode>_uns): Change second operand of NE to
10539         CONST0_RTX (<MODE>mode) instead of const0_rtx.
10540         * config/rs6000/altivec.md (*altivec_vsel<mode>,
10541         *altivec_vsel<mode>_uns): Expect second operand of NE to be
10542         zero_constant of the corresponding vector mode.
10543         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
10544         Likewise.
10545
10546 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
10547
10548         * graphite-dependences.c (build_alias_set_powerset): Remove
10549         continue from loop, add one more assert.
10550
10551 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
10552
10553         PR target/46779
10554         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
10555         In particular, allow 8-bit values in r28 and r29.
10556         (avr_hard_regno_scratch_ok): Disallow any register that might be
10557         part of the frame pointer.
10558         (avr_hard_regno_rename_ok): Same.
10559         (avr_legitimate_address_p): Don't allow SUBREGs.
10560
10561 2011-07-08  Julian Brown  <julian@codesourcery.com>
10562
10563         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
10564         big-endian mode.
10565         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
10566         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
10567         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
10568         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
10569         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
10570         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
10571         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
10572         registers in big-endian mode.
10573
10574 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
10575
10576         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
10577         in terms of another.
10578         (write_attr_value): Write a cast if necessary.
10579
10580         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
10581         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
10582         (REG_WORDS_BIG_ENDIAN): Document.
10583         * doc/tm.texi: Regenerate.
10584         * reload.c (operands_match_p): Take it into account.
10585         (reload_adjust_reg_for_mode): Likewise.
10586         * rtlanal.c (subreg_get_info): Likewise.
10587
10588 2011-07-08  Richard Guenther  <rguenther@suse.de>
10589
10590         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
10591         folding.
10592
10593 2011-07-08  Kai Tietz  <ktietz@redhat.com>
10594
10595         * fold-const.c (fold_truth_andor): Factored out truth_andor
10596         label from fold_binary as function.
10597         (fold_binary_loc): Replace truth_andor lable
10598         by function fold_truth_andor.
10599
10600 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
10601
10602         PR middle-end/49519
10603         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
10604         check if address is stored in register. If so - give up.
10605         (check_sibcall_argument_overlap_1): Do not perform check of
10606         overlapping when it is call to address.
10607
10608 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
10609
10610         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
10611         of magic '31'.
10612
10613 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
10614
10615         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
10616         GET_MODE_BITSIZE where appropriate.
10617         (widen_leading, expand_parity, expand_ctz, expand_ffs,
10618         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
10619         expand_float, expand_fix): Likewise.
10620         * expr.c (convert_move, convert_modes, expand_expr_real_2,
10621         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
10622         * stor-layout.c (get_mode_bounds): Likewise.
10623         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
10624         Likewise.
10625         * convert.c (convert_to_integer): Likewise.
10626         * expmed.c (expand_shift_1): Likewise.
10627
10628         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
10629         a bitsize.
10630
10631         * optabs.c (expand_binop): Tighten conditions for doubleword
10632         expansions.
10633         (widen_bswap): Assert that mode bitsize and precision are the same.
10634         * stor-layout.c (get_best_mode): Skip modes that have lower
10635         precision than bitsize.
10636         * recog.c (simplify_while_replacing): Assert that bitsize and
10637         precision are the same.
10638
10639 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10640
10641         * Makefile.in (LIBGCOV): Remove.
10642         (libgcc.mvars): Remove LIBGCOV.
10643         * libgov.c: Move to ../libgcc.
10644
10645 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10646
10647         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
10648
10649 2011-07-08  Martin Jambor  <mjambor@suse.cz>
10650
10651         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
10652         is too big for total scalarization.
10653
10654 2011-07-07  Richard Henderson  <rth@redhat.com>
10655
10656         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
10657         (DBX_DEBUGGING_INFO): Undef.
10658
10659 2011-07-07  Richard Henderson  <rth@redhat.com>
10660
10661         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
10662         Handle some opcodes specially for debugging.
10663         * print-rtl.c: Include dwarf2out.h
10664         (print_rtx): Handle NOTE_INSN_CFI.
10665         * Makefile.in (print-rtl.o): Update.
10666
10667 2011-07-07  Richard Henderson  <rth@redhat.com>
10668
10669         * tree-pass.h (pass_dwarf2_frame): Declare.
10670         * passes.c (init_optimization_passes): Add it.
10671         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
10672         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
10673         make static, do not call add_cfis_to_fde.
10674         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
10675         dwarf2out_frame_init): Merge into...
10676         (execute_dwarf2_frame): ... here.  New function.
10677         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
10678         saved_do_cfi_asm to a tri-state variable.
10679         (gate_dwarf2_frame, pass_dwarf2_frame): New.
10680         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
10681         if it has yet to be done.  Don't call dwarf2cfi_function_init.
10682         * dwarf2out.h, debug.h: Update decls.
10683         * final.c (final_start_function): Don't call
10684         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
10685         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
10686         * toplev.c (lang_dependent_init): Likewise.
10687
10688 2011-07-07  Richard Henderson  <rth@redhat.com>
10689
10690         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
10691         FDE_TABLE_INCREMENT): Replace with...
10692         (fde_vec): ... this, a new vector.
10693         (current_fde): Remove.  Replace all users with cfun->fde.
10694         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
10695         (size_of_aranges, dwarf2out_finish): Likewise.
10696         (dwarf2out_alloc_current_fde): Break out from ...
10697         (dwarf2out_begin_prologue): ... here.
10698         (dwarf2out_frame_init): Remove.
10699         * dwarf2cfi.c: Update all users of current_fde.
10700         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
10701         * dwarf2out.h: Update decls.
10702         (dw_fde_node): Add fde_index member.
10703         * function.h (struct function): Add fde member.
10704
10705 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10706             Richard Henderson  <rth@redhat.com>
10707
10708         * dwarf2cfi.c (add_cfi): Remove.
10709         (dwarf2out_cfi_label): Remove force argument.  Only generate the
10710         label name.
10711         (add_fde_cfi): Simplify the different code paths.
10712         (add_cie_cfi): New.
10713         (old_cfa, old_cfa_remember): New.
10714         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
10715         (last_reg_save_label): Remove.
10716         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
10717         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
10718         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
10719         dwarf2out_frame_debug_cfa_expression,
10720         dwarf2out_frame_debug_cfa_restore,
10721         dwarf2out_frame_debug_cfa_window_save,
10722         dwarf2out_frame_debug_expr): Remove label parameter.
10723         (cfi_label_required_p, add_cfis_to_fde): New.
10724         (dwarf2out_frame_debug_after_prologue): New.
10725         (dwarf2cfi_frame_init): Initialize old_cfa.
10726         (dwarf2out_frame_debug_restore_state): Likewise.
10727         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
10728         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
10729         * final.c (final_start_function): Call
10730         dwarf2out_frame_debug_after_prologue.
10731
10732 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10733             Richard Henderson  <rth@redhat.com>
10734
10735         * dwarf2cfi.c (cfi_insn): New.
10736         (dwarf2out_cfi_label): Don't emit cfi label here.
10737         (add_fde_cfi): Create a NOTE_INSN_CFI.
10738         (dwarf2out_frame_debug): Setup cfi_insn.
10739         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
10740         (dwarf2out_cfi_begin_epilogue): Make static.
10741         (dwarf2out_frame_debug_restore_state): Make static.
10742         * dwarf2out.c (output_cfi_directive): Make static.
10743         (dwarf2out_emit_cfi): New.
10744         * dwarf2out.h: Update.
10745         * final.c (final): Remove CFI notes.
10746         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
10747         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
10748         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
10749         * insn-notes.def (NOTE_INSN_CFI): New.
10750         (NOTE_INSN_CFI_LABEL): New.
10751         * rtl.h (union rtunion_def): Add rt_cfi member.
10752         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
10753
10754 2011-07-07  Richard Henderson  <rth@redhat.com>
10755
10756         * dwarf2cfi.c: New file.
10757         * Makefile.in (OBJS): Add it.
10758         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
10759         * gengtype.c (open_base_files): Include dwarf2out.h.
10760         * coretypes.h (enum var_init_status): Move from ...
10761         * rtl.h: ... here.
10762         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
10763         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
10764         expand_builtin_dwarf_sp_column, init_return_column_size,
10765         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
10766         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
10767         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
10768         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
10769         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
10770         compute_barrier_args_size, dwarf2out_args_size,
10771         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
10772         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
10773         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
10774         queue_reg_save, dwarf2out_flush_queued_reg_saves,
10775         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
10776         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
10777         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
10778         dwarf2out_frame_debug_cfa_expression,
10779         dwarf2out_frame_debug_cfa_restore,
10780         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
10781         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
10782         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
10783         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
10784         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
10785         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
10786         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
10787         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
10788         dw_loc_descr_node): Move to dwarf2out.h.
10789         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
10790         mem_loc_descriptor): Export.
10791         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
10792         (dwarf2out_frame_init): Extract CIE generation code to
10793         dwarf2cfi_frame_init.
10794
10795 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
10796
10797         PR target/49660
10798         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
10799         MASK_V8PLUS, remove commented out flag and reorder.
10800
10801 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
10802
10803         PR c/49644
10804         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
10805         one non-complex and one complex argument, call c_save_expr on both
10806         operands.
10807
10808 2011-07-07  Martin Jambor  <mjambor@suse.cz>
10809
10810         PR middle-end/49495
10811         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
10812         (verify_cgraph_node): Some functinality moved to
10813         verify_edge_corresponds_to_fndecl, call it.
10814
10815 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10816
10817         * config.gcc (*local*): Remove.
10818         * doc/install-old.texi: Don't mention local configurations.
10819
10820 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
10821
10822         PR debug/49522
10823         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
10824         referencing debug insns that have been reset.
10825         (dead_debug_insert_before): Don't assert reg is non-NULL,
10826         instead return immediately if it is NULL.
10827
10828 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10829
10830         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
10831
10832 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10833
10834         * hw-doloop.c: New file.
10835         * hw-doloop.h: New file.
10836         * Makefile.in (OBJS): Add hw-doloop.o.
10837         (hw-doloop.o): New rule.
10838         ($(obj_out_file)): Add hw-doloop.h dependency.
10839         * config/bfin/bfin.c: Include "hw-doloop.h".
10840         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
10841         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
10842         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
10843         type changed to hwloop_info.  Return bool, true if the loop was
10844         successfully optimized.  Remove code that was moved to
10845         hw-doloop.c, and adjust other parts.
10846         (hwloop_fail): New static function, containing parts that used
10847         to be in bfin_optimize_loop.
10848         (bfin_discover_loop, bfin_discover_loops, free_loops,
10849         bfin_reorder_loops): Remove.
10850         (hwloop_pattern_reg): New static function.
10851         (bfin_doloop_hooks): New variable.
10852         (bfin_reorg_loops): Remove most code, call reorg_loops.
10853         * config/bfin/bfin.md (doloop_end splitter): Also enable if
10854         loop counter is a memory_operand.
10855
10856 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
10857
10858         * config.gcc: Support --with-multilib-list for x86 Linux targets.
10859
10860         * configure.ac: Mention x86-64 for --with-multilib-list.
10861         * configure: Regenerated.
10862
10863         * config/i386/gnu-user64.h (SPEC_64): Support x32.
10864         (SPEC_32): Likewise.
10865         (ASM_SPEC): Likewise.
10866         (LINK_SPEC): Likewise.
10867         (TARGET_THREAD_SSP_OFFSET): Likewise.
10868         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
10869         (SPEC_X32): New.
10870
10871         * config/i386/i386.h (TARGET_X32): New.
10872         (TARGET_LP64): New.
10873         (LONG_TYPE_SIZE): Likewise.
10874         (POINTER_SIZE): Likewise.
10875         (POINTERS_EXTEND_UNSIGNED): Likewise.
10876         (OPT_ARCH64): Support x32.
10877         (OPT_ARCH32): Likewise.
10878
10879         * config/i386/i386.opt (mx32): New.
10880
10881         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
10882         (GLIBC_DYNAMIC_LINKERX32): Likewise.
10883         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
10884         (GLIBC_DYNAMIC_LINKERX32): Likewise.
10885
10886         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
10887         (BIONIC_DYNAMIC_LINKERX32): Likewise.
10888         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
10889
10890         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
10891
10892         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
10893
10894         * doc/invoke.texi: Document -mx32.
10895
10896 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
10897
10898         * doc/invoke.texi (mwords-little-endian): Deprecate.
10899         * config/arm/arm.opt (mwords-little-endian): Likewise.
10900         * config/arm/arm.c (arm_option_override): Warn about the deprecation
10901         of -mwords-little-endian.
10902
10903 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
10904
10905         * reload1.c (choose_reload_regs): Use mode sizes to check whether
10906         an old reload register completely defines the required value.
10907
10908 2011-07-07  Richard Guenther  <rguenther@suse.de>
10909
10910         * fold-const.c (fold_unary_loc): Do not strip sign-changes
10911         for NEGATE_EXPR.
10912
10913 2011-07-07  Richard Guenther  <rguenther@suse.de>
10914
10915         * tree-vrp.c (simplify_conversion_using_ranges): New function.
10916         (simplify_stmt_using_ranges): Call it.
10917
10918 2011-07-07  Kai Tietz  <ktietz@redhat.com>
10919
10920         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
10921         (lookup_logical_inverted_value): Likewise.
10922         (simplify_bitwise_binary_1): Likewise.
10923         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
10924
10925 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10926
10927         * gcc.c (%[Spec]): Don't document.
10928         (struct spec_list): Update comment.
10929         (do_spec_1): Don't handle %[Spec].
10930         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
10931
10932 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10933
10934         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
10935         default based on TARGET_ASM_NAMED_SECTION.
10936         * common/common-target.def (have_named_sections): Default to true.
10937         * common/config/default-common.c: Don't include tm.h.
10938         * common/config/picochip/picochip-common.c
10939         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
10940         * common/config/m32c/m32c-common.c: Remove.
10941         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
10942         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10943         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10944         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10945         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10946         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10947         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10948
10949 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
10950
10951         PR middle-end/49640
10952         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
10953         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
10954
10955 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10956
10957         PR libmudflap/49550
10958         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
10959
10960 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10961
10962         PR target/39150
10963         * configure.ac (gcc_cv_as_hidden): Also accept
10964         x86_64-*-solaris2.1[0-9]*.
10965         (gcc_cv_as_cfi_directive): Likewise.
10966         (gcc_cv_as_comdat_group_group): Likewise.
10967         (set_have_as_tls): Likewise.
10968         * configure: Regenerate.
10969         * config.gcc (i[34567]86-*-solaris2*): Also handle
10970         x86_64-*-solaris2.1[0-9]*.
10971         * config.host (i[34567]86-*-solaris2*): Likewise.
10972         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
10973         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
10974         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
10975         (TARGET_LD_EMULATION): Use it.
10976         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
10977         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
10978         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
10979         (ASM_CPU64_DEFAULT_SPEC): Define.
10980         (ASM_CPU_SPEC): Use %(asm_cpu_default).
10981         (ASM_SPEC): Redefine.
10982         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
10983         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
10984         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
10985         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
10986         configuration.
10987         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
10988
10989 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10990
10991         * config/sol2.h (ASM_SPEC): Split into ...
10992         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
10993         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
10994         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
10995         (ASM_SPEC): Use ASM_SPEC_BASE.
10996         * config/sparc/sol2.h (ASM_SPEC): Redefine.
10997
10998 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
10999
11000         * config/avr/avr.md (*reload_insi): Change predicate #1 to
11001         const_int_operand.  Ditto for peep2 producing this insn.
11002         Add argument to output_reload_insisf call.
11003         (*movsi,*movsf): Add argument to output_movsisf call.
11004         (*reload_insf): New insn and new peep2 to produce it.
11005         * config/avr/avr-protos.h (output_movsisf): Change prototype.
11006         (output_reload_insisf): Change prototype.
11007         * config/avr/avr.c (avr_asm_len): New function.
11008         (output_reload_insisf): Rewrite.
11009         (output_movsisf): Change prototype.  output_reload_insisf for
11010         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
11011         (adjust_insn_length): Add argument to output_movsisf and
11012         output_reload_insisf call.
11013
11014 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
11015
11016         * emit-rtl.c (paradoxical_subreg_p): New function.
11017         * rtl.h (paradoxical_subreg_p): Declare.
11018         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
11019         apply_distributive_law, simplify_comparison, simplify_set): Use it.
11020         * cse.c (record_jump_cond, cse_insn): Likewise.
11021         * expr.c (force_operand): Likewise.
11022         * rtlanal.c (num_sign_bit_copies1): Likewise.
11023         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
11024         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
11025         (push_reload): Use precision to check for paradoxical subregs.
11026         * expmed.c (extract_bit_field_1): Likewise.
11027
11028         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
11029         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
11030         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
11031         simplify_set, simplify_logical, expand_compound_operation,
11032         make_extraction, force_to_mode, if_then_else_cond, extended_count,
11033         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
11034         record_value_for_reg): Likewise.
11035         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
11036         * simplify-rtx. c (simplify_unary_operation_1,
11037         simplify_binary_operation_1, simplify_const_relational_operation):
11038         Likewise.
11039
11040         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
11041         instead of GET_MODE_BITSIZE where appropriate.
11042         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
11043         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
11044         init_num_sign_bit_copies_in_rep): Likewise.
11045         * cse.c (fold_rtx, cse_insn): Likewise.
11046         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
11047         * simplify-rtx.c (simplify_unary_operation_1,
11048         simplify_const_unary_operation, simplify_binary_operation_1,
11049         simplify_const_binary_operation, simplify_ternary_operation,
11050         simplify_const_relational_operation, simplify_subreg): Likewise.
11051         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
11052         simplify_if_then_else, simplify_set, expand_compound_operation,
11053         expand_field_assignment, make_extraction, if_then_else_cond,
11054         make_compound_operation, force_to_mode, make_field_assignment,
11055         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
11056         extended_count, try_widen_shift_mode, simplify_shift_const_1,
11057         simplify_comparison, record_promoted_value, simplify_compare_const,
11058         record_dead_and_set_regs_1): Likewise.
11059
11060         Revert:
11061         * simplify-rtx.c (simplify_const_binary_operation): Use the
11062         shift_truncation_mask hook instead of performing modulo by width.
11063         Compare against mode precision, not bitsize.
11064         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
11065         Use shift_truncation_mask instead of constructing the value manually.
11066
11067 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
11068
11069         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
11070         declaration.
11071         (rs6000_save_toc_in_prologue_p): Ditto.
11072
11073         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
11074         up the static chain (r11) during indirect function calls.
11075         (-msave-toc-indirect): New undocumented debug switch.
11076
11077         * config/rs6000/rs6000.c (struct machine_function): Add
11078         save_toc_in_prologue field to note whether the prologue needs to
11079         save the TOC value in the reserved stack location.
11080         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
11081         to save the TOC in the prologue, do so.
11082         (rs6000_trampoline_init): Don't allow creating AIX style
11083         trampolines if -mno-r11 is in effect.
11084         (rs6000_call_indirect_aix): New function to create AIX style
11085         indirect calls, adding support for -mno-r11 to suppress loading
11086         the static chain, and saving the TOC in the prologue instead of
11087         the call body.
11088         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
11089         TOC in the prologue.
11090
11091         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
11092         register numbers.
11093         (TOC_REGNUM): Ditto.
11094         (STATIC_CHAIN_REGNUM): Ditto.
11095         (ARG_POINTER_REGNUM): Ditto.
11096         (SFP_REGNO): Delete, unused.
11097         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
11098         function descriptor offsets.
11099         (TOC_SAVE_OFFSET_64BIT): Ditto.
11100         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
11101         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
11102         (AIX_FUNC_DESC_SC_32BIT): Ditto.
11103         (AIX_FUNC_DESC_SC_64BIT): Ditto.
11104         (ptrload): New mode attribute for the appropriate load of a pointer.
11105         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
11106         (call_indirect_aix64): Ditto.
11107         (call_value_indirect_aix32): Ditto.
11108         (call_value_indirect_aix64): Ditto.
11109         (call_indirect_nonlocal_aix32_internal): Ditto.
11110         (call_indirect_nonlocal_aix32): Ditto.
11111         (call_indirect_nonlocal_aix64_internal): Ditto.
11112         (call_indirect_nonlocal_aix64): Ditto.
11113         (call): Rewrite AIX indirect function calls.  Add support for
11114         eliminating the static chain, and for moving the save of the TOC
11115         to the function prologue.
11116         (call_value): Ditto.
11117         (call_indirect_aix<ptrsize>): Ditto.
11118         (call_indirect_aix<ptrsize>_internal): Ditto.
11119         (call_indirect_aix<ptrsize>_internal2): Ditto.
11120         (call_indirect_aix<ptrsize>_nor11): Ditto.
11121         (call_value_indirect_aix<ptrsize>): Ditto.
11122         (call_value_indirect_aix<ptrsize>_internal): Ditto.
11123         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
11124         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
11125         (call_nonlocal_aix32): Relocate in the rs6000.md file.
11126         (call_nonlocal_aix64): Ditto.
11127
11128         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
11129         -mno-r11 documentation.
11130
11131 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
11132
11133         PR other/49658
11134         * doc/extend.texi (Compound Literals): Fix typo.
11135
11136 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
11137
11138         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
11139
11140 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
11141
11142         * configure.ac (plugin-version.h): Generate
11143         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
11144         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
11145         macros.
11146
11147         * configure: Regenerate.
11148
11149         * doc/plugins.texi (Building GCC plugins): Mention
11150         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
11151
11152 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
11153
11154         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
11155         * combine.c (make_extraction, gen_lowpart_or_truncate,
11156         apply_distributive_law, simplify_comparison,
11157         reg_truncated_to_mode, record_truncated_value): Use it.
11158         * cse.c (notreg_cost): Likewise.
11159         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
11160         * expr.c (convert_move, convert_modes): Likewise.
11161         * optabs.c (expand_binop, expand_unop): Likewise.
11162         * postreload.c (move2add_last_label): Likewise.
11163         * regmove.c (optimize_reg_copy_3): Likewise.
11164         * rtlhooks.c (gen_lowpart_general): Likewise.
11165         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
11166
11167 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
11168
11169         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
11170
11171 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
11172
11173         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
11174         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
11175         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
11176         (simplify_const_unary_operation, simplify_binary_operation_1,
11177         simplify_const_binary_operation, simplify_const_relational_operation):
11178         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
11179         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
11180         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
11181         simplify_shift_const_1, simplify_comparison): Likewise.
11182         * expr.c (convert_modes): Likewise.
11183         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
11184         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
11185         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
11186
11187         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
11188
11189 2011-07-06  Richard Guenther  <rguenther@suse.de>
11190
11191         PR tree-optimization/49645
11192         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
11193         register variables.
11194         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
11195         in type qualification here ...
11196         (copy_reference_ops_from_ref): ... not here.
11197         (vn_reference_lookup_3): ... or here.
11198         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
11199         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
11200
11201 2011-07-06  Ian Lance Taylor  <iant@google.com>
11202
11203         * doc/install.texi (Configuration): It's
11204         --enable-gnu-indirect-function, not --enable-indirect-function.
11205
11206 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
11207
11208         * simplify-rtx.c (simplify_const_binary_operation): Use the
11209         shift_truncation_mask hook instead of performing modulo by width.
11210         Compare against mode precision, not bitsize.
11211         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
11212         Use shift_truncation_mask instead of constructing the value manually.
11213
11214 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
11215
11216         PR middle-end/47383
11217         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
11218         address computation and convert to address_mode if needed.
11219
11220 2011-07-06  Richard Guenther  <rguenther@suse.de>
11221
11222         * tree.c (build_common_tree_nodes_2): Merge with
11223         build_common_tree_nodes.
11224         * tree.h (build_common_tree_nodes): Adjust prototype.
11225         (build_common_tree_nodes_2): Remove.
11226         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
11227         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
11228
11229 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
11230
11231         PR tree-optimization/49618
11232         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
11233         t recurse on the decl.
11234         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
11235         return true if expr isn't known to be defined in current
11236         TU or some other LTO partition.
11237
11238 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
11239
11240         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
11241         override CASE_VALUES_THRESHOLD.
11242
11243         * stmt.c (toplevel): Include params.h.
11244         (case_values_threshold): Use the --param case-values-threshold
11245         value if non-zero, otherwise use machine dependent value.
11246         (expand_case): Use case_values_threshold.
11247
11248         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
11249
11250         * doc/invoke.texi (--param case-values-threshold): Document.
11251
11252 2011-07-05  Richard Henderson  <rth@redhat.com>
11253
11254         * dwarf2out.c (dwarf2out_cfi_label): Make static.
11255         (dwarf2out_flush_queued_reg_saves): Make static.
11256         (dwarf2out_reg_save): Remove.
11257         (dwarf2out_return_save): Remove.
11258         (dwarf2out_return_reg): Remove.
11259         (dwarf2out_reg_save_reg): Remove.
11260         (dwarf2out_def_cfa): Merge into ...
11261         (dwarf2out_frame_init): ... here.
11262         * dwarf2out.h, tree.h: Remove declarations as necessary.
11263
11264 2011-07-05  Richard Henderson  <rth@redhat.com>
11265
11266         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
11267         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
11268         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
11269         the alloc insn.
11270
11271         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
11272         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
11273         (process_epilogue): Don't call dwarf2out_def_cfa.
11274
11275         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
11276         indicate the return address save.
11277         (process_cfa_register): Likewise.
11278
11279         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
11280         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
11281
11282         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
11283         for ar.pfs save at alloc insn.
11284
11285 2011-07-05  Richard Henderson  <rth@redhat.com>
11286
11287         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
11288         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
11289         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
11290         stack pointer save.
11291         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
11292         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
11293         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
11294         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
11295
11296 2011-07-05  Richard Henderson  <rth@redhat.com>
11297
11298         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
11299         VUNSPEC_* constants here instead of via define_constants.
11300         (VUNSPEC_PEM): New constant.
11301         (procedure_entry_mask): New insn.
11302         (prologue): New expander.
11303         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
11304         (vax_expand_prologue): Rename from vax_output_function_prologue;
11305         emit rtl instead of text.
11306         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
11307         (print_operand): Add 'x' prefix.
11308
11309 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
11310
11311         PR middle-end/47715
11312         * calls.c (precompute_register_parameters): Promote the function
11313         argument before checking non-legitimate constant.
11314
11315 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11316
11317         PR tree-optimization/47654
11318         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
11319         (lst_do_strip_mine_loop): Return an int.
11320         (lst_do_strip_mine): Same.
11321         (scop_do_strip_mine): Same.
11322         (scop_do_block): Loop blocking should strip-mine at least two loops.
11323         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
11324         (scop_do_interchange): Same.
11325         * graphite-poly.h (scop_do_interchange): Update declaration.
11326         (scop_do_strip_mine): Same.
11327
11328 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11329
11330         * graphite-clast-to-gimple.c (precision_for_value): Removed.
11331         (precision_for_interval): Removed.
11332         (gcc_type_for_interval): Use mpz_sizeinbase.
11333
11334 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11335
11336         * graphite-ppl.h (value_max): Correct computation of max.
11337
11338 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11339
11340         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
11341
11342 2011-07-05  Richard Guenther  <rguenther@suse.de>
11343
11344         * c-decl.c (c_init_decl_processing): Defer building common
11345         tree nodes to c_common_nodes_and_builtins.
11346
11347 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
11348
11349         PR tree-optimization/49580
11350         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
11351         the loop's number of iterations.
11352         * tree-parloops.c (transform_to_exit_first_loop): Add the
11353         handling of the loop's number of iterations before the call
11354         to gimple_duplicate_sese_tail.
11355         Insert the stmt caclculating the new rhs of the loop's
11356         condition stmt to the preheader instead of iters_bb.
11357
11358 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
11359
11360         PR rtl-optimization/47449
11361         * fwprop.c (forward_propagate_subreg): Don't propagate hard
11362         register nor zero/sign extended hard register.
11363
11364 2011-07-05  Richard Guenther  <rguenther@suse.de>
11365
11366         PR tree-optimization/49518
11367         PR tree-optimization/49628
11368         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
11369         irrelevant and invariant data-references.
11370         (vect_analyze_data_ref_access): For invariant loads clear the
11371         group association.
11372
11373 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
11374
11375         PR rtl-optimization/49619
11376         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
11377         pass VOIDmode as op0_mode to recursive call, and return temp even
11378         when different from tor, just if it is not IOR of the original
11379         PLUS arguments.
11380
11381         PR rtl-optimization/49472
11382         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
11383         negating MULT, negate the second operand instead of first.
11384         (simplify_binary_operation_1) <case MULT>: If one operand is
11385         a NEG and the other is MULT, don't attempt to optimize by negation
11386         of the MULT operand if it only moves the NEG operation around.
11387
11388         PR debug/49602
11389         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
11390         get_current_def return value if it can't be trusted to be
11391         the current value of the variable in the current bb.
11392
11393 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
11394
11395         PR target/49600
11396         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
11397         general register to memory for !TARGET_INTER_UNIT_MOVES.
11398
11399 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
11400
11401         PR target/44643
11402         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
11403         instead of TREE_READONLY.
11404
11405 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
11406
11407         * doc/extend.texi (AVR Built-in Functions): Update documentation
11408         of __builtin_avr_fmul*.
11409         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
11410         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
11411         * config/avr/avr.md (fmul): Rename to fmul_insn.
11412         (fmuls): Rename to fmuls_insn.
11413         (fmulsu): Rename to fmulsu_insn.
11414         (fmul,fmuls,fmulsu): New expander.
11415         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
11416         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
11417         * config/avr/libgcc.S (__fmul): New function.
11418         (__fmuls): New function.
11419         (__fmulsu,__fmulsu_exit): New function.
11420
11421 2011-07-04  Richard Guenther  <rguenther@suse.de>
11422
11423         PR tree-optimization/49615
11424         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
11425         basic-block index check.
11426
11427 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
11428
11429         * longlong.h (count_leading_zeros, count_trailing_zeros,
11430         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
11431         resp. 64.
11432
11433 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
11434
11435         PR tree-optimization/49610
11436         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
11437         a basic block.
11438
11439 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
11440             Olivier Hainque  <hainque@adacore.com>
11441             Nicolas Setton  <setton@adacore.com>
11442
11443         * tree.h (TYPE_ARTIFICIAL): New flag.
11444         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
11445         the DIE of the type if it is artificial.
11446         (gen_array_type_die): Likewise.
11447         (gen_enumeration_type_die): Likewise.
11448         (gen_struct_or_union_type_die): Likewise.
11449         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
11450         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
11451
11452 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
11453
11454         * tree-object-size.c (pass_through_call): Handle
11455         BUILT_IN_ASSUME_ALIGNED.
11456
11457 2011-07-01  Martin Jambor  <mjambor@suse.cz>
11458
11459         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
11460
11461 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
11462
11463         PR middle-end/48016
11464         * explow.c (update_nonlocal_goto_save_area): Use proper mode
11465         for stack save area.
11466         * function.c (expand_function_start): Likewise.
11467
11468 2011-07-01  Richard Guenther  <rguenther@suse.de>
11469
11470         PR middle-end/49596
11471         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
11472         may have unknown refs.
11473
11474 2011-07-01  Kai Tietz  <ktietz@redhat.com>
11475
11476         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
11477
11478 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11479
11480         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
11481         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
11482         (Specific, mips-sgi-irix6): Likewise.
11483
11484 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11485
11486         PR libmudflap/49549
11487         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
11488
11489 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
11490
11491         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
11492         [idx]= and [idx1 ... idx2]= before initializers if needed for
11493         array initializers.
11494
11495 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
11496
11497         * config.gcc (score-*-elf): Remove score7.o.
11498         * config/score/t-score-elf: Likewise.
11499         * config/score/score.c: Merge score7 to score.c and
11500         remove forwarding functions.
11501         * config/score/score7.c: Deleted.
11502         * config/score/score7.h: Deleted.
11503
11504 2011-07-01  Richard Guenther  <rguenther@suse.de>
11505
11506         PR tree-optimization/49603
11507         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
11508
11509 2011-06-30  Martin Jambor  <mjambor@suse.cz>
11510
11511         * tree-sra.c (struct access): Rename total_scalarization to
11512         grp_total_scalarization
11513         (completely_scalarize_var): New function.
11514         (sort_and_splice_var_accesses): Set total_scalarization in the
11515         representative access.
11516         (analyze_access_subtree): Propagate total scalarization accross the
11517         tree, no holes in totally scalarized trees, simplify coverage
11518         computation.
11519         (analyze_all_variable_accesses): Call completely_scalarize_var instead
11520         of completely_scalarize_record.
11521
11522 2011-06-30  Richard Henderson  <rth@redhat.com>
11523
11524         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
11525         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
11526         * config/i386/i386.c: Don't include dwarf2out.h.
11527         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
11528         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
11529         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
11530         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
11531         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
11532
11533 2011-06-30  Richard Henderson  <rth@redhat.com>
11534
11535         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
11536         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
11537         * final.c (final_scan_insn): Look for it, and invoke
11538         dwarf2out_frame_debug before the insn if found.
11539
11540 2011-06-30  Richard Henderson  <rth@redhat.com>
11541
11542         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
11543         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
11544
11545 2011-06-30  Richard Henderson  <rth@redhat.com>
11546
11547         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
11548         Define a vector of this type.
11549         (regs_saved_in_regs): Use a VEC.
11550         (num_regs_saved_in_regs): Remove.
11551         (compare_reg_or_pc): New.
11552         (record_reg_saved_in_reg): Split out from...
11553         (dwarf2out_flush_queued_reg_saves): ... here.
11554         (clobbers_queued_reg_save): Update for VEC.
11555         (reg_saved_in): Likewise.
11556         (dwarf2out_frame_debug_init): Likewise.
11557         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
11558         (dwarf2out_frame_debug_cfa_register): Likewise.
11559
11560 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
11561
11562         PR tree-optimization/49572
11563         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
11564         type of the RHS instead of that of the LHS for the expression type.
11565
11566 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
11567
11568         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
11569         unconditionally.
11570
11571 2011-06-30  Richard Guenther  <rguenther@suse.de>
11572
11573         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
11574         * tree-ssa-structalias.c (create_variable_info_for): Do not
11575         add initial constraints for non-var-decls.  Properly handle
11576         globals in other ltrans partitions.
11577         (intra_create_variable_infos): Manually create constraints for
11578         the fake no-alias parameter.
11579         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
11580         and assert there are no clones.
11581
11582 2011-06-30  Richard Guenther  <rguenther@suse.de>
11583
11584         PR tree-optimization/46787
11585         * tree-data-ref.c (dr_address_invariant_p): Remove.
11586         (find_data_references_in_stmt): Invariant accesses are ok now.
11587         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
11588         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
11589         invariant loads.
11590
11591 2011-06-30  Martin Jambor  <mjambor@suse.cz>
11592
11593         PR tree-optimization/49094
11594         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
11595         (build_accesses_from_assign): Use it.
11596
11597 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
11598
11599         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
11600         handling of BUILT_IN_ASSUME_ALIGNED.
11601
11602         PR debug/49364
11603         * dwarf2out.c (output_abbrev_section): Don't return early
11604         if abbrev_die_table_in_use is 1.
11605         (dwarf2out_finish): Instead don't call output_abbrev_section
11606         nor emit abbrev_section_label in that case.
11607
11608 2011-06-30  Nick Clifton  <nickc@redhat.com>
11609
11610         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
11611         for the V850E.
11612
11613 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
11614
11615         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
11616         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
11617
11618 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
11619
11620         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
11621         both pattern and original statements if necessary.
11622         (vect_transform_loop): Likewise.
11623         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
11624         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
11625         Mark the pattern statement only if the original statement doesn't
11626         have its own uses.
11627         (process_use): Call vect_mark_relevant with additional parameter.
11628         (vect_mark_stmts_to_be_vectorized): Likewise.
11629         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
11630         (vect_analyze_stmt): Handle both pattern and original statements
11631         if necessary.
11632         (vect_transform_stmt): Don't store vectorized pattern statement
11633         in the original statement.
11634         (vect_is_simple_use_1): Use related pattern statement only if the
11635         original statement is irrelevant.
11636         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
11637
11638 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
11639
11640         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
11641         option.
11642         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
11643         entry.
11644         (TARGET_AVX128_OPTIMAL): New definition.
11645         * config/i386/i386.c (initial_ix86_tune_features): Initialize
11646         X86_TUNE_AVX128_OPTIMAL entry.
11647         (ix86_option_override_internal): Enable the generation
11648         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
11649         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
11650         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
11651
11652 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
11653
11654         PR tree-optimization/49539
11655         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
11656         names by means of stmt_references_abnormal_ssa_name.
11657         (associate_plusminus): Call can_propagate_from before propagating
11658         from definition statements.
11659         (ssa_forward_propagate_and_combine): Remove superfluous newline.
11660
11661 2011-06-29  Richard Guenther  <rguenther@suse.de>
11662
11663         * doc/invoke.texi: Document -scev dump modifier.
11664         * tree-pass.h (TDF_SCEV): New dump flag.
11665         * tree-dump.c (dump_option_value_in): Add scev.
11666         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
11667         * tree-scalar-evolution.c: Likewise.
11668
11669 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
11670
11671         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
11672         (cxa_type_match): Correct declaration.
11673         (__gnu_unwind_pr_common): Reconstruct additional indirection
11674         when __cxa_type_match returns succeeded_with_ptr_to_base.
11675
11676 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11677
11678         PR rtl-optimization/49114
11679         * reload.c (struct replacement): Remove SUBREG_LOC member.
11680         (push_reload): Do not set it.
11681         (push_replacement): Likewise.
11682         (subst_reload): Remove dead code.
11683         (copy_replacements): Remove assertion.
11684         (copy_replacements_1): Do not handle SUBREG_LOC.
11685         (move_replacements): Likewise.
11686         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
11687         Detect subregs via recursive descent instead of via SUBREG_LOC.
11688
11689 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
11690
11691         * config/avr/avr.c (avr_encode_section_info): Dispatch to
11692         default_encode_section_info.
11693
11694 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
11695
11696         PR tree-optimization/49545
11697         * builtins.c (get_object_alignment_1): Update function comment.
11698         Do not use DECL_ALIGN for functions, but test
11699         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
11700         * fold-const.c (get_pointer_modulus_and_residue): Don't check
11701         for functions here.
11702         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
11703
11704 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
11705
11706         PR debug/49567
11707         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
11708         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
11709
11710 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
11711
11712         PR target/34734
11713         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
11714         about uninitialized data attributed 'progmem' from here...
11715         (avr_encode_section_info): ...to this new function.
11716         (TARGET_ENCODE_SECTION_INFO): New define.
11717         (avr_section_type_flags): For data in ".progmem.data", remove
11718         section flag SECTION_WRITE.
11719
11720 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
11721
11722         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
11723         _xmulhisi3_exit.
11724         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
11725         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
11726         (__umulhisi3): Ditto.
11727         * config/avr/avr.md (mulhisi3): New insn expender.
11728         (umulhisi3): New insn expender.
11729         (*mulhisi3_call): New insn.
11730         (*umulhisi3_call): New insn.
11731
11732 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
11733
11734         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
11735
11736 2011-06-28  Richard Henderson  <rth@redhat.com>
11737
11738         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
11739         all code and arguments that handled pushes.  Update all callers.
11740
11741 2011-06-28  Richard Henderson  <rth@redhat.com>
11742
11743         * config/arm/arm.c (arm_output_function_prologue): Don't call
11744         thumb1_output_function_prologue.
11745         (arm_expand_prologue): Avoid dead store.
11746         (number_of_first_bit_set): Use ctz_hwi.
11747         (thumb1_emit_multi_reg_push): New.
11748         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
11749         to emit the entire prologue as rtl.
11750         (thumb1_output_interwork): Split out from
11751         thumb1_output_function_prologue.
11752         (thumb1_output_function_prologue): Remove.
11753         (arm_attr_length_push_multi): Handle thumb1.
11754         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
11755         (prologue_thumb1_interwork): New.
11756         (*push_multi): Allow thumb1; use push_mult_memory_operand.
11757         * config/arm/predicates.md (push_mult_memory_operand): New.
11758
11759 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
11760
11761         * config/sparc/sync.md (*stbar): Delete.
11762         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
11763
11764 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
11765
11766         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
11767
11768 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11769
11770         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
11771         (TARGET_64BIT_DEFAULT): Define.
11772         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
11773         of tm_file.
11774         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
11775
11776 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
11777
11778         * common.opt (in_lto_p): New Variable entry.
11779         * flags.h (in_lto_p): Move to common.opt.
11780         * gcc.c: Include params.h.
11781         (set_option_handlers): Also use common_handle_option and
11782         target_handle_option.
11783         (main): Call global_init_params, finish_params and init_options_struct.
11784         * opts.c (debug_type_names): Move from toplev.c.
11785         (print_filtered_help): Access quiet_flag through opts pointer.
11786         (common_handle_option): Return early in the driver for some options.
11787         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
11788         opts pointer.
11789         * toplev.c (in_lto_p): Move to common.opt.
11790         (debug_type_names): Move to opts.c.
11791         * Makefile.in (OBJS): Remove opts.o.
11792         (OBJS-libcommon-target): Add opts.o.
11793         (gcc.o): Update dependencies.
11794
11795 2011-06-28  Kai Tietz  <ktietz@redhat.com>
11796
11797         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
11798
11799 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11800
11801         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
11802         with '=' constraint modifier.
11803         (*divdf3_vfp): Likewise.
11804         ("*mulsf3_vfp"): Likewise.
11805         ("*muldf3_vfp"): Likewise.
11806         ("*mulsf3negsf_vfp"): Likewise.
11807         ("*muldf3negdf_vfp"): Likewise.
11808
11809 2011-06-28  Nick Clifton  <nickc@redhat.com>
11810
11811         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
11812         relaxation when performing an incremental link.
11813
11814 2011-06-28  Kai Tietz  <ktietz@redhat.com>
11815
11816         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
11817         within BB from last to first.
11818
11819 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
11820
11821         * genattr-common.c: New.  Based on genattr.c.
11822         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
11823         (MOSTLYCLEANFILES): Add insn-attr-common.h.
11824         (opts.o): Update dependencies.
11825         (.PRECIOUS): Add insn-attr-common.h.
11826         (simple_rtl_generated_h): Add insn-attr-common.h.
11827         (build/genattr-common.o): New.
11828         (genprogrtl): Add attr-common.
11829         * genattr.c (main): Include insn-attr-common.h.  Don't generate
11830         definitions of DELAY_SLOTS or INSN_SCHEDULING.
11831         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
11832
11833 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
11834
11835         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
11836         avr-*-* and avr-*-rtems* targets.
11837
11838         * config/avr/elf.h: New file.
11839         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
11840         (TARGET_ASM_SELECT_SECTION): Define.
11841         (INIT_SECTION_ASM_OP): Undefine.
11842         (FINI_SECTION_ASM_OP): Undefine.
11843         (READONLY_DATA_SECTION_ASM_OP): Undefine.
11844         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
11845         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
11846         * config/avr/avr.h:
11847         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
11848         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
11849         (MAX_OFILE_ALIGNMENT): Move to elf.h.
11850         (STRING_LIMIT): Move to elf.h.
11851         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
11852         (ASM_DECLARE_OBJECT_NAME): Remove.
11853         (ESCAPES): Remove.
11854         (ASM_OUTPUT_SKIP): Remove.
11855         (DWARF2_DEBUGGING_INFO): Remove.
11856         (OBJECT_FORMAT_ELF): Remove.
11857         (USER_LABEL_PREFIX): Remove.
11858         (ASM_OUTPUT_EXTERNAL): Remove.
11859         (ASM_OUTPUT_ASCII): Remove.
11860         (TYPE_ASM_OP): Remove.
11861         (SIZE_ASM_OP): Remove.
11862         (WEAK_ASM_OP): Remove.
11863         (STRING_ASM_OP): Remove.
11864         (SET_ASM_OP): Remove.
11865         (ASM_WEAKEN_LABEL): Remove.
11866         (TYPE_OPERAND_FMT): Remove.
11867         (ASM_DECLARE_FUNCTION_SIZE): Remove.
11868         (ASM_FINISH_DECLARE_OBJECT): Remove.
11869         (NO_DOLLAR_IN_LABEL): Remove.
11870         (ASM_GENERATE_INTERNAL_LABEL): Remove.
11871         (ASM_OUTPUT_CASE_LABEL): Remove.
11872         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
11873         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
11874         (gas_output_ascii): Remove.
11875         (gas_output_limited_string): Remove.
11876         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
11877         * config/avr/avr-protos.h
11878         (gas_output_ascii): Remove prototye.
11879         (gas_output_limited_string): Remove prototype.
11880
11881 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
11882
11883         PR target/48637
11884         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
11885         asm operands.
11886
11887 2011-06-27  Jan Hubicka  <jh@suse.cz>
11888
11889         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
11890         node instead of references in node.
11891
11892 2011-06-27  Richard Henderson  <rth@redhat.com>
11893
11894         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
11895         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
11896         inside ifdef.
11897
11898 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
11899
11900         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
11901
11902         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
11903         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
11904         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
11905         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
11906         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
11907         (evaluate_stmt, execute_fold_all_builtins): Handle
11908         BUILT_IN_ASSUME_ALIGNED.
11909         * tree-ssa-dce.c (propagate_necessity): Likewise.
11910         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
11911         call_may_clobber_ref_p_1): Likewise.
11912         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
11913         (expand_builtin_assume_aligned): New function.
11914         * doc/extend.texi (__builtin_assume_aligned): Document.
11915
11916         PR debug/49544
11917         * cselib.c (promote_debug_loc): If cselib_preserve_constants
11918         and l has two DEBUG_INSN owned locs instead of just one, adjust
11919         the second location's setting_insn too.
11920
11921 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11922
11923         PR libmudflap/38738
11924         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
11925
11926 2011-06-27  Nick Clifton  <nickc@redhat.com>
11927
11928         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
11929         bit position of highest bit set into a count of the high zero bits.
11930
11931 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11932
11933         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
11934
11935 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11936
11937         PR lto/48492
11938         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
11939         to a NULL parent.
11940
11941 2011-06-27  Richard Guenther  <rguenther@suse.de>
11942
11943         PR tree-optimization/49394
11944         * passes.c (execute_one_pass): Restore current_pass after
11945         applying IPA transforms.
11946
11947 2011-06-27  Kai Tietz  <ktietz@redhat.com>
11948
11949         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
11950         out of type precision after operation.
11951         (find_bswap): Take for limit value the integer auto-promotion
11952         into account.
11953
11954 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11955
11956         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
11957         forward scan as well.
11958
11959 2011-06-27  Tristan Gingold  <gingold@adacore.com>
11960
11961         PR target/44241
11962         * config/vms/vms-protos.h: New file.
11963         * config/vms/vms-crtlmap.map: New file.
11964         * config/vms/vms.c: New file.
11965         * config/vms/make-crtlmap.awk: New file.
11966         * config/vms/vms-crtl.h: File removed.
11967         * config/vms/vms-crtl-64.h: File removed.
11968         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
11969         * config/alpha/vms64.h: Do not include vms-crtl-64.h
11970         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
11971         clear some builtins on VMS.  Calls vms_patch_builtins.
11972         (avms_asm_output_external): Remove.
11973         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
11974         (struct crtl_name_spec): Remove
11975         (DO_CTRL_NAMES): Remove.
11976         * config/ia64/vms.h (struct crtl_name_spec): Remove
11977         (DO_CTRL_NAMES): Remove.
11978         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
11979         clear some builtins on VMS.  Calls vms_patch_builtins.
11980         (ia64_asm_output_external): Remove DO_CRTL_NAME.
11981         * config/ia64/vms64.h: Do not include vms-crtl-64.h
11982         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
11983
11984 2011-06-27  Tristan Gingold  <gingold@adacore.com>
11985
11986         * config/alpha/alpha.c (alpha_end_function): Always generate .end
11987         directive on VMS.
11988
11989 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11990
11991         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
11992         the function receives nonlocal gotos.
11993
11994 2011-06-27  Richard Guenther  <rguenther@suse.de>
11995
11996         PR tree-optimization/49536
11997         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
11998         For non-scalar inner types use a scalar type according to
11999         the scalar inner mode.
12000
12001 2011-06-27  Richard Guenther  <rguenther@suse.de>
12002
12003         PR tree-optimization/49365
12004         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
12005
12006 2011-06-27  Richard Guenther  <rguenther@suse.de>
12007
12008         PR tree-optimization/49169
12009         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
12010         the alignment of function decls.
12011
12012 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
12013
12014         PR target/47997
12015         * config/darwin.c (darwin_mergeable_string_section): Place string
12016         constants in '.cstring' rather than '.const' when CF/NSStrings are
12017         active.
12018
12019 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
12020
12021         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
12022         (emit_save_register_window): Likewise.
12023         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
12024         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
12025         Swap back %o7/%i7 in register naming.
12026
12027 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
12028
12029         PR driver/49371
12030         * config/darwin.c (darwin_override_options): Improve warning when
12031         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
12032         is given with fpie/fPIE.
12033         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
12034         * config/darwin9.h (PIE_SPEC): New.
12035
12036 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
12037
12038         * timevar.c (timevar_print): Increase width for display of timevar
12039         name.
12040
12041 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
12042
12043         PR c++/46400
12044         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
12045         instead of TYPE_CHAIN for chain_next for types.
12046
12047 2011-06-24  Richard Henderson  <rth@redhat.com>
12048
12049         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
12050         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
12051         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
12052         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
12053         (sparc_flat_expand_prologue): Emit individual instructions
12054         instead of one of the above.
12055
12056 2011-06-24  Easwaran Raman  <eraman@google.com>
12057
12058         PR rtl-optimization/49429
12059         PR target/49454
12060         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
12061         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
12062         used to copy y into x.
12063         * calls.c (initialize_argument_information): Mark
12064         an argument addressable if it is passed by invisible reference.
12065         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
12066         if it is passed by reference.
12067
12068 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
12069
12070         PR rtl-optimization/49504
12071         * rtlanal.c (nonzero_bits1): Properly handle addition or
12072         subtraction of a pointer in Pmode if pointers extend unsigned.
12073         (num_sign_bit_copies1): Likewise.
12074
12075 2011-06-24  Martin Jambor  <mjambor@suse.cz>
12076
12077         PR tree-optimizations/49516
12078         * tree-sra.c (sra_modify_assign): Choose the safe path for
12079         aggregate copies if we also did scalar replacements.
12080
12081 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12082
12083         PR target/49335
12084         * config/arm/predicates.md (add_operator): New.
12085         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
12086
12087 2011-06-24  Andi Kleen  <ak@linux.intel.com>
12088
12089         * tree-sra.c (type_internals_preclude_sra_p): Add msg
12090         parameter. Split up ifs and report reason in *msg.
12091         (reject): Add.
12092         (find_var_candiate): Add msg variable.
12093         Split up ifs and report reason to reject.
12094         (find_param_candidates): Add msg variable.
12095         Pass msg to type_internals_preclude_sra_p.
12096
12097 2011-06-23  Jeff Law  <law@redhat.com>
12098
12099         PR middle-end/48770
12100         * reload.h (reload): Change to return a bool.
12101         * ira.c (ira): If requested by reload, run a fast DCE pass after
12102         reload has completed.  Fix comment typo.
12103         * reload1.c (need_dce): New file scoped static.
12104         (reload): Set reload_completed here.  Return whether or not a DCE
12105         pass after reload is needed.
12106         (delete_dead_insn): Set need_dce as needed.
12107
12108         PR middle-end/49465
12109         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
12110         to detect threading through joiner block.  If there was already
12111         an edge to the new target, then do not change the PHI nodes.
12112
12113 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
12114
12115         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
12116         get_pointer_alignment to see if base isn't sufficiently aligned.
12117
12118 2011-06-23  Jan Hubicka  <jh@suse.cz>
12119
12120         PR tree-optimize/49373
12121         * tree-pass.h (all_late_ipa_passes): Declare.
12122         * cgraphunit.c (init_lowered_empty_function): Fix properties.
12123         (cgraph_optimize): Execute late passes; remove unreachable funcions
12124         after materialization.
12125         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
12126         LTOing.
12127         * passes.c (all_late_ipa_passes): Declare.
12128         (dump_passes, register_pass): Handle late ipa passes.
12129         (init_optimization_passes): Move ipa_pta to late passes; schedule
12130         fixup_cfg at beggining of all_passes.
12131         (apply_ipa_transforms): New function.
12132         (execute_one_pass): When doing simple ipa pass, apply all transforms.
12133
12134 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
12135
12136         * params.c: Include common/common-target.h.  Don't include tm.h.
12137         (lang_independent_params): Move from toplev.c.
12138         (global_init_params): New.
12139         * params.h (global_init_params): Declare.
12140         * target.def (default_params): Move to common-target.def.
12141         * toplev.c (lang_independent_options): Remove.
12142         (lang_independent_params): Move to params.c.
12143         (general_init): Use global_init_params.
12144         * common/common-target.def (option_default_params): Move from
12145         target.def.
12146         * common/config/ia64/ia64-common.c: Include params.h.
12147         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
12148         from ia64.c.
12149         * common/config/rs6000/rs6000-common.c: Include params.h.
12150         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
12151         from rs6000.c.
12152         * common/config/sh/sh-common.c: Include params.h.
12153         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
12154         from sh.c.
12155         * common/config/spu/spu-common.c: Include params.h.
12156         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
12157         from spu.c.
12158         * config/ia64/ia64.c (ia64_option_default_params,
12159         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
12160         * config/rs6000/rs6000.c (rs6000_option_default_params,
12161         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
12162         * config/sh/sh.c (sh_option_default_params,
12163         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
12164         * config/spu/spu.c (spu_option_default_params,
12165         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
12166         * Makefile.in (OBJS): Remove params.o.
12167         (OBJS-libcommon-target): Add params.o.
12168         (params.o, $(common_out_object_file)): Update dependencies.
12169         * doc/tm.texi: Regenerate.
12170
12171 2011-06-23  Alan Modra  <amodra@gmail.com>
12172
12173         PR bootstrap/49383
12174         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
12175         invocation for 2011-06-09 changes.
12176
12177 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
12178
12179         PR libgomp/49490
12180         * omp-low.c (expand_omp_for_static_nochunk): Only
12181         use n ceil/ nthreads size for the first n % nthreads threads in the
12182         team instead of all threads except for the last few ones which
12183         get less work or none at all.
12184
12185         PR debug/49496
12186         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
12187         uses.
12188
12189 2011-06-22  Richard Guenther  <rguenther@suse.de>
12190
12191         PR tree-optimization/49493
12192         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
12193         Refer to the alias target of variables.
12194         (associate_varinfo_to_alias_1): Remove.
12195         (ipa_pta_execute): Do not associate aliases with anything.
12196         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
12197         (cgraph_function_node): Likewise.
12198         (cgraph_function_or_thunk_node): Likewise.
12199         (varpool_variable_node): Likewise.
12200
12201 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
12202
12203         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
12204         * config.gcc (arm*-*-linux*): Default to gnu tls.
12205         (arm*-*-*): Add --with-tls option.
12206         (all_defaults): Add 'tls'.
12207
12208 2011-06-22  Richard Henderson  <rth@redhat.com>
12209
12210         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
12211         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
12212         (dwarf2out_frame_debug_cfa_window_save): Rename from
12213         dwarf2out_window_save; make static.
12214         * tree.h (dwarf2out_window_save): Don't declare.
12215
12216         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
12217         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
12218         (emit_save_register_window): Rename from gen_save_register_window;
12219         emit the insn and add REG_CFA_* notes.
12220         (sparc_expand_prologue): Update to match.
12221         * config/sparc/sparc.md (save_register_window_1): Simplify from
12222         save_register_window<P:mode>.
12223
12224 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
12225
12226         PR target/49497
12227         * config/i386/i386.md (*lea_general_2): Always allow SImode.
12228         (*lea_general_2_zext): Likewise.
12229         (imul to lea peepholes): Use const359_operand and check
12230         TARGET_PARTIAL_REG_STALL.
12231
12232         * config/i386/predicates.md (const359_operand): New.
12233
12234 2011-06-22  Michael Matz  <matz@suse.de>
12235
12236         * cgraphunit.c (assemble_thunk): Use correct return type.
12237
12238 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
12239             Dmitry Melnik  <dm@ispras.ru>
12240
12241         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
12242         (neon_output_shift_immediate): Ditto.
12243         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
12244         prototype.
12245         (neon_output_shift_immediate): Ditto.
12246         * config/arm/neon.md (vashl<mode>3): Modified constraint.
12247         (vashr<mode>3_imm): New insn pattern.
12248         (vlshr<mode>3_imm): Ditto.
12249         (vashr<mode>3): Modified constraint.
12250         (vlshr<mode>3): Ditto.
12251         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
12252         predicate.
12253         (imm_for_neon_rshift_operand): Ditto.
12254         (imm_lshift_or_reg_neon): Ditto.
12255         (imm_rshift_or_reg_neon): Ditto.
12256
12257         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
12258
12259 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
12260
12261         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
12262         builtin calls even if likelyvalue is not CONSTANT.
12263         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
12264         Return get_value_for_expr of first operand
12265         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
12266         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
12267         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
12268         their non-checking counterparts.
12269         (call_may_clobber_ref_p_1): Likewise.
12270         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
12271         like their non-checking counterparts.
12272         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12273         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
12274         like their non-checking counterparts.
12275         (find_func_clobbers): Likewise.
12276         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
12277         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
12278
12279         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
12280         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
12281         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
12282         of base type reference as argument.
12283         (resolve_addr_in_expr): Likewise.  Fix keep computation.
12284         (convert_descriptor_to_signed): Renamed to...
12285         (convert_descriptor_to_mode): ... this.  For wider types convert to
12286         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
12287         (typed_binop): New function.
12288         (scompare_loc_descriptor, ucompare_loc_descriptor,
12289         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
12290         default to unsigned type instead of signed.
12291
12292         PR debug/47858
12293         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
12294         (gimple_build_debug_source_bind_stat): New prototype.
12295         (gimple_build_debug_source_bind): Define.
12296         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
12297         gimple_debug_source_bind_get_value,
12298         gimple_debug_source_bind_get_value_ptr,
12299         gimple_debug_source_bind_set_var,
12300         gimple_debug_source_bind_set_value): New inlines.
12301         * gimple.c (gimple_build_debug_source_bind_stat): New function.
12302         * gimple-pretty-print.c (dump_gimple_debug): Handle
12303         GIMPLE_DEBUG_SOURCE_BIND.
12304         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
12305         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12306         * tree-parloops.c (eliminate_local_variables,
12307         separate_decls_in_region): Likewise.
12308         (separate_decls_in_region_debug): Renamed from
12309         separate_decls_in_region_debug_bind.  Handle
12310         gimple_debug_source_bind_p.
12311         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
12312         prototypes.
12313         (DECL_HAS_DEBUG_ARGS_P): Define.
12314         (struct tree_function_decl): Add has_debug_args_flag field.
12315         * tree.c (debug_args_for_decl): New variable.
12316         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
12317         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
12318         (rewrite_debug_stmt_uses): New function.
12319         (rewrite_stmt): Use it to rewrite debug stmt uses.
12320         * rtl.def (DEBUG_PARAMETER_REF): New.
12321         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
12322         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
12323         DEBUG_PARAMETER_REF.
12324         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
12325         * print-rtl.c (print_rtx): Likewise.
12326         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
12327         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
12328         debug stmts in the first bb.
12329         * tree-inline.c (remap_ssa_name): If remapping default def
12330         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
12331         a source bind debug stmt.
12332         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
12333         (maybe_move_debug_stmts_to_successors): Likewise.
12334         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
12335         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
12336         debug args vector from old_decl to new_decl.
12337         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
12338         or modified parameters, add debug bind stmts before call
12339         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
12340         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
12341         on DECL_DEBUG_EXPRs from debug args vector.
12342         (expand_debug_source_expr): New function.
12343         (expand_debug_locations): Use it for source bind insns.
12344         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
12345         * var-tracking.c (prepare_call_arguments): Add debug args
12346         to call_arguments if any.
12347         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
12348         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
12349         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
12350         (get_ref_die_offset, parameter_ref_descriptor): New functions.
12351         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
12352         (gen_subprogram_die): Handle parameters identified by
12353         DEBUG_PARAMETER_REF.
12354
12355 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
12356
12357         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
12358         * doc/install.texi (Configuration): Document --with-tls.
12359         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
12360         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
12361         (arm_tls_descseq_addr): New.
12362         (legitimize_tls_address): Add tlsdesc support.
12363         (arm_cannot_copy_insn_p): Check for tlscall.
12364         (arm_emit_tls_decoration): Likewise.
12365         * config/arm/arm.h (TARGET_GNU2_TLS): New.
12366         (OPTION_DEFAULT_SPECS): Add with-tls support.
12367         * config/arm/arm.md (R1_REGNUM): Define.
12368         (tlscall): New.
12369         * config/arm/arm.opt (tls_type): New enumeration type and values.
12370         (mtls-dialect): New switch.
12371         * config/arm/arm-opts.h (enum tls_type): New.
12372
12373 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
12374
12375         * attribs.c (register_attribute): Added assert to check that all
12376         attribute specs are registered with a name that is not empty and
12377         does not start with '_'.
12378         (decl_attributes): Avoid the lookup of the "naked" attribute spec
12379         if the function has no attributes.
12380         * tree.c (is_attribute_with_length_p): Removed.
12381         (is_attribute_p): Removed.
12382         (private_is_attribute_p): New.
12383         (private_lookup_attribute): New.
12384         (lookup_attribute): Removed.
12385         (lookup_ident_attribute): New.
12386         (remove_attribute): Require the first argument to be in the form
12387         'text', not '__text__'.  Updated asserts.
12388         (merge_attributes): Use lookup_ident_attributes instead of
12389         lookup_attribute.
12390         (merge_dllimport_decl_attributes): Use remove_attribute.
12391         (attribute_list_contained): Likewise.
12392         (attribute_list_equal): Immediately return 1 if the arguments are
12393         identical pointers.
12394         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
12395         'int'.  Require the first argument to be in the form 'text', not
12396         '__text__'.  Require the second argument to be an identifier.
12397         (lookup_attribute): Made inline.  Require the first argument to be
12398         in the form 'text', not '__text__'.
12399         (private_is_attribute_p, private_lookup_attribute): New.
12400         Updated comments.
12401
12402 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
12403
12404         * builtins.c: Add sync_ or SYNC__ to builtin names.
12405         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
12406         * omp-low.c: Add sync_ or SYNC__ to builtin names.
12407
12408 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
12409
12410         PR target/33049
12411         * config/avr/avr.md (extzv): New expander.
12412         (*extzv): New insn.
12413         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
12414         * config/avr/constraints.md (C04): New constraint.
12415         * doc/md.texi (Machine Constraints): Document it.
12416
12417 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
12418
12419         PR middle-end/49489
12420         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
12421         unsignedp argument instead of 1 for clrsb_optab.
12422         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
12423         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
12424         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
12425         * optabs.c (widen_leading): Call widen_operand and expand_unop
12426         with 0 as unsignedp argument instead of 1 for clrsb_optab.
12427         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
12428
12429 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
12430
12431         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
12432
12433 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
12434
12435         * gensupport.c (add_define_attr): New static function.
12436         (is_predicable): Allow multi-alternative lists for the "predicable"
12437         attribute.
12438         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
12439         (process_one_cond_exec): Call alter_attrs_for_insn.
12440         * doc/md.texi (Defining Attributes): Mention some standard names.
12441         (Conditional Execution): Update documentation for "predicable".
12442
12443         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
12444         __builtin_clrsbll): Document.
12445         * doc/rtl.texi (clrsb): New entry.
12446         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
12447         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
12448         (expand_unop): Handle clrsb_optab.
12449         (init_optabs): Initialize it.
12450         * optabs.h (enum optab_index): New entry OTI_clrsb.
12451         (clrsb_optab): Define.
12452         * genopinit.c (optabs): Add an entry for it.
12453         * builtins.c (expand_builtin): Handle clrsb builtin functions.
12454         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
12455         BUILT_IN_CLRSBLL): New.
12456         * rtl.def (CLRSB): New code.
12457         * dwarf2out.c (mem_loc_descriptor): Handle it.
12458         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
12459         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
12460         and popcount.
12461         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
12462         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
12463         (__ctzDI2): Move declaration.
12464         * config/bfin/bfin.md (clrsbsi2): New expander.
12465         (signbitssi2): Use the CLRSB rtx.
12466         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
12467         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
12468
12469 2011-06-21  Richard Guenther  <rguenther@suse.de>
12470
12471         * ipa-inline-transform.c (inline_transform): Fix previous change.
12472
12473 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
12474
12475         PR tree-optimization/49478
12476         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
12477         with constant operand.
12478
12479 2011-06-21  Richard Guenther  <rguenther@suse.de>
12480
12481         * ipa-inline-transform.c (inline_transform): Fix typo.
12482
12483 2011-06-21  Richard Guenther  <rguenther@suse.de>
12484
12485         PR tree-optimization/49483
12486         * tree-vect-stmts.c (vectorizable_assignment): Also handle
12487         VIEW_CONVERT_EXPR conversions.
12488
12489 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
12490
12491         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
12492         * config/avr/avr-tables.opt: New file (generated).
12493         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
12494         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
12495         avr-mcus.def.
12496         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
12497         (avr_option_override): Don't process -mmcu= argument here.  Set
12498         avr_current_device using avr_mcu_index.
12499         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
12500         * config/avr/avr.opt (mmcu=): Use Enum.
12501         * config/avr/t-avr (avr-devices.o): Update dependencies.
12502         ($(srcdir)/config/avr/avr-tables.opt): New.
12503         * target.def (help): Remove.
12504         * doc/tm.texi.in (TARGET_HELP): Remove.
12505         * doc/tm.texi: Regenerate.
12506         * opts.c: Don't include target.h.
12507         (common_handle_option): Don't call targetm.help.
12508         * system.h (TARGET_HELP): Poison.
12509         * Makefile.in (opts.o): Update dependencies.
12510
12511 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12512
12513         * config/usegld.h: New file.
12514         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
12515         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
12516         (LIB_SPEC): Likewise.  Search /lib.
12517         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
12518         (RDYNAMIC_SPEC): Handle GNU ld.
12519         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
12520         Define.
12521         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
12522         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
12523         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
12524         (STACK_CHECK_STATIC_BUILTIN): Define.
12525         * config/sol2.opt (compat-bsd): Remove.
12526         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
12527         * config/sol2-bi.h: New file.
12528         * config/sol2-gld.h: Remove.
12529         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
12530         (NO_DBX_BNSYM_ENSYM): Remove.
12531         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
12532         (STACK_CHECK_STATIC_BUILTIN): Remove.
12533         Test USE_GLD instead of TARGET_GNU_LD.
12534         * config/i386/sol2-10.h: Rename to ...
12535         * config/i386/sol2-bi.h .. this.
12536         (SUBTARGET_EXTRA_SPECS): Redefine.
12537         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
12538         (MULTILIB_DEFAULTS): Remove.
12539         (DEFAULT_ARCH32_P): Define.
12540         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
12541         (ARCH64_SUBDIR): Define.
12542         Test USE_GLD instead of TARGET_GNU_LD.
12543         (I386_EMULATION): Rename to ...
12544         (ARCH32_EMULATION): ... this.
12545         (X86_64_EMULATION): Rename to ...
12546         (ARCH64_EMULATION): ... this.
12547         (TARGET_LD_EMULATION): Remove.
12548         (LINK_ARCH_SPEC): Remove.
12549         * config/i386/sol2-gas.h: Remove.
12550         * config/i386/t-sol2-10: Rename to ...
12551         * config/i386/t-sol2-64: ... this.
12552         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
12553         (AS_SPARC64_FLAG): Define.
12554         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
12555         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
12556         depending on TARGET_CPU_DEFAULT.
12557         (CPP_CPU_SPEC): Redefine.
12558         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
12559         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
12560         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
12561         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
12562         ASM_ARCH_DEFAULT_SPEC): Redefine.
12563         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
12564         LINK_ARCH_DEFAULT_SPEC.
12565         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
12566         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
12567         (ARCH64_SUBDIR): Define.
12568         (LINK_ARCH64_SPEC): Redefine.
12569         (CC1_SPEC): Redefine.
12570         (OPTION_DEFAULT_SPECS): Redefine.
12571         (MULTILIB_DEFAULTS): Define.
12572         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
12573         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
12574         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
12575         (NO_DBX_BNSYM_ENSYM): Remove.
12576         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
12577         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
12578         (TARGET_ASM_NAMED_SECTION): Likewise.
12579         (STACK_CHECK_STATIC_BUILTIN): Remove.
12580         * config/sparc/sol2-bi.h: Remove.
12581         * config/sparc/sol2-gas-bi.h: Remove.
12582         * config/sparc/sol2-gas.h: Remove.
12583         * config/sparc/sol2-gld-bi.h: Remove.
12584         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
12585         common parts ...
12586         (*-*-solaris2*): ... here.
12587
12588 2011-06-21  Christian Bruel  <christian.bruel@st.com>
12589
12590         PR other/43564
12591         * ipa-inline.c (can_inline_edge_p): Check
12592         !DECL_DISREGARD_INLINE_LIMITS.
12593
12594 2011-06-21  Christian Bruel  <christian.bruel@st.com>
12595
12596         PR middle-end/49139
12597         * cgraphunit.c (process_function_and_variable_attributes): warn when
12598         always_inline functions that are not inline.
12599         * ipa-inline-transform.c (inline_transform): Always call
12600         optimize_inline.
12601         * tree-inline.c (tree_inlinable_function_p): Use error instead
12602         of sorry.
12603         (expand_call_inline): Likewise.
12604
12605 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
12606
12607         * Makefile.in (dg_target_exps): Set.
12608         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
12609         instead of 7, try to divide it more evenly.
12610
12611 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
12612
12613         PR target/49089
12614         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
12615         (avx256_split_unaligned_store): New definition.
12616         (ix86_option_override_internal): Enable avx256 unaligned load/store
12617         splitting only when avx256_split_unaligned_load/store is set.
12618
12619 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
12620
12621         * regrename.c (scan_rtx_reg): Handle the case where we write to an
12622         open chain in a smaller mode without failing the entire block.
12623
12624 2011-06-21  Alan Modra  <amodra@gmail.com>
12625
12626         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
12627         CONST high part large-toc address.
12628         (rs6000_tls_referenced_p): Make static.
12629         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
12630
12631 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12632
12633         PR target/49385
12634         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
12635         one of the operands is a register.
12636
12637 2011-06-20  Kai Tietz  <ktietz@redhat.com>
12638
12639         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
12640         operations in combination with binary and.
12641
12642 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
12643
12644         * regrename.c (do_replace): Don't update notes.
12645
12646 2011-06-20  Alan Modra  <amodra@gmail.com>
12647
12648         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
12649         of toc-relative address in CONST.
12650         (rs6000_delegitimize_address): Recognize changed address.
12651         (rs6000_legitimize_reload_address): Likewise.
12652         (rs6000_emit_move): Don't force these constants to memory.
12653         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
12654         toc-relative address in CONST.
12655         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
12656         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
12657
12658 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
12659
12660         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
12661         (count_trailing_zeros): Likewise.
12662
12663 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
12664
12665         PR other/49325
12666         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
12667         .init_array can be used with .ctors on targets.
12668         * configure: Regenerated.
12669
12670 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
12671
12672         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
12673         if the element type is volatile.
12674
12675 2011-06-18  Jan Hubicka  <jh@suse.cz>
12676
12677         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
12678         extra name aliases.
12679         (lto_symtab_resolve_can_prevail_p): Likewise.
12680         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
12681         * cgraphbuild.c (record_reference): Remove extra body alias code.
12682         (mark_load): Likewise.
12683         (mark_store): Likewise.
12684         * cgraph.h (varpool_node): Remove extra_name filed;
12685         add alias_of and extraname_alias.
12686         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
12687         (varpool_alias_aliased_node): New inline function.
12688         (varpool_variable_node): New function.
12689         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
12690         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
12691         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
12692         (input_varpool_node): Likewise.
12693         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
12694         (varpool_externally_visible_p): Remove extra body alias code.
12695         (function_and_variable_visibility): Likewise.
12696         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
12697         (ipa_pta_execute): Use it.
12698         * varpool.c (varpool_remove_node): Remove extra name alias code.
12699         (varpool_mark_needed_node): Likewise.
12700         (varpool_analyze_pending_decls): Analyze aliases.
12701         (assemble_aliases): New functoin.
12702         (varpool_assemble_decl): Use it.
12703         (varpool_create_variable_alias): New function.
12704         (varpool_extra_name_alias): Rewrite.
12705         (varpool_for_node_and_aliases): New function.
12706
12707 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
12708
12709         PR target/49411
12710         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
12711         last_arg_constant and last argument doesn't match its predicate,
12712         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
12713         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
12714         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
12715         spelling of error message.
12716         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
12717         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
12718         const_0_to_255_operand instead of const_int_operand.
12719
12720         Revert:
12721         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
12722
12723         * config/i386/sse.md (blendbits): Remove mode attribute.
12724         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
12725         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
12726         Check integer value of operand 3 in insn constraint.
12727
12728 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
12729
12730         PR rtl-optimization/48542
12731         * reload.c (find_equiv_reg): Stop looking when finding a
12732         setjmp-type call.
12733         * reload1.c (reload_as_needed): Invalidate all reload
12734         registers when crossing a setjmp-type call.
12735
12736 2011-06-16  Jeff Law  <law@redhat.com>
12737
12738         * tree-ssa-threadupdate.c (struct redirection_data): New field
12739         intermediate_edge.
12740         (THREAD_TARGET2): Define.
12741         (redirection_data_eq): Also check that the intermediate edge is equal.
12742         (lookup_redirection_data): Drop useless argument.  Extract the
12743         outgoing_edge and intermediate edge from E.  Callers updated.
12744         (copy_phi_args, update_destination_phis): New functions.
12745         (fix_duplicate_block_edges): Likewise.
12746         (create_edge_and_update_destination_phis): Duplicate all the edges
12747         hung off e->aux.  Use copy_phi_args.
12748         (create_duplicates): Use fix_duplicate_block_edges.
12749         (fixup_template_block): Likewise.
12750         (redirect_edges): If necessary, redirect the joiner block's incoming
12751         edge to the duplicate of the joiner block.
12752         (thread_block): Don't muck up loops when threading through a joiner
12753         block.
12754         (thread_through_loop_header): Handle threading through a joiner block.
12755         (mark_threaded_blocks, register_jump_thread): Likewise.
12756         * tree-flow.h (register_jump_thread): Add new argument.  Callers
12757         updated.
12758         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
12759         (thread_across_edge): Handle threading through a joiner block.
12760
12761 2011-06-16  Martin Jambor  <mjambor@suse.cz>
12762
12763         PR tree-optimization/49343
12764         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
12765         calculate offset, provide 2nd operand for the new COMPONENT_REF.
12766
12767 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
12768
12769         * config/darwin-protos.h (machopic_select_rtx_section): Move to
12770         inside RTX_CODE ifdef.
12771
12772 2011-06-16  Tom de Vries  <tom@codesourcery.com>
12773
12774         PR target/45098
12775         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
12776         Disallow NULL pointer for pointer arithmetic.
12777
12778 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12779
12780         PR target/49398
12781         Revert.
12782         2011-06-10  Wei Guozhi  <carrot@google.com>
12783
12784         PR target/45335
12785         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
12786         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
12787         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
12788         related peephole2.
12789         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
12790         related peephole2.
12791         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
12792         (arm_legitimate_ldrd_p): New prototype.
12793         (arm_output_ldrd): New prototype.
12794         * config/arm/arm.c (arm_check_ldrd_operands): New function.
12795         (arm_legitimate_ldrd_p): New function.
12796         (arm_output_ldrd): New function.
12797
12798 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
12799
12800         PR middle-end/46500
12801         * doc/tm.texi.in: Update Copyright date.
12802         * doc/tm.texi: Regenerate.
12803         * targhooks.c (default_setup_incoming_varargs): Replace
12804         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12805         (default_pretend_outgoing_varargs_named): Likewise.
12806         (hook_pass_by_reference_must_pass_in_stack): Likewise.
12807         (hook_callee_copies_named): Likewise.
12808         (default_function_arg_advance): Likewise.
12809         (default_function_arg): Likewise.
12810         (default_function_incoming_arg): Likewise.
12811         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
12812         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
12813         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
12814         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
12815         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
12816         * targhooks.h (default_setup_incoming_varargs): Likewise.
12817         (default_pretend_outgoing_varargs_named): Likewise.
12818         (hook_pass_by_reference_must_pass_in_stack): Likewise.
12819         (hook_callee_copies_named): Likewise.
12820         (default_function_arg_advance): Likewise.
12821         (default_function_arg): Likewise.
12822         (default_function_incoming_arg): Likewise.
12823         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
12824         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
12825         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
12826         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
12827         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
12828         * target.def (pass_by_reference): Likewise.
12829         (setup_incoming_varargs, strict_argument_naming): Likewise.
12830         (pretend_outgoing_varargs_named, callee_copies): Likewise.
12831         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
12832         (function_incoming_arg): Likewise.
12833         * target.h: Don't include "tm.h" .
12834         (cumulative_args_t): New typedef.
12835         [GCC_TM_H] (get_cumulative_args): New static inline function.
12836         [GCC_TM_H] (pack_cumulative_args): Likewise.
12837         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
12838         argument type with cumulative_args_t.
12839         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
12840         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
12841         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
12842         (frv_arg_partial_bytes, frv_function_arg): Likewise.
12843         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
12844         (frv_function_arg_1): Likewise.
12845         * config/s390/s390.c (s390_pass_by_reference): Likewise.
12846         (s390_function_arg_advance, s390_function_arg): Likewise.
12847         * config/m32c/m32c.c (m32c_function_arg): Likewise.
12848         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
12849         (m32c_strict_argument_naming): Likewise.
12850         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
12851         (spu_function_arg_advance): Likewise.
12852         (spu_setup_incoming_varargs): Likewise.  Make static.
12853         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
12854         Remove prototype.
12855         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
12856         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12857         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
12858         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
12859         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
12860         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
12861         (mep_pass_by_reference, mep_function_arg): Likewise.
12862         (mep_function_arg_advance): Likewise.
12863         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
12864         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
12865         (m32r_function_arg, m32r_function_arg_advance): Likewise.
12866         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
12867         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
12868         (ix86_function_arg, ix86_pass_by_reference): Likewise.
12869         (ix86_setup_incoming_varargs): Likewise.
12870         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
12871         (sh_strict_argument_naming): Likewise.
12872         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
12873         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
12874         (sh_function_arg_advance, sh_function_arg): Likewise.
12875         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
12876         (pdp11_function_arg_advance): Likewise.
12877         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
12878         Likewise.
12879         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
12880         * config/avr/avr.c (avr_function_arg): Likewise.
12881         (avr_function_arg_advance): Likewise.
12882         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
12883         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
12884         (xtensa_function_arg_1): Likewise.
12885         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
12886         Likewise.
12887         (xstormy16_function_arg): Likewise.
12888         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
12889         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
12890         (fr30_function_arg_advance): Likewise.
12891         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
12892         (lm32_function_arg, lm32_function_arg_advance): Likewise.
12893         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
12894         (moxie_function_arg, moxie_function_arg_advance): Likewise.
12895         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
12896         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
12897         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
12898         (cris_function_arg, cris_function_incoming_arg): Likewise.
12899         (cris_function_arg_advance, cris_function_arg_1): Likewise.
12900         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
12901         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
12902         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
12903         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
12904         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
12905         (mn10300_arg_partial_bytes): Likewise.
12906         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
12907         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
12908         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
12909         (ia64_function_arg_1): Likewise.
12910         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
12911         (m68k_function_arg): Likewise.
12912         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
12913         (rs6000_function_arg, setup_incoming_varargs): Likewise.
12914         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
12915         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
12916         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
12917         (picochip_arg_advance): Likewise.
12918         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
12919         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
12920         (mcore_function_arg_advance): Likewise.
12921         * config/score/score.c (score_pass_by_reference): Likewise.
12922         (score_function_arg_advance): Likewise.
12923         (score_arg_partial_bytes): Likewise.  Make static.
12924         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
12925         * config/arm/arm.c (arm_arg_partial_bytes): Replace
12926         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12927         (arm_function_arg, arm_function_arg_advance): Likewise.
12928         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
12929         * config/pa/pa.c (pa_pass_by_reference): Likewise.
12930         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
12931         (pa_function_arg): Likewise.
12932         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
12933         (mips_function_arg, mips_function_arg_advance): Likewise.
12934         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
12935         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
12936         * config/vax/vax.c (vax_function_arg): Likewise.
12937         (vax_function_arg_advance): Likewise.
12938         * config/h8300/h8300.c (h8300_function_arg): Likewise.
12939         (h8300_function_arg_advance): Likewise.
12940         * config/v850/v850.c (v850_pass_by_reference): Likewise.
12941         (v850_strict_argument_naming, v850_function_arg): Likewise.
12942         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
12943         (v850_setup_incoming_varargs): Likewise.
12944         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
12945         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
12946         (mmix_function_arg, mmix_pass_by_reference): Likewise.
12947         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
12948         with const void *.
12949         * config/bfin/bfin.c (setup_incoming_varargs): Replace
12950         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12951         (bfin_function_arg_advance, bfin_function_arg): Likewise.
12952         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
12953         * calls.c (emit_call_1): Change type of args_so_far to
12954         cumulative_args_t.  Changed all callers.
12955         (initialize_argument_information): Likewise.
12956         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
12957         * dse.c (get_call_args): Likewise.
12958         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
12959         * function.c (pass_by_reference, reference_callee_copied): Likewise.
12960         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
12961         New member args_so_far_v.  Changed all users.
12962         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
12963         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
12964         * config/mips/mips.c (mips_output_args_xfer): Likewise.
12965         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
12966         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
12967         * config/microblaze/microblaze.c (microblaze_expand_prologue):
12968         Likewise.
12969         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
12970         m32r_pass_by_reference.
12971
12972 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
12973
12974         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
12975         argument to be a VEC of statements.
12976         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
12977         assert that pattern statements have to have their vector type set.
12978         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
12979         Change the first argument to be a VEC of statements.  Update
12980         documentation.
12981         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
12982         (vect_handle_widen_mult_by_const): New function.
12983         (vect_recog_widen_mult_pattern):  Change the first argument to be a
12984         VEC of statements.  Update documentation.  Check that the constant is
12985         INTEGER_CST.  Support multiplication by a constant that fits an
12986         intermediate type - call vect_handle_widen_mult_by_const.
12987         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
12988         call.  Handle additional pattern statements if necessary.
12989
12990 2011-06-16  Nick Clifton  <nickc@redhat.com>
12991
12992         PR target/49427
12993         * config.gcc: Set cpu_type to v850 for any V850 architecture.
12994         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
12995         md_file, extra_modes, out_file and extra_options are these are all
12996         deduced from cpu_type.
12997
12998 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
12999
13000         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
13001         truncation mask to 63.
13002
13003 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
13004
13005         PR target/49313
13006         PR target/29524
13007         * longlong.h: Add AVR support:
13008         (count_leading_zeros): New macro.
13009         (count_trailing_zeros): New macro.
13010         (COUNT_LEADING_ZEROS_0): New macro.
13011         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
13012         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
13013         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
13014         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
13015         (LIB2FUNCS_EXCLUDE): Add _clz.
13016         * config/avr/libgcc.S (XCALL): Move up in file.
13017         (XJMP): New C Macro.
13018         (DEFUN): New asm macro.
13019         (ENDF): New asm macro.
13020         (__ffssi2): New function.
13021         (__ffshi2): New function.
13022         (__loop_ffsqi2): New function.
13023         (__ctzsi2): New function.
13024         (__ctzhi2): New function.
13025         (__clzdi2): New function.
13026         (__clzsi2): New function.
13027         (__clzhi2): New function.
13028         (__paritydi2): New function.
13029         (__paritysi2): New function.
13030         (__parityhi2): New function.
13031         (__parityqi2): New function.
13032         (__popcounthi2): New function.
13033         (__popcountsi2): New function.
13034         (__popcountdi2): New function.
13035         (__popcountqi2): New function.
13036         (__bswapsi2): New function.
13037         (__bswapdi2): New function.
13038         (__ashldi3): New function.
13039         (__ashrdi3): New function.
13040         (__lshrdi3): New function.
13041         Fix suspicous lines.
13042
13043 2011-06-16  Richard Guenther  <rguenther@suse.de>
13044
13045         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
13046         the same as x != 0.
13047         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
13048         to (bool) X & 1.
13049         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
13050         equality compares against zero for the lower bit.
13051
13052 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
13053
13054         PR tree-optimization/49419
13055         * tree-vrp.c (execute_vrp): Call init_range_assertions
13056         before estimate_numbers_of_iterations, call
13057         free_number_of_iterations_estimates before calling
13058         remove_range_assertions.
13059
13060 2011-06-16  Revital Eres  <revital.eres@linaro.org>
13061
13062         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
13063         (struct partial_schedule): Add rows_length field.
13064         (verify_partial_schedule): Check rows_length.
13065         (ps_insert_empty_row): Handle rows_length.
13066         (create_partial_schedule): Likewise.
13067         (free_partial_schedule): Likewise.
13068         (reset_partial_schedule): Likewise.
13069         (create_ps_insn): Remove rest_count argument.
13070         (remove_node_from_ps): Update rows_length.
13071         (add_node_to_ps): Update rows_length and call create_ps_insn
13072         without passing row_rest_count.
13073         (rotate_partial_schedule): Update rows_length.
13074
13075 2011-06-16  Revital Eres  <revital.eres@linaro.org>
13076
13077         * ddg.c (add_intra_loop_mem_dep): New function.
13078         (build_intra_loop_deps): Call it.
13079
13080 2011-06-13  Jeff Law  <law@redhat.com>
13081
13082         * df-problems.c (df_lr_local_compute): Manually CSE
13083         PIC_OFFSET_TABLE_REGNUM.
13084         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
13085         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
13086
13087 2011-06-13  Jan Hubicka  <jh@suse.cz>
13088
13089         * cgraphunit.c (handle_alias_pairs): New function.
13090         (cgraph_finalize_compilation_unit): Use it.
13091         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
13092         as externally visible.
13093
13094 2011-06-15  Richard Guenther  <rguenther@suse.de>
13095
13096         * expr.c (expand_expr_real_2): Reduce all integral types to
13097         bitfield precision.
13098         (expand_expr_real_1): Likewise.
13099
13100 2011-06-15  Martin Jambor  <mjambor@suse.cz>
13101
13102         PR tree-optimization/48613
13103         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
13104         ipa_node_params_vector is NULL.
13105
13106 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
13107
13108         PR debug/49382
13109         * dwarf2out.c (dw_loc_list_node): Add force field.
13110         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
13111         location in the list, even if it is modified before first real insn.
13112         (output_loc_list): Emit empty ranges with force flag set.
13113         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
13114
13115 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
13116
13117         PR target/49349
13118         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
13119         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
13120         above a fence.  Update comments.
13121         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
13122         placed just above it.  Do not allow NULL place_to_insert.
13123
13124 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
13125
13126         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
13127         (slpeel_tree_peel_loop_to_edge): Don't call
13128         remove_dead_stmts_from_loop.
13129         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
13130         remove irrelevant pattern statements.  For irrelevant statements
13131         check if it is the last statement of a detected pattern, use
13132         corresponding pattern statement instead.
13133         (destroy_loop_vec_info): No need to remove pattern statements,
13134         only free stmt_vec_info.
13135         (vect_transform_loop): For irrelevant statements check if it is
13136         the last statement of a detected pattern, use corresponding
13137         pattern statement instead.
13138         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
13139         pattern statements.  Set basic block for the new statement.
13140         (vect_pattern_recog): Update documentation.
13141         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
13142         operands of pattern statements.
13143         (vectorizable_call): Fix printing.  In case of a pattern statement
13144         use the lhs of the original statement when creating a dummy
13145         statement to replace the original call.
13146         (vect_analyze_stmt): For irrelevant statements check if it is
13147         the last statement of a detected pattern, use corresponding
13148         pattern statement instead.
13149         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
13150         statements use gsi of the original statement.
13151
13152 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
13153
13154         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
13155         common/common-target-def.h.
13156         * target.def (default_target_flags, handle_option,
13157         supports_split_stack, optimization_table, init_struct,
13158         except_unwind_info, unwind_tables_default, have_named_sections):
13159         Move to common/common-target.def.
13160         * target.h (enum opt_levels, struct default_options): Move to
13161         common/common-target.h.
13162         * targhooks.c (default_except_unwind_info,
13163         dwarf2_except_unwind_info, sjlj_except_unwind_info,
13164         default_target_handle_option, empty_optimization_table): Move to
13165         common/common-targhooks.c.
13166         * targhooks.h (default_except_unwind_info,
13167         dwarf2_except_unwind_info, sjlj_except_unwind_info,
13168         default_target_handle_option, empty_optimization_table): Move to
13169         common/common-targhooks.h.
13170         * common/common-target-def.h: Include common/common-targhooks.h.
13171         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
13172         defined.
13173         * common/common-target.def (handle_option, option_init_struct,
13174         option_optimization_table, default_target_flags,
13175         except_unwind_info, supports_split_stack, unwind_tables_default,
13176         have_named_sections): Move from target.def.
13177         (HOOK_PREFIX): Undefine at end of file.
13178         * common/common-target.h: Include input.h.
13179         (enum opt_levels, struct default_options): Move from target.h.
13180         * common/common-targhooks.c, common/common-targhooks.h: New.
13181         * config.gcc (target_has_targetm_common): Default to yes.
13182         (moxie*): Set target_has_targetm_common=no.
13183         (hppa*-*-*): Don't set target_has_targetm_common=yes.
13184         * doc/tm.texi: Regenerate.
13185         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
13186         (C_TARGET_DEF_H): Add common/common-targhooks.h.
13187         (GCC_OBJS): Remove vec.o.
13188         (OBJS): Remove hooks.o and vec.o.
13189         (OBJS-libcommon-target): Add vec.o, hooks.o and
13190         common/common-targhooks.o.
13191         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
13192         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
13193         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
13194         cfglayout.o, $(out_object_file), $(common_out_object_file)):
13195         Update dependencies.
13196         (common/common-targhooks.o): New.
13197         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
13198         * common/config/pa/pa-common.c: Include more headers.  Take
13199         copyright dates from pa.c.
13200         (pa_option_optimization_table, pa_handle_option,
13201         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
13202         TARGET_HANDLE_OPTION): Move from pa.c.
13203         * common/config/alpha/alpha-common.c,
13204         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
13205         common/config/bfin/bfin-common.c,
13206         common/config/cris/cris-common.c,
13207         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
13208         common/config/h8300/h8300-common.c,
13209         common/config/i386/i386-common.c,
13210         common/config/ia64/ia64-common.c,
13211         common/config/iq2000/iq2000-common.c,
13212         common/config/lm32/lm32-common.c,
13213         common/config/m32c/m32c-common.c,
13214         common/config/m32r/m32r-common.c,
13215         common/config/m68k/m68k-common.c,
13216         common/config/mcore/mcore-common.c,
13217         common/config/mep/mep-common.c,
13218         common/config/microblaze/microblaze-common.c,
13219         common/config/mips/mips-common.c,
13220         common/config/mmix/mmix-common.c,
13221         common/config/mn10300/mn10300-common.c,
13222         common/config/pdp11/pdp11-common.c,
13223         common/config/picochip/picochip-common.c,
13224         common/config/rs6000/rs6000-common.c,
13225         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
13226         common/config/score/score-common.c, common/config/sh/sh-common.c,
13227         common/config/sparc/sparc-common.c,
13228         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
13229         common/config/vax/vax-common.c,
13230         common/config/xstormy16/xstormy16-common.c,
13231         common/config/xtensa/xtensa-common.c: New.
13232         * config/alpha/alpha.c: Include common/common-target.h.
13233         (alpha_option_optimization_table, alpha_handle_option,
13234         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13235         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
13236         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
13237         * config/arm/arm.c (arm_option_optimization_table,
13238         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13239         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
13240         arm-common.c.
13241         * config/avr/avr.c (avr_option_optimization_table,
13242         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
13243         to avr-common.c.
13244         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
13245         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
13246         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
13247         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
13248         * config/cris/cris.c (cris_option_optimization_table,
13249         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13250         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
13251         cris-common.c.
13252         * config/fr30/fr30.c (fr30_option_optimization_table,
13253         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
13254         to fr30-common.c.
13255         * config/frv/frv.c (frv_option_optimization_table,
13256         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
13257         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
13258         * config/h8300/h8300.c (h8300_option_optimization_table,
13259         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13260         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
13261         * config/i386/i386-protos.h (ix86_handle_option): Declare.
13262         * config/i386/i386.c: Include common/common-target.h.
13263         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
13264         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
13265         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
13266         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
13267         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
13268         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
13269         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
13270         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
13271         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
13272         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
13273         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
13274         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
13275         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
13276         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
13277         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
13278         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
13279         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
13280         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
13281         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
13282         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
13283         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
13284         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
13285         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
13286         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
13287         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
13288         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
13289         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
13290         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
13291         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
13292         ix86_option_optimization_table, ix86_option_init_struct,
13293         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
13294         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
13295         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
13296         i386-common.c.
13297         * config/i386/t-i386 (i386.o): Update dependencies.
13298         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
13299         * config/ia64/ia64.c (ia64_option_optimization_table,
13300         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
13301         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13302         ia64_handle_option): Move to ia64-common.c.
13303         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
13304         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
13305         * config/lm32/lm32.c (lm32_option_optimization_table,
13306         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
13307         to lm32-common.c.
13308         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
13309         m32c-common.c.
13310         * config/m32r/m32r.c (m32r_option_optimization_table,
13311         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13312         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
13313         m32r_handle_option): Move to m32r-common.c.
13314         (m32r_memory_move_cost): Remove comment referring to
13315         TARGET_HANDLE_OPTION.
13316         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
13317         Move to m68k-common.c.
13318         * config/mcore/mcore.c (mcore_option_optimization_table,
13319         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13320         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
13321         * config/mep/mep.c (mep_option_optimization_table,
13322         mep_handle_option, TARGET_HANDLE_OPTION,
13323         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
13324         Move to mep-common.c.
13325         * config/microblaze/microblaze.c
13326         (microblaze_option_optimization_table,
13327         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13328         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
13329         * config/mips/mips.c (mips_handle_option,
13330         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
13331         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
13332         mips-common.c.
13333         * config/mmix/mmix.c (mmix_option_optimization_table,
13334         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
13335         Move to mmix-common.c.
13336         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
13337         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
13338         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13339         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
13340         * config/pa/pa.c: Include common/common-target.h.
13341         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
13342         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13343         pa_handle_option): Move to pa-common.c.
13344         (pa_option_override): Use targetm_common.except_unwind_info.
13345         (pa_asm_output_mi_thunk, pa_function_section): Use
13346         targetm_common.have_named_sections.
13347         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
13348         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13349         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
13350         pdp11_handle_option, pdp11_option_init_struct): Move to
13351         pdp11-common.c.
13352         * config/picochip/picochip.c (picochip_option_optimization_table,
13353         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
13354         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
13355         * config/rs6000/rs6000.c: Include common/common-target.h.
13356         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
13357         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
13358         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
13359         rs6000_handle_option): Move to rs6000-common.c.
13360         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
13361         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
13362         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
13363         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
13364         * config/s390/s390.c (processor_flags_table,
13365         s390_option_optimization_table, s390_option_init_struct,
13366         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
13367         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
13368         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
13369         * config/s390/s390.h (processor_flags_table): Declare.
13370         * config/score/score.c (score_option_optimization_table,
13371         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13372         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
13373         score_handle_option): Move to score-common.c.
13374         * config/sh/sh.c (sh_option_optimization_table,
13375         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
13376         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13377         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
13378         * config/sparc/sparc.c: Include common/common-target.h.
13379         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
13380         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
13381         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
13382         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
13383         spu_option_init_struct): Move to spu-common.c.
13384         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
13385         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
13386         * config/v850/v850.c (small_memory_physical_max,
13387         v850_handle_memory_optionn v850_handle_option,
13388         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
13389         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
13390         v850-common.c.
13391         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
13392         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
13393         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
13394         Move to xtensa-common.c.
13395         * cfglayout.c: Include common/common-target.h.
13396         (fixup_reorder_chain): Use targetm_common.have_named_sections.
13397         * cfgrtl.c: Include common/common-target.h.
13398         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
13399         targetm_common.have_named_sections.
13400         * dbxout.c: Include common/common-target.h.
13401         (dbxout_function_end): Use targetm_common.have_named_sections.
13402         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
13403         targetm_common.except_unwind_info.
13404         * dwarf2out.c: Include common/common-target.h.
13405         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
13406         dwarf2out_begin_prologue, dwarf2out_frame_init,
13407         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
13408         targetm_common.except_unwind_info.
13409         * except.c: Include common/common-target.h.
13410         (init_eh, finish_eh_generation,
13411         output_one_function_exception_table): Use
13412         targetm_common.except_unwind_info.
13413         (switch_to_exception_section): Use targetm_common.have_named_sections.
13414         * explow.c: Include common/common-target.h.
13415         * expr.c: Include common/common-target.h.
13416         (build_personality_function): Use targetm_common.except_unwind_info.
13417         * function.c: Include common/common-target.h.
13418         (expand_function_end): Use targetm_common.except_unwind_info.
13419         * haifa-sched.c: Include common/common-target.h.
13420         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
13421         * lto-opts.c: Include common/common-target.h instead of target.h.
13422         (lto_reissue_options): Use targetm_common.handle_option.
13423         * opts.c: Include common/common-target.h.
13424         (target_handle_option): Use targetm_common.handle_option.
13425         (init_options_struct): Update comment referring to
13426         targetm.target_option.optimization.  Use
13427         targetm_common.default_target_flags,
13428         targetm_common.unwind_tables_default and
13429         targetm_common.option_init_struct.
13430         (default_options_optimization): Use
13431         targetm_common.option_optimization_table.
13432         (finish_options): Use targetm_common.except_unwind_info,
13433         targetm_common.unwind_tables_default,
13434         targetm_common.have_named_sections and
13435         targetm_common.supports_split_stack.
13436         * toplev.c: Include common/common-target.h.
13437         (process_options): Use targetm_common.have_named_sections.
13438         * tree-tailcall.c: Include common/common-target.h.
13439         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
13440         * tree.c: Include common/common-target.h.
13441         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
13442         * varasm.c: Include common/common-target.h.
13443         (resolve_unique_section, hot_function_section,
13444         default_function_section): Use targetm_common.have_named_sections.
13445
13446 2011-06-14  Easwaran Raman  <eraman@google.com>
13447
13448         PR rtl-optimization/44194
13449         * dse.c: Include tree-flow.h
13450         (insn_info): Add new field non_frame_wild_read.
13451         (group_info): Add new fields escaped_n and escaped_p.
13452         (kill_on_calls): New variable.
13453         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
13454         (dse_step0): Initialize kill_on_calls.
13455         (can_escape): New function.
13456         (set_usage_bits): Add additional parameter; record information
13457         about escaped locations.
13458         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
13459         (dse_step2_nospill): Set kill_on_calls based on
13460         group->escaped_n and group->escaped_n.
13461         (add_wild_read): Refactor into...
13462         (reset_active_stores): ... New function, and
13463         (free_read_records): ... New function.
13464         (add_non_frame_wild_read): New function.
13465         (scan_insn): Call add_non_frame_wild_read on non-const calls.
13466         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
13467         (dse_step5_nospill): Call scan_reads_nospill for instructions
13468         marked as non_frame_wild_read.
13469         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
13470
13471 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
13472
13473         * common/common-target-def.h, common/common-target.def,
13474         common/common-target.h, common/config/default-common.c,
13475         common/config/pa/pa-common.c: New files.
13476         * Makefile.in (common_out_file, common_out_object_file,
13477         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
13478         (OBJS-libcommon-target): Include $(common_out_object_file).
13479         (prefix.o): Update dependencies.
13480         ($(common_out_object_file), common/common-target-hooks-def.h,
13481         s-common-target-hooks-def-h): New.
13482         (s-tm-texi): Also check timestamp on common-target.def.
13483         (build/genhooks.o): Update dependencies.
13484         * config.gcc (common_out_file, target_has_targetm_common): Define.
13485         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
13486         TARGET_ALWAYS_STRIP_DOTDOT.
13487         * configure.ac (common_out_object_file): Define.
13488         (common_out_file, common_out_object_file): Substitute.
13489         (common): Create directory.
13490         * configure: Regenerate.
13491         * doc/tm.texi.in (targetm_common): Document.
13492         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
13493         * doc/tm.texi: Regenerate.
13494         * genhooks.c (hook_array): Also include common/common-target.def.
13495         * prefix.c (tm.h): Don't include.
13496         (common/common-target.h): Include.
13497         (ALWAYS_STRIP_DOTDOT): Don't define.
13498         (update_path): Use targetm_common.always_strip_dotdot instead of
13499         ALWAYS_STRIP_DOTDOT.
13500         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
13501
13502 2011-06-14  David Li  <davidxl@google.com>
13503
13504         * passes.c (execute_function_todo): Remove TODO_dump_func.
13505         (execute_one_pass): Remove TODO_dump_func.
13506         (execute_function_dump): New function.
13507         * tree-vrp.c: Remove TODO_dump_func.
13508         * regrename.c: Remove TODO_dump_func.
13509         * fwprop.c: Remove TODO_dump_func.
13510         * tree-into-ssa.c: Remove TODO_dump_func.
13511         * tree-complex.c: Remove TODO_dump_func.
13512         * tracer.c: Remove TODO_dump_func.
13513         * tree-loop-distribution.c: Remove TODO_dump_func.
13514         * postreload-gcse.c: Remove TODO_dump_func.
13515         * postreload.c: Remove TODO_dump_func.
13516         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
13517         * tree-tailcall.c: Remove TODO_dump_func.
13518         * ipa-cp.c: Remove TODO_dump_func.
13519         * final.c: Remove TODO_dump_func.
13520         * tree-emutls.c: Remove TODO_dump_func.
13521         * omp-low.c: Remove TODO_dump_func.
13522         * tree-ssa-dse.c: Remove TODO_dump_func.
13523         * tree-ssa-uncprop.c: Remove TODO_dump_func.
13524         * auto-inc-dec.c: Remove TODO_dump_func.
13525         * reorg.c: Remove TODO_dump_func.
13526         * tree-ssa-copyrename.c: Remove TODO_dump_func.
13527         * tree-ssa-ccp.c: Remove TODO_dump_func.
13528         * compare-elim.c: Remove TODO_dump_func.
13529         * mode-switching.c: Remove TODO_dump_func.
13530         * modulo-sched.c: Remove TODO_dump_func.
13531         * tree-call-cdce.c: Remove TODO_dump_func.
13532         * cse.c: Remove TODO_dump_func.
13533         * web.c: Remove TODO_dump_func.
13534         * tree-stdarg.c: Remove TODO_dump_func.
13535         * lto-streamer-out.c: Remove TODO_dump_func.
13536         * tree-ssa-math-opts.c: Remove TODO_dump_func.
13537         * tree-ssa-dom.c: Remove TODO_dump_func.
13538         * tree-nrv.c: Remove TODO_dump_func.
13539         * loop-init.c: Remove TODO_dump_func.
13540         * gimple-low.c: Remove TODO_dump_func.
13541         * ipa-inline.c: Remove TODO_dump_func.
13542         * tree-ssa-sink.c: Remove TODO_dump_func.
13543         * jump.c: Remove TODO_dump_func.
13544         * ifcvt.c: Remove TODO_dump_func.
13545         * tree-ssa-loop.c: Remove TODO_dump_func.
13546         * recog.c: Remove TODO_dump_func.
13547         * dse.c: Remove TODO_dump_func.
13548         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
13549         * matrix-reorg.c: Remove TODO_dump_func.
13550         * tree-eh.c: Remove TODO_dump_func.
13551         * regmove.c: Remove TODO_dump_func.
13552         * function.c: Remove TODO_dump_func.
13553         * tree-vectorizer.c: Remove TODO_dump_func.
13554         * ipa-split.c: Remove TODO_dump_func.
13555         * gcse.c: Remove TODO_dump_func.
13556         * tree-if-conv.c: Remove TODO_dump_func.
13557         * init-regs.c: Remove TODO_dump_func.
13558         * tree-ssa-phiopt.c: Remove TODO_dump_func.
13559         * implicit-zee.c: Remove TODO_dump_func.
13560         * lower-subreg.c: Remove TODO_dump_func.
13561         * bt-load.c: Remove TODO_dump_func.
13562         * tree-dfa.c: Remove TODO_dump_func.
13563         * except.c: Remove TODO_dump_func.
13564         * emit-rtl.c: Remove TODO_dump_func.
13565         * store-motion.c: Remove TODO_dump_func.
13566         * cfgexpand.c: Remove TODO_dump_func.
13567         * tree-cfgcleanup.c: Remove TODO_dump_func.
13568         * cfgcleanup.c: Remove TODO_dump_func.
13569         * tree-ssa-pre.c: Remove TODO_dump_func.
13570         * tree-sra.c: Remove TODO_dump_func.
13571         * tree-mudflap.c: Remove TODO_dump_func.
13572         * tree-ssa-copy.c: Remove TODO_dump_func.
13573         * cfglayout.c: Remove TODO_dump_func.
13574         * tree-ssa-forwprop.c: Remove TODO_dump_func.
13575         * tree-ssa-dce.c: Remove TODO_dump_func.
13576         * ira.c: Remove TODO_dump_func.
13577         * tree-ssa.c: Remove TODO_dump_func.
13578         * integrate.c: Remove TODO_dump_func.
13579         * tree-optimize.c: Remove TODO_dump_func.
13580         * tree-ssa-phiprop.c: Remove TODO_dump_func.
13581         * tree-object-size.c: Remove TODO_dump_func.
13582         * combine.c: Remove TODO_dump_func.
13583         * bb-reorder.c: Remove TODO_dump_func.
13584         * cprop.c: Remove TODO_dump_func.
13585         * var-tracking.c: Remove TODO_dump_func.
13586         * tree-profile.c: Remove TODO_dump_func.
13587         * tree-vect-generic.c: Remove TODO_dump_func.
13588         * reg-stack.c: Remove TODO_dump_func.
13589         * sched-rgn.c: Remove TODO_dump_func.
13590         * tree-ssa-structalias.c: Remove TODO_dump_func.
13591         * tree-switch-conversion.c: Remove TODO_dump_func.
13592         * tree-cfg.c: Remove TODO_dump_func.
13593         * tree-ssa-reassoc.c: Remove TODO_dump_func.
13594         * combine-stack-adj.c: Remove TODO_dump_func.
13595         * dce.c: Remove TODO_dump_func.
13596         * tree-ssanames.c: Remove TODO_dump_func.
13597         * regcprop.c: Remove TODO_dump_func.
13598
13599 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
13600
13601         PR middle-end/47364
13602         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
13603         and properly handle result not in Pmode.
13604
13605 2011-06-14  Robert Millan  <rmh@gnu.org>
13606
13607         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
13608         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
13609         `config/linux.h'.
13610
13611         * config/i386/kfreebsd-gnu64.h: New file.
13612         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
13613         with `i386/kfreebsd-gnu64.h'.
13614
13615         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
13616         (GNU_USER_LINK_EMULATION64): New macros.
13617         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
13618         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
13619         of hardcoding `elf_i386' and `elf_x86_64'.
13620
13621 2011-06-14  Nick Clifton  <nickc@redhat.com>
13622
13623         PR target/49403
13624         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
13625
13626         PR target/49402
13627         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
13628
13629 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
13630
13631         PR fortran/49103
13632         * tree.h (DECL_NONSHAREABLE): Define.
13633         (struct tree_decl_common): Change decl_common_unused to
13634         decl_nonshareable_flag.
13635         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
13636         Ignore vars with DECL_NONSHAREABLE bit set.
13637         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
13638         on stores to automatic aggregate vars.
13639
13640         PR rtl-optimization/49390
13641         Revert:
13642         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
13643
13644         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
13645         MEM_ALIAS_SET.
13646
13647 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
13648             Tom de Vries  <tom@codesourcery.com>
13649
13650         PR target/45098
13651         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
13652         Document changed semantics.
13653         (max_stmt_executions, max_stmt_executions_int): Declare.
13654         * tree-data-ref.c (estimated_loop_iterations)
13655         (estimated_loop_iterations_int): Move functions...
13656         * tree-ssa-loop-niter.c (estimated_loop_iterations)
13657         (estimated_loop_iterations_int): here.
13658         (record_estimate): Change nb_iterations_upper_bound and
13659         nb_iterations_estimate semantics.
13660         (max_stmt_executions, max_stmt_executions_int): New function.
13661         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
13662         (max_stmt_executions_tree): this.
13663         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
13664         estimated_loop_iterations_tree.
13665         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
13666         max_stmt_executions_int instead of estimated_loop_iterations_int.
13667         * predict.c (predict_loops): Idem.
13668         * tree-parloops.c (parallelize_loops): Idem.
13669         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
13670         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
13671         (init_omega_for_ddr_1): Idem.
13672         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
13673         (loop_prefetch_arrays): Idem
13674         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
13675         max_stmt_executions instead of estimated_loop_iterations.
13676         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
13677         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
13678         instead of nb_iterations_upper_bound.
13679
13680 2011-06-13  Jan Hubicka  <jh@suse.cz>
13681
13682         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
13683
13684 2011-06-14  Richard Henderson  <rth@redhat.com>
13685
13686         PR debug/48459
13687         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
13688         (based_loc_descr): Assert it's true.
13689         (compute_frame_pointer_to_fb_displacement): Set it, rather than
13690         aborting immediately.
13691
13692 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
13693             Mingfeng Wu  <mingfeng@faraday-tech.com>
13694
13695         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
13696
13697 2011-06-13  Jan Hubicka  <jh@suse.cz>
13698
13699         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
13700
13701 2011-06-13  Jan Hubicka  <jh@suse.cz>
13702
13703         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
13704         similarly to DECL_COMDAT.
13705         * cgraphunit.c (cgraph_analyze_function): Likewise.
13706         * ipa.c (function_and_variable_visibility): Likewise.
13707
13708 2011-06-13  Jan Hubicka  <jh@suse.cz>
13709
13710         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
13711         BINFO_VIRTUALS when streaming for ltrans unit.
13712
13713 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
13714
13715         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
13716         (movdi_internal64): Same.
13717
13718 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
13719
13720         PR target/44618
13721         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
13722         a set of similar patterns, where the MATCH_OPERAND for the function
13723         argument is replaced with individual references to hardware registers.
13724         (save_fpregs_<mode>): Ditto
13725         (restore_gpregs_<mode>): Ditto
13726         (return_and_restore_gpregs_<mode>): Ditto
13727         (return_and_restore_fpregs_<mode>): Ditto
13728         (return_and_restore_fpregs_aix_<mode>): Ditto
13729
13730 2011-06-13  Jan Hubicka  <jh@suse.cz>
13731
13732         * ipa-utils.c (postorder_stack): New structure.
13733         (ipa_reverse_postorder): Handle aliases.
13734
13735 2011-06-13  Jan Hubicka  <jh@suse.cz>
13736
13737         * ipa-inline.c (reset_edge_caches): Walk aliases.
13738         (update_caller_keys): Do not test inlinability of aliases.
13739         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
13740         (do_estimate_growth): Fix typo.
13741
13742 2011-06-13  Jan Hubicka  <jh@suse.cz>
13743
13744         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
13745         (can_remove_node_now_p): ... here; handle same comdat groups.
13746         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
13747         (inline_call): Update use of can_remove_node_now_p.
13748
13749 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
13750
13751         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
13752         condition to disallow non-identical memory locations.
13753         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
13754         preference to bit manipulation instructions.
13755
13756 2011-06-13  Jan Hubicka  <jh@suse.cz>
13757
13758         * cgraph.c (cgraph_for_node_thunks_and_aliases,
13759         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
13760         (nonremovable_p): New function.
13761         (cgraph_can_remove_if_no_direct_calls_p): New function.
13762         (used_from_object_file_p): New functoin.
13763         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
13764         references from aliases.
13765         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
13766         * ipa-inline.c (check_caller_edge): New function.
13767         (want_inline_function_called_once_p): Use it; accept aliases called
13768         once, too.
13769         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
13770
13771 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13772
13773         PR target/48454
13774         * config/arm/neon.md (vec_pack_trunc): Set the lengths
13775         correctly for the case with Quad vectors.
13776
13777 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
13778            Ira Rosen  <ira.rosen@linaro.org>
13779
13780         PR tree-optimization/49352
13781         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
13782         all, make sure loop_use_stmt after the loop is a def stmt of a used
13783         SSA_NAME that is the only one defined inside of the loop.  Don't
13784         check for COND_EXPR and GIMPLE_BINARY_RHS.
13785         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
13786         check_reduction is true.
13787
13788 2011-06-11  Jan Hubicka  <jh@suse.cz>
13789
13790         PR middle-end/49373
13791         * ipa.c (cgraph_externally_visible_p): Check resolution info.
13792
13793 2011-06-11  Jan Hubicka  <jh@suse.cz>
13794
13795         PR middle-end/48836
13796         * ipa-inline-transform.c: Include tree-pass.h
13797         (inline_transform): Set TODO_update_ssa_only_virtuals.
13798         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
13799
13800 2011-06-11  Jan Hubicka  <jh@suse.cz>
13801
13802         PR middle-end/49378
13803         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
13804         aliases and thunks.
13805
13806 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
13807
13808         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
13809         Take number of iterations to peel into account for equally frequent
13810         misalignment values.
13811
13812 2011-06-11  Jan Hubicka  <jh@suse.cz>
13813
13814         * lto-streamer-out.c (produce_symtab): Stream out the newly
13815         represented aliases.
13816
13817 2011-06-11  Jan Hubicka  <jh@suse.cz>
13818
13819         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
13820         varying args.
13821         (ipa_update_after_lto_read): Likewise.
13822         (ipa_write_node_info): Do not sream call_with_var_arguments.
13823         (ipa_read_node_info): Likewise.
13824
13825 2011-06-11  Jan Hubicka  <jh@suse.cz>
13826
13827         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
13828
13829 2011-06-11  Jan Hubicka  <jh@suse.cz>
13830
13831         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
13832         (lto_symtab_resolve_can_prevail_p): Likewise.
13833         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
13834         * cgraph.c (same_body_aliases_done): New global var.
13835         (cgraph_same_body_alias_1): Rename to ...
13836         (cgraph_create_function_alias): ... this one; reorg to new
13837         representation.
13838         (cgraph_same_body_alias): Use cgraph_create_function_alias;
13839         record references when asked to.
13840         (cgraph_add_thunk): Fix formating.
13841         (cgraph_get_node): Kill same body alias code.
13842         (cgraph_node_for_asm): Likewise.
13843         (cgraph_remove_same_body_alias): Remove.
13844         (cgraph_remove_node): Kill same body alias code.
13845         (cgraph_mark_address_taken_node): Mark also the aliased function
13846         as having address taken.
13847         (dump_cgraph_node): Dump same body aliases.
13848         (cgraph_for_node_thunks_and_aliases): Update for new alias
13849         representation.
13850         (cgraph_for_node_and_aliases): Likewise.
13851         * cgraph.h (same_body): Kll pointer.
13852         (same_body_alias): Update comment.
13853         (same_body_aliases_done): Declare.
13854         (cgraph_remove_same_body_alias): Remove declaration.
13855         (cgraph_create_function_alias): Declare.
13856         (cgraph_process_same_body_aliases): Declare.
13857         (cgraph_function_with_gimple_body_p): Check for alias.
13858         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
13859         (cgraph_alias_aliased_node): New function.
13860         (cgraph_function_node): Update for new aliases.
13861         (cgraph_function_or_thunk_node): Likewise.
13862         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
13863         (inline_call): Remove dead aliases.
13864         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
13865         name hack for same body aliases.
13866         (clone_of_p): Look through aliases.
13867         (verify_cgraph_node): Verify aliases.
13868         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
13869         (cgraph_process_same_body_aliases): New function.
13870         (process_function_and_variable_attributes): Disable weakref warning on
13871         alias.
13872         (cgraph_analyze_functions): Handle aliases.
13873         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
13874         (assemble_thunks): Rename to ...
13875         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
13876         (cgraph_expand_function): Remove alias output code.
13877         (cgraph_output_in_order): Skip aliases.
13878         (cgraph_preserve_function_body_p): Aliases don't need preserving.
13879         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
13880         (ipa_record_reference): Do not assert on alias references.
13881         (ipa_ref_has_aliases_p): New function.
13882         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
13883         (ipa_ref_has_aliases_p): Declare.
13884         * lto-cgraph.c (lto_output_node): Handle aliases.
13885         (input_node): Likewise.
13886         * lto-streamer-out.c (lto_output): Skip aliases.
13887         (produce_symtab): Kill same_body_alias code.
13888         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
13889         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
13890         * ipa-inline.c (update_caller_keys): Walk aliases.
13891         (inline_small_functions): Fix thinko in previous patch.
13892         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
13893         (function_and_variable_visibility): Do not walk same body aliases.
13894         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
13895         (ipa_pta_execute): Use it.
13896
13897 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13898
13899         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
13900         (*vec_dupv2df): Rename from vec_dupv2df.
13901         (vec_dupv2df): New expander.
13902
13903 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13904
13905         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
13906
13907 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13908
13909         * config/i386/i386.md: Use default value in "isa" attribute.
13910         * config/i386/sse.md: Ditto.
13911         * config/i386/mmx.md: Ditto.
13912
13913 2011-06-10  Wei Guozhi  <carrot@google.com>
13914
13915         PR target/45335
13916         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
13917         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
13918         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
13919         related peephole2.
13920         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
13921         related peephole2.
13922         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
13923         (arm_legitimate_ldrd_p): New prototype.
13924         (arm_output_ldrd): New prototype.
13925         * config/arm/arm.c (arm_check_ldrd_operands): New function.
13926         (arm_legitimate_ldrd_p): New function.
13927         (arm_output_ldrd): New function.
13928
13929 2011-06-10  David Li  <davidxl@google.com>
13930
13931         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
13932         * passes.c (passr_eq): New function.
13933         (create_pass_tab): New function.
13934         (pass_traverse): New function.
13935         (dump_one_pass): New function.
13936         (dump_pass_list): New function.
13937         (dump_passes): New function.
13938
13939 2011-06-10  Jan Hubicka  <jh@suse.cz>
13940
13941         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
13942         setting the nothrow flag.
13943         * ipa-reference.c (propagate): Skip aliases.
13944         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
13945         (propagate_nothrow): Skip aliases; do not update cgraph.
13946         (local_pure_const): Do not update cgraph.
13947         * tree-profile.c (tree_profiling): Do fixup_cfg.
13948
13949 2011-06-10  Jan Hubicka  <jh@suse.cz>
13950
13951         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
13952         (cgraph_local_node_p): ... here; handle aliases.
13953         (has_addr_references_p): Break out from ...;
13954         (cgraph_remove_unreachable_nodes) ... here.
13955
13956 2011-06-10  Jan Hubicka  <jh@suse.cz>
13957
13958         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
13959         * common.opt (flag_inline_functions_called_once): Do not
13960         initialize to 1.
13961
13962 2011-06-10  Jan Hubicka  <jh@suse.cz>
13963
13964         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
13965         (ipcp_initialize_node_lattices): Do not deal with aliases;
13966         Do not try to propagate through thunks.
13967         (ipcp_change_tops_to_bottom): Do not deal with aliases.
13968
13969 2011-06-10  Jan Hubicka  <jh@suse.cz>
13970
13971         * ipa-prop.c (ipa_write_node_info): Stream jump functions
13972         for indirect calls.
13973         (ipa_read_node_info): Likewise.
13974
13975 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13976
13977         PR lto/49302
13978         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
13979         (build_and_insert_call): Likewise.
13980         (build_and_insert_ref): New.
13981         (gimple_expand_builtin_pow): Minor cleanup.
13982         (gimple_expand_builtin_cabs): New.
13983         (execute_cse_sincos): Add case for BUILT_IN_CABS.
13984
13985 2011-06-10  Jan Hubicka  <jh@suse.cz>
13986
13987         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
13988         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
13989         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
13990         (ipcp_propagate_stage): Skip aliases when propagating.
13991         (ipcp_need_redirect_p): Skip aliases.
13992         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
13993         collect_callers_of_node.
13994         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
13995         for aliases.
13996         (ipa_compute_jump_functions): Look through aliases.
13997
13998 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13999
14000         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
14001
14002 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
14003
14004         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
14005         Adjust comments.
14006         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
14007
14008 2011-06-10  Jan Hubicka  <jh@suse.cz>
14009
14010         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
14011         Update call of gimple_get_virt_method_for_binfo.
14012         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
14013         refuse_thunks parameter.
14014         (gimple_fold_call): Update.
14015         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
14016
14017 2011-06-10  Jan Hubicka  <jh@suse.cz>
14018
14019         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
14020         (not_all_callers_have_enough_arguments_p): ... this one; turn into
14021         worker for cgraph_for_node_and_aliases.
14022         (convert_callers_for_node): Break out from ...
14023         (convert_callers): ... here.
14024         (modify_function): Use collect_callers_of_node.
14025         (ipa_early_sra): Use cgraph_for_node_and_aliases.
14026
14027 2011-06-10  Richard Guenther  <rguenther@suse.de>
14028
14029         PR tree-optimization/49361
14030         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
14031         when not already in gimple form.
14032
14033 2011-06-10  Richard Guenther  <rguenther@suse.de>
14034
14035         PR bootstrap/49344
14036         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
14037         FOR_EACH_PHI_OR_STMT_USE.
14038
14039 2011-06-10  Jan Hubicka  <jh@suse.cz>
14040
14041         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
14042         (clone_inlined_nodes): ... here.
14043         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
14044         to real destination prior inlining.
14045         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
14046         can_early_inline_edge_p, want_early_inline_function_p,
14047         want_early_inline_function_p, want_inline_small_function_p,
14048         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
14049         edge_badness, update_all_callee_keys, lookup_recursive_calls,
14050         add_new_edges_to_heap, inline_small_functions, flatten_function,
14051         inline_always_inline_functions, early_inline_small_functions): Use
14052         cgraph_function_or_thunk_node.
14053         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
14054         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
14055         (do_estimate_edge_growth_1): Break out from ...
14056         (do_estimate_growth) ... here; walk aliases.
14057         (inline_generate_summary): Skip aliases.
14058
14059 2011-06-10  Richard Guenther  <rguenther@suse.de>
14060
14061         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
14062         forward when combining, visit inserted stmts when a stmt was changed.
14063
14064 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
14065
14066         * tree.h (error_operand_p): Add.
14067         * dbxout.c (dbxout_type_fields): Use the latter.
14068         * c-decl.c (add_stmt): Likewise.
14069         * gimplify.c (omp_add_variable, omp_notice_variable,
14070         gimplify_scan_omp_clauses): Likewise.
14071
14072 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
14073
14074         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
14075         when a value is actually passed in regs.
14076
14077 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
14078             Laurent Rougé  <laurent.rouge@menta.fr>
14079
14080         * doc/invoke.texi (SPARC options): Add -mflat.
14081         * config/sparc/sparc.opt: Likewise.
14082         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
14083         (sparc_flat_expand_prologue): Declare.
14084         (sparc_flat_expand_epilogue): Likewise.
14085         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
14086         (CPP_ENDIAN_SPEC): Replace with...
14087         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
14088         (CPP_SPEC): Adjust to above change.
14089         (EXTRA_SPECS): Likewise.
14090         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
14091         (INCOMING_REGNO): Likewise.
14092         (OUTGOING_REGNO): Likewise.
14093         (LOCAL_REGNO): Likewise.
14094         (SETUP_FRAME_ADDRESSES): Likewise.
14095         (FIXED_REGISTERS): Set 0 for %fp.
14096         (CALL_USED_REGISTERS): Likewise.
14097         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
14098         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
14099         (RETURN_ADDR_REGNUM): Define.
14100         (RETURN_ADDR_RTX): Use it.
14101         (INCOMING_RETURN_ADDR_REGNUM): Define.
14102         (INCOMING_RETURN_ADDR_RTX): Use it.
14103         (DWARF_FRAME_RETURN_COLUMN): Likewise.
14104         (EH_RETURN_REGNUM): Define.
14105         (EH_RETURN_STACKADJ_RTX): Use it.
14106         (EH_RETURN_HANDLER_RTX): Delete.
14107         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
14108         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
14109         Delete.
14110         (struct machine_function): Add frame_size, apparent_frame_size,
14111         frame_base_reg, frame_base_offset, n_global_fp_regs and
14112         save_local_in_regs_p fields.
14113         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
14114         sparc_frame_base_offset, sparc_n_global_fp_regs,
14115         sparc_save_local_in_regs_p): New macros.
14116         (sparc_option_override): Error out if -fcall-saved-REG is specified
14117         for Out registers.
14118         (eligible_for_restore_insn): Fix formatting.
14119         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
14120         (eligible_for_sibcall_delay): Likewise.
14121         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
14122         (sparc_legitimate_address_p): Adjust to above change.
14123         (save_global_or_fp_reg_p): New predicate.
14124         (return_addr_reg_needed_p): Likewise.
14125         (save_local_or_in_reg_p): Likewise.
14126         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
14127         (SORR_SAVE, SORR_RESTORE): Delete.
14128         (sorr_pred_t): New typedef.
14129         (sorr_act_t): New enum.
14130         (save_or_restore_regs): Rename to...
14131         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
14132         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
14133         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
14134         mechanism.  Add CFI information for double-word saves in 32-bit mode.
14135         (emit_adjust_base_to_offset): New function extracted from...
14136         (emit_save_or_restore_regs): ...this.  Rename the rest to...
14137         (emit_save_or_restore_regs_global_fp_regs): ...this.
14138         (emit_save_or_restore_regs_local_in_regs): New function.
14139         (gen_create_flat_frame_[123]): New functions.
14140         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
14141         (sparc_flat_expand_prologue): New function.
14142         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
14143         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
14144         (sparc_flat_expand_epilogue): New function.
14145         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
14146         (output_return): Likewise.
14147         (output_sibcall): Likewise.
14148         (sparc_output_mi_thunk): Likewise.
14149         (sparc_frame_pointer_required): Likewise.
14150         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
14151         function optimization.
14152         * config/sparc/sparc.md (flat): New attribute.
14153         (prologue): Add TARGET_FLAT handling.
14154         (save_register_window): Disable if TARGET_FLAT.
14155         (create_flat_frame_[123]): New patterns.
14156         (epilogue): Add TARGET_FLAT handling.
14157         (sibcall_epilogue): Likewise.
14158         (eh_return): New expander.
14159         (eh_return_internal): New insn and splitter.
14160         (return_internal): Add TARGET_FLAT handling.
14161         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
14162         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
14163         (nonlocal_goto): Add TARGET_FLAT handling.
14164         * config/sparc/t-elf: Add -mflat multilib.
14165         * config/sparc/t-leon: Likewise.
14166
14167 2011-06-10  Jan Hubicka  <jh@suse.cz>
14168
14169         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
14170         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
14171         (self_recursive_p): Use cgraph_function_node.
14172         (propagate_pure_const): Likewise.
14173         (propagate_nothrow): Likewise.
14174         * ipa-reference.c (ipa_reference_get_not_read_global): Use
14175         cgraph_function_node.
14176         (propagate_bits): Likewise.
14177         (propagate): Likewise.
14178
14179 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14180             Richard Earnshaw  <rearnsha@arm.com>
14181
14182         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
14183         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
14184         (*thumb2_movdi_vfp): Delete.
14185         (*arm_movdi_vfp_cortexa8): Delete.
14186         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
14187         (*movdi_vfp_cortexa8): Likewise.
14188
14189 2011-06-10  Richard Guenther  <rguenther@suse.de>
14190
14191         * stor-layout.c (initialize_sizetypes): Give names to all
14192         sizetype kinds.
14193
14194 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
14195
14196         PR tree-optimization/49318
14197         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
14198         irrelevant pattern statements.
14199
14200 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
14201
14202         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
14203
14204         PR bootstrap/49354
14205         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
14206         to last assignment.
14207
14208 2011-06-09  Jan Hubicka  <jh@suse.cz>
14209
14210         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
14211         do not recompute reachable flag.
14212         (cgraph_finalize_function, cgraph_analyze_functions): Set
14213         redefined_extern_inline here.
14214
14215 2011-06-09  Jan Hubicka  <jh@suse.cz>
14216
14217         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
14218         (cgraph_only_called_directly_p): ... this one; bring offline.
14219         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
14220         varpool_used_from_object_file_p): Drop names from the declaratoin.
14221         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
14222         collect_callers_of_node): New.
14223         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
14224         (cgraph_edge_recursive_p): Use cgraph_function_node.
14225         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
14226         (cgraph_node_cannot_be_local_p_1): Break out from ...
14227         (cgraph_node_can_be_local_p): ... here; walk aliases.
14228         (cgraph_for_node_thunks_and_aliases): New function.
14229         (cgraph_for_node_and_aliases): New function.
14230         (cgraph_make_node_local_1): Break out from ...
14231         (cgraph_make_node_local) ... here; use
14232         cgraph_for_node_thunks_and_aliases.
14233         (cgraph_set_nothrow_flag_1): Break out from ...
14234         (cgraph_set_nothrow_flag) ... here;
14235         use cgraph_for_node_thunks_and_aliases.
14236         (cgraph_set_const_flag_1): Break out from ...
14237         (cgraph_set_const_flag) ... here;
14238         use cgraph_for_node_thunks_and_aliases.
14239         (cgraph_set_pure_flag_1): Break out from ...
14240         (cgraph_set_pure_flag) ... here;
14241         use cgraph_for_node_thunks_and_aliases.
14242         (cgraph_propagate_frequency_1): Break out from ...
14243         (cgraph_propagate_frequency) ... here; use
14244         cgraph_for_node_thunks_and_aliases.
14245         (cgraph_used_from_object_file_p): Do not care about aliases.
14246         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
14247         New functions.
14248         (collect_callers_of_node_1, collect_callers_of_node): New functions.
14249
14250 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
14251
14252         PR rtl-optimization/49154
14253         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
14254         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
14255         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
14256         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
14257         * config/cris/cris.h (cris_register_move_cost): Remove
14258         !TARGET_V32 code.  Tweak comments.
14259
14260 2011-06-09  Jan Hubicka  <jh@suse.cz>
14261
14262         * cgraphbuild.c (record_eh_tables): Mark personality function as having
14263         address taken.
14264
14265 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
14266
14267         PR rtl-optimization/49154
14268         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
14269         is a matching slot in the hashtable, assign it to classes_ptr.
14270
14271         PR rtl-optimization/49154
14272         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
14273         register classes.
14274         * doc/tm.texi: Regenerate.
14275
14276 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
14277
14278         PR target/49307
14279         * config/sh/sh.md (UNSPEC_CHKADD): New.
14280         (chk_guard_add): New define_insn_and_split.
14281         (symGOT_load): Use chk_guard_add instead of blockage.
14282
14283 2011-06-09  Kai Tietz  <ktietz@redhat.com>
14284
14285         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
14286
14287 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
14288
14289         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
14290
14291 2011-06-09  Wei Guozhi  <carrot@google.com>
14292
14293         PR target/46975
14294         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
14295         (peephole2 for conditional move): Generate 16 bit instructions.
14296
14297 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
14298
14299         * config/i386/i386.md (*movdi_internal_rex64): Merge
14300         alternatives 6 and 8.
14301
14302 2011-06-09  David Li  <davidxl@google.com>
14303
14304         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
14305         * passes.c (passr_eq): New function.
14306         (create_pass_tab): New function.
14307         (pass_traverse): New function.
14308         (dump_one_pass): New function.
14309         (dump_pass_list): New function.
14310         (dump_passes): New function.
14311
14312 2011-06-09  David Li  <davidxl@google.com>
14313
14314         * tree-complex.c (tree_lower_complex): Gate cleanup.
14315         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
14316         (execute_optimize_stdarg): Ditto.
14317         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
14318         (execute_cleanup_eh_1): Ditto.
14319         (execute_cleanup_eh): Ditto.
14320         * gcse.c (gate_rtl_pre): Ditto.
14321         (execute_rtl_pre): Ditto.
14322         * except.c (finish_eh_generation): Ditto.
14323         (convert_to_eh_region_ranges): Ditto.
14324         * cprop.c (one_cprop_pass): Ditto.
14325
14326 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
14327
14328         PR target/48673
14329         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
14330         in all basic blocks.
14331
14332 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14333
14334         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
14335         (HAVE_ENABLE_EXECUTE_STACK): Define.
14336         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
14337         (HAVE_ENABLE_EXECUTE_STACK): Define.
14338         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
14339         (HAVE_ENABLE_EXECUTE_STACK): Define.
14340         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
14341         (ENABLE_EXECUTE_STACK): Remove.
14342         (HAVE_ENABLE_EXECUTE_STACK): Define.
14343         [IN_LIBGCC2]: Don't include <windows.h>.
14344         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
14345         (HAVE_ENABLE_EXECUTE_STACK): Define.
14346         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
14347         (HAVE_ENABLE_EXECUTE_STACK): Define.
14348         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
14349         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
14350         (HAVE_ENABLE_EXECUTE_STACK): Define.
14351         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
14352         (HAVE_ENABLE_EXECUTE_STACK): Define.
14353         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
14354         (HAVE_ENABLE_EXECUTE_STACK): Define.
14355         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
14356         (HAVE_ENABLE_EXECUTE_STACK): Define.
14357         * config/alpha/alpha.c (alpha_trampoline_init): Test
14358         HAVE_ENABLE_EXECUTE_STACK.
14359         * config/i386/i386.c (ix86_trampoline_init): Likewise.
14360         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
14361         (sparc64_initialize_trampoline): Likewise.
14362         * libgcc2.c [L_enable_execute_stack]: Remove.
14363         * system.h (ENABLE_EXECUTE_STACK): Poison.
14364         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
14365         * doc/tm.texi: Regenerate.
14366         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
14367
14368 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
14369
14370         PR middle-end/49308
14371         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
14372         variable.  After resetting and rescanning insn continue with previous
14373         statement.
14374
14375 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14376
14377         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
14378         (gcc_cv_ld_hidden): Likewise.
14379         * configure: Regenerate.
14380         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
14381         (ix86_stack_protect_fail): Mark unused.
14382         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
14383         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
14384         [TARGET_MACHO]: Don't define.
14385         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
14386         (TARGET_STACK_PROTECT_FAIL): Likewise.
14387         (rs6000_stack_protect_fail): Mark unused.
14388         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
14389         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
14390
14391 2011-06-08  Andi Kleen  <ak@linux.intel.com>
14392
14393         * varasm.c (get_section): Print location of other conflict
14394         for section conflicts.
14395
14396 2011-06-08  Andi Kleen  <ak@linux.intel.com>
14397
14398         * config/i386/driver-i386.c (host_detect_local_cpu):
14399         Add model 0x2d Intel CPU.
14400
14401 2011-06-08  Andi Kleen  <ak@linux.intel.com>
14402
14403         * reginfo.c (global_regs_decl): Add.
14404         (globalize_reg): Add decl parameter. Compute location.  Pass location
14405         to warnings and add inform. Store decl in global_regs_decl.
14406         * rtl.h (globalize_reg): Update prototype.
14407         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
14408
14409 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
14410
14411         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
14412
14413 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
14414
14415         PR target/49305
14416         * config/sh/predicates.md (general_movsrc_operand): Check
14417         mode for memory with indexed address for QI and HImode.
14418         (general_movdst_operand): Likewise.
14419
14420 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
14421
14422         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
14423
14424 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
14425
14426         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
14427         (num_ssa_operands): Likewise.
14428         (op_iter_init_phiuse): Forward-declare.
14429         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
14430
14431 2011-06-08  Nick Clifton  <nickc@redhat.com>
14432
14433         * doc/invoke.texi (ARM Options): Update description of
14434         -mthumb-interwork.
14435
14436 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
14437
14438         * config/i386/driver-i386.c (host_detect_local_cpu): Support
14439         unknown Intel family 0x6 CPUs.
14440
14441 2011-06-08  Martin Jambor  <mjambor@suse.cz>
14442
14443         * tree-sra.c (mark_rw_status): Removed.
14444         (analyze_access_subtree): New parameter parent instead of
14445         mark_read and mark_write, propagate from that.
14446
14447 2011-06-08  Julian Brown  <julian@codesourcery.com>
14448
14449         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
14450         for double-precision helper functions in hard-float mode if only
14451         single-precision arithmetic is supported in hardware.
14452
14453 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
14454
14455         PR rtl-optimization/49303
14456         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
14457         code_motion_path_driver returned 0 or 1.
14458         (sel_region_finish): Clear h_d_i_d.
14459
14460 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
14461
14462         * config/sh/sh.c (prepare_move_operands): Set pic register
14463         appropriately for global and local dynamic tls models even
14464         if flag_pic is unset.
14465
14466 2011-06-07  Jason Merrill  <jason@redhat.com>
14467
14468         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
14469
14470 2011-06-07  Xinliang David Li  <davidxl@google.com>
14471         * passes.c (enable_disable_pass): Handle assembler name.
14472         (is_pass_explicitly_enabled_or_disabled): Ditto.
14473
14474 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14475
14476         PR tree-optimization/48497
14477         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
14478
14479 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14480
14481         PR tree-optimization/46728
14482         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
14483         to use gimple_val_nonnegative_real_p.
14484         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
14485         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
14486
14487 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
14488
14489         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
14490
14491 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
14492
14493         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
14494         constant vectors.
14495
14496 2011-06-07  Richard Guenther  <rguenther@suse.de>
14497
14498         * stor-layout.c (initialize_sizetypes): Initialize all
14499         sizetypes based on target definitions.
14500         (set_sizetype): Remove.
14501         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
14502         * tree.h (set_sizetype): Remove.
14503
14504 2011-06-07  Nick Clifton  <nickc@redhat.com>
14505
14506         * config.gcc: Unify V850 architecture options and add support for
14507         newer V850 architectures.
14508         * config/v850/t-v850e: Delete.
14509
14510 2011-06-07  Richard Guenther  <rguenther@suse.de>
14511
14512         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
14513         Call set_sizetype from here.
14514
14515 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
14516
14517         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
14518         (*maddhisi4tb, *maddhisi4tt): New define_insns.
14519
14520 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
14521             Andrew Stubbs  <ams@codesourcery.com>
14522
14523         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
14524         multiplies.
14525         * doc/md.texi (Canonicalization of Instructions): Document widening
14526         multiply canonicalization.
14527
14528 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
14529
14530         PR gcov-profile/49299
14531         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
14532
14533 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
14534
14535         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
14536         a pointer.
14537         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
14538         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
14539         vect_recog_pow_pattern): Likewise.
14540         (vect_pattern_recog_1): Remove declaration.
14541         (widened_name_p): Remove declaration.  Add new argument to specify
14542         whether to check that both types are either signed or unsigned.
14543         (vect_recog_widen_mult_pattern): Update documentation.  Handle
14544         unsigned patterns and multiplication by constants.
14545         (vect_pattern_recog_1): Update vect_recog_func references.  Use
14546         statement information from the statement returned from pattern
14547         detection functions.
14548         (vect_pattern_recog): Update vect_recog_func reference.
14549         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
14550         multiplication by a constant use the type of the other operand.
14551
14552 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
14553
14554         PR rtl-optimization/49145
14555         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
14556
14557 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
14558
14559         PR debug/49262
14560         * dwarf2out.c (native_encode_initializer): Decrement count in each
14561         iteration.
14562
14563         PR debug/49294
14564         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
14565         non-MODE_INT modes.
14566
14567         PR c++/49264
14568         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
14569         if stmt folded into nothing.
14570         * tree-inline.c (fold_marked_statements): If a builtin at the end of
14571         a bb folded into nothing, just update cgraph edges and move to next bb.
14572         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
14573         to be NULL.  Don't compute count and frequency if new_call is NULL.
14574
14575 2011-06-04  Diego Novillo  <dnovillo@google.com>
14576
14577         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
14578         (cgraph.o): Likewise.
14579         (cgraphunit.o): Likewise.
14580         * cgraphunit.c: Include lto-streamer.h
14581         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
14582         if LTO is enabled.
14583         * lto-streamer-in.c (unpack_value_fields): Call
14584         streamer_hooks.unpack_value_fields if set.
14585         (lto_materialize_tree): For unhandled nodes, first try to
14586         call lto_streamer_hooks.alloc_tree, if it exists.
14587         (lto_input_ts_decl_common_tree_pointers): Move reading of
14588         DECL_INITIAL to lto_streamer_read_tree.
14589         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
14590         (lto_streamer_read_tree): New.
14591         (lto_reader_init): Rename from lto_init_reader.
14592         Move initialization code to lto/lto.c.
14593         * lto-streamer-out.c (pack_value_fields): Call
14594         streamer_hooks.pack_value_fields if set.
14595         (lto_output_tree_ref): For tree nodes that are not normally indexable,
14596         call streamer_hooks.indexable_with_decls_p before giving up.
14597         (lto_output_ts_decl_common_tree_pointers): Move handling
14598         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
14599         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
14600         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
14601         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
14602         (lto_streamer_write_tree): New.
14603         (lto_output): Call lto_streamer_init directly.
14604         (lto_writer_init): Remove.
14605         * lto-streamer.c (streamer_hooks): New.
14606         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
14607         instead of lto_preload_common_nodes.
14608         (lto_is_streamable): Move from lto-streamer.h
14609         (lto_streamer_hooks_init): New.
14610         (streamer_hooks): New.
14611         (streamer_hooks_init): New.
14612         * lto-streamer.h (struct output_block): Forward declare.
14613         (struct lto_input_block): Likewise.
14614         (struct data_in): Likewise.
14615         (struct bitpack_d): Likewise.
14616         (struct streamer_hooks): Declare.
14617         (streamer_hooks): Declare.
14618         (lto_streamer_hooks_init): Declare.
14619         (lto_streamer_write_tree): Declare.
14620         (lto_streamer_read_tree): Declare.
14621         (streamer_hooks_init): Declare.
14622         (lto_is_streamable): Move to lto-streamer.c
14623
14624 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14625
14626         * longlong.h (smul_ppmm): The resulting register pair contains the
14627         higher order word first.
14628
14629 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14630
14631         PR tree-optimization/46728
14632         * builtins.c (powi_table): Remove.
14633         (powi_lookup_cost): Remove.
14634         (powi_cost): Remove.
14635         (expand_powi_1): Remove.
14636         (expand_powi): Remove.
14637         (expand_builtin_pow_root): Remove.
14638         (expand_builtin_pow): Remove.
14639         (expand_builtin_powi): Eliminate handling of constant exponent.
14640         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
14641
14642 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14643
14644         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
14645
14646 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14647
14648         * dce.c (reset_unmarked_insns_debug_uses): New.
14649         (delete_unmarked_insns): Skip debug insns.
14650         (prescan_insns_for_dce): Likewise.
14651         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
14652         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
14653         active reg can be found.
14654         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
14655         (convert_regs_1): Use it.
14656
14657 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14658
14659         * tree-pretty-print.c (dump_function_header): Add flags.
14660         Don't dump decl_uid with nouid.
14661         * tree-pretty-print.h (dump_function_header): Adjust.
14662         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
14663         * passes.c (pass_init_dump_file): Pass dump_flags on.
14664         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
14665
14666 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14667
14668         PR bootstrap/49270
14669         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
14670
14671 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
14672
14673         PR tree-optimization/49243
14674         * calls.c (setjmp_call_p): Also check if fndecl has the
14675         returns_twice attribute.
14676
14677 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14678
14679         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
14680         -ffast-math etc.
14681
14682 2011-06-06  Richard Henderson  <rth@redhat.com>
14683             Georg-Johann Lay  <avr@gjlay.de>
14684
14685         PR target/42210
14686         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
14687         New predicates.
14688         * config/avr/avr.md ("insv"): New insn expander.
14689         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
14690         "*insv.not.io", "*insv.reg"): New insns.
14691
14692 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
14693
14694         PR target/49285
14695         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
14696         to nonimmediate_operand from memory_operand for the operand that is to
14697         be forced to memory by the expander.  Lose the constraints.
14698
14699 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
14700
14701         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
14702         EH return when delayed branches are disabled.
14703
14704 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
14705
14706         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
14707         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
14708         calculation.
14709         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
14710         Simplify MODE_V1DF and MODE_V2SF handling.
14711         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
14712         Simplify MODE_SF handling.
14713
14714 2011-06-04  Jan Hubicka  <jh@suse.cz>
14715
14716         PR tree-optimization/48893
14717         PR tree-optimization/49091
14718         PR tree-optimization/49179
14719         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
14720         Bounds check.
14721
14722 2011-06-04  Jan Hubicka  <jh@suse.cz>
14723
14724         PR lto/48954
14725         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
14726         bitmaps.
14727
14728 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
14729
14730         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
14731
14732 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
14733
14734         PR target/49281
14735         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
14736         to be strictly smaller than 1 << shiftcount.
14737
14738 2011-06-04  Jan Hubicka  <jh@suse.cz>
14739
14740         PR tree-optimize/48929
14741         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
14742         of empty predicate.
14743
14744 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
14745
14746         PR debug/48333
14747         * calls.c (emit_call_1): Prefer the __builtin declaration of
14748         builtin functions.
14749
14750 2011-06-03   Diego Novillo  <dnovillo@google.com>
14751
14752         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
14753         (lto_input_tree_pointers): Likewise.
14754         * lto-streamer-out.c (pack_value_fields): Likewise.
14755         (lto_output_tree_pointers): Likewise.
14756         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
14757         and OPTIMIZATION_NODE.
14758
14759 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14760
14761         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
14762         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
14763         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
14764         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
14765         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
14766         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
14767         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
14768         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
14769         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
14770         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
14771         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
14772         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
14773         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
14774         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
14775         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
14776         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
14777         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
14778         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
14779         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
14780         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
14781         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
14782         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
14783         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
14784         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
14785         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
14786         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
14787         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
14788         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
14789         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
14790         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
14791         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
14792         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
14793         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
14794         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
14795         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
14796         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
14797         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
14798         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
14799         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
14800         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
14801         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
14802         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
14803         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
14804         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
14805         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
14806         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
14807         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
14808         * system.h (MD_UNWIND_SUPPORT): Poison.
14809         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
14810         * doc/tm.texi: Regenerate.
14811         * unwind-dw2.c: Include md-unwind-support.h instead of
14812         MD_UNWIND_SUPPORT.
14813         * config/ia64/unwind-ia64.c: Likewise.
14814         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
14815
14816 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
14817
14818         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
14819
14820 2011-06-03  Richard Henderson  <rth@redhat.com>
14821             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14822
14823         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
14824         (sigill_hdlr): Correct insn, insn size.
14825         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
14826
14827 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14828
14829         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
14830         t-slibgcc-dummy.
14831         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
14832         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
14833         * config/mips/t-iris: Remove.
14834         * config/mips/t-irix6: New file.
14835         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
14836
14837 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14838
14839         * Makefile.in (LIB2ADDEHDEP): Remove.
14840         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
14841         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
14842         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
14843         * config/t-darwin (LIB2ADDEHDEP): Remove.
14844         * config/t-freebsd (LIB2ADDEHDEP): Remove.
14845         * config/t-linux (LIB2ADDEHDEP): Remove.
14846
14847 2011-06-03  Diego Novillo  <dnovillo@google.com>
14848
14849         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
14850         (lto_register_var_decl_in_symtab): Likewise.
14851         (lto_register_function_decl_in_symtab): Likewise.
14852         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
14853         logic to uniquify_nodes.
14854
14855 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14856
14857         * config/alpha/t-osf5: Remove.
14858         * config/alpha/t-osf-pthread: Remove.
14859         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
14860         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
14861
14862 2011-06-03  Julian Brown  <julian@codesourcery.com>
14863
14864         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
14865         (strongarm1110): Use strongarm tuning.
14866         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
14867         * config/arm/arm.c (arm_strongarm_tune): New.
14868         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
14869         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
14870         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
14871         setting, using previous defaults or 1 for Cortex-A5.
14872         (arm_option_override): Set max_insns_skipped from current tuning.
14873
14874 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
14875
14876         * doc/install.texi (Options specification): Document --with-specs.
14877
14878 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14879
14880         * config/arm/neon.md (orndi3_neon): Actually split it.
14881
14882 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
14883
14884         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
14885         * var-tracking.c (reverse_op): Limite recurse depth to 5.
14886
14887 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
14888
14889         PR debug/47590
14890         * target.def (delay_sched2, delay_vartrack): New.
14891         * doc/tm.texi.in: Update.
14892         * doc/tm.texi: Rebuild.
14893         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
14894         * var-tracking.c (gate_handle_var_tracking): Likewise.
14895         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
14896         (bfin_flag_var_tracking): Drop.
14897         (output_file_start): Don't save and override flag_var_tracking.
14898         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
14899         (bfin_reorg): Test original variables.
14900         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14901         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
14902         (ia64_flag_var_tracking): Drop.
14903         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14904         (ia64_file_start): Don't save and override flag_var_tracking.
14905         (ia64_override_options_after_change): Ditto
14906         flag_schedule_insns_after_reload.
14907         (ia64_reorg): Test original variables.
14908         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
14909         (picochip_flag_var_tracking): Drop.
14910         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14911         (picochip_option_override): Don't save and override
14912         flag_schedule_insns_after_reload.
14913         (picochip_asm_file_start): Ditto flag_var_tracking.
14914         (picochip_reorg): Test original variables.
14915         * config/spu/spu.c (spu_flag_var_tracking): Drop.
14916         (TARGET_DELAY_VARTRACK): Define.
14917         (spu_var_tracking): New.
14918         (spu_machine_dependent_reorg): Call it.
14919         (asm_file_start): Don't save and override flag_var_tracking.
14920
14921 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
14922
14923         PR target/49163
14924         * config/sh/predicates.md (general_movsrc_operand): Return 0
14925         for memory and memory subreg of which address is an invalid
14926         indexed address for QI and HImode.
14927         (general_movdst_operand): Likewise.
14928
14929 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
14930
14931         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
14932         edges only, when there is a non-local label in the function.
14933         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
14934
14935 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
14936
14937         * config/i386/constraints.md (Y3): New register constraint.
14938         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
14939         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
14940         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
14941         *sse2_interleave_lowv2df.
14942
14943 2011-06-02  Julian Brown  <julian@codesourcery.com>
14944
14945         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
14946         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
14947         (arm_cortex_a5_tune): New.
14948
14949 2011-06-02  Julian Brown  <julian@codesourcery.com>
14950
14951         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
14952         * config/arm/arm.c (arm_default_branch_cost): New.
14953         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
14954         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
14955         (arm_fa726_tune): Set branch_cost field using
14956         arm_default_branch_cost.
14957         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
14958         current_tune structure.
14959         * dojump.c (tm_p.h): Include file.
14960
14961 2011-06-02  Julian Brown  <julian@codesourcery.com>
14962
14963         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
14964         tuning.
14965         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
14966         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
14967         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
14968         field.
14969         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
14970         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
14971         (arm_fa726te_tune): Add prefer_constant_pool setting.
14972         (arm_v6t2_tune, arm_cortex_tune): New.
14973         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
14974         prefer_constant_pool setting.
14975
14976 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
14977
14978         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
14979         switch statement.
14980         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
14981         (*movdf_internal) <case 6,7,8>: Ditto.
14982
14983         * config/i386/constraints.md (Y4): New register constraint.
14984         * config/i386/sse.md (vec_set<mode>_0): Merge with
14985         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
14986         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
14987         *vec_extractv2di_1_sse.
14988         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
14989         and *vec_concatv2di_rex64_sse.
14990
14991 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
14992
14993         PR target/48807
14994         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
14995         of cgraph_local_info for null before attempting to use it.
14996
14997 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
14998
14999         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
15000         (current_function_dynamic_alloc_count): Delete.
15001         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
15002         (expand_builtin_nonlocal_goto): Remove obsolete comment.
15003         (expand_builtin_update_setjmp_buf): Remove dead code.
15004         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
15005         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
15006         support.
15007         * function.c (instantiate_virtual_regs): Likewise.
15008         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
15009         for a block with a single abnormal incoming edge.
15010         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
15011         (SETJMP_VIA_SAVE_AREA): Delete.
15012         * config/sparc/sparc-protos.h (load_got_register): Declare.
15013         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
15014         (load_got_register): Make global.
15015         (sparc_frame_pointer_required): Add 'static'.
15016         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
15017         (sparc_builtin_setjmp_frame_value): New function.
15018         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
15019         (save_stack_nonlocal): New expander.
15020         (restore_stack_nonlocal): Likewise.
15021         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
15022         (nonlocal_goto_internal): New insn.
15023         (goto_handler_and_restore): Delete.
15024         (builtin_setjmp_setup): Likewise.
15025         (do_builtin_setjmp_setup): Likewise.
15026         (setjmp): Likewise.
15027         (builtin_setjmp_receiver): New expander.
15028
15029 2011-06-01  David Li  <davidxl@google.com>
15030
15031         PR middle-end/49261
15032         * tree-pretty-print.c (dump_function_header): Format cleanup.
15033
15034 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
15035
15036         PR target/49238
15037         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
15038         needed when original operands are used for msw_skip comparison.
15039
15040 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
15041
15042         PR debug/49250
15043         * var-tracking.c (add_uses, add_stores): Don't call
15044         cselib_subst_to_values on ENTRY_VALUE.
15045
15046 2011-06-01  Diego Novillo  <dnovillo@google.com>
15047
15048         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
15049         output_record_start with LTO_null instead of output_zero.
15050         (lto_output_ts_binfo_tree_pointers): Likewise.
15051         (lto_output_tree): Likewise.
15052         (output_eh_try_list): Likewise.
15053         (output_eh_region): Likewise.
15054         (output_eh_lp): Likewise.
15055         (output_eh_regions): Likewise.
15056         (output_bb): Likewise.
15057         (output_function): Likewise.
15058         (output_unreferenced_globals): Likewise.
15059         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
15060         instead of NUM_TREE_CODES.
15061         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
15062         (lto_output_int_in_range): Change << to >> when shifting VAL.
15063
15064 2011-06-01  Diego Novillo  <dnovillo@google.com>
15065
15066         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
15067         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
15068
15069 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
15070
15071         PR target/45074
15072         * optabs.h (valid_multiword_target_p): Declare.
15073         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
15074         doing multi-word operations.
15075         * optabs.c (expand_binop): Likewise.
15076         (expand_doubleword_bswap): Likewise.
15077         (expand_absneg_bit): Likewise.
15078         (expand_unop): Likewise.
15079         (expand_copysign_bit): Likewise.
15080         (multiword_target_p): New function.
15081
15082 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
15083
15084         PR rtl-optimization/48830
15085         PR rtl-optimization/48808
15086         PR rtl-optimization/48792
15087         * reload.c (push_reload): Check contains_reg_of_mode.
15088         * reload1.c (strip_paradoxical_subreg): New function.
15089         (gen_reload_chain_without_interm_reg_p): Use it to handle
15090         paradoxical subregs.
15091         (emit_output_reload_insns, gen_reload): Likewise.
15092
15093 2011-06-01  David Li  <davidxl@google.com>
15094
15095         * predict.c : Change pass name
15096         * ipa.c: Ditto.
15097         * dce.c: Ditto.
15098         * tree-profile.c: Ditto.
15099         * except.c: Ditto.
15100
15101 2011-06-01  David Li  <davidxl@google.com>
15102
15103         * tree-pretty-print.c (dump_function_header): New function.
15104         * final.c (rest_of_clean_state): Use header dumper.
15105         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
15106         * passes.c (pass_init_dump_file): Use header dumper.
15107
15108 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
15109
15110         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
15111         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
15112         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
15113         New functions.
15114         (mem_loc_descriptor): Use them.
15115
15116         * var-tracking.c (create_entry_value): New function.
15117         (vt_add_function_parameter): Use it.
15118
15119 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15120
15121         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
15122         Include <signal.h>, <ucontext.h>.
15123         (sigill_caught): Define.
15124         (sigill_hdlr): New function.
15125         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
15126         insns can be executed.
15127         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
15128         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
15129
15130 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15131
15132         * config/t-slibgcc-darwin: Move to ...
15133         * config/t-slibgcc-dummy: ... this.  Clarify comments.
15134         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
15135         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
15136         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
15137         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
15138         Remove i386/t-crtstuff from tmake_file.
15139         (i[34567]86-*-solaris2*): Remove t-svr4,
15140         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
15141         t-slibgcc-dummy.
15142         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
15143         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
15144         sparc/t-crtfm from tmake_file.
15145         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
15146         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
15147         Remove extra_parts.
15148         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
15149         * config/i386/t-nwld (SHLIB_LINK): Remove.
15150         * config/i386/t-rtems-i386: Rename to ...
15151         * config/i386/t-rtems: ... this.
15152         ($(T)crti.o, $(T)crtn.o): Remove.
15153         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
15154         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
15155         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
15156         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
15157         EXTRA_MULTILIB_PARTS): Remove.
15158         * config/sparc/t-sol2-64: Likewise.
15159         * config/sparc/t-sol2: Remove.
15160         * config/sparc/t-crtin: Remove.
15161         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
15162         * config/i386/gmon-sol2.c: Remove.
15163         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
15164         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
15165         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
15166         * config/i386/sol2-gc1.asm: Remove.
15167         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
15168         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
15169         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
15170         * config/t-slibgcc-sld: Remove.
15171
15172 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
15173
15174         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
15175         base_type_for_mode with op_mode instead of mode.
15176
15177 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
15178
15179         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
15180         Cortex-A15.
15181         * config/arm/arm-tune.md: Regenerate.
15182         * config/arm/arm-tables.opt: Regenerate.
15183         * config/arm/arm.c (FL_DIV): Rename...
15184         (FL_THUMB_DIV): ... to this.
15185         (FL_ARM_DIV): Define.
15186         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
15187         (arm_arch_hwdiv): Remove.
15188         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
15189         (arm_issue_rate): Add cortexr5.
15190         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
15191         __ARM_ARCH_EXT_IDIV__.
15192         (TARGET_IDIV): Define.
15193         (arm_arch_hwdiv): Remove.
15194         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
15195         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
15196         (divsi3, udivsi3): New patterns.
15197         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
15198         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
15199
15200 2011-06-01  Martin Jambor  <mjambor@suse.cz>
15201
15202         * ipa-utils.c (ipa_dfs_info): New field scc_no.
15203         * ipa-utils.c (searchc): Set scc_no.
15204
15205 2011-06-01  Martin Jambor  <mjambor@suse.cz>
15206
15207         * ipa-utils.c (searchc_env): New field allow_overwritable.
15208         (searchc): do not ignore edges to overwritable nodes if indicated
15209         by env->allow_overwritable.
15210         (ipa_reduced_postorder): Set env.allow_overwritable.
15211
15212 2011-06-01  Richard Guenther  <rguenther@suse.de>
15213
15214         * tree.c (free_lang_data): Do not reset boolean_type_node nor
15215         char_type_node.
15216         * lto-streamer.c (lto_record_common_node): Take node pointer,
15217         do not register types.
15218         (lto_preload_common_nodes): Explicitly skip preloading nodes
15219         that differ between frontends.
15220
15221 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
15222
15223         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
15224         NON_FLOAT_REGS.
15225
15226 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
15227
15228         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
15229         parameter value for dump. Dump cost on outermost call only.
15230         (rs6000_memory_move_cost): Dump cost on outermost call only.
15231
15232 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
15233
15234         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
15235         DW_OP_GNU_convert ops.
15236
15237         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
15238         cselib_preserve_constants.
15239         (cselib_lookup_1): If cselib_preserve_constants,
15240         a new VALUE is being created for REG and there is a VALUE for the
15241         same register in wider mode, add another loc with lowpart SUBREG of
15242         the wider VALUE.
15243         (cselib_subst_to_values): Handle ENTRY_VALUE.
15244         * var-tracking.c  (replace_expr_with_values): Return NULL for
15245         ENTRY_VALUE too.
15246         * dwarf2out.c (convert_descriptor_to_signed): New function.
15247         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
15248         instead of two shifts.
15249         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
15250         the right mode if needed.
15251         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
15252         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
15253         convert_descriptor_to_signed.
15254         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
15255         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
15256
15257         PR target/48688
15258         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
15259
15260 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
15261
15262         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
15263         of X87MODEI12 and SWI48x instead of SSEMODEI24.
15264         (SWI248x): New mode iterator, rename from X87MODEI.
15265         (X87MODEI): Remove mode iterator.
15266         (X87MODEI12): Ditto.
15267         (SSEMODEI24): Ditto.
15268
15269 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15270
15271         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
15272         * doc/invoke.texi: Document max-vartrack-expr-depth.
15273         * var-tracking.c (EXPR_DEPTH): New.
15274         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
15275
15276 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15277
15278         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
15279         * config/i386/sse.md: Add n to negated FMA pattern names.
15280
15281 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15282
15283         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
15284
15285 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15286
15287         * gengtype-state.c (read_state_params_structs): Initialize previous.
15288
15289 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
15290
15291         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
15292         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
15293
15294 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
15295
15296         * config/i386/i386.md (*movtf_internal): Avoid allocating general
15297         registers.  Penalize F*r->o alternative to prevent partial memory
15298         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
15299         CONST_DOUBLE immediates when optimizing function for size.  Do not move
15300         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
15301         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
15302         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
15303         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
15304         alternatives.
15305         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
15306
15307         (fp_register_operand splitters): Use fp_register_operand
15308         constraint.  Do not use FP_REG_P in insn condition.
15309         (any_fp_register_operand splitters): Use any_fp_register_operand
15310         constraint.  Do not use ANY_FP_REG_P in insn condition.
15311
15312 2011-05-31  Jan Hubicka  <jh@suse.cz>
15313
15314         * cgraph.h (cgraph_inline_failed_t): Give enum a name
15315         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
15316         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
15317         (lto_output_edge): Use output_enum and var_len_unsigned.
15318         (lto_output_varpool_node): Likewise.
15319         (input_overwrite_node): Do not take resolution parameter;
15320         extract it from a bitpack.
15321         (input_node): Do not read resolution; use input_enum and
15322         var_len_unsigned.
15323         (input_varpool_node): Likewise.
15324         (input_edge): Likewise.
15325         (input_cgraph_1): Likewise.
15326
15327 2011-05-31  Richard Guenther  <rguenther@suse.de>
15328
15329         * gimple.c (gimple_register_canonical_type): Do not register
15330         any types via gimple_register_type.
15331
15332 2011-05-31  Jan Hubicka  <jh@suse.cz>
15333
15334         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
15335         of thunks.
15336
15337 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
15338
15339         PR rtl-optimization/49235
15340         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
15341         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
15342
15343 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
15344
15345         PR tree-optimization/49093
15346         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
15347         data references.
15348
15349 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
15350
15351         PR debug/49047
15352         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
15353         for concrete functions containing the code of cloned functions.
15354
15355 2011-05-31  Richard Guenther  <rguenther@suse.de>
15356
15357         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
15358         to ...
15359         (forward_propagate_into_comparison_1): ... this.
15360         (forward_propagate_comparison): Rename to ...
15361         (forward_propagate_into_comparison): ... this.  Split out
15362         real forward propagation code to ...
15363         (forward_propagate_comparison): ... this.
15364         (forward_propagate_into_gimple_cond): Remove looping.
15365         (forward_propagate_into_cond): Likewise.
15366         (simplify_not_neg_expr): Return whether we have done something.
15367         (simplify_gimple_switch): Likewise.
15368         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
15369         (ssa_forward_propagate_and_combine): ... this.  Re-structure
15370         to do a forward forward-propagation walk on BBs and a backward
15371         stmt combining walk on BBs.  Consistently re-scan changed statements.
15372         (pass_forwprop): Adjust.
15373
15374 2011-05-30  Ian Lance Taylor  <iant@google.com>
15375
15376         * godump.c (go_format_type): Correct length of name added to
15377         obstack for anonymous field.
15378
15379 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
15380
15381         PR target/49186
15382         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
15383         part of the second operand is 0.
15384
15385 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
15386
15387         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
15388         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
15389         to memory for !TARGET_MEMORY_MISMATCH_STALL.
15390         (*movdf_internal_rex64): Do not penalize F->r alternative.
15391         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
15392         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
15393         when optimizing function for size.  Do not move CONST_DOUBLEs
15394         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
15395         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
15396         SUBREGs.  Do not check for MEM_P operands in the insn condition,
15397         check for ANY_FP_REGNO_P instead.
15398         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
15399         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
15400         function for speed.
15401         * config/i386/i386.c (ix86_option_override_internal): Do not
15402         set TARGET_INTEGER_DFMODE_MOVES here.
15403
15404 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
15405
15406         PR target/49168
15407         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
15408
15409 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
15410
15411         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
15412         DW_TAG_rvalue_reference_type even for
15413         -gdwarf-4 -fno-debug-types-section.
15414
15415 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15416
15417         PR tree-optimization/46728
15418         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
15419         (build_and_insert_binop): New.
15420         (gimple_expand_builtin_pow): Reorder args for
15421         build_and_insert_call; use build_and_insert_binop; add more
15422         optimizations for fractional exponents.
15423
15424 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
15425
15426         PR bootstrap/49190
15427
15428         Revert:
15429         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
15430
15431         * tree.h (struct tree_identifier): Inherit from tree_typed, not
15432         tree_common.
15433         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
15434         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
15435         TS_BASE instead of TS_COMMON.
15436         * varasm.c (assemble_name): Remove assert.
15437
15438 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
15439
15440         * config.gcc: Keep obselete list sorted.
15441
15442 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
15443             Eric Botcazou  <ebotcazou@adacore.com>
15444
15445         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
15446         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
15447         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
15448         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
15449         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
15450
15451 2011-05-30  Richard Guenther  <rguenther@suse.de>
15452
15453         * gimple.c (gimple_types_compatible_p_1): Compare record
15454         and union type members properly.
15455
15456 2011-05-30  Richard Guenther  <rguenther@suse.de>
15457
15458         PR tree-optimization/49210
15459         * ipa-split.c (split_function): Care for the case where the call
15460         result is not trivially convertible to the result holding variable.
15461
15462 2011-05-30  Richard Guenther  <rguenther@suse.de>
15463
15464         PR tree-optimization/49218
15465         * tree-vrp.c (adjust_range_with_scev): Properly check whether
15466         overflow occured.
15467
15468 2011-05-30  Richard Guenther  <rguenther@suse.de>
15469
15470         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
15471         New function split out from ...
15472         (forward_propagate_into_gimple_cond): ... here.  Adjust.
15473         (forward_propagate_into_cond): Likewise.
15474         (forward_propagate_comparison): Also propagate into
15475         comparisons on assignment RHS.  Change return value to
15476         behave similar to forward_propagate_into_cond.
15477         (tree_ssa_forward_propagate_single_use_vars): Handle
15478         strict-overflow warnings properly for forward_propagate_comparison.
15479
15480 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15481
15482         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
15483         from plugin linker.
15484         * configure: Regenerate.
15485
15486 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
15487
15488         PR tree-optimization/49199
15489         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
15490         non-reduction operands are either defined in the loop or by induction.
15491
15492 2011-05-29  Xinliang David Li  <davidxl@google.com>
15493
15494         * opts-global.c (handle_common_deferred_options): Handle new options.
15495         * passes.c (register_one_dump_file): Call register_pass_name.
15496         (execute_one_pass): Check explicit enable/disable flag.
15497         (passr_hash): New function.
15498         (passr_eq): Ditto.
15499         (register_pass_name): Ditto.
15500         (get_pass_by_name): Ditto.
15501         (pass_hash): Ditto.
15502         (pass_eq): Ditto.
15503         (enable_pass): Ditto.
15504         (disable_pass): Ditto.
15505         (is_pass_explicitly_enabled_or_disabled): Ditto.
15506
15507 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
15508
15509         * config/i386/i386.md (*movoi_internal_avx): Use
15510         standard_sse_constant_opcode for alternative 0.
15511         (*movti_internal_sse): Ditto.
15512         (*movti_internal_rex64): Use standard_sse_constant_opcode for
15513         alternative 2.
15514         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
15515         sselog1 type moves.
15516         (*movsi_internal): Ditto.
15517         (*movdi_internal): Ditto.  Add ssecvt type moves.
15518
15519 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
15520
15521         PR target/48830
15522         * rtlanal.c (simplify_subreg_regno): Adjust comment.
15523
15524 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
15525
15526         PR rtl-optimization/49095
15527         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
15528         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
15529
15530 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
15531
15532         PR target/43995
15533         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
15534         recurse_p argument.  Only follow register copies if it is set,
15535         and prevent mips_find_pic_call_symbol from recursing.
15536         (mips_find_pic_call_symbol): Add a recurse_p argument.
15537         Pass it to mips_pic_call_symbol_from_set.
15538         (mips_annotate_pic_calls): Update accordingly.
15539
15540 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
15541
15542         * emit-rtl.c (try_split): Use a loop to search for
15543         NOTE_INSN_CALL_ARG_LOCATIONs.
15544
15545 2011-05-29  Richard Guenther  <rguenther@suse.de>
15546
15547         PR tree-optimization/49217
15548         * ipa-pure-const.c (propagate_pure_const): Fix typos.
15549
15550 2011-05-28  Jan Hubicka  <jh@suse.cz>
15551
15552         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
15553         length.
15554         (string_slot_free): Remove
15555         (create_output_block): Initialize obstack.
15556         (destroy_output_block): Free obstack.
15557         (lto_string_index): Add PERSISTENT parameter; do not duplicate
15558         the string unless it needs to be added into the hash.
15559         (lto_output_string_with_length): Add persistent attribute;
15560         handle NULL strings.
15561         (lto_output_string): Add PERSISTENT parameter.
15562         (output_string_cst, output_identifier): Simplify.
15563         (lto_output_location_bitpack): Update.
15564         (lto_output_builtin_tree): Update.
15565         * lto-streamer.h (struct output_block): Add obstack.
15566         (lto_output_string, lto_output_string_with_length): Remove
15567         declarations; functions are static now.
15568
15569 2011-05-28  Jan Hubicka  <jh@suse.cz>
15570
15571         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
15572         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
15573         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
15574         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
15575         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
15576         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
15577         unpack_ts_decl_with_vis_value_fields,
15578         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
15579         lto_get_builtin_tree): Use enum and variable length i/o.
15580         * basic-block.h (profile_status_d): Add PROFILE_LAST.
15581         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
15582         New functions.
15583         (bp_pack_enum, bp_unpack_enum): New macros.
15584
15585 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
15586
15587         * genrecog.c: Remove redundant forward declarations.
15588
15589 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
15590
15591         * config.gcc: Deprecate mips*-*-openbsd*.
15592
15593 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
15594
15595         PR bootstrap/49195
15596         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
15597         for match_op_dup.
15598
15599 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
15600
15601         PR middle-end/48981
15602         * gengtype.c (vec_prefix_type): New function.
15603         (note_def_vec): Use vec_prefix_type and change the length
15604         attribute to be based on the prefix.
15605         * vec.c: Include coretypes.h before vec.h.
15606         (struct vec_prefix): Remove.
15607         (vec_gc_p_reserve): Change the offsetof to sizeof.
15608         (vec_gc_p_reserve_exact): Likewise.
15609         (vec_heap_p_reserve): Likewise.
15610         (vec_heap_p_reserve_exact): Likewise.
15611         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
15612         (vec_stack_p_reserve): Change the offsetof to sizeof.
15613         (vec_stack_p_reserve_exact): Likewise.
15614         * vec.h (struct vec_prefix): New struct definition.
15615         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
15616         (VEC_T_GTY(T,B)): Likewise.
15617         (DEF_VEC_FUNC_P(T)): Use prefix field.
15618         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
15619         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
15620
15621 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15622
15623         PR tree-optimization/46728
15624         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
15625         (powi_as_mults): Add gimple_set_location.
15626         (build_and_insert_call): New.
15627         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
15628         0.5, 0.25, 0.75, 1./3., or 1./6.
15629
15630 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
15631
15632         * doc/contrib.texi: Update copyright years.
15633         (Contributors): Add Zdenek Sojka.
15634
15635 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
15636
15637         * c-decl.c (c_push_function_context): Copy the current statement
15638         list stack.
15639         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
15640         (finish_struct): Call building_stmt_list_p instead of checking
15641         cur_stmt_list.
15642         * c-parser.c (c_parser_postfix_expression): Likewise.
15643         * c-typeck.c (c_end_compound_stmt): Likewise.
15644         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
15645         * tree-iterator.c (stmt_list_cache): Change to a VEC.
15646         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
15647         (free_stmt_list): Likewise.
15648         * tree.h (struct tree_statement_list): Include typed_tree instead
15649         of tree_common.
15650         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
15651         as TS_TYPED instead of TS_COMMON.
15652
15653 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15654             Uros Bizjak  <ubizjak@gmail.com>
15655
15656         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
15657         (HAVE_AS_IX86_TLSGDPTL): Define.
15658         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
15659         (HAVE_AS_IX86_TLSLDMPLT): Define.
15660         * configure: Regenerate.
15661         * config.in: Regenerate.
15662         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
15663         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
15664         TARGET_SUN_TLS, use @tlsgdplt or @plt.
15665         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
15666         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
15667         @tlsldmplt or @plt.
15668         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
15669
15670 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
15671
15672         * sched-int.h (struct _haifa_deps_insn_data): New members cond
15673         and reverse_cond.
15674         (INSN_COND, INSN_REVERSE_COND): New macros.
15675         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
15676         once.
15677         (sched_get_condition_with_rev): Cache the results, and look them up
15678         if possible.
15679         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
15680         are clobbered by the current insn.
15681         * target.def (exposed_pipline): New sched data hook.
15682         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
15683         * doc/tm.texi: Regenerate.
15684
15685 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15686
15687         PR tree-optimization/49170
15688         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
15689         sincos or cexp.
15690
15691 2011-05-27  Richard Guenther  <rguenther@suse.de>
15692
15693         PR middle-end/49189
15694         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
15695         of comparisons.
15696
15697 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
15698
15699         * haifa-sched.c (sched_scan_info): Remove.
15700         (schedule_block): Call sched_extend_luids rather than sched_init_luids
15701         with NULL args.
15702         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
15703         Remove functions.
15704         (sched_scan): Remove.
15705         (sched_extend_luids): Renamed from luids_extend_insn and no longer
15706         static.  All callers changed.
15707         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
15708         static.  All callers changed.
15709         (sched_init_luids): Remove all arguments except the first.  All
15710         callers changed.  Don't use sched_scan.
15711         (haifa_init_h_i_d): Likewise.
15712         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
15713         manually rather than using sched_init_luids.  Likewise with
15714         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
15715         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
15716         rather than sched_init_luids with NULL args.
15717         * sel-sched-ir.c (new_insns): Remove variable.
15718         (sched_scan): New static function, previously in haifa-sched.c.  Remove
15719         all arguments but the first two; all callers changed.
15720         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
15721         rather than sched_init_luids.
15722         (sel_init_bbs): Remove second argument.  All callers changed.
15723         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
15724         with NULL arguments.
15725         (create_insn_rtx_from_pattern): Likewise.
15726         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
15727         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
15728         (sched_init_insn_luid, sched_extend_luids): Declare.
15729         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
15730         declarations.
15731
15732 2011-05-27  Richard Guenther  <rguenther@suse.de>
15733
15734         PR middle-end/49177
15735         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
15736         A CMP B ? (T) true : (T) false for non-integral types T again.
15737
15738 2011-05-27  Jan Hubicka  <jh@suse.cz>
15739
15740         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
15741         so 0 means NULL string.
15742         (lto_output_string_with_length): ... here.
15743         (lto_output_string, output_string_cst, output_identifier): Update
15744         handling of NULL strings.
15745         (lto_output_location_bitpack): New function.
15746         (lto_output_location): Use it.
15747         (lto_output_tree_ref): Use output_record_start.
15748         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
15749         len values.
15750         * lto-streamer-in.c (string_for_index): Break out from ...; offset
15751         values by 1.
15752         (input_string_internal): ... here;
15753         (input_string_cst, input_identifier, lto_input_string): Update handling
15754         of NULL strings.
15755         (lto_input_location_bitpack): New function
15756         (lto_input_location): Use it.
15757         (unpack_ts_type_common_value_fields): Pack align & alias in var len
15758         values.
15759         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
15760         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
15761         (bp_pack_value): Sanity check the value range.
15762         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
15763         New functions.
15764         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
15765         New functions.
15766
15767 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
15768
15769         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
15770         call_arg_location instructions down the floor.
15771
15772 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
15773
15774         PR rtl-optimization/49154
15775         * ira.c (setup_pressure_classes): Process class without sublcasses
15776         as a candidate for pressure classes.
15777
15778 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
15779
15780         PR rtl-optimization/48575
15781         * genrecog.c (position_type): New enum.
15782         (position): New structure.
15783         (decision): Use position structure instead of a string.
15784         (root_pos, peep2_insn_pos_list): New variables.
15785         (next_position, compare_positions): New functions.
15786         (new_decision): Use position structures instead of strings.
15787         (maybe_both_true): Likewise.
15788         (change_state): Likewise.
15789         (write_tree): Likewise.
15790         (make_insn_sequence): Likewise.
15791
15792 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
15793
15794         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
15795         TS_BASE instead of TS_COMMON.
15796         (find_decls_types_r): Check for TS_TYPED structure before looking at
15797         TREE_TYPE.
15798         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
15799         Add chain field.
15800         (BLOCK_CHAIN): Use new chain field.
15801
15802 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
15803
15804         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
15805         moves expensive on Power7 also.
15806
15807 2011-05-26  Richard Guenther  <rguenther@suse.de>
15808
15809         * fold-const.c (fold_unary_loc): Remove bogus code.
15810
15811 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
15812
15813         * tree.h (struct tree_identifier): Inherit from tree_typed, not
15814         tree_common.
15815         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
15816         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
15817         TS_BASE instead of TS_COMMON.
15818         * varasm.c (assemble_name): Remove assert.
15819
15820 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
15821
15822         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
15823         substituted first.
15824         * libgcc-std.ver: Delete file.
15825
15826 2011-05-26  Richard Guenther  <rguenther@suse.de>
15827
15828         PR tree-optimization/48702
15829         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
15830         only when we know the base address is within bounds.
15831         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
15832         assume the base address of TARGET_MEM_REFs is in bounds.
15833
15834 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15835
15836         PR target/49099
15837         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
15838         declaration in TARGET_SOLARIS.
15839
15840 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
15841
15842         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
15843         The instruction is then expanded explicitly.
15844         (supported_compare): Callable instruction.
15845         (compare): Likewise.
15846
15847 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
15848
15849         PR c++/49165
15850         * gimplify.c (shortcut_cond_r): Don't special case
15851         COND_EXPRs if they have void type on one of their arms.
15852
15853 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
15854
15855         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
15856         to reduce duplication, and to achieve a slightly more logical order
15857         of operations.
15858
15859 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
15860
15861         PR tree-optimization/49161
15862         * tree-vrp.c (struct case_info): New type.
15863         (compare_case_labels): Sort case_info structs instead of
15864         trees, and not primarily by CASE_LABEL uids but by
15865         label_for_block indexes.
15866         (find_switch_asserts): Put case labels into struct case_info
15867         array instead of TREE_VEC, adjust sorting, compare label_for_block
15868         values instead of CASE_LABELs.
15869
15870 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15871
15872         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
15873         ("orndi3_neon"): Likewise.
15874         ("bic<mode>3_neon"): Likewise.
15875
15876 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
15877
15878         PR tree-optimization/49038
15879         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
15880         Ensure at least one epilogue iteration if required by data
15881         accesses with gaps.
15882         * tree-vectorizer.h (struct _loop_vec_info): Add new field
15883         to mark loops that require peeling for gaps.
15884         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
15885         (vect_get_known_peeling_cost): Take peeling for gaps into
15886         account.
15887         (vect_transform_loop): Generate epilogue if required by data
15888         access with gaps.
15889         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
15890         loop as requiring an epilogue if there are gaps in the end of
15891         the strided group.
15892
15893 2011-05-25  Ian Lance Taylor  <iant@google.com>
15894
15895         * godump.c (go_format_type): Output the first field with a usable
15896         Go type, if any.
15897
15898 2011-05-25  Ian Lance Taylor  <iant@google.com>
15899
15900         * godump.c (go_format_type): Check for invalid type names, pointer
15901         target types, and struct field types.
15902
15903 2011-05-25  Jason Merrill  <jason@redhat.com>
15904
15905         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
15906
15907 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
15908
15909         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
15910
15911 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15912
15913         * config/i386/i386.md (*movqi_extv_1)): Put back
15914         "register_operand" check in "type" calculation.
15915         (*movqi_extzv_2): Likewise.
15916
15917 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15918
15919         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
15920
15921 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
15922
15923         PR bootstrap/49160
15924         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
15925         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
15926         __divxc3, __divtc3): Wrap definitions in #ifndef.
15927
15928 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15929
15930         PR target/49142
15931         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
15932         "register_operand" check and replace q_regs_operand with
15933         QIreg_operand in "type" calculation.
15934         (*movqi_extv_1): Likewise.
15935         (*movqi_extzv_2_rex64): Likewise.
15936         (*movqi_extzv_2): Likewise.
15937
15938         * config/i386/predicates.md (QIreg_operand): New.
15939
15940 2011-05-25  Richard Guenther  <rguenther@suse.de>
15941
15942         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
15943         type-based offset disambiguation, streamline MEM_REF and
15944         TARGET_MEM_REF handling.
15945
15946 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15947
15948         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
15949         (bdesc_special_args): Add pause intrinsic.
15950
15951         * config/i386/i386.md (UNSPEC_PAUSE): New.
15952         (pause): Likewise.
15953         (*pause): Likewise.
15954         * config/i386/ia32intrin.h (__pause): Likewise.
15955
15956         * doc/extend.texi (X86 Built-in Functions): Add documentation for
15957         pause intrinsic.
15958
15959 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15960
15961         PR tree-optimization/46728
15962         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
15963         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
15964
15965 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
15966
15967         * tree.h (struct tree_exp): Inherit from struct tree_typed.
15968         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
15969         instead of TS_COMMON.
15970
15971 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
15972
15973         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
15974         LIBGCC2_GNU_PREFIX is defined.
15975         (__N): New macro.
15976         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
15977         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
15978         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
15979         __clz_tab): Define using __N.
15980         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
15981         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
15982         * target.def (libfunc_gnu_prefix): New hook.
15983         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
15984         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
15985         * doc/tm.texi: Regenerate.
15986         * system.h (LIBGCC2_GNU_PREFIX): Poison.
15987         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
15988         account.
15989         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
15990         (init_optabs): Likewise for the bswap libfuncs.
15991         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
15992         and divide.
15993         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
15994         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
15995         * libgcc-std.ver: Remove.
15996         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
15997         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
15998         libgcc-std.ver.
15999         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
16000         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
16001         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
16002         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
16003         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
16004         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
16005         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
16006         * config/fixed-bit.h (FIXED_OP): Define differently depending on
16007         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
16008         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
16009
16010 2011-05-25  Jan Hubicka  <jh@suse.cz>
16011
16012         * lto-streamer-out.c (output_record_start): Use lto_output_enum
16013         (lto_output_tree): Use output_record_start.
16014         * lto-streamer-in.c (input_record_start): Use lto_input_enum
16015         (lto_get_pickled_tree): Use input_record_start.
16016         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
16017         (lto_value_range_error): New function.
16018         * lto-streamer.h (lto_value_range_error): Declare.
16019         (lto_output_int_in_range, lto_input_int_in_range): New functions.
16020         (lto_output_enum, lto_input_enum): New macros.
16021
16022 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
16023
16024         * common.opt (flag_stack_usage_info): New variable.
16025         (-Wstack-usage): New option.
16026         * doc/invoke.texi (Warning options): Document -Wstack-usage.
16027         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
16028         <OPT_fstack_usage>: Likewise.
16029         * toplev.c (output_stack_usage): Handle -Wstack-usage.
16030         * calls.c (expand_call): Test flag_stack_usage_info variable instead
16031         of flag_stack_usage.
16032         (emit_library_call_value_1): Likewise.
16033         * explow.c (allocate_dynamic_stack_space): Likewise.
16034         * function.c (instantiate_virtual_regs ): Likewise.
16035         (prepare_function_start): Likewise.
16036         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
16037         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
16038         * config/arm/arm.c (arm_expand_prologue): Likewise.
16039         (thumb1_expand_prologue): Likewise.
16040         * config/avr/avr.c (expand_prologue): Likewise.
16041         * config/i386/i386.c (ix86_expand_prologue): Likewise.
16042         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
16043         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
16044         * config/mips/mips.c (mips_expand_prologue): Likewise.
16045         * config/pa/pa.c (hppa_expand_prologue): Likewise.
16046         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
16047         * config/s390/s390.c (s390_emit_prologue): Likewise.
16048         * config/sh/sh.c (sh_expand_prologue): Likewise.
16049         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
16050         * config/spu/spu.c (spu_expand_prologue): Likewise.
16051
16052 2011-05-25  Richard Guenther  <rguenther@suse.de>
16053
16054         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
16055         (gimple_canonical_types_compatible_p): Likewise.
16056
16057 2011-05-25  Jan Hubicka  <jh@suse.cz>
16058
16059         PR middle-end/49062
16060         * ipa.c (function_and_variable_visibility): Only add to same
16061         comdat group list if DECL_ONE_ONLY.
16062
16063 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
16064
16065         PR rtl-optimization/49014
16066         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
16067
16068 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
16069
16070         PR target/49128
16071         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
16072
16073 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
16074
16075         PR rtl-optimization/48757
16076         * ira-build.c (loop_with_eh_edge_p): Rename to
16077         loop_with_complex_edge_p, check edges on complexity, make function
16078         conditional.
16079         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
16080         conditional.
16081
16082 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
16083
16084         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
16085         force flag_ira_share_save_slots to 0.
16086
16087 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
16088
16089         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
16090         (vt_initialize): Set PROLOGUE_BB unconditionally.
16091         Add block comment about CFA_BASE_RTX machinery.
16092         Reset FP_CFA_OFFSET to -1 on all invalid paths.
16093         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
16094
16095 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
16096
16097         PR objc/48187
16098         * c-parser.c (c_parser_objc_class_instance_variables): More robust
16099         parsing of syntax error in ObjC instance variable lists.  In
16100         particular, avoid an infinite loop if there is a stray ']'.
16101         Updated error message.
16102
16103 2011-05-24  Ian Lance Taylor  <iant@google.com>
16104
16105         * godump.c (go_define): Don't accept a string immediately after
16106         another operand.
16107
16108 2011-05-24  Ian Lance Taylor  <iant@google.com>
16109
16110         * godump.c (struct godump_container): Add invalid_hash field.
16111         (go_format_type): Return false if type is found in invalid_hash.
16112         (go_output_typedef): Add invalid type to invalid_hash.
16113         (go_finish): Create and delete invalid_hash.
16114
16115 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16116
16117         PR tree-optimization/46728
16118         * tree-ssa-math-opts.c (powi_table): New.
16119         (powi_lookup_cost): New.
16120         (powi_cost): New.
16121         (powi_as_mults_1): New.
16122         (powi_as_mults): New.
16123         (gimple_expand_builtin_powi): New.
16124         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
16125         (gate_cse_sincos): Remove sincos/cexp restriction.
16126
16127 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16128
16129         PR target/3746
16130         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
16131         mips-tdump native.
16132         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
16133         * mips-tdump.c: Likewise.
16134
16135 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
16136
16137         PR target/49128
16138         * config/i386/driver-i386.c (host_detect_local_cpu): Always
16139         add -mno-XXX.  Handle FMA.
16140
16141 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
16142
16143         PR rtl-optimization/48633
16144         * ira-build.c (loop_with_eh_edge_p): New function.
16145         (mark_loops_for_removal): Use it.
16146
16147 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
16148
16149         PR rtl-optimization/48971
16150         * ira.c (setup_pressure_classes): Don't check register move cost
16151         for classes with one registers.  Don't add pressure class if there
16152         is a pressure class with the same available hard registers.
16153         Check contains_reg_of_mode.  Fix a typo in collecting
16154         temp_hard_regset.  Ignore hard registers not belonging to a class.
16155
16156 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
16157
16158         PR target/49133
16159         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
16160
16161 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
16162             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16163
16164         PR gcov-profile/48845
16165         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
16166
16167 2011-05-24  Richard Guenther  <rguenther@suse.de>
16168
16169         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
16170         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
16171         (gimple_types_compatible_p_1): Adjust.
16172         (iterative_hash_canonical_type): Do not bother about complete vs.
16173         incomplete types.
16174         (gimple_canonical_types_compatible_p): Likewise.
16175
16176 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16177
16178         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
16179
16180 2011-05-24  Richard Guenther  <rguenther@suse.de>
16181
16182         PR bootstrap/49078
16183         * gimple.c (gimple_register_canonical_type): Revert
16184         previous change.
16185         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
16186         does not for a tree for the case where it matters.  Cache
16187         pointer-type alias-sets.
16188
16189 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
16190
16191         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
16192         (OBJS): Remove options.o, opts-common.o and prefix.o.
16193         (OBJS-libcommon-target): New.
16194         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
16195         (BACKEND): Include libcommon-target.a.
16196         (MOSTLYCLEANFILES): Include libcommon-target.a.
16197         (libcommon-target.a): New.
16198         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
16199         prefix.o.
16200
16201 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
16202
16203         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
16204         parts of output shared with the driver.
16205         * optc-gen.awk: Don't generate parts of output not shared with the
16206         driver.
16207         * opth-gen.awk: Remove GCC_DRIVER conditionals.
16208         * doc/options.texi (SourcerInclude): Mention options-save.c.
16209         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
16210         (OBJS): Add options-save.o.
16211         (options-save.c, options-save.o): New.
16212         (options.o): Update dependencies.
16213         (gcc-options.o): Remove.
16214         (mostlyclean): Remove options-save.c.
16215
16216 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
16217
16218         PR debug/49032
16219         * dbxout.c: Include cgraph.h.
16220         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
16221         and without value expr, return NULL if no varpool node exists for
16222         it or if it is not needed.
16223         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
16224
16225         PR c/49120
16226         * c-decl.c (start_decl): Convert expr to void_type_node.
16227
16228 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
16229
16230         PR rtl-optimization/48826
16231         * emit-rtl.c (try_split): When splitting a call that is followed
16232         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
16233
16234 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
16235
16236         * cfgexpand.c (expand_debug_expr): For unused non-addressable
16237         parameters passed in memory prefer using DECL_INCOMING_RTL over
16238         the pseudos it will be copied into.
16239
16240 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
16241
16242         PR target/47315
16243         * config/i386/i386.c (ix86_option_override_internal): Save the
16244         initial options after checking vzeroupper.
16245
16246 2011-05-23  David Li  <davidxl@google.com>
16247
16248         PR tree-optimization/48988
16249         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
16250         Initialize has_valid_pred for each pred chain.
16251
16252 2011-05-23  Richard Guenther  <rguenther@suse.de>
16253
16254         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
16255         (iterative_hash_gimple_type): Always hash type names.
16256
16257 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
16258
16259         * c-typeck.c (build_function_call_vec): Tweak call to
16260         check_function_arguments.
16261
16262 2011-05-23  Richard Guenther  <rguenther@suse.de>
16263
16264         PR tree-optimization/49115
16265         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
16266         is not necessarily carried out, do not claim it kills the ref.
16267         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
16268
16269 2011-05-23  Richard Guenther  <rguenther@suse.de>
16270
16271         PR middle-end/15419
16272         * builtins.c (fold_builtin_memory_op): Be less restrictive about
16273         what pointer types we accept for folding.
16274
16275 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16276
16277         * gthr-gnat.c: Remove.
16278         * gthr-gnat.h: Remove.
16279         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
16280         * config/t-freebsd (LIB2ADDEH): Likewise.
16281         * config/t-linux (LIB2ADDEH): Likewise.
16282         * config/t-sol2 (LIB2ADDEH): Likewise.
16283         * config/ia64/t-vms (LIB2ADDEH): Likewise.
16284         * configure.ac (target_thread_file): Remove gnat handling.
16285         * configure: Regenerate.
16286         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
16287
16288 2011-05-23  Tristan Gingold  <gingold@adacore.com>
16289             Eric Botcazou  <ebotcazou@adacore.com>
16290
16291         * gcov.c (create_file_names): If no object directory is specified,
16292         keep the directory of the file.
16293
16294 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16295
16296         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
16297         * configure: Regenerate.
16298
16299 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
16300
16301         PR middle-end/48973
16302         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
16303         failed and the comparison has a single bit signed type, use
16304         constm1_rtx instead of const1_rtx for true value.
16305         (do_store_flag): If ops->type is single bit signed type, disable
16306         signel bit test optimization and pass -1 instead of 1 as last
16307         parameter to emit_store_flag_force.
16308
16309 2011-05-23  Tom de Vries  <tom@codesourcery.com>
16310
16311         PR target/45098
16312         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
16313         function.
16314         (infer_loop_bounds_from_undefined): Use new function.
16315
16316 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
16317
16318         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
16319         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
16320         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
16321         and -O0 otherwise.
16322         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
16323
16324 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
16325
16326         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
16327         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
16328         returns true.
16329
16330 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
16331
16332         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
16333
16334 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
16335
16336         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
16337         UNSPEC_MOVE_PIC pattern.
16338
16339 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
16340
16341         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
16342         (sparc-*-rtems*): Likewise.
16343         (sparc64-*-elf*): Likewise.
16344         (sparc64-*-rtems*): Likewise.
16345         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
16346         * config/sparc/t-crtin: New file.
16347         * config/sparc/t-sol2 (crti.o): Delete rule.
16348         (crtn.o): Likewise.
16349         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
16350         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
16351         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
16352         (ENDFILE_SPEC): Add crtn.o.
16353
16354 2011-05-22  Tom de Vries  <tom@codesourcery.com>
16355
16356         PR middle-end/48689
16357         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
16358         CODE_CONTAINS_STRUCT (TS_COMMON).
16359
16360 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
16361
16362         PR middle-end/49029
16363         * expmed.c (extract_fixed_bit_field): Test whether target can be used
16364         only after deciding which mode to use.
16365
16366 2011-05-22  Tom de Vries  <tom@codesourcery.com>
16367
16368         PR target/45098
16369         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
16370         for call to get_shiftadd_cost.
16371
16372 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
16373
16374         PR target/49104
16375         * config/i386/cpuid.h (bit_MMXEXT): New define.
16376
16377 2011-05-22  Nick Clifton  <nickc@redhat.com>
16378
16379         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
16380         initialisation of non-existant args[2] element.  Use args[] array
16381         not arg[] array to pass arguments to build_function_type_list.
16382
16383 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
16384
16385         PR tree-optimization/49087
16386         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
16387
16388 2011-05-21  Jason Merrill  <jason@redhat.com>
16389
16390         PR c++/49092
16391         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
16392         static storage duration.
16393
16394 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
16395
16396         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
16397         frame pointer.
16398
16399 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
16400
16401         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
16402         false if there are call-saved registers here...
16403         (sparc_can_use_return_insn_p): ...but here instead.
16404         (save_or_restore_regs): Fix thinko.
16405         (sparc_expand_prologue): Use current_function_is_leaf.
16406         (sparc_frame_pointer_required): Likewise.
16407
16408 2011-05-21  Nick Clifton  <nickc@redhat.com>
16409
16410         PR target/49098
16411         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
16412
16413 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
16414
16415         * gengtype.c (walk_type): Implemented "atomic" GTY option.
16416         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
16417
16418 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
16419
16420         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
16421         * optc-gen.awk: Move common code to opt-read.awk.
16422         * opth-gen.awk: Likewise.
16423         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
16424
16425 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
16426
16427         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
16428
16429 2011-05-20  Tom de Vries  <tom@codesourcery.com>
16430
16431         PR target/45098
16432         * tree-ssa-loop-ivopts.c: Include expmed.h.
16433         (get_shiftadd_cost): New function.
16434         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
16435
16436 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
16437
16438         PR bootstrap/49086
16439         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
16440         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
16441
16442 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
16443
16444         * Makefile.in: Update comment referring to $(OBJS-common).
16445
16446 2011-05-20  Ian Lance Taylor  <iant@google.com>
16447
16448         * godump.c (go_output_typedef): Put enum constants in the macro
16449         hash table to avoid duplicate Go const definitions.
16450
16451 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
16452
16453         * Makefile.in (LIBDEPS): Add libcommon.a.
16454         (LIBS): Likewise.
16455         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
16456         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
16457         pretty-print.o and version.o.
16458         (OBJS-libcommon): New.
16459         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
16460         (BACKEND): Add libcommon.a.
16461         (MOSTLYCLEANFILES): Likewise.
16462         (libcommon.a): New.
16463         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
16464         (cpp$(exeext)): Likewise.
16465         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
16466         pretty-print.o and input.o.
16467         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
16468         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
16469         (errors.o): Remove.
16470         (mips-tfile): Don't explicitly use version.o.
16471         (mips-tdump): Likewise.
16472         (gcov.o): Depend on $(DIAGNOSTIC_H).
16473         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
16474         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
16475         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
16476         * gcov-dump.c: Include intl.h and diagnostic.h.
16477         (main): Initialize diagnostics.
16478         * gcov.c: Include diagnostic.h.
16479         (fnotice): Remove.
16480         (main): Initialize diagnostics.
16481         * lto-wrapper.c: Include diagnostic.h.
16482         (main): Initialize diagnostics.
16483
16484 2011-05-20  Michael Matz  <matz@suse.de>
16485
16486         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
16487
16488 2011-05-20  Michael Matz  <matz@suse.de>
16489             Richard Guenther  <rguenther@suse.de>
16490
16491         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
16492         use lto_streamer_cache_append directly instead of returning a VEC.
16493         (preload_common_node): Remove.
16494         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
16495         track seen nodes.
16496         (lto_streamer_cache_create): Call lto_preload_common_nodes.
16497
16498 2011-05-20  Richard Guenther  <rguenther@suse.de>
16499
16500         PR tree-optimization/49079
16501         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
16502         MEM_REFs correctly for the trailing array access detection.
16503         Special case constants the same way as decls for overall size
16504         constraining.
16505
16506 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
16507
16508         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
16509         argument expansion.
16510
16511 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
16512
16513         PR tree-optimization/49073
16514         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
16515         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
16516         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
16517
16518 2011-05-20  Richard Guenther  <rguenther@suse.de>
16519
16520         PR middle-end/48849
16521         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
16522         of pointer types the same way the middle-end does.
16523
16524 2011-05-20  Richard Guenther  <rguenther@suse.de>
16525
16526         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
16527         or pointer-to chains.  Delay all fixup to uniquify_nodes.
16528
16529 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
16530
16531         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
16532         (fma4_fmaddsub): Likewise
16533
16534 2011-05-19  Jan Hubicka  <jh@suse.cz>
16535
16536         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
16537         (GIMPLE_TYPE_PAIR_SIZE): New macro.
16538         (type_pair_cache): New static var.
16539         (lookup_type_pair): Use fixed sized custom hash; make inline.
16540         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
16541         calls of lookup_type_pair.
16542         (print_gimple_types_stats): Remove cache stats.
16543         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
16544         and gtc_ob.
16545
16546 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
16547
16548         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
16549         when TARGET_RDRND is active.
16550         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
16551         Generate dummy SImode target register when target is NULL.
16552
16553 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
16554
16555         * config/arm/arm-fpus.def: New.
16556         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
16557         arm-fpus.def.
16558         * config/arm/arm-tables.opt: Regenerate.
16559         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
16560         (arm_option_override): Don't decode FPU name to string here.
16561         * config/arm/arm.opt (mfpu=): Use Enum.
16562         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
16563         Update dependencies.
16564
16565 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
16566
16567         * collect2.c: Include diagnostic.h.
16568         (fatal_perror, fatal, error, fancy_abort): Remove.
16569         (main): Set progname.  Call xmalloc_set_program_name and
16570         diagnostic_initialize.
16571         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
16572         scan_libraries, resolve_lib_name): Call fatal_error instead of
16573         fatal and fatal_perror.
16574         * collect2.h (error, fatal, fatal_perror): Don't declare.
16575         * tlink.c: Include diagnostic-core.h.
16576         (recompile_files): Call fatal_error instead of fatal_perror.
16577         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
16578         pretty-print.o and input.o.
16579         (collect2.o, tlink.o): Update dependencies.
16580
16581 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16582
16583         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
16584
16585 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16586
16587         PR target/40483
16588         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
16589         COMDAT group syntax, both SPARC and x86 variants.
16590         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
16591         * configure: Regenerate.
16592         * config/sol2.h (TARGET_SOLARIS): Define.
16593         (PUSHSECTION_FORMAT): Remove.
16594         (SECTION_NAME_FORMAT): Define.
16595         * config/sol2.c: Include hashtab.h.
16596         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
16597         expansion, using SECTION_NAME_FORMAT.
16598         (solaris_comdat_htab): New variable.
16599         (struct comdat_entry): Define.
16600         (comdat_hash): New function.
16601         (comdat_eq): New function.
16602         (solaris_elf_asm_comdat_section): New function.
16603         (solaris_define_comdat_signature): New function.
16604         (solaris_code_end): New function.
16605         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
16606         (solaris_code_end): Declare.
16607         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
16608         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
16609         solaris_code_end.
16610         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
16611         Remove ATTRIBUTE_UNUSED.
16612         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
16613         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
16614         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
16615         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
16616         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
16617         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
16618         (PUSHSECTION_FORMAT): Remove.
16619         (SECTION_NAME_FORMAT): Redefine.
16620
16621 2011-05-19  Kai Tietz  <ktietz@redhat.com>
16622
16623         * tree-cfg.c (verify_gimple_assign_binary): Barf on
16624         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
16625         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
16626
16627 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
16628             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16629
16630         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
16631
16632 2011-05-19  Richard Guenther  <rguenther@suse.de>
16633
16634         PR middle-end/48985
16635         * tree-object-size.c (addr_object_size): If the pointed-to
16636         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
16637
16638 2011-05-19  Richard Guenther  <rguenther@suse.de>
16639
16640         * gimple.c (gimple_types_compatible_p_1): Compare names of
16641         the types themselves.
16642         (iterative_hash_gimple_type): And hash them that way.
16643         (gimple_register_type_1): If we register a main variant properly
16644         initialize the leader to ourselves.
16645
16646 2011-05-19  Tom de Vries  <tom@codesourcery.com>
16647
16648         PR target/45098
16649         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
16650         get_loop_invariant_expr_id.
16651         (get_loop_invariant_expr_id): Use get_expr_id.
16652         (parm_decl_cost): New function.
16653         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
16654         Improve bound cost estimation.  Use different inv_expr_id for elim and
16655         express cases.
16656
16657 2011-05-19  Tom de Vries  <tom@codesourcery.com>
16658
16659         PR target/45098
16660         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
16661         cost_base.cost == 0.
16662
16663 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
16664
16665         PR target/49002
16666         * config/i386/sse.md
16667         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
16668         load cast.
16669
16670 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
16671
16672         PR tree-optimization/49039
16673         * tree-vrp.c (extract_range_from_binary_expr): For
16674         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
16675         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
16676
16677 2011-05-18  Tom de Vries  <tom@codesourcery.com>
16678
16679         PR target/45098
16680         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
16681
16682 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
16683
16684         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
16685         (*tls_global_dynamic_64): Ditto.
16686         (*tls_local_dynamic_base_32_gnu): Ditto.
16687         (*tls_local_dynamic_base_64): Ditto.
16688         (tls_initial_exec_64_sun): Ditto.
16689
16690 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
16691
16692         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
16693         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
16694         bf592-none.
16695         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
16696         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
16697         * config/bfin/bfin.c (bfin_cpus): Add bf592.
16698         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
16699         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
16700         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
16701         * config/bfin/elf.h (LIB_SPEC): Add bf592.
16702
16703 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
16704
16705         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
16706         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
16707         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
16708         target_thread_pointer, arm_structure_size_boundary, struct
16709         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
16710         struct abi_name, arm_all_abis): Remove.
16711         (arm_option_override) Don't process most enumerated option values here.
16712         Don't process target_fpe_name here.  Work with integer not string for
16713         structure size boundary; use separate diagnostics for each case.
16714         * config/arm/arm.h (enum float_abi_type, enum
16715         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
16716         to arm-opts.h.
16717         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
16718         arm_structure_size_boundary): Remove.
16719         * config/arm/arm.opt (mabi=): Use Enum and Init.
16720         (arm_abi_type): New Enum and EnumValue entries.
16721         (mfloat-abi=): Use Enum and Init.
16722         (float_abi_type): New Enum and EnumValue entries.
16723         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
16724         (mfp16-format=): Use Enum and Init.
16725         (arm_fp16_format_type): New Enum and EnumValue entries.
16726         (mstructure-size-boundary=): Use UInteger and Init.
16727         (mtp=): Use Enum and Init.
16728         (arm_tp_type): New Enum and EnumValue entries.
16729
16730 2011-05-18  Richard Guenther  <rguenther@suse.de>
16731
16732         PR tree-optimization/49018
16733         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
16734         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
16735         gimple_has_side_effects.
16736
16737 2011-05-18  Richard Guenther  <rguenther@suse.de>
16738
16739         * gimple.c (gimple_register_type_1): New function, split out from ...
16740         (gimple_register_type): ... here.  Avoid infinite recursion.
16741
16742 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
16743
16744         PR tree-optimization/41881
16745         * tree-vectorizer.h (struct _loop_vec_info): Add new field
16746         reduction_chains along with a macro for its access.
16747         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
16748         (destroy_loop_vec_info): Free reduction chains.
16749         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
16750         (vect_is_slp_reduction): New function.
16751         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
16752         (vect_create_epilog_for_reduction): Support SLP reduction chains.
16753         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
16754         definition types for reduction chains.
16755         (vect_supported_load_permutation_p): Don't allow permutations for
16756         reduction chains.
16757         (vect_analyze_slp_instance): Support reduction chains.
16758         (vect_analyze_slp): Try to build SLP instance from reduction chains.
16759         (vect_get_constant_vectors):  Handle reduction chains.
16760         (vect_schedule_slp_instance): Mark the first statement of the
16761         reduction chain as reduction.
16762
16763 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
16764
16765         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
16766         names for group elements access.
16767         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
16768         reduction chains as well.  Remove data reference and interleaving
16769         related words from the fields names.
16770         * tree-vect-loop.c (vect_transform_loop): Use new names for group
16771         elements access.
16772         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
16773         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
16774         vect_update_interleaving_chain, vect_same_range_drs,
16775         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
16776         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
16777         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
16778         vect_analyze_group_access, vect_analyze_data_ref_access,
16779         vect_create_data_ref_ptr, vect_transform_strided_load,
16780         vect_record_strided_load_vectors): Likewise.
16781         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
16782         vect_model_load_cost, vectorizable_store, vectorizable_load,
16783         vect_remove_stores, new_stmt_vec_info): Likewise.
16784         * tree-vect-slp.c (vect_build_slp_tree,
16785         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
16786
16787 2011-05-18  Richard Guenther  <rguenther@suse.de>
16788
16789         PR middle-end/48989
16790         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
16791         operand verification.
16792         (verify_gimple_assign_binary): Likewise.
16793         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
16794         to non-1-precision BOOLEAN_TYPEs.
16795
16796 2011-05-18  Tom de Vries  <tom@codesourcery.com>
16797
16798         PR target/45098
16799         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
16800
16801 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
16802
16803         PR tree-optimization/49000
16804         * tree-ssa.c (execute_update_addresses_taken): Call
16805         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
16806         be rewritten and decl has been marked for renaming, reset
16807         the debug stmt.
16808
16809 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
16810
16811         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
16812         enum_opts_set when testing if attributes have set -mfpmath=.
16813
16814 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
16815
16816         * config/mips/mips.c (mips_handle_option): Remove unused variable.
16817
16818 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
16819
16820         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
16821         info->entry with 0
16822         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
16823         id.transform_lang_insert_block with NULL.
16824
16825 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
16826
16827         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
16828         (output_fp_compare): Change args 3 and 4 to bool.
16829         (ix86_expand_call): Change arg 6 to bool.
16830         (ix86_attr_length_immediate_default): Change arg 2 to bool.
16831         (ix86_attr_length_vex_default): Change arg 3 to bool.
16832         * config/i386/i386.md: Update all uses.
16833         * config/i386/i386.c: Ditto.
16834         (ix86_flags_dependent): Change return type to bool.
16835
16836 2011-05-17  Richard Guenther  <rguenther@suse.de>
16837
16838         * gimple.c (type_hash_pair_compare): Fix comparison.
16839
16840 2011-05-17  Richard Guenther  <rguenther@suse.de>
16841
16842         * gimple.c (iterative_hash_gimple_type): Simplify singleton
16843         case some more, fix final hash value of the non-singleton case.
16844
16845 2011-05-17  Richard Guenther  <rguenther@suse.de>
16846
16847         PR bootstrap/49013
16848         Revert
16849         2011-05-16  Richard Guenther  <rguenther@suse.de>
16850
16851         * gimple.c (gimple_types_compatible_p_1): Use names of the
16852         type itself, not its main variant.
16853         (iterative_hash_gimple_type): Likewise.
16854
16855 2011-05-17  Richard Guenther  <rguenther@suse.de>
16856
16857         * gimple.c (gimple_register_canonical_type): Use the main-variant
16858         leader for computing the canonical type.
16859
16860 2011-05-17  Nick Clifton  <nickc@redhat.com>
16861
16862         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
16863         moves.
16864
16865         * config/rx/rx.md: Add peephole to remove redundant extensions
16866         after loads.
16867         (bitset_in_memory): Use rx_restricted_mem_operand.
16868         (bitinvert_in_memory): Likewise.
16869         (bitclr_in_memory): Likewise.
16870
16871 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
16872             Nick Clifton  <nickc@redhat.com>
16873
16874         * config/rx/rx.md: Add peepholes to match a register move followed
16875         by a comparison of the moved register.  Replace these with an
16876         addition of zero that does both actions in one instruction.
16877
16878 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
16879
16880         PR target/48986
16881         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
16882         predicate to allow CONST_INT.
16883         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
16884
16885 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
16886
16887         * opts-common.c (opt_enum_arg_to_value): New.
16888         * opts.h (opt_enum_arg_to_value): Declare.
16889         * config/i386/i386.opt (fpmath): Remove.
16890         (mfpmath=): Use Enum, Init and Save.
16891         (fpmath_unit): New Enum and EnumValue entries.
16892         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
16893         name for function fpmath state.
16894         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
16895         * config/i386/i386.c: Include diagnostic.h.
16896         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
16897         (ix86_target_string): Take enum fpmath_unit value instead of string.
16898         (ix86_debug_options): Update call to ix86_target_string.
16899         (ix86_option_override_internal): Don't process fpmath strings here.
16900         (x86_function_specific_save, ix86_function_specific_restore):
16901         Don't handle fpmath state specially.
16902         (ix86_function_specific_print): Pass fpmath state to
16903         ix86_target_string instead of printing in this function.
16904         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
16905         Handle enum attributes.
16906         (IX86_ATTR_ENUM, ix86_opt_enum): New.
16907         (ix86_valid_target_attribute_tree): Update option_strings
16908         handling.  Handle fpmath as enum option.
16909         (ix86_can_inline_p): Update field names for function fpmath state.
16910         (ix86_expand_builtin): Update call to ix86_target_string.
16911         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
16912         (ix86_fpmath): Remove.
16913         * config/i386/t-i386 (i386.o): Update dependencies.
16914
16915 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
16916
16917         PR preprocessor/48677
16918         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
16919         from decoded_options[0], not from itself.
16920
16921 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
16922
16923         * config/i386/constraints.md (z): New constraint.
16924         * config/i386/i386.c (c): New mode attribute.
16925         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
16926         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
16927         constraint for operand 0.
16928         (*call_vzeroupper): Ditto.
16929         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
16930         (*call_rex64_ms_sysv_vzeroupper): Ditto.
16931         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
16932         Use "lzm" constraint for operand 0.
16933         (*call_pop_vzeroupper): Ditto.
16934         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
16935         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
16936         constraint for operand 0.
16937         (*sibcall_vzeroupper): Ditto.
16938         (*sibcall_rex64_ms_sysv): Ditto.
16939         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
16940         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
16941         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
16942         (*sibcall_pop_vzeroupper): Ditto.
16943         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
16944         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
16945         mode iterator.  Use "<c>zm" constraint for operand 1.
16946         (*call_value_vzeroupper): Ditto.
16947         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
16948         for operand 1.
16949         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
16950         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
16951         *call_value_pop_1.  Use "lzm" constraint for operand 1.
16952         (*call_value_pop_vzeroupper): Ditto.
16953         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
16954         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
16955         mode iterator.  Use "Uz" constraint for operand 1.
16956         (*sibcall_value_vzeroupper): Ditto.
16957         (*sibcall_value_rex64_ms_sysv): Ditto.
16958         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
16959         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
16960         constraint for operand 1.
16961         (*sibcall_value_pop_vzeroupper): Ditto.
16962         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
16963         and "z" constraint for operand 2.
16964         (*tls_global_dynamic_32_gnu): Ditto.
16965         (*tls_local_dynamic_base_32_gnu): Ditto.
16966         (*tls_local_dynamic_base_64): Ditto.
16967         (*tls_local_dynamic_32_once): Ditto.
16968         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
16969         Update all callers.
16970         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
16971
16972 2011-05-16  Richard Guenther  <rguenther@suse.de>
16973
16974         * gimple.c (gimple_types_compatible_p_1): Use names of the
16975         type itself, not its main variant.
16976         (iterative_hash_gimple_type): Likewise.
16977
16978 2011-05-16  Richard Guenther  <rguenther@suse.de>
16979
16980         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
16981         always visit pointer target and function result and argument types.
16982
16983 2011-05-16  Jason Merrill  <jason@redhat.com>
16984
16985         PR c++/48999
16986         * tree-inline.c (copy_statement_list): Put back recursion.
16987
16988 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
16989
16990         PR target/27663
16991         PR target/41076
16992         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
16993         * config/avr/avr.md ("*ior<mode>qi.byte0",
16994         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
16995
16996 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
16997
16998         PR target/45099
16999         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
17000         register is needed for a function argument.
17001
17002 2011-05-16  Richard Guenther  <rguenther@suse.de>
17003
17004         * gimple.c (struct type_hash_pair): New type.
17005         (type_hash_pair_compare): New function.
17006         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
17007
17008 2011-05-16  Revital Eres  <revital.eres@linaro.org>
17009
17010         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
17011
17012 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
17013
17014         * config/i386/i386.md (floating point move splitters): Fix
17015         usage of standard_80387_constant_p.
17016         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
17017
17018 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
17019
17020         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
17021
17022 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
17023
17024         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
17025         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
17026         (tree_ssa_lim_finalize): Likewise.
17027
17028 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
17029
17030         * config/i386/constraint.md (Yd, Yx): New register constraints.
17031         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
17032         Yd conditional register constraint.
17033         (*movtf_internal): Use standard_sse_constant_opcode.
17034         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
17035         Yx conditional register constraint.
17036         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
17037         Yd conditional register constraint.  Use standard_sse_constant_p to
17038         check for valid SSE constants and call standard_sse_constant_opcode to
17039         output SSE insn.
17040         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
17041         constants and call standard_sse_constant_opcode to output SSE insn.
17042         * config/i386/i386.c (ix86_option_ovverride_internal): Set
17043         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
17044         optimize_size is set.
17045         (standard_sse_constant_opcode): Output conditional AVX insn templates.
17046
17047 2011-05-14  Tobias Burnus  <burnus@net-b.de>
17048
17049         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
17050
17051 2011-05-13  Martin Jambor  <mjambor@suse.cz>
17052
17053         * ipa-prop.c (ipa_cst_from_jfunc): New function.
17054         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
17055         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
17056         (evaluate_conditions_for_ipcp_clone): Removed.
17057         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
17058         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
17059         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
17060
17061 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
17062
17063         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
17064         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
17065         lieu of MAY_HAVE_DEBUG_STMTS.
17066         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
17067         debug statements if !MAY_HAVE_DEBUG_STMTS.
17068
17069 2011-05-13  Martin Thuresson  <martint@google.com>
17070
17071         PR gcov-profile/47793
17072         * libgcov.c (gcov_exit): Support relative profile paths.
17073         * doc/invoke.texi (-fprofile-dir): Update for above change.
17074
17075 2011-05-13  Richard Guenther  <rguenther@suse.de>
17076
17077         * gimple.c (gimple_canonical_types_compatible_p): Do not use
17078         type-pair caching, do not compare hashes.
17079
17080 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
17081
17082         PR middle-end/48965
17083         * tree-cfg.c (edge_to_cases_cleanup): Return true.
17084         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
17085
17086 2011-05-13  Kai Tietz  <ktietz@redhat.com>
17087
17088         * gimplify.c (gimplify_expr): Make sure operand is boolified.
17089         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
17090         compatible type for TRUTH_NOT_EXPR.
17091
17092 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
17093
17094         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
17095         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
17096         can_create_pseudo_p ().
17097
17098 2011-05-13  Richard Guenther  <rguenther@suse.de>
17099
17100         PR lto/48978
17101         * gimple.c (iterative_hash_gimple_type): Revert change in
17102         pointer target and function result and argument hashing.
17103
17104 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
17105
17106         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
17107         (*movxf_internal_nointeger): Ditto.
17108         (*movdf_internal_rex64): Ditto.
17109         (*movdf_internal): Ditto.
17110         (*movdf_internal_nointeger): Ditto.
17111         (*movsf_internal): Ditto.
17112         (sincos splitters): Use can_create_pseudo ().
17113
17114 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
17115
17116         * config/i386/i386-opts.h: New.
17117         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
17118         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
17119         ix86_section_threshold): Remove.
17120         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
17121         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
17122         OPT_mbranch_cost_.
17123         (ix86_option_override_internal): Don't decode strings for options
17124         other than -march=, -mtune= and -mfpmath=.  Don't allow for
17125         __attribute__ uses in remaining diagnostics for options with
17126         string arguments.  Don't check for integer arguments being negative.
17127         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
17128         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
17129         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
17130         ix86_branch_cost, ix86_section_threshold): Remove.
17131         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
17132         HeaderInclude.
17133         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
17134         but not Var.
17135         (masm=): Use Enum and Init.
17136         (asm_dialect): New Enum and EnumValue entries.
17137         (mbranch-cost=): Use UInteger.
17138         (mlarge-data-threshold=): Use UInteger and Init.
17139         (mcmodel=): Use Enum and Init.
17140         (cmodel): New Enum and EnumValue entries.
17141         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
17142         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
17143         mregparm=): Use UInteger.
17144         (mstringop-strategy=): Use Enum and Init.
17145         (stringop_alg): New Enum and EnumValue entries.
17146         (mtls-dialect=): Use Enum and Init.
17147         (tls_dialect): New Enum and EnumValue entries.
17148         (mabi=): Use Enum and Init.
17149         (calling_abi): New Enum and EnumValue entries.
17150         (mveclibabi=): Use Enum and Init.
17151         (ix86_veclibabi): New Enum and EnumValue entries.
17152
17153 2011-05-13  Nick Clifton  <nickc@redhat.com>
17154
17155         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
17156         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
17157
17158 2011-05-13  Kai Tietz  <ktietz@redhat.com>
17159
17160         PR middle-end/48984
17161         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
17162         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
17163         (gimple_boolify): Check for cast for boolean_type_node instead for
17164         BOOLEAN_TYPE.
17165
17166 2011-05-13  Richard Guenther  <rguenther@suse.de>
17167
17168         PR tree-optimization/48172
17169         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
17170         multiplying by number of iterations for equal step.
17171         (vect_create_cond_for_alias_checks): Likewise.
17172
17173 2011-05-13  Andreas Schwab  <schwab@redhat.com>
17174
17175         * configure.ac: Use AS_HELP_STRING throughout.
17176         * configure: Regenerate.
17177
17178 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
17179
17180         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
17181         (ix86_emit_restore_regs_using_mov): Likewise.
17182         (ix86_emit_restore_sse_regs_using_mov): Likewise.
17183
17184 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
17185
17186         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
17187         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
17188         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
17189         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
17190         RTX_OK_FOR_OLO10_P): ...here.
17191         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
17192         SYMBOLIC_CONST.
17193
17194 2011-05-12  Kai Tietz  <ktietz@redhat.com>
17195
17196         * gimplify.c (gimple_boolify): Re-boolify expression
17197         arguments even if expression type is of kind BOOLEAN_TYPE.
17198         (gimplify_boolean_expr): Removed.
17199         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
17200         and XOR. Additional take care that we keep expression's type.
17201         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
17202         of TRUTH_AND|OR|XOR_EXPR.
17203
17204 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
17205
17206         PR tree-optimization/48975
17207         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
17208         on all bbs here and free and clear ifc_bbs at the end.
17209
17210 2011-05-12  Richard Guenther  <rguenther@suse.de>
17211
17212         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
17213         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
17214         until after simple checks.
17215         (gimple_types_compatible_p): Likewise.
17216         (iterative_hash_gimple_type): Always hash pointer targets
17217         and function return and argument types.
17218         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
17219         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
17220         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
17221         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
17222         completely in the simple compare section.
17223         (gimple_register_canonical_type): Query the cache again after
17224         registering.
17225
17226 2011-05-12  Richard Guenther  <rguenther@suse.de>
17227
17228         PR tree-optimization/48172
17229         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
17230         the number of iterations from the segment size calculation.
17231         (vect_create_cond_for_alias_checks): Adjust.
17232
17233 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
17234
17235         PR debug/48967
17236         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
17237         if validate_subreg fails.
17238
17239 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
17240
17241         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
17242         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
17243         early.
17244
17245 2011-05-12  DJ Delorie  <dj@redhat.com>
17246
17247         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
17248         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
17249         created builtin into rx_builtins array.
17250         (rx_builtin_decl): New function.
17251         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
17252
17253 2011-05-12  DJ Delorie  <dj@redhat.com>
17254             Nick Clifton  <nickc@redhat.com>
17255
17256         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
17257         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
17258         (rx_is_legitimate_address): Add pre-decrement and post-increment
17259         addressing in HImode and QImode.  Fix test for out of range
17260         REG+INT addressing.
17261         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
17262         (rx_align_for_label): Test label before extracting its usage count.
17263         (rx_adjust_insn_lengths): Fix selection of insn codes.
17264         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
17265
17266 2011-05-11  Jason Merrill  <jason@redhat.com>
17267
17268         * tree.c (type_hash_canon): Use struct tree_type_non_common.
17269
17270 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
17271
17272         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
17273         reindent the subsequent block.
17274
17275 2011-05-11  Satoru Takabayashi  <satorux@google.com>
17276             Paul Pluzhnikov  <ppluzhnikov@google.com>
17277
17278         * doc/install.texi (Configuration): Document --with-linker-hash-style.
17279         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
17280         * config.in: Add LINKER_HASH_STYLE.
17281         * configure.ac: Add --with-linker-hash-style.
17282         * configure: Regenerate.
17283
17284 2011-05-11  Richard Guenther  <rguenther@suse.de>
17285
17286         PR middle-end/48964
17287         * gimple.c (iterative_hash_canonical_type): Fix typo.
17288
17289 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
17290
17291         * config/i386/i386.c (legitimize_tls_address)
17292         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
17293         expanders directly for TARGET_GNU2_TLS.  Determine pic and
17294         __tls_get_addr symbol reference here.  Update call to
17295         gen_tls_global_dynamic_{32,64} for added arguments.
17296         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
17297         expanders directly for TARGET_GNU2_TLS.  Determine
17298         __tls_get_addr symbol reference here.  Update call to
17299         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
17300         unique UNSPEC REG_EQUIV to libcall block.
17301         (ix86_tls_get_addr): Declare static.
17302         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
17303         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
17304         Do not determine pic and __tls_get_addr symbol reference here. Do not
17305         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
17306         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
17307         (tls_global_dynamic_64): Add operand 2.  Do not determine
17308         __tls_get_addr symbol reference here.  Do not call
17309         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
17310         (tls_local_dynamic_base64): Ditto for operand 1.
17311
17312 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
17313
17314         * function.c (expand_function_start): Initialize stack_check_probe_note
17315         only if the generic stack checking mechanism is used.
17316
17317 2011-05-11  Richard Guenther  <rguenther@suse.de>
17318
17319         PR tree-optimization/15256
17320         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
17321         (A & B) | C, combine (A op CST1) op CST2.
17322         (tree_ssa_forward_propagate_single_use_vars): Only bother to
17323         visit assigns that have uses.
17324
17325 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
17326
17327         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
17328         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
17329         (unpack_ts_type_common_value_fields): ...this.  Update comment.
17330         (unpack_value_fields): Adjust for renaming.
17331         (lto_input_ts_type_tree_pointers): Split into...
17332         (lto_input_ts_type_common_tree_pointer): ...this and...
17333         (lto_input_ts_type_non_common_tree_pointers): ...this.
17334         (lto_input_tree_pointers): Adjust for above split.
17335         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
17336         (pack_ts_type_common_value_fields): ...this.  Update comment.
17337         (lto_output_ts_type_tree_pointers): Split into...
17338         (lto_output_ts_type_common_tree_pointers): ...this and...
17339         (lto_output_ts_type_non_common_tree_pointers): ...this.
17340         (lto_output_tree_pointers): Adjust for above split.
17341         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
17342         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
17343         * stor-layout.c (vector_type_mode): Adjust location of mode field.
17344         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
17345         Define.
17346         (struct tree_type): Split into...
17347         (struct tree_type_common: ...this and...
17348         (struct tree_type_with_lang_specific): ...this and...
17349         (struct tree_type_non_common): ...this.  Adjust accessor macros
17350         accordingly.
17351         (TYPE_VALUES_RAW): Define.
17352         (union tree_node): Update for above changes.
17353         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
17354         TS_TYPE_NON_COMMON.
17355         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
17356         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
17357         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
17358         * treestructu.def (TS_TYPE): Remove.
17359         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
17360         Define.
17361
17362 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
17363
17364         PR debug/48159
17365         * tree-ssa.c (reset_debug_uses): New function.
17366         * tree-flow.h (reset_debug_uses): New prototype.
17367         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
17368         * tree-loop-distribution.c (generate_loops_for_partition): Call
17369         reset_debug_uses on the stmts that will be removed.  Keep around
17370         all debug stmts, don't count them as bits in partition bitmap.
17371         (generate_builtin): Don't count debug stmts or labels as bits in
17372         partition bitmap.
17373
17374 2011-05-11  Richard Guenther  <rguenther@suse.de>
17375
17376         * gimple.c (gimple_type_hash_1): Merge with ...
17377         (gimple_type_hash): ... this.
17378         (gtc_visit): Remove mode parameter and simplify accordingly.
17379         (gimple_types_compatible_p_1): Likewise.
17380         (gimple_types_compatible_p): Likewise.
17381         (iterative_hash_gimple_type): Likewise.
17382         (visit): Likewise.
17383         (gimple_type_eq): Adjust.
17384
17385 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17386
17387         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
17388         enters the branch create an anti edge in the opposite direction
17389         to prevent the creation of reg-moves.
17390         * modulo-sched.c: Adjust comment to reflect the fact we are
17391         scheduling closing branch.
17392         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
17393         (stage_count): New field in struct partial_schedule.
17394         (calculate_stage_count): New function.
17395         (normalize_sched_times): Rename to reset_sched_times and handle
17396         incrementing the sched time of the nodes by a constant value
17397         passed as parameter.
17398         (duplicate_insns_of_cycles): Skip closing branch.
17399         (sms_schedule_by_order): Schedule closing branch.
17400         (ps_insn_find_column): Handle closing branch.
17401         (sms_schedule): Call reset_sched_times and adjust the code to
17402         support scheduling of the closing branch.
17403         (ps_insert_empty_row): Update calls to normalize_sched_times
17404         and rotate_partial_schedule functions.
17405
17406 2011-05-11  Richard Guenther  <rguenther@suse.de>
17407
17408         PR middle-end/48953
17409         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
17410
17411 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
17412
17413         * opts.c (finish_options): Move warning settings from process_options.
17414         * toplev.c (process_options): Move warning settings to finish_options.
17415
17416 2011-05-11  Richard Guenther  <rguenther@suse.de>
17417
17418         PR tree-optimization/18041
17419         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
17420         (simplify_bitwise_binary): ... this.  Handle operand conversions
17421         by applying them to the result instead.
17422         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
17423
17424 2011-05-11  Richard Guenther  <rguenther@suse.de>
17425
17426         * gimple.c (gimple_canonical_types_compatible_p): Split out
17427         from gimple_types_compatible_p and friends.  Do not recurse
17428         to pointed-to types.
17429         (gimple_canonical_type_eq): Use it.
17430         (iterative_hash_canonical_type): Split out from
17431         iterative_hash_gimple_type and friends.  Do not recurse
17432         to pointed-to types.
17433         (gimple_canonical_type_hash): Use it, allocate the hash here.
17434
17435 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17436
17437         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
17438         recognizing doloop.
17439
17440 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17441
17442         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
17443         instead of PREV_INSN.
17444
17445 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17446
17447         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
17448         * loop-doloop.c (doloop_condition_get): Likewise.
17449         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
17450         (doloop_end): New.
17451         * config/arm/arm.md (*addsi3_compare0): Remove "*".
17452
17453 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
17454
17455         * tree.def (CASE_LABEL_EXPR): Add an operand.
17456         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
17457
17458 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17459
17460         * c-decl.c (c_override_global_bindings_to_false): Remove.
17461         (global_bindings_p): Don't check
17462         c_override_global_bindings_to_false.
17463         * c-tree.h (c_override_global_bindings_to_false): Remove.
17464         * c-typeck.c (composite_type): Don't set
17465         c_override_global_bindings_to_false.
17466
17467 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17468
17469         PR target/48857, 48495
17470         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
17471         (VSX_MODE): Ditto.
17472         (VSX_MOVE_MODE): Ditto.
17473         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
17474         VSX vector types.  Add V2DImode.
17475         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
17476         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
17477         (MODES_TIEABLE_P): Ditto.
17478
17479         * config/rs6000/rs6000.c (rs6000_emit_move): Use
17480         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
17481         VSX_VECTOR_MODE.
17482         (init_cumulative_args): Ditto.
17483         (rs6000_function_arg_boundary): Ditto.
17484         (rs6000_function_arg_advance_1): Ditto.
17485         (rs6000_function_arg): Ditto.
17486         (rs6000_function_ok_for_sibcall): Ditto.
17487         (emit_frame_save): Ditto.
17488         (rs6000_function_value): Ditto.
17489         (rs6000_libcall_value): Ditto.
17490
17491 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17492
17493         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
17494         i386/darwin-lib.h to $libgcc_tm_file.
17495         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
17496
17497 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17498
17499         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
17500
17501 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17502
17503         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
17504         * config/rs6000/rs6000-tables.opt: New file (generated).
17505         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
17506         rs6000/rs6000-tables.opt to extra_options.
17507         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
17508         * config/rs6000/rs6000.c (rs6000_select): Remove.
17509         (processor_target_table): Move contents to rs6000-cpus.def.
17510         (darwin_rs6000_override_options): Check
17511         global_options_set.x_rs6000_cpu_index instead of
17512         rs6000_select[1].string.
17513         (rs6000_option_override_internal): Likewise.
17514         (rs6000_handle_option): Don't assert that global structures are in
17515         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
17516         (rs6000_default_cpu): New variable.
17517         (rs6000_file_start): Set it instead of local default_cpu.  Check
17518         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
17519         global_options_set.x_rs6000_tune_index instead of rs6000_select.
17520         (rs6000_darwin_file_start): Check rs6000_default_cpu and
17521         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
17522         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
17523         rs6000_select): Remove.
17524         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
17525         Remove.
17526         (mcpu=, mtune=): Use Var, Init, Enum and Save.
17527         * config/rs6000/t-rs6000
17528         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
17529         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
17530         global_options_set.x_rs6000_cpu_index instead of
17531         rs6000_select[1].string.
17532         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
17533         global_options_set.x_rs6000_cpu_index instead of
17534         rs6000_select[1].string.
17535
17536 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17537
17538         * config.gcc (libgcc_tm_file): Define instead of including files
17539         from ../../libgcc/config/ in tm_file.
17540         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
17541         * configure: Regenerate.
17542         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
17543         libgcc_tm.h, cs-libgcc_tm.h): New.
17544         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
17545         (clean): Remove libgcc_tm.h.
17546         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
17547         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
17548         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
17549
17550 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
17551
17552         PR target/48896
17553         * config/avr/avr.c (avr_ret_register): Return unsigned int
17554         instead of int.
17555         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
17556         it to avr_libcall_value.
17557         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
17558         expand_expr.
17559         (avr_expand_binop_builtin): Ditto.
17560         (avr_expand_unop_builtin): Ditto.
17561
17562 2011-05-10  DJ Delorie  <dj@redhat.com>
17563
17564         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
17565         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
17566         * config/rx/rx.c (rx_align_for_label): Add label and
17567         uses_threshold parameters.  Do not align when the label is not
17568         used enough.
17569         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
17570
17571 2011-05-10  Richard Guenther  <rguenther@suse.de>
17572
17573         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
17574         a series of conversions and apply foldings similar to what
17575         fold-const does.
17576         (tree_ssa_forward_propagate_single_use_vars): Call it.
17577
17578 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
17579
17580         PR tree-optimization/48611
17581         PR tree-optimization/48794
17582         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
17583         referenced from RESX or EH_DISPATCH arguments.
17584
17585         PR debug/48928
17586         * dfp.c (decimal_to_decnumber): Handle conversion from
17587         dconst{1,2,m1,half}.
17588
17589 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17590
17591         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
17592         for !flag_prefer_avx128.
17593         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
17594
17595 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
17596
17597         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
17598         (fold_ternary_loc): Use expr_location_or.
17599
17600 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
17601
17602         PR debug/48853
17603         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
17604         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
17605         Pmode and mem_mode is not VOIDmode.
17606
17607 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
17608
17609         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
17610         TYPE_QUAL_RESTRICT): Convert to enum.
17611
17612 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17613
17614         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
17615         (const_pow2_1_to_8_operand): Ditto.
17616         (const_pow2_1_to_128_operand): Ditto.
17617         (const_pow2_1_to_32768_operand): Ditto.
17618         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
17619         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
17620         in insn constraint to check integer value of operand 3.
17621         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
17622
17623         (PINSR_MODE): New mode iterator.
17624         (sse2p4_1): New mode attribute.
17625         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
17626         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
17627         iterator.  Use const_int_operand instead of
17628         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
17629         exact_log2 in insn constraint to check integer value of operand 3.
17630
17631 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17632
17633         * config/i386/sse.md (blendbits): Remove mode attribute.
17634         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
17635         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
17636         Check integer value of operand 3 in insn constraint.
17637
17638 2011-05-09  Richard Guenther  <rguenther@suse.de>
17639
17640         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
17641         for diagnostics.
17642         (lto_symtab_merge): Likewise.  Do not register types here.
17643         (lto_symtab_merge_decls_2): Likewise.
17644         (lto_symtab_merge_decls_1): Likewise.
17645         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
17646         * gimple.c (enum gtc_mode): Declare.
17647         (gimple_types_compatible_p): Make static.
17648
17649 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17650
17651         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
17652         temporary register to match Pmode.
17653
17654 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17655
17656         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
17657         and *vec_concatv4si_1_avx.
17658
17659 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17660
17661         PR rtl-optimization/48927
17662         * ira-conflicts.c (commutative_constraint_p): Use
17663         recog_data.alternative_enabled_p to disable alternatives where
17664         "enabled" attribute is false.
17665         (get_dup_num): Ditto.
17666         * ira-lives.c (single_reg_class): Ditto.
17667         (ira_implicitly_set_insn_hard_regs): Ditto.
17668
17669 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
17670
17671         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
17672         (dataflow_set_preserve_mem_locs): Likewise.
17673
17674 2011-05-09  Philipp Thomas  <pth@suse.de>
17675
17676         * config/mep/mep.c (mep_validate_vliw): Syntax description
17677         should not be translated.
17678
17679 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
17680
17681         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
17682         * config/mips/mips-tables.opt: New file (generated).
17683         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
17684         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
17685         MIPS_ARCH_OPTION_NATIVE): Define.
17686         * config/mips/mips.c (mips_cpu_info_table): Move contents to
17687         mips-cpus.def.
17688         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
17689         mips_parse_cpu): Remove.
17690         (mips_cpu_info_from_opt, mips_default_arch): New.
17691         (mips_handle_option): Don't assert that global structures are in
17692         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
17693         (mips_option_override): Use new variables and functions to set
17694         state of these options.  Use strcmp to check for individual CPU names.
17695         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
17696         definition.
17697         * config/mips/mips.opt (march=): Use ToLower and Enum.
17698         (mips): Use ToLower, Enum and Var.
17699         (mtune=): Use ToLower and Enum.
17700         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
17701
17702 2011-05-08  Jan Hubicka  <jh@suse.cz>
17703
17704         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
17705         Arrange type pairs to be UID ordered.
17706         (gimple_lookup_type_leader): Make inline.
17707
17708 2011-05-09  Nick Clifton  <nickc@redhat.com>
17709
17710         PR target/48899
17711         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
17712         PROCESSOR_DEFAULT.
17713
17714         PR target/48897
17715         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
17716         variable 's'.
17717
17718 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
17719
17720         * combine.c (simplify_comparison): Abstract out parts into...
17721         (simplify_compare_const): ... new function.
17722         (try_combine): Generalize parallel arithmetic/compare combining
17723         to call simplify_compare_const() and CANONICALIZE_COMPARE().
17724
17725 2011-05-08  Jan Hubicka  <jh@suse.cz>
17726
17727         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
17728         (cgraph_create_virtual_clone): Call hooks once virtual clone
17729         is finished.
17730         * cgraph.h (cgraph_clone_node): Update prototype.
17731         * ipa-cp.c (ipcp_estimate_growth): Use
17732         estimate_ipcp_clone_size_and_time.
17733         * ipa-inline-transform.c (clone_inlined_nodes): Update.
17734         * lto-cgraph.c (input_node): Update.
17735         * ipa-inline.c (recursive_inlining): Update.
17736         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
17737         (evaluate_conditions_for_known_args): Break out from ...
17738         (evaluate_conditions_for_edge): ... here.
17739         (evaluate_conditions_for_ipcp_clone): New function.
17740         (inline_node_duplication_hook): Update clone summary based
17741         on parameter map.
17742         (estimate_callee_size_and_time): Rename to ...
17743         (estimate_node_size_and_time): take NODE instead of EDGE;
17744         take POSSIBLE_TRUTHS as argument.
17745         (estimate_callee_size_and_time): Update.
17746         (estimate_ipcp_clone_size_and_time): New function.
17747         (do_estimate_edge_time): Update.
17748
17749 2011-05-08  Richard Guenther  <rguenther@suse.de>
17750
17751         PR middle-end/48908
17752         PR middle-end/48905
17753         * expmed.c (expand_shift_1): Compute adjusted constant shift
17754         amount manually.
17755
17756 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
17757
17758         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
17759
17760 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
17761
17762         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
17763
17764 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
17765
17766         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
17767
17768 2011-05-07  Jan Hubicka  <jh@suse.cz>
17769
17770         * ipa-inline-transform.c (inline_call): Account when program size
17771         decreases.
17772         * ipa-inline.c (relative_time_benefit): New function.
17773         (edge_badness): Reorganize to be power 2 based; fix thinko when
17774         computing badness for negative growth; update comments to match
17775         reality; better dumps.
17776
17777 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
17778
17779         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
17780         type to bool and adjust comment.
17781         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
17782         (fold_mathfn_compare): Remove calls to global_bindings_p.
17783         (fold_inf_compare): Likewise.
17784         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
17785         * c-tree.h (global_bindings_p): Adjust prototype.
17786         * c-decl.c (global_bindings_p): Return bool and simplify.
17787
17788 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
17789
17790         PR tree-optimization/48837
17791         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
17792         when accumulator transformation is performed.
17793
17794 2011-05-06  Jan Hubicka  <jh@suse.cz>
17795
17796         * i386.h (ix86_tune_indices): Add
17797         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
17798         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
17799         * i386.c (initial_ix86_tune_features): Add
17800         X86_SOFTARE_PREFETCHING_BENEFICIAL.
17801         (software_prefetching_beneficial_p): Remove predicate.
17802         (ix86_option_override_internal): Use new macro.
17803
17804 2011-05-06  Jan Hubicka  <jh@suse.cz>
17805
17806         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
17807
17808 2011-05-06  Jan Hubicka  <jh@suse.cz>
17809
17810         * cgraph.c (cgraph_add_thunk): Create real function node instead
17811         of alias node; finalize it and mark needed/reachale; arrange visibility
17812         to be right and add it into the corresponding same comdat group list.
17813         (dump_cgraph_node): Dump thunks.
17814         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
17815         cgraph_function_with_gimple_body_p,
17816         cgraph_first_function_with_gimple_body,
17817         cgraph_next_function_with_gimple_body): New functions.
17818         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
17819         New macros.
17820         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
17821         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
17822         * cgraphunit.c (cgraph_finalize_function): Only look into possible
17823         devirtualization when optimizing.
17824         (verify_cgraph_node): Verify thunks.
17825         (cgraph_analyze_function): Analyze thunks.
17826         (cgraph_mark_functions_to_output): Output thunks only in combination
17827         with function they are assigned to.
17828         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
17829         alias into normal node.
17830         (assemble_thunks): New functoin.
17831         (cgraph_expand_function): Use it.
17832         * lto-cgraph.c (lto_output_node): Stream thunks.
17833         (input_overwrite_node): Stream in thunks.
17834         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
17835         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
17836         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
17837         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
17838         (inline_analyze_function): Do not care about thunk jump functions.
17839         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
17840         * ipa-prop.c (ipa_prop_write_jump_functions): Use
17841         cgraph_function_with_gimple_body_p.
17842         * passes.c (do_per_function_toporder): Use
17843         cgraph_function_with_gimple_body_p.
17844         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
17845         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
17846         (function_called_by_processed_nodes_p): Likewise.
17847
17848 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
17849
17850         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
17851         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
17852         entries.
17853         (mabi=): Replace with separate entries for mabi=altivec,
17854         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
17855         mabi=ieeelongdouble and mabi=ibmlongdouble.
17856         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
17857         check for -mabi=spe without SPE ABI support here.
17858         (rs6000_handle_option): Replace OPT_mabi_ handling with
17859         OPT_mabi_altivec and OPT_mabi_spe handling.
17860
17861 2011-05-06  Cary Coutant  <ccoutant@google.com>
17862
17863         * dwarf2out.c (contains_subprogram_definition): New function.
17864         (should_move_die_to_comdat): Call it.
17865
17866 2011-05-06  Jeff Law  <law@redhat.com>
17867
17868         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
17869         remove_ctrl_stmt_and_useless_edges.
17870         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
17871         (fixup_template_block, thread_single_edge): Likewise.
17872         (mark_threaded_blocks): Use THREAD_TARGET.
17873
17874 2011-05-06  Alan Modra  <amodra@gmail.com>
17875
17876         PR target/48900
17877         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
17878         const0_rtx as the arg to the dummy __tls_get_addr libcall.
17879
17880 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
17881
17882         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
17883         constraint modifier to "r".
17884
17885 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
17886
17887         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
17888         fall through for OPT_mcmodel_.
17889
17890 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17891
17892         * config/s390/s390.c (s390_asm_trampoline_template): Comment
17893         instruction sizes.
17894         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
17895
17896 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17897
17898         PR target/47930
17899         * config/arm/arm.opt (marm): Document it.
17900         (mthumb): Reject negative variant.
17901
17902 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
17903
17904         PR target/48898
17905         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
17906         Fix typo in "ccvt" variable name.
17907
17908 2011-05-06  Tristan Gingold  <gingold@adacore.com>
17909
17910         PR target/48895
17911         * config/vms/vms-ar.c (main): Remove cwd variable.
17912
17913 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
17914
17915         PR debug/48902
17916         * var-tracking.c (prepare_call_arguments): Move else before #endif.
17917
17918 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
17919
17920         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
17921         * gimplify.c (gimplify_switch_expr): Likewise.
17922         * omp-low.c (expand_omp_sections): Likewise.
17923         * tree-eh.c (lower_try_finally_switch): Likewise.
17924         (lower_eh_dispatch): Likewise.
17925         * tree.h (build_case_label): Declare.
17926         * tree.c (build_case_label): Define.
17927
17928 2011-05-05  Jason Merrill  <jason@redhat.com>
17929
17930         PR c++/40975
17931         * tree-inline.c (copy_tree_r): Use copy_statement_list.
17932         (copy_statement_list): Don't recurse.
17933         * stor-layout.c (copy_self_referential_tree_r): Don't allow
17934         STATEMENT_LIST.
17935
17936 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17937
17938         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
17939         through from -mfpu= handling.
17940         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
17941
17942 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
17943
17944         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
17945         POST_MODIFY.
17946
17947 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
17948
17949         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
17950         for 11.31.
17951         (hppa[12]*-*-hpux11*): Ditto.
17952         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
17953         * config/ia64/hpux-unix2003.h: New.
17954         * config/pa/pa-hpux1131.opt: New.
17955         * config/pa/pa-hpux1131.h: New.
17956         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
17957         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
17958         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
17959
17960 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
17961
17962         PR debug/48853
17963         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
17964         instead of mode as 3rd argument to recursive call.
17965         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
17966         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
17967         VOIDmode.
17968         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
17969         don't give up if mode is Pmode and mem_mode is not VOIDmode.
17970         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
17971         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
17972
17973 2011-05-05  Julian Brown  <julian@codesourcery.com>
17974
17975         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
17976         parenthesis in D-register case.
17977
17978 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17979
17980         * opt-functions.awk (var_type_struct): Handle Enum options.
17981         * optc-gen.awk: Don't check range of variables of character type.
17982         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
17983         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
17984         rs6000_sdata_name, rs6000_explicit_options): Remove.
17985         (rs6000_option_override_internal): Check for -malign-power here.
17986         Use global_options_set instead of rs6000_explicit_options.
17987         (rs6000_parse_fpu_option): Remove.
17988         (rs6000_handle_option): Access variables via opts and opts_set
17989         pointers.  Use error_at and warning_at.  Add fall-through
17990         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
17991         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
17992         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
17993         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
17994         here.  Don't use rs6000_parse_fpu_option.
17995         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
17996         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
17997         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
17998         (mrecip=): Use Var.
17999         (mspe): Use Var and Save.
18000         (mtraceback=): Use Enum and Var.
18001         (rs6000_traceback_type): New Enum and EnumValue entries.
18002         (mfloat-gprs=): Use Enum, Var and Save.
18003         (rs6000_float_gprs): New Enum and EnumValue entries.
18004         (mlong-double-): use Var and Save.
18005         (msched-costly-dep=, minsert-sched-nops=): Use Var.
18006         (malign-): Use Enum and Var.
18007         (rs6000_alignment_flags): New Enum and EnumValue entries.
18008         (mfpu=): Use Enum.
18009         (fpu_type_t): New Enum and EnumValue entries.
18010         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
18011         global_options_set instead of rs6000_explicit_options.
18012         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
18013         global_options_set instead of rs6000_explicit_options.
18014         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
18015         global_options_set instead of rs6000_explicit_options.
18016         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
18017         global_options_set instead of rs6000_explicit_options.
18018         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
18019         global_options_set instead of rs6000_explicit_options.
18020         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
18021         global_options_set instead of rs6000_explicit_options.
18022         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
18023         definition.
18024         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
18025         global_options_set instead of rs6000_explicit_options.
18026         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
18027         (rs6000_cmodel): New Enum and EnumValue entries.
18028         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
18029         global_options_set instead of rs6000_explicit_options.
18030         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
18031         (mtls-size=): Use Enum and Var.
18032         (rs6000_tls_size): New Enum and EnumValue entries.
18033
18034 2011-05-05  Michael Matz  <matz@suse.de>
18035
18036         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
18037         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
18038         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
18039         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
18040         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
18041         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
18042         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
18043         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
18044         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
18045         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
18046         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
18047         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
18048         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
18049         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
18050         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
18051         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
18052
18053 2011-05-05  Richard Guenther  <rguenther@suse.de>
18054
18055         * expmed.c (expand_variable_shift): Rename to ...
18056         (expand_shift_1): ... this.  Take an expanded shift amount.
18057         For rotates recurse directly not building trees for the shift amount.
18058         (expand_variable_shift): Wrap around expand_shift_1.
18059         (expand_shift): Adjust.
18060
18061 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
18062
18063         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
18064
18065 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
18066
18067         * tree.h (get_pending_sizes): Remove prototype.
18068         (put_pending_size): Likewise.
18069         (put_pending_sizes): Likewise.
18070         * stor-layout.c (pending_sizes): Delete.
18071         (get_pending_sizes): Likewise.
18072         (put_pending_size): Likewise.
18073         (put_pending_sizes): Likewise.
18074         (variable_size): Do not call put_pending_size and tidy up.
18075         * function.h (struct function): Remove dont_save_pending_sizes_p.
18076         * lto-streamer-in.c (input_function): Do not stream it.
18077         * lto-streamer-out.c (output_function): Likewise.
18078         * tree-inline.c (initialize_cfun): Do not copy it.
18079         * c-decl.c (store_parm_decls): Do not set it.
18080         * omp-low.c (create_task_copyfn): Likewise.
18081         * tree-optimize.c (tree_rest_of_compilation): Likewise.
18082
18083 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
18084
18085         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
18086         conditions.
18087         (*movdf_internal): Ditto.
18088         (*movdf_internal_nointeger): Ditto.
18089         (*movsf_internal): Ditto.
18090
18091 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
18092
18093         * c-decl.c (finish_decl): Don't call get_pending_sizes.
18094         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
18095         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
18096         (c_variable_size): Remove.
18097         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
18098         call put_pending_sizes.
18099         (get_parm_info): Add parameter expr.  Use it to set
18100         arg_info->pending_sizes.
18101         (store_parm_decls): Use arg_info->pending_sizes instead or calling
18102         get_pending_sizes.
18103         * c-parser.c (c_parser_parms_declarator): Update call to
18104         c_parser_parms_list_declarator.
18105         (c_parser_parms_list_declarator): Take parameter expr.  Update
18106         call to push_parm_decl.  Update recursive call.  Don't call
18107         get_pending_sizes.  Update calls to get_parm_info.
18108         (c_parser_objc_method_definition): Update calls to
18109         c_parser_objc_method_decl and objc_start_method_definition.
18110         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
18111         (c_parser_objc_method_decl): Add parameter expr.  Update call to
18112         grokparm.
18113         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
18114         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
18115         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
18116
18117 2011-05-05  Michael Hope  <michael.hope@linaro.org>
18118
18119         PR pch/45979
18120         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
18121         __ARM_EABI__ hosts.
18122
18123 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18124
18125         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
18126         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
18127         (spu_output_mi_thunk): New function.
18128
18129 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18130
18131         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
18132         targetm.asm_out.print_operand.
18133         * config/sol2.c: Include target.h.
18134
18135 2011-05-04  Jan Hubicka  <jh@suse.cz>
18136
18137         * ipa-inline.c (reset_edge_caches): New function.
18138         (update_caller_keys): Add check_inlinablity_for; do not
18139         reset edge caches; remove now unnecesary loop.
18140         (update_callee_keys): Add comments; reset node_growth_cache of callee.
18141         (update_all_callee_keys): Likewise.
18142         (inline_small_functions): Sanity check cache; update code
18143         recomputing it.
18144
18145 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
18146
18147         PR rtl-optimization/47612
18148         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
18149         as the last insn of the sequence to be moved.
18150
18151 2011-05-04  Tobias Burnus  <burnus@net-b.de>
18152
18153         PR fortran/48864
18154         * doc/invoke.texi (Ofast): Document that it
18155         enables Fortran's -fno-protect-parens.
18156
18157 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
18158
18159         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
18160
18161 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
18162
18163         * stor-layout.c (variable_size): Do not issue errors.
18164
18165 2011-05-04  Richard Guenther  <rguenther@suse.de>
18166
18167         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
18168         for array-ref indices.
18169         (tree_coverage_counter_addr): Likewise.
18170         (build_fn_info_type): Use size_int for index types.
18171         (build_gcov_info): Likewise.
18172
18173 2011-05-04  Richard Guenther  <rguenther@suse.de>
18174
18175         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
18176         to build_int_cst.
18177         * c-typeck.c (really_start_incremental_init): Use bitsize_int
18178         for constructor indices.
18179         (push_init_level): Likewise.
18180
18181 2011-05-04  Richard Guenther  <rguenther@suse.de>
18182
18183         * explow.c (promote_mode): Move variable declarations before code.
18184
18185 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
18186
18187         * tree.h (build_function_type_array): Declare.
18188         (build_varargs_function_type_array): Declare.
18189         (build_function_type_vec, build_varargs_function_type_vec): Define.
18190         * tree.c (build_function_type_array_1): New function.
18191         (build_function_type_array): New function.
18192         (build_varargs_function_type_array): New function.
18193
18194 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
18195
18196         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
18197         before setting STMT_VINFO_TYPE.
18198
18199 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18200
18201         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
18202         instead of spu_pass_by_reference.
18203
18204 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18205
18206         * calls.c (emit_library_call_value_1): Invoke
18207         promote_function_mode hook on libcall arguments.
18208         * explow.c (promote_function_mode, promote_mode): Handle TYPE
18209         argument being NULL.
18210         * targhooks.c (default_promote_function_mode): Lisewise.
18211         * config/s390/s390.c (s390_promote_function_mode): Likewise.
18212         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
18213
18214         * doc/tm.texi: Document that TYPE argument might be NULL.
18215
18216 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18217
18218         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
18219
18220 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18221
18222         From Bernd Schmidt
18223         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
18224
18225 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18226
18227         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
18228         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
18229         Move ...
18230         * mips-tfile.c: ... here.
18231         Don't include coretypes.h, tm.h, filenames.h.
18232         (saber_stop): Remove definition and all calls.
18233         [__SABER__]: Remove.
18234         (__LINE__): Remove default.
18235         (Size_t, Ptrdiff_t): Remove definitions.
18236         Replace by size_t, ptrdiff_t.
18237         [!MIPS_DEBUGGING_INFO]: Remove.
18238         (SHASH_SIZE, THASH_SIZE): Remove defaults.
18239         (progname): Add const.
18240         (STATIC): Remove.
18241         Replace all uses by static.
18242         (ALIGN_SYMTABLE_OFFSET): Remove default.
18243         * mips-tdump.c: Don't include coretypes.h, tm.h.
18244         Remove !MIPS_IS_STAB guard.
18245         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
18246         $(TM_H), filenames.h dependencies.
18247         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
18248
18249 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18250
18251         From Jie Zhang
18252         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
18253         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
18254
18255 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18256
18257         From Bernd Schmidt
18258         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
18259         account and save/restore RETS.
18260         (PROFILE_BEFORE_PROLOGUE): Define.
18261         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
18262         the push insn to use predecrement.
18263
18264 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18265
18266         From Jie Zhang
18267         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
18268
18269 2011-05-04  Nick Clifton  <nickc@redhat.com>
18270
18271         * config/mn10300/mn10300.c: Include cfgloop.h.
18272         (DUMP): New macro.
18273         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
18274         Lcc or a FLcc insn into the instruction stream.
18275         (mn10300_block_contains_call): New function.  Returns true if the
18276         given basic block contains a CALL insn.
18277         (mn10300_loop_contains_call_insn): New function.  Returns true if
18278         the given loop contains a CALL insn.
18279         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
18280         to use the SETLB and Lcc or FLcc insns.
18281         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
18282         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
18283         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
18284         disable the SETLB optimization.
18285         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
18286         __SETLB__ or __NO_SETLB__.
18287         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
18288         (movsf_internal): Handle MDR register.
18289         (cmpsi): Make visible.
18290         (setlb): New pattern.
18291         (Lcc): New pattern.
18292         (FLcc): New pattern.
18293
18294 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
18295
18296         PR target/48860
18297         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
18298         for reg<->xmm moves.
18299         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
18300         (vec_concatv2di_rex64_sse): Ditto.
18301         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
18302         (*vec_extractv2di_1_rex64): Ditto.
18303
18304         Revert:
18305         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
18306
18307         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
18308         reg<->xmm moves.
18309         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
18310
18311 2011-05-04  Richard Guenther  <rguenther@suse.de>
18312
18313         * tree.h (int_const_binop): Remove notrunc argument.
18314         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
18315         create integer constants that are properly truncated.
18316         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
18317         (const_binop): Remove zero notrunc argument to int_const_binop.
18318         (size_binop_loc): Likewise.
18319         (fold_div_compare): Likewise.
18320         (maybe_canonicalize_comparison_1): Likewise.
18321         (fold_comparison): Likewise.
18322         (fold_binary_loc): Likewise.
18323         (multiple_of_p): Likewise.
18324         * expr.c (store_constructor): Likewise.
18325         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
18326         (maybe_fold_stmt_addition): Likewise.
18327         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
18328         * stor-layout.c (layout_type): Likewise.
18329         * tree-data-ref.c (tree_fold_divides_p): Likewise.
18330         * tree-sra.c (build_ref_for_offset): Likewise.
18331         (build_user_friendly_ref_for_offset): Likewise.
18332         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
18333         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
18334         * tree-ssa-loop-niter.c (inverse): Likewise.
18335         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
18336         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
18337         * tree-switch-conversion.c (check_range): Likewise.
18338         (build_constructors): Likewise.
18339         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
18340         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
18341         (extract_range_from_assert): Likewise.
18342         (vrp_int_const_binop): Likewise.
18343         (extract_range_from_binary_expr): Likewise.
18344         (extract_range_from_unary_expr): Likewise.
18345         (check_array_ref): Likewise.
18346         (find_case_label_range): Likewise.
18347         (simplify_div_or_mod_using_ranges): Likewise.
18348         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
18349         comparing case labels for merging.
18350
18351 2011-05-03  Mark Wielaard  <mjw@redhat.com>
18352
18353         * dwarf2out.c (debug_str_hash_forced): Removed.
18354         (gen_label_for_indirect_string): Removed.
18355         (get_debug_string_label): Removed.
18356         (AT_string_form): Generate label directly.
18357         (output_indirect_string): Test indirect_string_node for
18358         DW_FORM_strp instead of checking label and refcount.
18359         (prune_indirect_string): Removed.
18360         (prune_unused_types): Don't check debug_str_hash_forced or
18361         call prune_indirect_string.
18362
18363 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
18364
18365         PR other/48093
18366         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
18367
18368 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
18369
18370         PR debug/47994
18371         PR debug/47919
18372         * combine.c (try_combine): Skip debug insns at m_split tests.
18373
18374 2011-04-26  Mark Wielaard  <mjw@redhat.com>
18375
18376         PR42288
18377         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
18378         when info_section_emitted.
18379
18380 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
18381
18382         * config/mips/mips-opts.h: New.
18383         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
18384         to mips-opts.h.
18385         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
18386         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
18387         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
18388         via opts pointer.
18389         * config/mips/mips.h (enum mips_code_readable_setting): Move to
18390         mips-opts.h.
18391         (mips_abi, mips_code_readable): Don't declare.
18392         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
18393         (mabi=): Use Enum and Var.
18394         (mips_abi): New Enum and EnumValue entries.
18395         (mcode-readable=): Use Enum and Var.
18396         (mips_code_readable_setting): New Enum and EnumValue entries.
18397         (mr10k-cache-barrier=): Use Enum and Var.
18398         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
18399
18400 2011-05-03  Jan Hubicka  <jh@suse.cz>
18401
18402         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
18403         replace hash by pointer map.
18404         (cgraph_node_set_element_def, cgraph_node_set_element,
18405         const_cgraph_node_set_element, varpool_node_set_element_def,
18406         varpool_node_set_element, const_varpool_node_set_element): Remove.
18407         (free_cgraph_node_set, free_varpool_node_set): New function.
18408         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
18409         * tree-emutls.c: Free varpool node set.
18410         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
18411         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
18412         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
18413         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
18414         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
18415         Move here from ipa.c; implement using pointer_map
18416         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
18417         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
18418         debug_cgraph_node_set, varpool_node_set_new,
18419         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
18420         dump_varpool_node_set, debug_varpool_node_set):
18421         Move to ipa-uitls.c.
18422         * passes.c (ipa_write_summaries): Update.
18423
18424 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18425
18426         From Mike Frysinger:
18427         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
18428         bf542/bf544/bf547/bf548/bf549.
18429
18430 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
18431
18432         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
18433
18434 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18435
18436         From Bernd Schmidt:
18437         * config/bfin/bfin.md (MOVCC): New mode_macro.
18438         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
18439         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
18440         comments from generated assembly.
18441
18442 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18443
18444         From Bernd Schmidt
18445         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
18446         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
18447         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
18448         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
18449         * config/bfin/lib1funcs.asm (___muldi3): New function.
18450
18451 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18452
18453         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
18454         build_function_type_list instead of build_function_type.
18455         Rearrange initialization of `args' to do so.
18456
18457 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18458
18459         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
18460         instead of build_function_type.
18461
18462 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18463
18464         * config/rs6000/rs6000.c (spe_init_builtins): Call
18465         build_function_type_list instead of build_function_type.
18466         (paired_init_builtins, altivec_init_builtins): Likewise.
18467         (builtin_function_type): Likewise.
18468
18469 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18470
18471         * config/sh/sh.c (sh_media_init_builtins): Call
18472         build_function_type_list instead of build_function_type.
18473
18474 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18475
18476         * config/sparc/sparc.c (sparc_file_end): Call
18477         build_function_type_list instead of build_function_type.
18478
18479 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18480
18481         * config/alpha/alpha.c (alpha_init_builtins): Call
18482         build_function_type_list instead of build_function_type.
18483
18484 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18485
18486         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
18487         build_function_type_list instead of build_function_type.
18488
18489 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18490
18491         * config/iq2000/i2000.c (iq2000_init_builtins): Call
18492         build_function_type_list instead of build_function_type.
18493         Delete `endlink' variable.
18494
18495 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18496
18497         * config/avr/avr.c (avr_init_builtins): Call
18498         build_function_type_list instead of build_function_type.
18499
18500 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18501
18502         * config/picochip/picochip.c (picochip_init_builtins): Call
18503         build_function_type_list instead of build_function_type.
18504         Delete `endlink' variable.
18505
18506 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18507
18508         * config/bfin/bfin.c (bfin_init_builtins): Call
18509         build_function_type_list instead of build_function_type.
18510
18511 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18512
18513         From Bernd Schmidt
18514         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
18515         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
18516
18517 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18518
18519         From Jie Zhang:
18520         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
18521         libbffastfp overrides libgcc when -mfast-fp.
18522
18523 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18524
18525         Originally from Bernd Schmidt
18526         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
18527         * config/bfin/bfin.c (override_options): Test it and error if
18528         TARGET_FDPIC.
18529
18530 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18531
18532         Originally From Bernd Schmidt
18533         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
18534         FD-PIC.
18535
18536 2011-05-03  Jeff Law  <law@redhat.com>
18537
18538         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
18539         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
18540         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
18541         than accessing AUX field directly.  Free the AUX field before
18542         clearing it.
18543         (thread_block, thread_through_loop_header): Likewise.
18544         (thread_single_edge, mark_threaded_blocks): Likewise.
18545         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
18546         (register_jump_thread): Do not attempt to thread to a NULL edge.
18547
18548 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
18549
18550         * function.c (init_function_start): Call decide_function_section.
18551         * varasm.c (decide_function_section): New function.
18552         (assemble_start_function): When not using
18553         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
18554         or first_function_block_is_cold.
18555         * rtl.h (decide_function_section): Declare.
18556
18557 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
18558             Jakub Jelinek  <jakub@redhat.com>
18559
18560         PR target/48774
18561         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
18562         only succeed if req_mode is the same as set_mode.
18563
18564 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
18565
18566         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
18567         * genemit.c (gen_exp): Handle RETURN.
18568         * emit-rtl.c (verify_rtx_sharing): Likewise.
18569         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
18570         * rtl.c (copy_rtx): RETURN is shared.
18571         * rtl.h (enum global_rtl_index): Add GR_RETURN.
18572         (ret_rtx): New.
18573         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
18574         * config/s390/s390.c (s390_emit_epilogue): Likewise.
18575         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
18576         * config/cris/cris.c (cris_expand_return): Likewise.
18577         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
18578         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
18579         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
18580         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
18581         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
18582         Likewise.
18583         * config/v850/v850.c (expand_epilogue): Likewise.
18584         * config/bfin/bfin.c (bfin_expand_call): Likewise.
18585         * config/arm/arm.md (epilogue): Likewise.
18586         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
18587         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
18588         variable to ret_reg.
18589
18590 2011-05-03  Richard Guenther  <rguenther@suse.de>
18591
18592         PR lto/48846
18593         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
18594         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
18595         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
18596
18597 2011-05-03  Richard Guenther  <rguenther@suse.de>
18598
18599         * c-decl.c (grokdeclarator): Instead of looking at
18600         TREE_OVERFLOW check if the constant fits in the index type.
18601
18602 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
18603
18604         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
18605         (vec_store_lanes<mode><mode>): Likewise.
18606
18607 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
18608
18609         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
18610         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
18611         convert_optab_index values.
18612         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
18613         * genopinit.c (optabs): Initialize the new optabs.
18614         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
18615         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
18616         (expand_STORE_LANES): New functions.
18617         * tree.h (build_array_type_nelts): Declare.
18618         * tree.c (build_array_type_nelts): New function.
18619         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
18620         (vect_model_load_cost): Likewise.
18621         (vect_store_lanes_supported, vect_load_lanes_supported)
18622         (vect_record_strided_load_vectors): Declare.
18623         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
18624         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
18625         (vect_transform_strided_load): Split out statement recording into...
18626         (vect_record_strided_load_vectors): ...this new function.
18627         * tree-vect-stmts.c (create_vector_array, read_vector_array)
18628         (write_vector_array, create_array_ref): New functions.
18629         (vect_model_store_cost): Add store_lanes_p argument.
18630         (vect_model_load_cost): Add load_lanes_p argument.
18631         (vectorizable_store): Try to use store-lanes functions for
18632         interleaved stores.
18633         (vectorizable_load): Likewise load-lanes and loads.
18634         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
18635         to vect_model_store_cost.
18636         (vect_build_slp_tree): Likewise vect_model_load_cost.
18637
18638 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
18639
18640         * hooks.h (hook_bool_mode_uhwi_false): Declare.
18641         * hooks.c (hook_bool_mode_uhwi_false): New function.
18642         * target.def (array_mode_supported_p): New hook.
18643         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
18644         * doc/tm.texi: Regenerate.
18645         * stor-layout.c (mode_for_array): New function.
18646         (layout_type): Use it.
18647         * config/arm/arm.c (arm_array_mode_supported_p): New function.
18648         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
18649
18650 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
18651
18652         PR target/48723
18653         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
18654         for -fstack-check if the size to allocate is negative.
18655
18656 2011-05-02  Lawrence Crowl  <crowl@google.com>
18657
18658         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
18659         (timevar_cond_start): New for starting a timer only when it is not
18660         already running.
18661         (timevar_cond_stop): New for stopping a timer when it was not already
18662         running.
18663
18664         * timevar.c (timevar_stop): Enable start/stop timers to start again.
18665         (timevar_cond_start): New as above.
18666         (timevar_cond_stop): New as above.
18667
18668         * timevar.def: Add start/stop timers for compiler phases,
18669         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
18670         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
18671         and TV_PHASE_FINALIZE.
18672         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
18673         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
18674         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
18675         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
18676         Make unused TV_OVERLOAD into a start/stop timer.
18677
18678         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
18679         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
18680         to indicate that they are start/stop timers.
18681
18682         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
18683         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
18684         Move initialization to do_compile.
18685         (do_compile): Add initialization from above.
18686         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
18687
18688         * c-decl.c (c_write_global_declarations): Add start/stop of
18689         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
18690
18691         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
18692         or TV_PARSE_INLINE, as appropriate.
18693         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
18694         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
18695
18696 2011-05-02  Jason Merrill  <jason@redhat.com>
18697
18698         PR c++/40975
18699         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
18700
18701 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
18702
18703         PR c/35445
18704         * c-decl.c (finish_decl): Only create a composite if the types are
18705         compatible.
18706
18707 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
18708
18709         * config/fr30/fr30-protos.h (Mmode): Don't define.
18710         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
18711         definition where used.
18712         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
18713         define.  Expand definitions where used.
18714         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
18715         Expand definitions where used.
18716         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
18717         rx_function_arg, rx_function_arg_advance,
18718         rx_function_arg_boundary): Expand definitions of those macros.
18719         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
18720         definition where used.
18721
18722 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
18723
18724         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
18725         reg<->xmm moves.
18726         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
18727         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
18728         with *movv2sf_internal_rex64_avx.
18729         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
18730         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
18731         Use %v prefix in insn mnemonic to handle TARGET_AVX.
18732         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
18733         "vex" in "prefix" attribute calculation.
18734         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
18735
18736 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
18737
18738         PR target/47951
18739         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
18740         inputs match the output.
18741
18742 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
18743
18744         PR target/47955
18745         * config/m68k/m68k.c (m68k_expand_prologue): Set
18746         current_function_static_stack_size.
18747
18748 2011-05-02   Jan Hubicka  <jh@suse.cz>
18749
18750         * lto-streamer.c (lto_streamer_cache_insert_1,
18751         lto_streamer_cache_lookup, lto_streamer_cache_create,
18752         lto_streamer_cache_delete): Use pointer map instead of hashtable.
18753         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
18754
18755 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
18756
18757         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
18758         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
18759         config/m68k/t-opts: New files.
18760         * config/m68k/m68k-tables.opt: New file (generated).
18761         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
18762         extra_options and m68k/t-opts to tmake_file.
18763         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
18764         (all_isas): Initialize using m68k-isas.def.
18765         (all_microarchs): Initialize using m68k-microarchs.def.
18766         (m68k_find_selection): Remove.
18767         (m68k_handle_option): Don't assert that global structures are in
18768         use.  Use error_at.  Access variables via opts pointer.  Don't
18769         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
18770         directly for -m68020-40 and -m68020-60.
18771         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
18772         m68k_tune_entry here.
18773         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
18774         to m68k-opts.h.
18775         (m68k_library_id_string): Remove declaration.
18776         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
18777         (m68k_library_id_string): New Variable.
18778         (march=, mcpu=, mtune=): Use Enum and Var.
18779
18780 2011-05-02  Richard Guenther  <rguenther@suse.de>
18781
18782         * varasm.c (output_constructor_regular_field): Compute zero-based
18783         index with double-ints.  Make sure to ICE instead of producing
18784         wrong code.
18785         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
18786         in asserts.  Properly use a signed type.
18787
18788 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
18789
18790         * config/i386/sse.md (V): New mode iterator.
18791         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
18792         TARGET_SSE2.
18793         (V_256): Rename from AVX256MODE.
18794         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
18795         condition to all users.
18796         (VF1): Ditto.
18797         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
18798         condition to all users.
18799         (VF_128): Make V4SF mode unconditional.
18800         (VF_256): Rename from AVX256MODEF2P.
18801         (VI4F_128): Rename from SSEMODE4S.
18802         (VI8F_128): Rename from SSEMODE2D.
18803         (VI4F_256): Rename from AVX256MODE8P.
18804         (VI8F_256): Rename from AVX256MODE4P.
18805         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
18806         (ssescalarmodesuffix): Remove SF and DF modes.
18807         (SSEMODE124): Remove.
18808         (SSEMODE1248): Ditto.
18809         (SSEMODEF2P): Ditto.
18810         (AVXMODEF2P): Ditto.
18811         (AVXMODEFDP): Ditto.
18812         (AVXMODEFSP): Ditto.
18813         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
18814         unconditional.
18815         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
18816         unconditional.
18817         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
18818         xop_pcmov_<mode>256.  Use V mode iterator.
18819
18820         Adjust RTX patterns globally for renamed mode attributes.
18821
18822 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18823
18824         * haifa-sched.c (sched_emit_insn): Emit insn before first
18825         non-scheduled insn.  Inform back-end about new insn.  Add
18826         new insn to scheduled_insns list.
18827
18828 2011-05-02  Richard Guenther  <rguenther@suse.de>
18829
18830         PR tree-optimization/48822
18831         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
18832         (process_scc): Indicate which iteration we start.
18833
18834 2011-05-02  Jan Hubicka  <jh@suse.cz>
18835
18836         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
18837         (lto_section_overrun): New.
18838         * lto-section-out.c (append_block): Rename to ...
18839         (lto_append_block): ... this one; export.
18840         (lto_output_1_stream): Move lto lto-streamer.h
18841         (lto_output_data_stream): Update.
18842         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
18843         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
18844         functions.
18845
18846 2011-05-02  Richard Guenther  <rguenther@suse.de>
18847
18848         * tree.c (tree_code_counts): New global array.
18849         (record_node_allocation_statistics): Count individual tree codes.
18850         (dump_tree_statistics): Dump individual code stats.
18851
18852 2011-05-01  Jan Hubicka  <jh@suse.cz>
18853
18854         * ipa-inline.c (caller_growth_limits): Fix thinko when
18855         looking for largest stack frame.
18856         * ipa-inline.h (dump_inline_summary): Declare.
18857         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
18858         on stack usage.
18859         (dump_inline_summary): Export.
18860         (debug_inline_summary): Declare as DEBUG_FUNCTION.
18861
18862 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
18863
18864         * reginfo.c (memory_move_cost): Change rclass argument type form
18865         'enum reg_class' to reg_class_t.
18866         * reload.h (memory_move_cost): Update prototype.
18867         * postreload.c reload_cse_simplify_set): Change type dclass var to
18868         reg_class_t.
18869         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
18870         Update prototype.
18871         (ira_allocate_and_set_costs): Change aclass argument type form
18872         'enum reg_class' to reg_class_t.
18873         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
18874         Change aclass argument type to reg_class_t.
18875         (update_conflict_hard_reg_costs): Change type aclass and pref vars
18876         to reg_class_t.
18877         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
18878         memory_move_cost call.
18879
18880         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
18881         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
18882         Change type tmp var to reg_class_t.
18883
18884 2011-04-30  Jan Hubicka  <jh@suse.cz>
18885
18886         * ipa-inline.c (can_inline_edge_p): Disregard limits when
18887         inlining into function with flatten attribute.
18888         (want_inline_small_function_p): Be more realistic about inlining
18889         cold calls where callee size grows.
18890
18891 2011-04-30  Jan Hubicka  <jh@suse.cz>
18892
18893         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
18894         flags.
18895
18896 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
18897
18898         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
18899         PRINT_OPERAND_PUNCT_VALID_P): Remove.
18900         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
18901         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
18902         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
18903         (print_operand): Rename to...
18904         (sparc_print_operand): ...this. Make static. Adjust
18905         sparc_print_operand function call.
18906         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
18907         functions.
18908
18909 2011-04-30  Jan Hubicka  <jh@suse.cz>
18910
18911         PR middle-end/48752
18912         * ipa-inline.c (early_inliner): Disable when doing late
18913         addition of function.
18914
18915 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
18916
18917         * dwarf2out.c (get_address_mode): New inline.
18918         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
18919         if not dwarf_strict emit
18920         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
18921         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
18922         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
18923         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
18924         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
18925         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
18926         mem_loc_descriptor callers.
18927         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18928         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
18929         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
18930         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
18931         (base_types): New variable.
18932         (get_base_type_offset, calc_base_type_die_sizes,
18933         base_type_for_mode, mark_base_types, base_type_cmp,
18934         move_marked_base_types): New functions.
18935         (calc_die_sizes): Assert that die_offset is 0 or equal to
18936         next_die_offset.
18937         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
18938         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
18939         callers.  If not dwarf_strict, call mem_loc_descriptor even for
18940         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
18941         (gen_subprogram_die): Don't give up on call site parameters
18942         with non-integral or large integral modes.  Adjust
18943         mem_loc_descriptor callers.
18944         (prune_unused_types): Call prune_unused_types_mark on base_types
18945         vector entries.
18946         (resolve_addr): Call mark_base_types.
18947         (dwarf2out_finish): Call move_marked_base_types.
18948
18949         PR tree-optimization/48809
18950         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
18951         type.
18952         (gen_inbound_check): Don't compute index_expr - range_min in utype
18953         again, instead reuse SSA_NAME initialized in build_arrays.
18954         Remove two useless gsi_for_stmt calls.
18955
18956 2011-04-29  Jeff Law  <law@redhat.com>
18957
18958         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
18959
18960 2011-04-29  Martin Jambor  <mjambor@suse.cz>
18961
18962         * cgraph.h (cgraph_postorder): Remove declaration.
18963         * ipa-utils.h (ipa_free_postorder_info): Declare.
18964         (ipa_reverse_postorder): Likewise.
18965         * cgraphunit.c: Include ipa-utils.h.
18966         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
18967         * ipa-inline.c: Include ipa-utils.h.
18968         (ipa_inline): Update call to ipa_reverse_postorder.
18969         * ipa-pure-const.c (propagate_pure_const): Update call to
18970         ipa_reduced_postorder and ipa_print_order.  Call
18971         ipa_free_postorder_info to clean up.
18972         (propagate_nothrow): Likewise.
18973         * ipa-reference.c (propagate): Removed a useless call to
18974         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
18975         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
18976         * ipa.c: Include ipa-utils.h.
18977         (ipa_profile): Update call to ipa_reverse_postorder.
18978         (cgraph_postorder): Moved to...
18979         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
18980         (ipa_utils_print_order): Renamed to ipa_print_order.
18981         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
18982         comments.
18983         (ipa_free_postorder_info): New function.
18984         * passes.c: Include ipa-utils.h.
18985         (do_per_function_toporder): Update call to ipa_reverse_postorder.
18986         (ipa_write_summaries): Likewise.
18987         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
18988         (cgraphunit.o): Likewise.
18989         (ipa.o): Likewise.
18990         (ipa-inline.o): Likewise.
18991
18992 2011-04-29  Jan Hubicka  <jh@suse.cz>
18993
18994         * gcc.dg/tree-ssa/inline-10.c: New testcase.
18995         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
18996         * ipa-inline.h (clause_t): Turn into unsigned int.
18997         * ipa-inline-analysis.c (add_clause): Do more simplification.
18998         (and_predicates): Shortcut more cases.
18999         (predicates_equal_p): Move forward; check that clauses are properly
19000         ordered.
19001         (or_predicates): Shortcut more cases.
19002         (edge_execution_predicate): Rewrite as...
19003         (set_cond_stmt_execution_predicate): ... this function; handle
19004         __builtin_constant_p.
19005         (set_switch_stmt_execution_predicate): New .
19006         (compute_bb_predicates): New.
19007         (will_be_nonconstant_predicate): Update TODO.
19008         (estimate_function_body_sizes): Use compute_bb_predicates
19009         and free them later, always try to estimate if stmt is constant.
19010         (estimate_time_after_inlining, estimate_size_after_inlining):
19011         Gracefully handle optimized out edges.
19012         (read_predicate): Fix off by one error.
19013
19014 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
19015
19016         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
19017
19018 2011-04-27  Xinliang David Li  <davidxl@google.com>
19019
19020         * tree-profile.c (init_ic_make_global_vars): Set
19021         tls attribute on ic vars.
19022         * coverage.c (coverage_end_function): Initialize
19023         function_list with zero.
19024
19025 2011-04-29  Richard Guenther  <rguenther@suse.de>
19026
19027         * builtins.c (fold_builtin_classify_type): Use integer_type_node
19028         for the type of the result.
19029         (fold_builtin_isascii): Likewise.
19030         (fold_builtin_toascii): Use integer_type_node where appropriate.
19031         (fold_builtin_logb): Likewise.
19032         (fold_builtin_frexp): Likewise.
19033         (fold_builtin_strstr): Likewise.
19034         (fold_builtin_strpbrk): Likewise.
19035         (fold_builtin_fputs): Likewise.
19036         (fold_builtin_sprintf): Likewise.
19037         (fold_builtin_snprintf): Likewise.
19038         (fold_builtin_printf): Likewise.
19039         (do_mpfr_remquo): Use a proper type for the assigned constant.
19040         (do_mpfr_lgamma_r): Likewise.
19041         * dwarf2out.c (resolve_one_addr): Use size_int.
19042         * except.c (init_eh): Likewise.
19043         (assign_filter_values): Use integer_type_node for filter values.
19044         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
19045         indices.
19046         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
19047         for EH region numbers.
19048         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
19049         for the shift amount.
19050
19051 2011-04-29  Richard Guenther  <rguenther@suse.de>
19052
19053         * expr.h (expand_shift): Rename to ...
19054         (expand_variable_shift): ... this.
19055         (expand_shift): Take a constant shift amount.
19056         * expmed.c (expand_shift): Rename to ...
19057         (expand_variable_shift): ... this.
19058         (expand_shift): New wrapper around expand_variable_shift.
19059         * expr.c (convert_move, emit_group_load_1, emit_group_store,
19060         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
19061         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
19062         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
19063         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
19064         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
19065         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
19066         emit_store_flag_1, emit_store_flag): Likewise.
19067         * builtins.c (expand_builtin_signbit): Likewise.
19068         * calls.c (load_register_parameters): Likewise.
19069         * function.c (assign_parm_setup_block): Likewise.
19070         * lower-subreg.c (resolve_shift_zext): Likewise.
19071         * optabs.c (widen_bswap, expand_abs_nojump,
19072         expand_one_cmpl_abs_nojump, expand_float): Likewise.
19073         * spu/spu.c (spu_expand_extv): Likewise.
19074         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
19075
19076 2011-04-29  Richard Guenther  <rguenther@suse.de>
19077
19078         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
19079         for the remapped region number.
19080         * predict.c (build_predict_expr): Use integer_type_node for the
19081         predict kind.
19082         * fold-const.c (fold_binary_loc): Use integer_type_node for
19083         the shift amount.  Use a proper type for the PLUS_EXPR operand.
19084
19085 2011-04-29  Michael Matz  <matz@suse.de>
19086
19087         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
19088         other trees that just builtins.
19089         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
19090
19091 2011-04-29  Richard Guenther  <rguenther@suse.de>
19092
19093         * tree-nested.c (get_trampoline_type): Use size_int.
19094         (get_nl_goto_field): Likewise.
19095         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
19096         for all indexes.
19097         (lower_eh_constructs_2): Likewise.
19098         (lower_resx): Likewise.
19099         (lower_eh_dispatch): Likewise.
19100         * tree-mudflap.c (mf_build_string): Use size_int.
19101         (mudflap_register_call): Use integer_type_node for the flag.
19102         (mudflap_enqueue_constant): Use size_int.
19103         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
19104         instead of rebuilding it.
19105
19106 2011-04-29  Richard Guenther  <rguenther@suse.de>
19107
19108         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
19109         Handle OBJ_TYPE_REF.
19110         (find_func_aliases_for_call): Use it more consistently.
19111
19112 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
19113
19114         * haifa-sched.c (last_nondebug_scheduled_insn): New.
19115         (rank_for_schedule): Use it.
19116         (schedule_block): Set it.
19117
19118 2011-04-28  David Li  <davidxl@google.com>
19119
19120         * tree.c (crc32_string): Use crc32_byte.
19121         (crc32_byte): New function.
19122         * tree.h (crc32_byte): New function.
19123         * gcov.c (read_graph_file): Handle new cfg_cksum.
19124         (read_count_file): Ditto.
19125         * profile.c (instrument_values): Ditto.
19126         (get_exec_counts): Ditto.
19127         (read_profile_edge_counts): Ditto.
19128         (compute_branch_probabilities): Ditto.
19129         (compute_value_histograms): Ditto.
19130         (branch_prob): Ditto.
19131         (end_branch_prob): Ditto.
19132         * coverage.c (read_counts_file): Ditto.
19133         (get_coverage_counts): Ditto.
19134         (tree_coverage_counter_addr): Ditto.
19135         (coverage_checksum_string): Ditto.
19136         (coverage_begin_output): Ditto.
19137         (coverage_end_function): Ditto.
19138         (build_fn_info_type): Ditto.
19139         (build_fn_info_value): Ditto.
19140         * libgcov.c (gcov_exit): Ditto.
19141         * gcov-dump.c (tag_function): Ditto.
19142         (compute_checksum): Remove.
19143
19144 2011-04-29  Alan Modra  <amodra@gmail.com>
19145
19146         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19147         unspec plus offset.  Tidy macho code.
19148
19149 2011-04-29  Martin Jambor  <mjambor@suse.cz>
19150
19151         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
19152         node instead of a decl.  Update all callers.
19153         * cgraph.h: Update declaration.
19154
19155 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
19156
19157         PR tree-optimization/48765
19158         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
19159         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
19160         to indicate if loop aware SLP is being used.  Scan the statements
19161         and update the vectorization factor according to the type of
19162         vectorization before statement analysis.
19163         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
19164         pass it to vect_analyze_loop_operations.
19165         (vectorizable_reduction): Set number of copies to 1 in case of pure
19166         SLP statement.
19167         * tree-vect-stmts.c (vectorizable_conversion,
19168         vectorizable_assignment, vectorizable_shift,
19169         vectorizable_operation, vectorizable_type_demotion,
19170         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
19171         Likewise.
19172         (vectorizable_condition): Move the check that it is not SLP
19173         vectorization before the number of copies check.
19174         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
19175         to vectorize the loop using SLP.
19176
19177 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
19178
19179         PR middle-end/48597
19180         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
19181         inline asm.
19182
19183 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
19184
19185         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
19186         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
19187         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
19188         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
19189         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
19190         linux*.h headers.
19191         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
19192         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
19193         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
19194         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
19195         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
19196         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
19197         REG_NAME.
19198         * config/i386/linux.h (REG_NAME): Don't define.
19199         * config/i386/linux64.h (REG_NAME): Don't define.
19200         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
19201         Undefine before defining.
19202
19203 2011-04-28  Jan Hubicka  <jh@suse.cz>
19204
19205         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
19206         nonconstant_names array.
19207         (estimate_function_body_sizes): Build nonconstant_names array; handle
19208         BUILT_IN_CONSTANT_P.
19209
19210 2011-04-28  Richard Guenther  <rguenther@suse.de>
19211
19212         PR bootstrap/48804
19213         Revert
19214         2011-04-28  Richard Guenther  <rguenther@suse.de>
19215
19216         * tree-ssa-structalias.c (solve_constraints): Build succ graph
19217         as late as possible.
19218
19219 2011-04-28  Richard Guenther  <rguenther@suse.de>
19220
19221         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
19222         (debug_constraint): Do it here.
19223         (dump_constraints): And here.
19224         (rewrite_constraints): And here.
19225         (dump_constraint_edge): Remove.
19226         (dump_constraint_graph): Rewrite to produce DOT output.
19227         (solve_constraints): Build succ graph as late as possible.
19228         Dump constraint graphs before and after solving.
19229
19230 2011-04-28  Richard Guenther  <rguenther@suse.de>
19231
19232         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
19233         New function split out from ...
19234         (find_func_aliases): ... here.  Call it.
19235         (find_func_aliases_for_call): Likewise.
19236
19237 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19238
19239         * internal-fn.h (internal_fn_name_array): Declare.
19240         (internal_fn_flags_array): Likewise.
19241
19242 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
19243
19244         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
19245         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
19246         Move from sse.md.
19247         (ssemodefsuffix): Remove.
19248         (ssevecmodesuffix): New mode attribute.
19249         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
19250         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
19251         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
19252         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
19253         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
19254         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
19255         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
19256         ssemodesuffix mode attribute.
19257         (float splitters): Use ssevecmodesuffix mode attribute.
19258         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
19259         (sseinsmode): Rename from avxvecmode.
19260         (avxsizesuffix): Rename from avxmodesuffix.
19261         (sseintvecmode): Rename from avxpermvecmode.
19262         (ssedoublevecmode): Rename from ssedoublesizemode.
19263         (ssehalfvecmode): Rename from avxhalfvecmode.
19264         (ssescalarmode): Rename from avxscalarmode.
19265         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
19266         templates for ssemodesuffix mode attribute.
19267         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
19268         mode attribute.
19269
19270         Adjust RTX patterns globally for renamed mode attributes.
19271
19272 2011-04-27  Jan Hubcika  <jh@suse.cz>
19273
19274         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
19275         * ipa-inline-analysis.c: Include alloc-pool.h.
19276         (edge_predicate_pool): New.
19277         (trye_predicate_p): New function
19278         (false_predicate_p): New function.
19279         (add_clause): Sanity check that false clauses are "optimized";
19280         never add clauses to predicate that is already known to be false.
19281         (and_predicate): Use flase_predicate_p.
19282         (evaulate_predicate): Rename to ...
19283         (evaluate_predicate): ... this one; update all callers; assert
19284         that false is not listed among possible truths.
19285         (dump_predicate): Use true_predicate_p.
19286         (account_size_time): Use false_predicate_p.
19287         (evaulate_conditions_for_edge): Rename to ...
19288         (evaluate_conditions_for_edge) ... this one.
19289         (edge_set_predicate): New function.
19290         (inline_edge_duplication_hook): Duplicate edge predicates.
19291         (inline_edge_removal_hook): Free edge predicates.
19292         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
19293         (dump_inline_summary): Update.
19294         (estimate_function_body_sizes): Set edge predicates.
19295         (estimate_calls_size_and_time): Handle predicates.
19296         (estimate_callee_size_and_time): Update.
19297         (remap_predicate): Add toplev_predicate; update comment.
19298         (remap_edge_predicates): New function.
19299         (inline_merge_summary): Compute toplev predicate; update.
19300         (read_predicate): New function.
19301         (read_inline_edge_summary): Use it.
19302         (inline_read_section): Likewise.
19303         (write_predicate): New function.
19304         (write_inline_edge_summary): Use it.
19305         (inline_write_summary): Likewise.
19306         (inline_free_summary): Free alloc pool and edge summary vec.
19307
19308 2011-04-27  Richard Guenther  <rguenther@suse.de>
19309
19310         * tree-ssa-structalias.c (changed_count): Remove.
19311         (changed): Use a bitmap.
19312         (unify_nodes): Adjust.
19313         (do_sd_constraint): Likewise.
19314         (do_ds_constraint): Likewise.
19315         (do_complex_constraint): Likewise.
19316         (solve_graph): Likewise.
19317
19318 2011-04-27  Jan Hubicka  <jh@suse.cz>
19319
19320         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
19321
19322 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
19323
19324         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
19325         (avx_vperm2f128_*_operand): Ditto.
19326         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
19327         Use avx_vpermilp_parallel in insn condition.
19328         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
19329         Use avx_vperm2f128_parallel in insn condition.
19330
19331 2011-04-27  Richard Guenther  <rguenther@suse.de>
19332
19333         * Makefile.in (tree-ssa-structalias.o): Remove
19334         gt-tree-ssa-structalias.h dependency.
19335         (GTFILES): Remove tree-ssa-structalias.c.
19336         * tree.c (allocate_decl_uid): New function.
19337         (make_node_stat): Use it.
19338         (copy_node_stat): Likewise.
19339         * tree.h (allocate_decl_uid): Declare.
19340         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
19341         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
19342         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
19343         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
19344         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
19345         (struct heapvar_map): Likewise.
19346         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
19347         heapvar_insert): Likewise.
19348         (make_heapvar_for): Rename to ...
19349         (make_heapvar): ... this.  Simplify.
19350         (fake_var_decl_obstack): New global var.
19351         (build_fake_var_decl): New function.
19352         (make_constraint_from_heapvar): Adjust.
19353         (handle_lhs_call): Likewise.
19354         (create_function_info_for): Likewise.
19355         (intra_create_variable_infos): Likewise.
19356         (init_alias_vars): Allocate fake_var_decl_obstack.
19357         (init_alias_heapvars, delete_alias_heapvars): Remove.
19358         (compute_points_to_sets): Do not call init_alias_heapvars.
19359         (ipa_pta_execute): Likewise.
19360         (delete_points_to_sets): Free fake_var_decl_obstack.
19361
19362 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19363
19364         * config/spu/divmovti4.c (union qword_UTItype): New data type.
19365         (si_from_UTItype, si_to_UTItype): New functions.
19366         (__udivmodti4): Use them to implement type-punning.
19367         * config/spu/multi3.c (union qword_TItype): New data type.
19368         (si_from_TItype, si_to_TItype): New functions.
19369         (__multi3): Use them to implement type-punning.
19370
19371 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19372
19373         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
19374
19375 2011-04-27  Jan Hubicka  <jh@suse.cz>
19376
19377         * ipa-prop.c (function_insertion_hook_holder): New holder.
19378         (ipa_add_new_function): New function.
19379         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
19380         Register/deregister holder.
19381
19382 2011-04-27  Richard Guenther  <rguenther@suse.de>
19383
19384         PR tree-optimization/48772
19385         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
19386
19387 2011-04-27  Richard Guenther  <rguenther@suse.de>
19388
19389         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
19390         TARGET_MEM_REF handling.
19391
19392 2011-04-27  Nick Clifton  <nickc@redhat.com>
19393
19394         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
19395         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
19396         (REG_CLASS_NAMES): Likewise.
19397         (REG_CLASS_CONTENTS): Likewise.
19398         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
19399         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
19400         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
19401         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
19402         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
19403         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
19404         duplicate register classes.
19405         (frv_class_likely_spilled_p): Likewise.
19406         (frv_register_move_cost): Likewise.
19407
19408         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
19409         end of the regno_reg_class array.
19410
19411 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
19412
19413         PR c/48742
19414         * c-typeck.c (build_binary_op): Don't wrap arguments if
19415         int_operands is true.
19416
19417 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
19418
19419         PR target/48767
19420         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
19421         targetm.calls.must_pass_in_stack for void type.
19422
19423 2011-04-26  Jan Hubicka  <jh@suse.cz>
19424
19425         * cgraphbuild.c (build_cgraph_edges): Update call
19426         of cgraph_create_edge and cgraph_create_indirect_edge.
19427         * cgraph.c (cgraph_create_edge_including_clones,
19428         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
19429         cgraph_update_edges_for_call_stmt_node): Do not take nest
19430         argument; do not initialize call_stmt_size/time.
19431         (dump_cgraph_node): Do not dump nest.
19432         (cgraph_clone_edge): Do not take loop_nest argument;
19433         do not propagate it; do not clone call_stmt_size/time.
19434         (cgraph_clone_node): Likewise.
19435         (cgraph_create_virtual_clone): Update.
19436         * cgraph.h (struct cgraph_edge): Remove
19437         call_stmt_size/call_stmt_time/loop_nest.
19438         (cgraph_create_edge, cgraph_create_indirect_edge,
19439         cgraph_create_edge_including_clones, cgraph_clone_node): Update
19440         prototype.
19441         * tree-emutls.c (gen_emutls_addr): Update.
19442         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
19443         loop_nest; handle indirect calls, too.
19444         (clone_inlined_nodes): Do not care about updating inline summaries.
19445         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
19446         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
19447         stream call_stmt_size/call_stmt_time/loop_nest.
19448         * ipa-inline.c (edge_badness): Update.
19449         (ipa_inline): dump summaries after inlining.
19450         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
19451         New.
19452         (inline_edge_summary): New function.
19453         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
19454         (inline_edge_removal_hook): Handle edge summaries.
19455         (inline_edge_duplication_hook): New hook.
19456         (inline_summary_alloc): Alloc hooks.
19457         (initialize_growth_caches): Do not register removal hooks.
19458         (free_growth_caches); Do not free removal hook.
19459         (dump_inline_edge_summary): New function.
19460         (dump_inline_summary): Use it.
19461         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
19462         (inline_update_callee_summaries): New function.
19463         (inline_merge_summary): Use it.
19464         (do_estimate_edge_time, do_estimate_edge_growth): Update.
19465         (read_inline_edge_summary): New function.
19466         (inline_read_section): Use it.
19467         (write_inline_edge_summary): New function.
19468         (inline_write_summary): Use it.
19469         (inline_free_summary): Free edge new holders.
19470         * tree-inline.c (copy_bb): Update.
19471
19472 2011-04-26  Jason Merrill  <jason@redhat.com>
19473
19474         * tree-eh.c (lower_try_finally_switch): Create the label along with
19475         the CASE_LABEL_EXPR.
19476
19477 2011-04-26  David S. Miller  <davem@davemloft.net>
19478             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19479
19480         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
19481         * configure: Regenerate.
19482
19483 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
19484
19485         PR target/48258
19486         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
19487         reduction.
19488         (VEC_reduc): New code iterator and splitters for vector reduction.
19489         (VEC_reduc_name): Ditto.
19490         (VEC_reduc_rtx): Ditto.
19491         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
19492         (reduc_<VEC_reduc_name>_v4sf): Ditto.
19493
19494         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
19495         support for extracting SF on VSX.
19496
19497         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
19498         generating xscvspdp.
19499         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
19500         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
19501         double add, minimum, maximum vector reduction.
19502         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
19503         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
19504         optimize double vector reduction.
19505         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
19506
19507 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
19508
19509         * config/fr30/fr30.h (inhibit_libc): Don't define.
19510         * config/m32r/m32r-protos.h: Correct comment.
19511         * config/v850/v850.h (GHS_default_section_names,
19512         GHS_current_section_names): Use tree, not union tree_node *.
19513
19514 2011-04-26  Xinliang David Li  <davidxl@google.com>
19515
19516         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
19517         * c-family/c-opts.c (c_common_handle_option): Set
19518         warn_maybe_uninitialized.
19519         * opts.c (common_handle_option): Ditto.
19520         * common.opt:  New option.
19521         * tree-ssa.c (warn_uninit): Add one more parameter.
19522         (warn_uninitialized_var): Pass warning code.
19523         * tree-flow.h: Interface change.
19524
19525 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19526
19527         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
19528         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
19529         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
19530
19531 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19532
19533         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
19534         * config/mips/mips.opt (mmips-tfile): Remove.
19535
19536         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
19537         mips-tdump reference to ...
19538         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
19539         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
19540         reference by Tru64 UNIX.
19541
19542 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
19543
19544         PR debug/48768
19545         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
19546         is error_mark_node, set value to NULL.
19547
19548         PR tree-optimization/48734
19549         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
19550         if return value from maybe_fold_*_comparsions isn't something
19551         the code is prepared to handle.
19552
19553 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
19554
19555         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
19556         mode check.
19557         (ext_QIreg_nomode_operands): Remove.
19558         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
19559         (*andsi_1): Ditto.
19560         (*andhi_1): Ditto.
19561
19562 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
19563
19564         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
19565
19566 2011-04-26  Richard Guenther  <rguenther@suse.de>
19567
19568         * c-typeck.c (build_unary_op): Do not expand array-refs via
19569         pointer arithmetic.  Only adjust qualifiers for function types.
19570
19571 2011-04-26  Richard Guenther  <rguenther@suse.de>
19572
19573         PR middle-end/48694
19574         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
19575         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
19576         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
19577         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
19578
19579 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
19580
19581         * doc/extend.texi: Document __underlying_type.
19582
19583 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
19584
19585         * config/rs6000/titan.md (automata_option "progress"): Remove.
19586
19587 2011-04-25  Jeff Law  <law@redhat.com>
19588
19589         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
19590
19591 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
19592
19593         * system.h (ENUM_BITFIELD): Remove.
19594
19595 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
19596             Eric Botcazou  <ebotcazou@adacore.com>
19597
19598         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
19599         for STORE_FLAG_VALUE==-1 case.
19600
19601 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
19602
19603         PR target/43804
19604         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
19605         LEGITIMATE_PIC_OPERAND_P.
19606
19607 2011-04-24  Jan Hubicka  <jh@suse.cz>
19608
19609         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
19610         WPA hack.
19611         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
19612         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
19613         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
19614         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
19615         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
19616         Sanity check predicate length.
19617         (remap_predicate): Likewise; sanity check jump functions.
19618         (inline_read_section, inline_write_summary): Sanity check
19619         predicate length.
19620
19621 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
19622
19623         PR other/48748
19624         * doc/extend.texi (Type Traits): Document __is_standard_layout,
19625         __is_literal_type, and __is_trivial; update throughout about
19626         possibly cv-qualified void types.
19627
19628 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
19629
19630         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
19631         testsuite and make it version agnostic.
19632
19633 2011-04-22  Jan Hubicka  <jh@suse.cz>
19634
19635         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
19636
19637 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
19638
19639         PR c/48685
19640         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
19641         to VOID_TYPE even around MODIFY_EXPR.
19642
19643 2011-04-22  Mike Stump  <mikestump@comcast.net>
19644
19645         * gensupport.c (read_md_rtx): Fix typo in comment.
19646         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
19647         comment.
19648
19649 2011-04-22  Jan Hubicka  <jh@suse.cz>
19650
19651         * gengtype.c (open_base_files): Add ipa-inline.h include.
19652         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
19653         ipa-prop.c; update all uses.
19654         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
19655         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
19656         merge summary of inlined function into former caller.
19657         * ipa-inline.c (max_benefit): Remove.
19658         (edge_badness): Compensate for removal of benefits.
19659         (update_caller_keys): Use
19660         reset_node_growth_cache/reset_edge_growth_cache.
19661         (update_callee_keys): Likewise.
19662         (update_all_callee_keys): Likewise.
19663         (inline_small_functions): Do not collect max_benefit; do not reset
19664         estimated_growth; call free_growth_caches and initialize_growth_caches.
19665         * ipa-inline.h (struct condition, type clause_t, struct predicate,
19666         struct size_time_entry): New structures.
19667         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
19668         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
19669         and estimated_growth.
19670         (edge_growth_cache_entry): New structure.
19671         (node_growth_cache, edge_growth_cache): New global vars.
19672         (estimate_growth): Turn into inline.
19673         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
19674         initialize_growth_caches, free_growth_caches): Declare.
19675         (estimate_edge_growth): Rewrite.
19676         (estimate_edge_time): Implement as inline cache lookup.
19677         (reset_node_growth_cache, reset_edge_growth_cache): New inline
19678         functions.
19679         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
19680         (NUM_CONDITIONS): New constant.
19681         (predicate_conditions): New enum.
19682         (IS_NOT_CONSTANT): New constant.
19683         (edge_removal_hook_holder): New var.
19684         (node_growth_cache, edge_growth_cache): New global vars.
19685         (true_predicate, single_cond_predicate, false_predicate,
19686         not_inlined_predicate, add_condition, add_clause, and_predicates,
19687         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
19688         dump_clause, dump_predicate, account_size_time,
19689         evaulate_conditions_for_edge): New functions.
19690         (inline_summary_alloc): Move to heap.
19691         (inline_node_removal_hook): Clear condition and entry vectors.
19692         (inline_edge_removal_hook): New function.
19693         (initialize_growth_caches, free_growth_caches): New function.
19694         (dump_inline_summary): Update.
19695         (edge_execution_predicate): New function.
19696         (will_be_nonconstant_predicate): New function.
19697         (estimate_function_body_sizes): Compute BB and constantness predicates.
19698         (compute_inline_parameters): Do not clear estimated_growth.
19699         (estimate_edge_size_and_time): New function.
19700         (estimate_calls_size_and_time): New function.
19701         (estimate_callee_size_and_time): New function.
19702         (remap_predicate): New function.
19703         (inline_merge_summary): New function.
19704         (do_estimate_edge_time): New function based on...
19705         (estimate_edge_time): ... this one.
19706         (do_estimate_edge_growth): New function.
19707         (do_estimate_growth): New function based on....
19708         (estimate_growth): ... this one.
19709         (inline_analyze_function): Analyze after deciding on jump functions.
19710         (inline_read_section): New function.
19711         (inline_read_summary): Use it.
19712         (inline_write_summary): Write all the new data.
19713         * ipa-prop.c (ipa_get_param_decl_index): Export.
19714         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
19715         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
19716         Declare.
19717         (ipa_get_lattice): Move here from ipa-cp.c
19718         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
19719         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
19720         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
19721         cgraph_edge_inlinable_p): Remove.
19722         * cgraphunit.c: Include ipainline.h
19723         (cgraph_process_new_functions): Update call of
19724         compute_inline_parameters.
19725
19726 2011-04-22  Richard Guenther  <rguenther@suse.de>
19727
19728         * tree.c (build_int_cst): Properly create canonicalized integer
19729         constants.
19730         (build_int_cst_type): Remove scary comments.
19731
19732 2011-04-22  Xinliang David Li  <davidxl@google.com>
19733
19734         * toplev.c (process_options): Enable -Werror=coverage-mismatch
19735         by default when -Wno-error is not specified.
19736         * opts-global.c (decode_options): Remove call to
19737         control_warning_options.
19738
19739 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
19740
19741         PR tree-optimization/48717
19742         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
19743         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
19744
19745 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
19746
19747         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
19748         definition where used.
19749
19750 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
19751
19752         PR c/48716
19753         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
19754         TREE_STATIC variables declared inside of some OpenMP construct.
19755
19756 2011-04-22  Martin Jambor  <mjambor@suse.cz>
19757
19758         PR middle-end/48585
19759         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
19760
19761 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
19762
19763         PR c/36750
19764         * c-typeck.c (pop_init_level): Do not warn about initializing
19765         with ` = {0}'.
19766
19767 2011-04-22  Alan Modra  <amodra@gmail.com>
19768
19769         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
19770         when returning call_cookie.
19771         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
19772         pointers, to functions with no more vector args than the current
19773         function, and some non-local calls for ABI_V4.
19774         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
19775         sibcall_nonlocal_aix64): Combine to ..
19776         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
19777         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
19778         (sibcall_value_nonlocal_aix<mode>): ..likewise.
19779         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
19780         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
19781         operand.
19782         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
19783         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
19784         sibcall_value_symbolic_64): Delete.
19785
19786 2011-04-21  Xinliang David Li  <davidxl@google.com>
19787
19788         * cgraph.h: Remove pid.
19789         * cgraph.c: Remove pid.
19790         * value-prof.c (init_node_map): New function.
19791         (del_node_map): New function.
19792         (find_func_by_funcdef_no): New function.
19793         (gimple_ic_transform): Call new function.
19794         * cgraphunit.c (cgraph_finalize_function): Remove pid.
19795         * function.c (get_last_funcdef_no): New function.
19796         * function.h (get_last_funcdef_no): New function.
19797         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
19798         to libgcov function.
19799         (tree-profiling): Call node map init and delete function.
19800
19801 2011-04-21  Ian Lance Taylor  <iant@google.com>
19802
19803         * godump.c (go_format_type): Use exported Go name for anonymous
19804         field name.
19805
19806 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19807
19808         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
19809         Call builtin_function_type_list instead of builtin_function_type.
19810         (UNARY, BINARY, TRINARY, QUAD): Likewise.
19811
19812 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19813
19814         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
19815         build_function_type_list instead of build_function_type.
19816         Delete variable `endlink'.
19817
19818 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19819
19820         * config/s390/s390.c (s390_init_builtins): Call
19821         build_function_type_list instead of build_function_type.
19822
19823 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19824
19825         * config/ia64/ia64.c (ia64_init_builtins): Call
19826         build_function_type_list instead of builtin_function_type.
19827
19828 2011-04-21  Easwaran Raman  <eraman@google.com>
19829
19830         * cfgexpand.c (stack_var): Remove OFFSET...
19831         (add_stack_var): ...and its reference here...
19832         (expand_stack_vars): ...and here.
19833         (stack_var_cmp): Sort by descending order of size.
19834         (partition_stack_vars): Change heuristic.
19835         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
19836         (dump_stack_var_partition): Add newline after each partition.
19837
19838 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
19839             Jeff Law  <law@redhat.com>
19840
19841         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
19842         * gengtype.c (matching_file_name_substitute): Likewise.
19843
19844 2011-04-21  Richard Guenther  <rguenther@suse.de>
19845
19846         PR lto/48703
19847         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
19848
19849 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
19850
19851         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
19852
19853 2011-04-21  Richard Guenther  <rguenther@suse.de>
19854
19855         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
19856         file name.
19857
19858 2011-04-21  Richard Guenther  <rguenther@suse.de>
19859
19860         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
19861         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
19862         Use DECL_P, not SSA_VAR_P.
19863         (ptr_derefs_may_alias_p): Likewise.
19864         (ptr_deref_may_alias_ref_p_1): Likewise.
19865         (decl_refs_may_alias_p): Likewise.
19866         (refs_may_alias_p_1): Likewise.
19867         (ref_maybe_used_by_call_p_1): Likewise.
19868         (call_may_clobber_ref_p_1): Likewise.
19869         (indirect_ref_may_alias_decl_p): Assume indirect refrences
19870         are either MEM_REF or TARGET_MEM_REF.
19871         (indirect_refs_may_alias_p): Likewise.
19872         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
19873         for MEM_EXPR of indirect calls.
19874
19875 2011-04-21  Tristan Gingold  <gingold@adacore.com>
19876
19877         * vmsdbgout.c (write_srccorr): Compute file length from the string.
19878         (dst_file_info_struct): Remove flen field.
19879         (lookup_filename): Remove code that set flen field.
19880
19881 2011-04-21  Tristan Gingold  <gingold@adacore.com>
19882
19883         * config/ia64/ia64.c (ia64_start_function): Add a guard.
19884
19885 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
19886
19887         PR target/48708
19888         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
19889         vec_extract and vec_concat for non-SSE4_1 targets.
19890
19891 2011-04-21  Richard Guenther  <rguenther@suse.de>
19892
19893         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
19894         return statements.
19895
19896 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
19897
19898         * config/i386/cygming.h (union tree_node, TREE): Don't define or
19899         undefine.
19900         (FILE): Don't undefine.
19901
19902 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
19903
19904         * config/alpha/alpha.c (struct machine_function): Use rtx, not
19905         struct rtx_def *.
19906         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
19907         struct rtx_def *.
19908         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
19909         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
19910         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
19911         rtx_def *.
19912         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
19913         definitions where used.
19914         * config/microblaze/microblaze.h (struct microblaze_args): Use
19915         rtx, not struct rtx_def *.
19916         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
19917         rtx_def *.
19918         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
19919         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
19920         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
19921         not struct rtx_def *.
19922         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
19923         struct rtx_def *.
19924         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
19925         rtx_def *.
19926         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
19927
19928 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19929
19930         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
19931         operand_equal_p to compare DR_BASE_ADDRESSes.
19932         (vect_check_interleaving): Likewise.
19933
19934 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19935
19936         PR target/46329
19937         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
19938         for all Neon struct constants.
19939
19940 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19941
19942         * target.def (legitimate_constant_p): New hook.
19943         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
19944         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
19945         * doc/tm.texi: Regenerate.
19946         * hooks.h (hook_bool_mode_rtx_true): Declare.
19947         * hooks.c (hook_bool_mode_rtx_true): Define.
19948         * system.h (LEGITIMATE_CONSTANT_P): Poison.
19949         * calls.c (precompute_register_parameters): Replace uses of
19950         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
19951         (emit_library_call_value_1): Likewise.
19952         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
19953         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
19954         * ira-costs.c (scan_one_insn): Likewise.
19955         * recog.c (general_operand, immediate_operand): Likewise.
19956         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
19957         * reload1.c (init_eliminable_invariants): Likewise.
19958
19959         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
19960         mode argument.
19961         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
19962         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
19963         argument.
19964         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19965         * config/alpha/predicates.md (input_operand): Update call to
19966         alpha_legitimate_constant_p.
19967
19968         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
19969         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
19970         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
19971         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19972         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
19973         (arm_legitimate_constant_p): New functions.
19974         (arm_cannot_force_const_mem): Make static.
19975
19976         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
19977
19978         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
19979         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
19980         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
19981         instead of bfin_legitimate_constant_p.
19982         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
19983         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19984
19985         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
19986
19987         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
19988
19989         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
19990         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
19991         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19992         (frv_legitimate_constant_p): Make static.  Add a mode argument.
19993
19994         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
19995         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
19996         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
19997
19998         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
19999         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
20000         * config/i386/i386.c (legitimate_constant_p): Rename to...
20001         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
20002         argument.
20003         (ix86_cannot_force_const_mem): Update accordingly.
20004         (ix86_legitimate_address_p): Likewise.
20005         (TARGET_LEGITIMATE_CONSTANT_P): Define.
20006         * config/i386/i386.md: Update commentary.
20007
20008         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
20009         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
20010         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
20011         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
20012
20013         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
20014
20015         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
20016         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
20017         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
20018         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
20019
20020         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
20021         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
20022         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
20023
20024         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
20025         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
20026         (m32r_legitimate_constant_p): New function.
20027
20028         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
20029         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
20030         LEGITIMATE_CONSTANT_P.
20031         (LEGITIMATE_CONSTANT_P): Delete.
20032         * config/m68k/m68k.c (m68k_expand_prologue): Call
20033         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
20034         (m68k_legitimate_constant_p): New function.
20035         * config/m68k/m68k.md: Update comments.
20036
20037         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
20038         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
20039         (mcore_legitimate_constant_p): New function.
20040
20041         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
20042         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
20043         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
20044         Add a mode argument.
20045         (mep_legitimate_address): Update accordingly.
20046         (TARGET_LEGITIMATE_CONSTANT_P): Define.
20047
20048         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
20049         Delete.
20050         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
20051         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
20052         static.  Check OP's mode for VOIDmode.
20053         (microblaze_legitimate_constant_p): New function.
20054         (TARGET_LEGITIMATE_CONSTANT_P): Define.
20055
20056         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
20057         * config/mips/mips.c (mips_legitimate_constant_p): New function.
20058         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
20059         (TARGET_LEGITIMATE_CONSTANT_P): Define.
20060         * config/mips/predicates.md: Update comments.
20061
20062         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
20063         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
20064         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
20065         (mmix_legitimate_constant_p): Make static, return a bool, and take
20066         a mode argument.
20067         (mmix_print_operand_address): Update accordingly.
20068
20069         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
20070         Delete.
20071         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
20072         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
20073         static.  Add a mode argument.
20074         (TARGET_LEGITIMATE_CONSTANT_P): Define.
20075
20076         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
20077
20078         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
20079         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
20080         (pa_legitimate_constant_p): New function.
20081
20082         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
20083
20084         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
20085         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
20086         (pdp11_legitimate_constant_p): New function.
20087
20088         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
20089         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
20090         (rs6000_legitimate_constant_p): New function.
20091
20092         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
20093         (rx_legitimate_constant_p): ...this.
20094         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
20095         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
20096         (rx_legitimate_constant_p): ...this.
20097         (TARGET_LEGITIMATE_CONSTANT_P): Define.
20098         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
20099
20100         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
20101         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
20102         * config/s390/s390.c (legitimate_constant_p): Rename to...
20103         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
20104         and add a mode argument.
20105         (TARGET_LEGITIMATE_CONSTANT_P): Define.
20106
20107         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
20108
20109         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
20110         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
20111         (sh_legitimate_constant_p): New function.
20112
20113         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
20114         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
20115         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
20116         (legitimate_constant_p): Rename to...
20117         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
20118         argument.
20119         (constant_address_p): Update accordingly.
20120
20121         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
20122         argument and return a bool.
20123         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
20124         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
20125         (spu_legitimate_constant_p): Add a mode argument and return a bool.
20126         (spu_rtx_costs): Update accordingly.
20127         * config/spu/predicates.md (vec_imm_operand): Likewise.
20128
20129         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
20130
20131         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
20132         * config/v850/v850.c (v850_legitimate_constant_p): New function.
20133         (TARGET_LEGITIMATE_CONSTANT_P): Define.
20134
20135         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
20136         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
20137         * config/vax/vax.c (legitimate_constant_p): Likewise.
20138
20139         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
20140         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
20141         (xtensa_legitimate_constant_p): New function.
20142
20143 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
20144
20145         * target.def (cannot_force_const_mem): Add a mode argument.
20146         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
20147         * doc/tm.texi: Regenerate.
20148         * hooks.h (hook_bool_mode_rtx_false): Declare.
20149         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
20150         (hook_bool_mode_const_rtx_true): Likewise.
20151         (hook_bool_mode_rtx_false): New function.
20152         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
20153         to be non-VOID.  Update call to cannot_force_const_mem.
20154         (find_reloads): Update accordingly.
20155         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
20156         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
20157         argument.
20158         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
20159         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
20160         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
20161         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
20162         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
20163         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
20164         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
20165         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
20166         (m68k_cannot_force_const_mem): ...this new function.
20167         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
20168         argument.
20169         (mips_const_insns, mips_legitimize_const_move): Update calls.
20170         (mips_secondary_reload_class): Likewise.
20171         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
20172         (pa_cannot_force_const_mem): ...this new function.
20173         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
20174         (rs6000_cannot_force_const_mem): ...this new function.
20175         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
20176         argument.
20177         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
20178         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
20179         to...
20180         (xtensa_cannot_force_const_mem): ...this new function.
20181
20182 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
20183
20184         * config/mips/mips.c (mips16_build_function_stub): Call
20185         build_function_type_list instead of build_function_type.
20186         (mips16_build_call_stub): Likewise.
20187
20188 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
20189
20190         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
20191         instead of build_function_type.
20192
20193 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
20194
20195         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
20196         instead of build_function_type.
20197
20198 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
20199
20200         PR target/48678
20201         * config/i386/i386.md (insv): Change operand 0 constraint to
20202         "register_operand".  Change operand 1 and 2 constraint to
20203         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
20204         * config/i386/sse.md (sse4_1_pinsrb): Export.
20205         (sse2_pinsrw): Ditto.
20206         (sse4_1_pinsrd): Ditto.
20207         (sse4_1_pinsrq): Ditto.
20208         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
20209         * config/i386/i386.c (ix86_expand_pinsr): New.
20210
20211 2011-04-20  Easwaran Raman  <eraman@google.com>
20212
20213         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
20214         containing union type only with -fstrict-aliasing.
20215
20216 2011-04-20  Jim Meyering  <meyering@redhat.com>
20217
20218         Remove useless if-before-free tests.
20219         * calls.c (expand_call, save_area): Likewise.
20220         * cfgcleanup.c (try_forward_edges): Likewise.
20221         * collect2.c (collect_execute): Likewise.
20222         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
20223         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
20224         * coverage.c (coverage_checksum_string): Likewise.
20225         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
20226         * cselib.c (cselib_init): Likewise.
20227         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
20228         (df_set_clean_cfg): Likewise.
20229         * function.c (free_after_compilation): Likewise.
20230         * gcc.c (do_spec_1, main): Likewise.
20231         * gcov.c (create_file_names): Likewise.
20232         * gensupport.c (identify_predicable_attribute): Likewise.
20233         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
20234         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
20235         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
20236         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
20237         * ipa-pure-const.c (local_pure_const): Likewise.
20238         * ipa-reference.c (propagate): Likewise.
20239         * ira-costs.c (free_ira_costs): Likewise.
20240         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
20241         * matrix-reorg.c (mat_free): Likewise.
20242         * prefix.c (get_key_value): Likewise.
20243         * profile.c (compute_value_histograms): Likewise.
20244         * reload1.c (free_reg_equiv): Likewise.
20245         * sched-deps.c (free_deps): Likewise.
20246         * sel-sched-ir.c (fence_clear): Likewise.
20247         * sese.c (set_rename, if_region_set_false_region): Likewise.
20248         * tree-data-ref.c (free_rdg): Likewise.
20249         * tree-eh.c (lower_try_finally): Likewise.
20250         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
20251         * tree-ssa-live.c (delete_var_map): Likewise.
20252         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
20253         * tree-ssa-pre.c (phi_trans_add): Likewise.
20254
20255 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
20256
20257         PR tree-optimization/48611
20258         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
20259         beyond ERT_MUST_NOT_THROW region.
20260
20261 2011-04-20  Catherine Moore  <clm@codesourcery.com>
20262
20263         * config/mips/mips.opt (mfix-24k): New.
20264         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
20265         * config/mips/mips.md (length): Increase by 4 for stores if
20266         fixing 24K errata.
20267         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
20268         all noreorder if fixing 24K errata.
20269         * doc/invoke.texi: Document mfix-24k.
20270
20271 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
20272
20273         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
20274         quad-word modes, reduce to 9-bit index range when above 1016 limit.
20275
20276 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
20277
20278         * config/arm/arm.c (arm_gen_constant): Move movw support ....
20279         (const_ok_for_op): ... to here.
20280
20281 2011-04-20  Kai Tietz  <ktietz@redhat.com>
20282
20283         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
20284         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
20285
20286 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
20287
20288         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
20289
20290 2011-04-20  Richard Guenther  <rguenther@suse.de>
20291
20292         PR tree-optimization/47892
20293         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
20294         are if-convertible.
20295
20296 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
20297
20298         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
20299
20300 2011-04-20  Tristan Gingold  <gingold@adacore.com>
20301
20302         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
20303
20304 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
20305
20306         PR target/18145
20307
20308         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
20309         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
20310         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
20311         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
20312         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
20313
20314         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
20315         New prototype.
20316
20317         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
20318         (avr_asm_named_section, avr_asm_output_aligned_common,
20319         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
20320         New functions to update...
20321         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
20322         (avr_asm_init_sections): Overwrite section callbacks for
20323         data_section, bss_section.
20324         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
20325         from here to...
20326         (avr_file_end): ...here.
20327
20328 2011-04-20  Richard Guenther  <rguenther@suse.de>
20329
20330         PR middle-end/48695
20331         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
20332         objects and types here.  Adjust for their offset before comparing.
20333
20334 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
20335
20336         * tree-vect-stmts.c (vectorizable_store): Only chain one related
20337         statement per copy.
20338
20339 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
20340
20341         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
20342         (GIMPLE_H): Include $(INTERNAL_FN_H).
20343         (OBJS-common): Add internal-fn.o.
20344         (internal-fn.o): New rule.
20345         * internal-fn.def: New file.
20346         * internal-fn.h: Likewise.
20347         * internal-fn.c: Likewise.
20348         * gimple.h: Include internal-fn.h.
20349         (GF_CALL_INTERNAL): New gf_mask.
20350         (gimple_statement_call): Put fntype into a union with a new
20351         internal_fn field.
20352         (gimple_build_call_internal): Declare.
20353         (gimple_build_call_internal_vec): Likewise.
20354         (gimple_call_same_target_p): Likewise.
20355         (gimple_call_internal_p): New function.
20356         (gimple_call_internal_fn): Likewise.
20357         (gimple_call_fntype): Return null for internal calls.
20358         (gimple_call_set_fntype): Assert that the function is not internal.
20359         (gimple_call_set_fn): Likewise.
20360         (gimple_call_set_fndecl): Likewise.
20361         (gimple_call_set_internal_fn): New function.
20362         (gimple_call_addr_fndecl): Handle null functions.
20363         (gimple_call_return_type): Likewise null types.
20364         * gimple.c (gimple_build_call_internal_1): New function.
20365         (gimple_build_call_internal): Likewise.
20366         (gimple_build_call_internal_vec): Likewise.
20367         (gimple_call_same_target_p): Likewise.
20368         (gimple_call_flags): Handle calls to internal functions.
20369         (gimple_call_fnspec): New function.
20370         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
20371         (gimple_has_side_effects): Handle null functions.
20372         (gimple_rhs_has_side_effects): Likewise.
20373         (gimple_call_copy_skip_args): Handle calls to internal functions.
20374         * cfgexpand.c (expand_call_stmt): Likewise.
20375         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
20376         * gimple-fold.c (gimple_fold_call): Handle null functions.
20377         (gimple_fold_stmt_to_constant_1): Don't fold
20378         calls to internal functions.
20379         * gimple-low.c (gimple_check_call_args): Handle calls to internal
20380         functions.
20381         * gimple-pretty-print.c (dump_gimple_call): Likewise.
20382         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
20383         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
20384         (do_warn_unused_result): Likewise.
20385         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
20386         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
20387         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
20388         the target of a call.
20389         (initialize_hash_element): Update accordingly.
20390         (hashable_expr_equal_p): Use gimple_call_same_target_p.
20391         (iterative_hash_hashable_expr): Handle calls to internal functions.
20392         (print_expr_hash_elt): Likewise.
20393         * tree-ssa-pre.c (can_value_number_call): Likewise.
20394         (eliminate): Handle null functions.
20395         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
20396         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
20397         (find_func_aliases): Likewise.
20398         * value-prof.c (gimple_ic_transform): Likewise.
20399         (gimple_indirect_call_to_profile): Likewise.
20400         * lto-streamer-in.c (input_gimple_stmt): Likewise.
20401         * lto-streamer-out.c (output_gimple_stmt): Likewise.
20402
20403 2011-04-19  Jan Hubicka  <jh@suse.cz>
20404
20405         * ipa-inline-transform.c (save_inline_function_body): Add comments.
20406         * ipa-inline.c (inline_small_functions): Compute summaries first,
20407         populate heap later.
20408
20409 2011-04-19  Jan Hubicka  <jh@suse.cz>
20410
20411         * cgraph.h (save_inline_function_body): Remove.
20412         * ipa-inline-transform.c: New file, broke out of...
20413         * ipa-inline.c: ... this one; Update toplevel comment.
20414         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
20415         make global.
20416         (update_noncloned_frequencies): Move to ipa-inline-transform.c
20417         (cgraph_mark_inline_edge): Rename to inline_call; move to
20418         ipa-inline-transform.c.
20419         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
20420         move to ipa-inline-transform.c
20421         (recursive_inlining, inline_small_functions, flatten_function,
20422         ipa_inline, inline_always_inline_functions,
20423         early_inline_small_functions): Update.
20424         (inline_transform): Move to ipa-inline-transform.c.
20425         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
20426         Declare.
20427         * Makefile.in (ipa-inline-transform.o): New file.
20428         * cgraphunit.c (save_inline_function_body): Move to
20429         ipa-inline-transform.c
20430
20431 2011-04-19  DJ Delorie  <dj@redhat.com>
20432
20433         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
20434         registers if we already know there aren't any.
20435         (m32c_emit_epilogue): Don't emit a barrier here.
20436         (m32c_emit_eh_epilogue): Likewise.
20437         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
20438         operands at expand time.
20439         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
20440         int" wchar type.
20441         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
20442         duplicates.  Provide aliases instead.
20443         * config/m32c/prologue.md (eh_return): Emit a barrier here.
20444         (eh_epilogue): Add a "(return)" here as a hint to other parts of
20445         the compiler.
20446
20447 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
20448
20449         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
20450         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
20451         (general_or_i64_p, sparc_register_move_cost): New function.
20452
20453 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20454
20455         * doc/install.texi (Configuration, --enable-threads): Remove mach.
20456         Add lynx, mipssde.  Sort table.
20457
20458 2011-04-19  Xinliang David Li  <davidxl@google.com>
20459
20460         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
20461         not negative.
20462
20463 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
20464
20465         PR target/48678
20466         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
20467         is a SUBREG with non-MODE_INT mode inside of it.
20468
20469 2011-04-19  Martin Jambor  <mjambor@suse.cz>
20470
20471         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
20472         also according to actual contants.
20473         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
20474         (gimple_fold_call): Use it.
20475         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
20476
20477 2011-04-19  Martin Jambor  <mjambor@suse.cz>
20478
20479         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
20480         non-pointer assignments.
20481
20482 2011-04-19  Martin Jambor  <mjambor@suse.cz>
20483
20484         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
20485         account anc_offset and otr_type from the indirect edge info.
20486         * ipa-prop.c (get_ancestor_addr_info): New function.
20487         (compute_complex_ancestor_jump_func): Assignment analysis moved to
20488         get_ancestor_addr_info, call it.
20489         (ipa_note_param_call): Do not initialize information about polymorphic
20490         calls, return the indirect call graph edge.  Remove the last
20491         parameter, adjust all callers.
20492         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
20493         parameters.  Initialize polymorphic information in the indirect edge.
20494
20495 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
20496
20497         PR lto/48148
20498         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
20499         the types if they have different enumeration identifiers.
20500
20501 2011-04-19  Jan Hubicka  <jh@suse.cz>
20502
20503         * cgraph.h (cgraph_optimize_for_size_p): Declare.
20504         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
20505         * predict.c (cgraph_optimize_for_size_p): Break out from ...
20506         (optimize_function_for_size_p) ... here.
20507
20508 2011-04-19  Richard Guenther  <rguenther@suse.de>
20509
20510         PR lto/48207
20511         * tree.c (free_lang_data): Do not reset the decl-assembler-name
20512         langhook.
20513
20514 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
20515
20516         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
20517         if DECL_NO_INLINE_WARNING_P is set on the function.
20518
20519 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
20520
20521         PR fortran/47976
20522         * reload1.c (inc_for_reload): Return void. All callers changed.
20523         (emit_input_reload_insns): Don't try to delete previous output
20524         reloads to a register, or record spill_reg_store for autoincs.
20525
20526 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
20527
20528         * gengtype.h: Updated copyright year.
20529         (struct input_file_st): Add inpisplugin field.
20530         (type_fileloc): New function.
20531         * gengtype.c
20532         (write_typed_struct_alloc_def): Add gcc_assert.
20533         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
20534         (write_typed_alloc_defns): Don't output for plugin files.
20535         (input_file_by_name): Clear inpisplugin field.
20536         (main): Set inpisplugin field for plugin files.
20537
20538 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
20539
20540         * gengtype-state.c (string_eq): New.
20541         (read_state): Use string_eq instead of strcmp when creating the
20542         state_ident_tab.
20543
20544 2011-04-19  Wei Guozhi  <carrot@google.com>
20545
20546         PR target/47855
20547         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
20548         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
20549         linkage.
20550         * config/arm/constraints.md (Uu): New constraint.
20551         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
20552
20553 2011-04-19  Tristan Gingold  <gingold@adacore.com>
20554
20555         * config.gcc (-*-*-*vms): Added.
20556         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
20557         definitions moved.
20558         * config/vms/vms-ld.c: New file.
20559         * config/vms/vms-ar.c: New file.
20560         * config/vms/t-vmsnative: New file.
20561
20562 2011-04-18  Xinliang David Li  <davidxl@google.com>
20563
20564         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
20565
20566 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
20567
20568         PR middle-end/48661
20569         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
20570         if TREE_TYPE (v) is non-NULL.
20571
20572         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
20573         gimple_get_virt_mehtod_for_binfo.
20574         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
20575         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
20576         callers.
20577         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
20578
20579 2011-04-18  Michael Matz  <matz@suse.de>
20580             Steve Ellcey  <sje@cup.hp.com>
20581
20582         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
20583         use its mode as source mode if it isn't VOIDmode.
20584
20585 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
20586
20587         * doc/passes.texi: Fill crossref nodes.
20588
20589 2011-04-18  Jim Meyering  <meyering@redhat.com>
20590
20591         Fix doubled-word typos in comments and strings
20592         * config/alpha/vms-unwind.h: s/for for/for/
20593         * config/arm/unwind-arm.h: Likewise.
20594         * config/microblaze/microblaze.c: Likewise.
20595         * config/sh/constraints.md: s/in in/in/
20596         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
20597
20598 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
20599
20600         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
20601         (AVX_FLOAT_MODE_P): Ditto.
20602         (AVX128_VEC_FLOAT_MODE_P): Ditto.
20603         (AVX256_VEC_FLOAT_MODE_P): Ditto.
20604         (AVX_VEC_FLOAT_MODE_P): Ditto.
20605         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
20606         (UNSPEC_MASKSTORE): Ditto.
20607         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
20608         Merge from <sse>_movmsk<ssemodesuffix> and
20609         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
20610         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
20611         iterator.
20612         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
20613         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
20614         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
20615
20616 2011-04-18  Jan Hubicka  <jh@suse.cz>
20617
20618         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
20619
20620         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
20621         (want_inline_function_called_once_p): Break out the logic from
20622         ipa_inline.
20623         (edge_badness): Ensure that profile is not misupdated.
20624         (lookup_recursive_calls): Prioritize by call frequencies.
20625         (inline_small_functions): Move program size estimates here;
20626         actually process whole queue even when unit growth has been
20627         met. (to properly compute inline_failed reasons and for the
20628         case unit size decrease.) Revisit comments on recursive inlining.
20629         (ipa_inline): Remove unit summary code; first inline hot calls
20630         of functions called once, cold calls next.
20631         (order, nnodes): Remove unused variables.
20632         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
20633         (GTFILES): Remove ipa-inline.c
20634         * sel-sched.c (fill_insns): Silence uninitialized var warning.
20635
20636 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
20637
20638         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
20639
20640 2011-04-18  Jie Zhang  <jie@codesourcery.com>
20641             Richard Earnshaw  <rearnsha@arm.com>
20642
20643         * arm.c (neon_builtin_type_bits): Remove.
20644         (typedef enum neon_builtin_mode): New.
20645         (T_MAX): Don't define.
20646         (typedef enum neon_builtin_datum): Remove bits, codes[],
20647         num_vars and base_fcode.  Add mode, code and fcode.
20648         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
20649         VAR10): Change accordingly.
20650         (neon_builtin_data[]): Change accordingly
20651         (arm_init_neon_builtins): Change accordingly.
20652         (neon_builtin_compare): Remove.
20653         (locate_neon_builtin_icode): Remove.
20654         (arm_expand_neon_builtin): Change accordingly.
20655
20656         * arm.h (enum arm_builtins): Move to ...
20657         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
20658
20659         * arm.c (arm_builtin_decl): Declare.
20660         (TARGET_BUILTIN_DECL): Define.
20661         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
20662         (arm_builtin_decls[]): New.
20663         (arm_init_neon_builtins): Store builtin declarations in
20664         arm_builtin_decls[].
20665         (arm_init_tls_builtins): Likewise.
20666         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
20667         (arm_builtin_decl): New.
20668
20669 2011-04-18  Richard Guenther  <rguenther@suse.de>
20670
20671         * tree.c (upper_bound_in_type): Build properly canonicalized
20672         INTEGER_CSTs.
20673         (lower_bound_in_type): Likewise.
20674
20675 2011-04-18  Richard Guenther  <rguenther@suse.de>
20676
20677         * gimple.h (gimple_call_addr_fndecl): New function.
20678         (gimple_call_fndecl): Use it.
20679         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
20680         for direct calls.
20681         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
20682         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
20683
20684 2011-04-18  Richard Guenther  <rguenther@suse.de>
20685
20686         PR middle-end/48650
20687         * tree.c (build_string): STRING_CST is now derived from tree_typed.
20688
20689 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
20690
20691         PR lto/48492
20692         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
20693         DECL_IN_CONSTANT_POOL without RTL.
20694
20695 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
20696             Ira Rosen  <ira.rosen@linaro.org>
20697
20698         PR target/48252
20699         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
20700         to match neon_vzip/vuzp/vtrn_internal.
20701         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
20702         outputs explicitly dependent on both inputs.
20703         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
20704
20705 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
20706
20707         PR tree-optimization/48616
20708         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
20709         whether the shift is by scalar or vector based on whether all SLP
20710         scalar stmts have the same rhs.
20711
20712 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
20713
20714         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
20715         memory operands.
20716
20717 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
20718
20719         PR target/43700
20720         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
20721         registers.
20722
20723 2011-04-17  Jan Hubicka  <jh@suse.cz>
20724
20725         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
20726         * cgrpahunit.c (cgraph_finalize_function): Do not set
20727         finalized_by_frontend.
20728         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
20729         finalized_by_frontend.
20730
20731 2011-04-17  Jan Hubicka  <jh@suse.cz>
20732
20733         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
20734         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
20735         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
20736         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
20737         method.
20738         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
20739         gimple-fold.c
20740         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
20741
20742 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
20743
20744         PR lto/48538
20745         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
20746         is non-null before accessing it.
20747         (input_cgraph): Remove trailing spaces.
20748
20749 2011-04-17  Revital Eres  <revital.eres@linaro.org>
20750
20751         * params.def (sms-min-sc): New param flag.
20752         * modulo-sched.c (sms_schedule): Use it.
20753         * doc/invoke.texi (sms-min-sc): Document it.
20754
20755 2011-04-17  Jan Hubicka  <jh@suse.cz>
20756
20757         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
20758         present, also set gimple_call_set_cannot_inline.
20759         * ipa-inline.c: Update toplevel comment.
20760         (MAX_TIME): Remove.
20761         (cgraph_clone_inlined_nodes): Fix linebreaks.
20762         (cgraph_check_inline_limits): Restructure to ...
20763         (caller_growth_limits): ... this one; be more tolerant
20764         on growth in nested inline chains; add explanatory comment;
20765         fix stack accounting thinko introduced by previous patch.
20766         (cgraph_default_inline_p): Remove.
20767         (report_inline_failed_reason): New function.
20768         (can_inline_edge_p): New function.
20769         (can_early_inline_edge_p): New function.
20770         (leaf_node_p): Move upwards in file.
20771         (want_early_inline_function_p): New function.
20772         (want_inline_small_function_p): New function.
20773         (want_inline_self_recursive_call_p): New function.
20774         (cgraph_edge_badness): Rename to ...
20775         (edge_badness) ... this one; fix linebreaks.
20776         (update_edge_key): Update call of edge_baddness; add
20777         detailed dump about queue updates.
20778         (update_caller_keys): Use can_inline_edge_p and
20779         want_inline_small_function_p.
20780         (cgraph_decide_recursive_inlining): Rename to...
20781         (recursive_inlining): Use can_inline_edge_p and
20782         want_inline_self_recursive_call_p; simplify and remove no longer
20783         valid FIXME.
20784         (cgraph_set_inline_failed): Remove.
20785         (add_new_edges_to_heap): Use can_inline_edge_p and
20786         want_inline_small_function_p.
20787         (cgraph_decide_inlining_of_small_functions): Rename to ...
20788         (inline_small_functions): ... this one; cleanup; use
20789         can/want predicates; cleanup debug ouput; work edges till fibheap
20790         is exhausted and do not stop once unit growth is reached; remove
20791         later loop processing remaining edges.
20792         (cgraph_flatten): Rename to ...
20793         (flatten_function): ... this one; use can_inline_edge_p
20794         and can_early_inline_edge_p predicates.
20795         (cgraph_decide_inlining): Rename to ...
20796         (ipa_inline): ... this one; remove unreachable nodes before
20797         inlining functions called once; simplify the pass.
20798         (cgraph_perform_always_inlining): Rename to ...
20799         (inline_always_inline_functions): ... this one; use
20800         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
20801         (cgraph_decide_inlining_incrementally): Rename to ...
20802         (early_inline_small_functions): ... this one; simplify
20803         using new predicates; cleanup; make dumps prettier.
20804         (cgraph_early_inlining): Rename to ...
20805         (early_inliner): newer inline regular functions into always-inlines;
20806         fix updating of call stmt summaries.
20807         (pass_early_inline): Update for new names.
20808         (inline_transform): Fix formating.
20809         (gate_cgraph_decide_inlining): Rename to ...
20810         (pass_ipa_inline): ... this one.
20811         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
20812         * ipa-inline-analysis.c (dump_inline_summary): Update.
20813         (compute_inline_parameters): Do not compute disregard_inline_limits;
20814         look for mismatching arguments.
20815         (estimate_growth): Fix handlig of non-trivial self recursion.
20816         (inline_read_summary): Do not read info->disregard_inline_limits.
20817         (inline_write_summary): Do not write info->disregard_inline_limits.
20818         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
20819         and move all checks into can_inline_edge_p predicate; re-enable code
20820         comparing optimization levels.
20821         (expand_call_inline): Do not test inline_forbidden_into_p.
20822         * Makefile.in (ipa-inline.o): Update arguments.
20823
20824 2011-04-17  Revital Eres  <revital.eres@linaro.org>
20825
20826         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
20827
20828 2011-04-17  Revital Eres  <revital.eres@linaro.org>
20829
20830         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
20831
20832 2011-04-17  Michael Matz  <matz@suse.de>
20833
20834         PR tree-optimization/48622
20835         PR lto/48645
20836         * ipa-inline-analysis.c (inline_read_summary): Read size/time
20837         in same order as they're written.
20838
20839 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20840
20841         * config/pa/predicates.md: Reorganize and simplify predicates.
20842         Eliminate duplicate code checks.
20843         (arith_operand): Rename to arith14_operand
20844         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
20845         * config/pa/pa.md: Use renamed operands.
20846         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
20847         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
20848         arith11_operand, adddi3_operand, indexed_memory_operand,
20849         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
20850         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
20851         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
20852         move_dest_operand, move_src_operand, prefetch_cc_operand,
20853         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
20854         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
20855         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
20856         div_operand, int5_operand, movb_comparison_operator,
20857         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
20858         arith_double_operand, ireg_operand, lhs_lshift_operand,
20859         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
20860         integer_store_memory_operand): Likewise.
20861         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
20862         (integer_store_memory_operand, read_only_operand,
20863         function_label_operand, borx_reg_operand,
20864         non_hard_reg_operand): Likewise.
20865         (eq_neq_comparison_operator): Delete unused operator.
20866         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
20867         function_label_operand.
20868         (emit_move_sequence): Likewise.
20869
20870 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
20871
20872         * config/i386/sse.md (sseunpackmode): New mode attribute.
20873         (ssepackmode): Ditto.
20874         (vec_pack_trunc_<mode>): Macroize expander from
20875         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
20876         (vec_unpacks_lo_<mode>): Macroize expander from
20877         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20878         (vec_unpacks_hi_<mode>): Macroize expander from
20879         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20880         (vec_unpacku_lo_<mode>): Macroize expander from
20881         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20882         (vec_unpacku_hi_<mode>): Macroize expander from
20883         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20884         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
20885         ix86_expand_sse4_unpack.
20886         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
20887
20888 2011-04-16  Jan Hubicka  <jh@suse.cz>
20889
20890         * cgraphbuild.c: Include ipa-inline.h.
20891         (reset_inline_failed): Use initialize_inline_failed.
20892         * cgraph.c: Include ipa-inline.h.
20893         (cgraph_create_node_1): Do not initialize estimated_growth.
20894         (initialize_inline_failed): More to ipa-inline-analysis.c
20895         (dump_cgraph_node): Do not dump inline flags.
20896         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
20897         and disregard_inline_limits flags.
20898         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
20899         time, size, estimated_growth.
20900         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
20901         Update.
20902         * cgraphunit.c (cgraph_decide_is_function_needed): Use
20903         DECL_DISREGARD_INLINE_LIMITS.
20904         (cgraph_analyze_function): Do not initialize
20905         node->local.disregard_inline_limits.
20906         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
20907         inlinable, versionable and disregard_inline_limits.
20908         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
20909         cgraph_check_inline_limits, cgraph_default_inline_p,
20910         cgraph_edge_badness, update_caller_keys, update_callee_keys,
20911         add_new_edges_to_heap): Update.
20912         (cgraph_decide_inlining_of_small_function): Update; set
20913         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
20914         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
20915         cgraph_decide_inlining_incrementally): Update.
20916         * ipa-inline.h (inline_summary): Add inlinable, versionable,
20917         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
20918         time, size and estimated_growth parameters.
20919         (estimate_edge_growth): Update.
20920         (initialize_inline_failed): Declare.
20921         * ipa-split.c: Include ipa-inline.h
20922         (execute_split_functions): Update.
20923         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
20924         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
20925         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
20926         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
20927         estimated_growth to INT_MIN.
20928         (inline_node_duplication_hook): Likewise.
20929         (dump_inline_summary): Dump new fields.
20930         (compute_inline_parameters): Update.
20931         (estimate_edge_time, estimate_time_after_inlining,
20932         estimate_size_after_inlining, estimate_growth, inline_read_summary,
20933         inline_write_summary):
20934         (initialize_inline_failed): Move here from cgraph.c.
20935         * tree-sra.c: Include ipa-inline.h.
20936         (ipa_sra_preliminary_function_checks): Update.
20937         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
20938         ipa-inline.h.
20939
20940 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
20941
20942         * config/i386/sse.md (V16): New mode iterator.
20943         (VI1, VI8): Ditto.
20944         (AVXMODEQI, AVXMODEDI): Remove.
20945         (sse2, sse3): New mode attribute.
20946         (mov<mode>): Use V16 mode iterator.
20947         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
20948         (push<mode>1): Use V16 mode iterator.
20949         (movmisalign<mode>): Ditto.
20950         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
20951         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
20952         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
20953         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
20954         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
20955         avx_movdqu<avxmodesuffix>.
20956         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
20957         *avx_movdqu<avxmodesuffix>.
20958         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
20959         avx_lddqu<avxmodesuffix>.
20960         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
20961         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
20962         avx_movnt<AVXMODEDI:mode>.
20963         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
20964         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
20965
20966 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
20967
20968         PR target/48629
20969         * haifa-sched.c (prune_ready_list, schedule_block): Use
20970         sched_pressure_p rather than flag_sched_pressure.
20971
20972 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
20973
20974         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
20975         cgraph_get_node instead of cgraph_get_create_node.
20976
20977 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
20978
20979         * cfgexpand.c (expand_debug_expr): Use
20980         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
20981
20982 2011-04-15  Michael Matz  <matz@suse.de>
20983
20984         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
20985         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
20986         * function.c (gimplify_parameters): Ditto.
20987         * gimplify.c (gimplify_vla_decl): Ditto.
20988
20989         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
20990         (gimple_call_set_alloca_for_var): New inline function.
20991         (gimple_call_alloca_for_var_p): Ditto.
20992         * gimple.c (gimple_build_call_from_tree): Remember
20993         CALL_ALLOCA_FOR_VAR_P state.
20994         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
20995
20996         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
20997         calls if they were for VLA objects.
20998
20999 2011-04-15  Martin Jambor  <mjambor@suse.cz>
21000
21001         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
21002         of ADR_EXPRs.
21003
21004 2011-04-15  Martin Jambor  <mjambor@suse.cz>
21005
21006         PR middle-end/48601
21007         * tree-emutls.c (lower_emutls_function_body): Call
21008         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
21009         result is non-NULL.
21010
21011 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
21012
21013         * c-decl.c (detect_field_duplicates): Call
21014         objc_detect_field_duplicates instead of objc_get_interface_ivars.
21015
21016 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
21017
21018         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
21019         * gimple.c (gimple_asm_clobbers_memory_p): Define.
21020         * ipa-pure-const.c (check_stmt): Call it.
21021         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
21022
21023 2011-04-15  Richard Guenther  <rguenther@suse.de>
21024
21025         PR tree-optimization/48290
21026         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
21027         Properly decide inhibiting propagation based on the valueized
21028         operand.  Do loop-closed SSA form preserving here ...
21029         (init_copy_prop): ... not here.
21030
21031 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
21032
21033         PR target/48612
21034         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
21035         (*ieee_smax<mode>3): Likewise.
21036
21037 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21038
21039         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
21040         Replace match_operand with match_dup for the third operand in
21041         these expanders.
21042
21043 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
21044
21045         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
21046         to track processing of conditionals.  Update all callers.
21047         (try_combine, simplify_if_then_else): Update.
21048
21049 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
21050
21051         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
21052         -fsched-pressure.
21053
21054 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
21055
21056         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
21057         instead of match_operand for operand 3.
21058
21059 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
21060
21061         * recog.h (insn_operand_data): Add an "allows_mem" field.
21062         * genoutput.c (output_operand_data): Initialize it.
21063         * optabs.c (maybe_legitimize_operand_same_code): New function.
21064         (maybe_legitimize_operand): Use it when matching the original
21065         op->value.
21066
21067 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
21068
21069         * gimplify.c: Fix issues in comments throughout.
21070         (voidify_wrapper_expr): Fix long line.
21071         (build_stack_save_restore): Likewise.
21072         (gimplify_loop_expr): Likewise.
21073         (gimplify_compound_lval): Likewise.
21074         (gimplify_init_ctor_eval): Likewise.
21075         (gimplify_modify_expr_rhs): Likewise.
21076         (omp_notice_threadprivate_variable): Likewise.
21077
21078 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
21079
21080         * cfgexpand.c (expand_call_stmt): Convert the function type to the
21081         original one if this is not a builtin function.
21082
21083 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
21084
21085         PR target/48605
21086         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
21087         offset it as needed based on top 2 bits in operands[3], change
21088         MEM mode to SFmode and mask those 2 bits away from operands[3].
21089
21090 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
21091
21092         * c-parser.c (c_parser_objc_protocol_definition): Updated for
21093         change from objc_declare_protocols() to objc_declare_protocol().
21094
21095 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
21096
21097         * config/i386/sse.md (sse4_1): New mode attribute.
21098         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
21099         avx_blend<ssemodesuffix><avxmodesuffix> and
21100         sse4_1_blend<ssemodesuffix> using VF mode iterator.
21101         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
21102         avx_blendv<ssemodesuffix><avxmodesuffix> and
21103         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
21104         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
21105         avx_dp<ssemodesuffix><avxmodesuffix> and
21106         sse4_1_dp<ssemodesuffix> using VF mode iterator.
21107         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
21108         (sse4_1_packusdw): Merge with *avx_packusdw.
21109         (sse4_1_pblendvb): Merge with *avx_pblendvb.
21110         (sse4_1_pblendw): Merge with *avx_pblendw.
21111         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
21112         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
21113         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
21114         VF mode iterator.
21115         (sse4_1_round<ssescalarmodesuffix>): Merge with
21116         *avx_round<ssescalarmodesuffix>.
21117         (aesenc): Merge with *avx_aesenc.
21118         (aesenclast): Merge with *avx_aesenclast.
21119         (aesdec): Merge with *avx_aesdec.
21120         (aesdeclast): Merge with *avx_aesdeclast.
21121         (pclmulqdq): Merge with *pclmulqdq.
21122         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
21123         New predicate.
21124         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
21125
21126 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
21127
21128         PR middle-end/48608
21129         * cfgexpand.c (get_decl_align_unit): Renamed to ...
21130         (align_local_variable): This.  Update DECL_ALIGN.
21131         (add_stack_var): Updated.
21132         (expand_one_stack_var): Likewise.
21133
21134 2011-04-14  Richard Guenther  <rguenther@suse.de>
21135
21136         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
21137         Remove.
21138         (dse_initialize_block_local_data, dse_leave_block,
21139         record_voperand_set, get_stmt_uid): Likewise.
21140         (dse_possible_dead_store_p): Allow any kind of killing stmt.
21141         (dse_optimize_stmt): Remove voperand set handling code.
21142         Simplify and improve to handle any kind of killing stmt.
21143         (dse_record_phi): Remove.
21144         (dse_enter_block): Simplify.
21145         (tree_ssa_dse): Likewise.
21146         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
21147
21148 2011-04-14  Jan Hubicka  <jh@suse.cz>
21149
21150         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
21151         * cgraph.h (struct inline_summary): Move to ipa-inline.h
21152         (cgraph_local_info): Remove inline_summary.
21153         * ipa-cp.c: Include ipa-inline.h.
21154         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
21155         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
21156         accesor.
21157         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
21158         (input_overwrite_node): Do not set inline summary.
21159         (input_node): Do not stream inline summary.
21160         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
21161         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
21162         growth; we do not have inline parameters computed for that anyway.
21163         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
21164         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
21165         (inline_summary_t): New type and VECtor.
21166         (debug_inline_summary, dump_inline_summaries): Declare.
21167         (inline_summary): Use VOCtor.
21168         (estimate_edge_growth): Kill hack computing call stmt size directly.
21169         * lto-section-in.c (lto_section_name): Add inline section.
21170         * ipa-inline-analysis.c: Include lto-streamer.h
21171         (node_removal_hook_holder, node_duplication_hook_holder): New holders
21172         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
21173         (inline_summary_vec): Define.
21174         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
21175         dump_inline_summaries): New functions.
21176         (estimate_function_body_sizes): Properly compute size/time of outgoing
21177         calls.
21178         (compute_inline_parameters): Alloc inline_summary; do not compute
21179         size/time of incomming calls.
21180         (estimate_edge_time): Avoid missing time summary hack.
21181         (inline_read_summary): Read inline summary info.
21182         (inline_write_summary): Write inline summary info.
21183         (inline_free_summary): Free all hooks and inline summary vector.
21184         * lto-streamer.h: Add LTO_section_inline_summary section.
21185         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
21186         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
21187
21188 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21189
21190         * tree-vectorizer.h (vect_strided_store_supported): Add a
21191         HOST_WIDE_INT argument.
21192         (vect_strided_load_supported): Likewise.
21193         (vect_permute_store_chain): Return void.
21194         (vect_transform_strided_load): Likewise.
21195         (vect_permute_load_chain): Delete.
21196         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
21197         count argument.  Check that the count is a power of two.
21198         (vect_strided_load_supported): Likewise.
21199         (vect_permute_store_chain): Return void.  Update after above changes.
21200         Assert that the access is supported.
21201         (vect_permute_load_chain): Likewise.
21202         (vect_transform_strided_load): Return void.
21203         * tree-vect-stmts.c (vectorizable_store): Update calls after
21204         above interface changes.
21205         (vectorizable_load): Likewise.
21206         (vect_analyze_stmt): Don't check for strided powers of two here.
21207
21208 2011-04-14  Richard Guenther  <rguenther@suse.de>
21209
21210         PR tree-optimization/48590
21211         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
21212         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
21213         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
21214         BUILT_IN_STACK_SAVE.
21215         * tree-ssa-dce.c (propagate_necessity): Handle
21216         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
21217
21218 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
21219
21220         * c-parser.c (c_parser_objc_class_declaration): Updated call to
21221         objc_declare_class.
21222
21223 2011-04-14  Richard Guenther  <rguenther@suse.de>
21224
21225         * tree.h (get_object_alignment_1): Declare.
21226         * builtins.c (get_object_alignment_1): Split out worker from ...
21227         (get_object_alignment): ... here.
21228         * fold-const.c (get_pointer_modulus_and_residue): Use
21229         get_object_alignment_1.
21230
21231 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21232
21233         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
21234         type parameter.
21235         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
21236         parameter.  Generalise code to handle arrays as well as vectors.
21237         (vect_setup_realignment): Update accordingly.
21238         * tree-vect-stmts.c (vectorizable_store): Likewise.
21239         (vectorizable_load): Likewise.
21240
21241 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21242
21243         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
21244         within the per-copy loop.
21245
21246 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21247
21248         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
21249         in the dump file.
21250
21251 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21252
21253         * doc/options.texi (Negative): Explicitly mention that the
21254         Negative chain must be circular.
21255
21256 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
21257
21258         * function.h (block_chainon): Declare.
21259         * function.c (block_chainon): Define.
21260
21261 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
21262             Eric Weddington  <eric.weddington@atmel.com>
21263             Georg-Johann Lay  <avr@gjlay.de>
21264
21265         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
21266         New Includes
21267         (avr_init_builtins, avr_expand_builtin,
21268         avr_expand_delay_cycles, avr_expand_unop_builtin,
21269         avr_expand_binop_builtin ): New functions.
21270         (avr_builtin_id): New enum
21271         (struct avr_builtin_description): New struct
21272         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
21273         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
21274
21275         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
21276         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
21277         UNSPECV_DELAY_CYCLES): new enumeration values
21278         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
21279         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
21280         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
21281         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
21282         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
21283         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
21284         "fmulsu"): New insns
21285
21286         * config/avr/avr-c.c: fix line endings
21287         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
21288         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
21289         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
21290         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
21291         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
21292
21293         * doc/extend.texi (AVR Built-in Functions): New node
21294         (Target Builtins): Add documentation of AVR
21295         built-in functions.
21296
21297 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
21298
21299         PR target/44643
21300         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
21301         alone. Error if non-const data has attribute progmem.
21302
21303 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21304
21305         * tree.h (struct tree_constructor): Include tree_typed instead of
21306         tree_common.
21307         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
21308         TS_TYPED instead of TS_COMMON.
21309
21310 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
21311
21312         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
21313         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
21314         (sse2_psadbw): Merge with *avx_psadbw.
21315         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
21316         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
21317         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
21318         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
21319         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
21320         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
21321         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
21322         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
21323         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
21324         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
21325         (ssse3_palignrti): Merge with *avx_palignrti.
21326
21327 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21328
21329         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
21330         * tree-ssanames.c (fini_ssanames): VEC_free it.
21331         (make_ssa_name_fn): Update for VECness of free_ssanames.
21332         (release_ssa_name, release_dead_ssa_names): Likewise.
21333         * tree.h (struct tree_ssa_name): Include tree_typed instead of
21334         tree_common.
21335         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
21336         TS_TYPED instead of TS_COMMON.
21337
21338 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21339
21340         * postreload-gcse.c (gcse_after_reload_main): Add calls to
21341         statistics_counter_event.
21342         * tree-ssa-copyrename.c (stats): Define.
21343         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
21344         statistics_counter_event.
21345         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
21346         (bswap_stats, widen_mul_stats): Define.
21347         (insert_reciprocals): Increment rdivs_inserted.
21348         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
21349         rfuncs_inserted.  Add calls to statistics_counter_event.
21350         (execute_cse_sincos_1): Increment inserted.
21351         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
21352         statistics_counter_event.
21353         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
21354         of bswap_stats.  Add calls to statistics_counter_event.
21355         (convert_mult_to_widen): Increment widen_mults_inserted.
21356         (convert_plusminus_to_widen): Increment maccs_inserted.
21357         (convert_mult_to_fma): Increment fmas_inserted.
21358         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
21359         calls to statistics_counter_event.
21360
21361 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
21362
21363         PR rtl-optimization/48455
21364         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
21365         `temp_costs->mem_cost'.
21366
21367 2011-04-13  Jan Hubicka  <jh@suse.cz>
21368
21369         * ipa-inline.h: New file.
21370         * ipa-inline-analysis.c: New file. Broken out of ...
21371         * ipa-inline.c: ... this file; update toplevel comment;
21372         include ipa-inline.h
21373         (inline_summary): Move to ipa-inline.h
21374         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
21375         ipa-inline-analysis.c.
21376         (cgraph_estimate_time_after_inlining): Rename to
21377         estiamte_time_after_inlining; move to ipa-inline-analysis.c
21378         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
21379         to estimate_edge_growth.
21380         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
21381         rename to estimate_size_after_inlining.
21382         (cgraph_mark_inline_edge): Update for new naming convention.
21383         (cgraph_check_inline_limits): Likewise.
21384         (cgraph_edge_badness): Likewise.
21385         (cgraph_decide_recursive_inlining): Likewise.
21386         (cgraph_decide_inlining_of_small_functions): Likewise.
21387         (cgraph_decide_inlining_incrementally): Likewise.
21388         (cgraph_estimate_growth): Rename to estimate_growth; move to
21389         ipa-inline-analysis.c.
21390         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
21391         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
21392         (compute_inline_parameters): Likewise.
21393         (compute_inline_parameters_for_current): Likewise.
21394         (pass_inline_parameters): Likewise.
21395         (inline_indirect_intraprocedural_analysis): Likewise.
21396         (analyze_function): Rename to inline_analyze_function; likewise.
21397         (add_new_function): Move to ipa-inline-analysis.c.
21398         (inline_generate_summary): Likewise.
21399         (inline_read_summary): Likewise.
21400         (inline_write_summary): Likewise.
21401         * Makefile.in (ipa-inline-analysis.c): New file.
21402
21403 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21404
21405         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
21406         * configure: Regenerate.
21407
21408 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21409
21410         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
21411         instead of tree_common.
21412         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
21413         Likewise.
21414         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
21415         TS_TYPED rather than TS_COMMON.
21416         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
21417
21418 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
21419
21420         PR target/45263
21421         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
21422         r20 around calls of __tablejump_elpm__
21423
21424 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
21425
21426         PR middle-end/48591
21427         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
21428         NULL.
21429         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
21430
21431 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
21432
21433         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
21434         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
21435         (cfi_vec): New typedef.
21436         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
21437         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
21438         (cie_cfi_vec): New static variable.
21439         (cie_cfi_head): Delete.
21440         (add_cfi): Accept a cfi_vec * as first argument. All callers and
21441         declaration changed. Use vector rather than list operations.
21442         (new_cfi): Don't initialize the dw_cfi_next field.
21443         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
21444         rather than list operations.
21445         (lookup_cfa): Use vector rather than list operations.
21446         (output_cfis): New argument upto. Accept a cfi_vec rather than
21447         a dw_cfi_ref list head as argument. All callers changed.
21448         Iterate over the vector using upto as a maximum index.
21449         (output_all_cfis): New static function.
21450         (output_fde): Use vector rather than list operations. Use the
21451         new upto argument for output_cfis rather than manipulating a
21452         list.
21453         (dwarf2out_begin_prologue): Change initializations to match
21454         new struct members.
21455         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
21456         from the vector length rather than searching for the end of a list.
21457         Use output_all_cfis.
21458         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
21459
21460 2011-04-13  Nick Clifton  <nickc@redhat.com>
21461
21462         * config/rx/rx.md (movmemsi): Do not use this pattern when
21463         volatile pointers are involved.
21464
21465 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
21466
21467         * config/i386/sse.md (pinsrbits): Remove.
21468         (sse2_packsswb): Merge with *avx_packsswb.
21469         (sse2_packssdw): Merge with *avx_packssdw.
21470         (sse2_packuswb): Merge with *avx_packuswb.
21471         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
21472         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
21473         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
21474         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
21475         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
21476         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
21477         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
21478         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
21479         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
21480         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
21481         (sse2_loadld): Merge with *avx_loadld.
21482         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
21483         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
21484         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
21485         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
21486         (vec_concatv2di): Merge with *vec_concatv2di_avx.
21487
21488 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
21489
21490         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
21491         calling TREE_CHAIN.
21492         * print-tree.c (print_node): Likewise.
21493         * tree-inline.c (copy_tree_r): Likewise.
21494         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
21495         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
21496         instead of TS_COMMON.
21497         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
21498         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
21499         (copy_node_stat): Zero TREE_CHAIN only if necessary.
21500         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
21501         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
21502         ...and these...
21503         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
21504         * tree.h: ...here.
21505         (TREE_CHAIN): Check for a TS_COMMON structure.
21506         (TREE_TYPE): Check for a TS_TYPED structure.
21507
21508 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
21509
21510         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
21511         cgraph_get_create_node instead of cgraph_node.
21512
21513 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
21514
21515         * c-parser.c (c_parser_initelt): Updated call to
21516         objc_build_message_expr.
21517         (c_parser_postfix_expression): Likewise.
21518
21519 2011-04-12  Kai Tietz  <ktietz@redhat.com>
21520
21521         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
21522         MASK_MS_BITFIELD_LAYOUT bit.
21523
21524 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
21525
21526         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
21527         assert it is always true.
21528         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
21529         moves.
21530
21531 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
21532
21533         * c-parser.c (c_lex_one_token): Rewritten conditional used when
21534         compiling Objective-C to be more efficient.
21535
21536 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
21537
21538         * opts-common.c (decode_cmdline_options_to_array): Remove variable
21539         argv_copied.
21540
21541 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21542
21543         * recog.h, genoutput.c, optabs.c: Revert last patch.
21544
21545 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
21546
21547         PR target/48090
21548         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
21549
21550 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21551
21552         * recog.h (insn_operand_data): Add an "allows_mem" field.
21553         * genoutput.c (output_operand_data): Initialize it.
21554         * optabs.c (maybe_legitimize_operand_same_code): New function.
21555         (maybe_legitimize_operand): Use it when matching the original
21556         op->value.
21557
21558 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21559
21560         * genpreds.c (process_define_predicate): Move most processing
21561         to gensupport.c.  Continue to validate the expression.
21562         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
21563         (process_define_predicate): Move processing to gensupport.c.
21564         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
21565         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
21566         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
21567         argument.
21568         (valid_predicate_name_p): New function, split out from old
21569         genpreds.c:process_define_predicate.
21570         (process_define_predicate): New function, combining code from
21571         old genpreds.c and genrecog.c functions.
21572         (process_rtx): Call it for DEFINE_PREDICATE and
21573         DEFINE_SPECIAL_PREDICATE.
21574
21575 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21576
21577         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
21578         size of a '%A' memory reference.
21579         (T_DREG, T_QREG): New neon_builtin_type_bits.
21580         (arm_init_neon_builtins): Assert that the load and store operands
21581         are neon_struct_operands.
21582         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
21583         (NEON_ARG_MEMORY): New builtin_arg.
21584         (neon_dereference_pointer): New function.
21585         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
21586         Handle NEON_ARG_MEMORY.
21587         (arm_expand_neon_builtin): Update after above interface changes.
21588         Use NEON_ARG_MEMORY for loads and stores.
21589         * config/arm/predicates.md (neon_struct_operand): New predicate.
21590         * config/arm/iterators.md (V_two_elem): Tweak formatting.
21591         (V_three_elem): Use BLKmode for accesses that have no associated mode.
21592         (V_four_elem): Tweak formatting.
21593         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
21594         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
21595         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
21596         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
21597         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
21598         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
21599         (neon_vst4<mode>): Replace pointer operand with a memory operand.
21600         Use %A in the output template.
21601         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
21602         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
21603         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
21604         the width of the memory access.  Remove post-increment.
21605         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
21606
21607 2011-04-12  Nick Clifton  <nickc@redhat.com>
21608
21609         * config/v850/v850.c (expand_prologue): Do not use the CALLT
21610         instruction for interrupt handlers if the target is the basic V850
21611         architecture.
21612         (expand_epilogue): Likewise.
21613
21614 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
21615
21616         PR rtl-optimization/48549
21617         * combine.c (propagate_for_debug): Also stop after BB_END of
21618         this_basic_block.  Process LAST and just stop processing after it.
21619         (combine_instructions): If last_combined_insn has been deleted,
21620         set last_combined_insn to its PREV_INSN.
21621
21622 2011-04-12  Richard Guenther  <rguenther@suse.de>
21623
21624         PR tree-optimization/46076
21625         * gimple.h (struct gimple_statement_call): Add fntype field.
21626         (gimple_call_fntype): Adjust.
21627         (gimple_call_set_fntype): New function.
21628         * gimple.c (gimple_build_call_1): Set the call function type.
21629         * gimplify.c (gimplify_call_expr): Preserve the function
21630         type the frontend used for the call.
21631         (gimplify_modify_expr): Likewise.
21632         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
21633         function type.
21634         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
21635         function type.
21636         * tree-ssa.c (useless_type_conversion_p): Function pointer
21637         conversions are useless.
21638
21639 2011-04-12  Martin Jambor  <mjambor@suse.cz>
21640
21641         * cgraph.h (cgraph_node): Remove function declaration.
21642         (cgraph_create_node): Declare.
21643         (cgraph_get_create_node): Likewise.
21644         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
21645         Updated all callers.
21646         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
21647         the decl does not already exist.  Call cgraph_get_create_node instead
21648         of cgraph_node.
21649         (cgraph_get_create_node): New function.
21650         (cgraph_same_body_alias): Update comment.
21651         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
21652         assert it does not return NULL.
21653         (cgraph_update_edges_for_call_stmt): Likewise.
21654         (cgraph_clone_edge): Likewise.
21655         (cgraph_create_virtual_clone): Likewise.
21656         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
21657         instead of cgraph_node.
21658         (cgraph_add_new_function): Call cgraph_create_node or
21659         cgraph_get_create_node instead of cgraph_node.
21660         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
21661         instead of cgraph_node.
21662         (record_eh_tables): Likewise.
21663         (mark_address): Likewise.
21664         (mark_load): Likewise.
21665         (build_cgraph_edges): Call cgraph_get_create_node instead
21666         of cgraph_node.
21667         (rebuild_cgraph_edges): Likewise.
21668         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
21669         instead of cgraph_node.
21670         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
21671         cgraph_node.
21672         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
21673         cgraph_create_node instead of cgraph_node.
21674         * c-decl.c (finish_function): Call cgraph_get_create_node instead
21675         of cgraph_node.
21676         * lto-cgraph.c (input_node): Likewise.
21677         * lto-streamer-in.c (input_function): Likewise.
21678         * varasm.c (mark_decl_referenced): Likewise.
21679         (assemble_alias): Likewise.
21680
21681 2011-04-12  Martin Jambor  <mjambor@suse.cz>
21682
21683         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
21684         instead of cgraph_node and assert it does not return NULL.
21685         * lto-streamer-in.c (lto_read_body): Likewise.
21686         * omp-low.c (new_omp_context): Likewise.
21687         (create_task_copyfn): Likewise.
21688         * tree-emutls.c (lower_emutls_function_body): Likewise.
21689         * matrix-reorg.c (transform_allocation_sites): Likewise.
21690
21691 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
21692
21693         PR c/48552
21694         * c-typeck.c (build_asm_expr): Error out on attempts to use
21695         void type outputs or inputs for constraints that allow reg or
21696         don't allow memory.
21697
21698 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
21699             Richard Earnshaw  <rearnsha@arm.com>
21700
21701         PR target/48250
21702         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
21703         to use sign-magnitude offsets. Reject unsupported unaligned
21704         cases. Add detailed description in comments.
21705         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
21706         condition from TARGET_32BIT to TARGET_ARM.
21707
21708 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
21709
21710         * tree.h (struct typed_tree): New.
21711         (struct tree_common): Include it instead of tree_base.
21712         (TREE_TYPE): Update for new location of type field.
21713         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
21714         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
21715         (union tree_node): Add typed field.
21716         * treestruct.def (TS_TYPED): New.
21717         * lto-streamer.c (check_handled_ts_structures): Handle it.
21718         * tree.c (MARK_TS_TYPED): New macro.
21719         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
21720
21721 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
21722
21723         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
21724         (force_nonfallthru): Do not alter the loop nest if no basic block
21725         was created.
21726
21727 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
21728
21729         * config/i386/sse.md (VI): New mode iterator.
21730         (SSEMODEI): Remove.
21731         (AVX256MODEI): Ditto.
21732         (AVXMODEF4P): Ditto.
21733         (avxvecpsmode): Ditto.
21734         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
21735         (sse2_andnot<mode>3): New expander.
21736         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
21737         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
21738         (<any_logic:code><mode>3): Use VI mode iterator.
21739         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
21740         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
21741         (*andnottf3): Handle AVX three-operand constraints.
21742         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
21743
21744 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21745             Robert Millan  <rmh@gnu.org>
21746
21747         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
21748         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
21749         GNU_USER_DYNAMIC_LINKER64): Define.
21750         (REG_NAME): Don't undefine.
21751         (MD_UNWIND_SUPPORT): Undefine.
21752         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
21753         (REG_NAME): Don't undefine.
21754         (MD_UNWIND_SUPPORT): Undefine.
21755         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
21756
21757 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21758
21759         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
21760         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
21761
21762 2011-04-11  Xinliang David Li  <davidxl@google.com>
21763
21764         * value-profile.c (check_ic_target): New function.
21765         (gimple_ic_transform): Sanity check indirect call target.
21766         * gimple-low.c (gimple_check_call_args): Interface change.
21767         (gimple_check_call_matching_types): New function.
21768         * tree-inline.c (tree_can_inline_p): Call new function.
21769
21770 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
21771
21772         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
21773         tree-pretty-print.h & realmpfr.h.
21774
21775 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
21776
21777         PR middle-end/48464
21778         * ira.c (setup_pressure_classes): Fix typo in loop condition.
21779         (setup_allocno_and_important_classes): Ditto.
21780
21781 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21782
21783         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
21784         GNU_USER_DYNAMIC_LINKER.
21785         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
21786         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21787         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
21788         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21789         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
21790         GNU_USER_TARGET_OS_CPP_BUILTINS.
21791         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
21792         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21793         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
21794         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21795         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
21796         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21797         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
21798         GNU_USER_TARGET_OS_CPP_BUILTINS.
21799         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21800         GNU_USER_DYNAMIC_LINKER.
21801         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21802         GNU_USER_TARGET_OS_CPP_BUILTINS.
21803         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
21804         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21805         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
21806         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21807         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
21808         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
21809         GNU_USER_DYNAMIC_LINKER64): Remove.
21810         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
21811         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21812         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21813         GNU_USER_DYNAMIC_LINKER.
21814         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21815         GNU_USER_TARGET_OS_CPP_BUILTINS.
21816         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21817         GNU_USER_TARGET_OS_CPP_BUILTINS.
21818         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
21819         to GNU_USER_TARGET_OS_CPP_BUILTINS.
21820         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21821         GNU_USER_TARGET_OS_CPP_BUILTINS.
21822         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
21823         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
21824         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
21825         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
21826         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21827         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21828         GNU_USER_DYNAMIC_LINKER.
21829         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
21830         GNU_USER_TARGET_OS_CPP_BUILTINS.
21831         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
21832         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21833         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21834         GNU_USER_DYNAMIC_LINKER.
21835         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
21836         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21837         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
21838         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21839         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21840         GNU_USER_DYNAMIC_LINKER.
21841         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
21842         GNU_USER_DYNAMIC_LINKERN32.
21843         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
21844         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
21845         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
21846         GNU_USER_DYNAMIC_LINKER32.
21847         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
21848         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21849         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21850         GNU_USER_DYNAMIC_LINKER.
21851         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
21852         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21853         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
21854         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21855         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21856         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
21857         GNU_USER_DYNAMIC_LINKER32.
21858         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
21859         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
21860         GNU_USER_DYNAMIC_LINKER.
21861         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
21862         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21863         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
21864         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
21865         GNU_USER_DYNAMIC_LINKER64.
21866         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
21867         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21868         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21869         GNU_USER_DYNAMIC_LINKER.
21870         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
21871         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21872         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21873         GNU_USER_DYNAMIC_LINKER.
21874         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
21875         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21876         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
21877         GNU_USER_DYNAMIC_LINKER32.
21878         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
21879         GNU_USER_DYNAMIC_LINKER64.
21880         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
21881         GNU_USER_DYNAMIC_LINKER64.
21882         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
21883         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21884         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
21885         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21886         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21887
21888 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21889
21890         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
21891         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
21892         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
21893         GNU_USER_DYNAMIC_LINKER.
21894         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
21895         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
21896         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
21897         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
21898         GNU_USER_DYNAMIC_LINKER64.
21899         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
21900         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
21901         GNU_USER_LINK_EMULATION.
21902         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
21903         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
21904         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
21905         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
21906         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
21907         CPP_SPEC, CC1_SPEC): Remove.
21908         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
21909         (GNU_USER_DYNAMIC_LINKER): Define.
21910         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
21911         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
21912         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
21913         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
21914         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
21915         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
21916         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
21917         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
21918         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
21919         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
21920         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
21921         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
21922         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
21923         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
21924         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
21925         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
21926         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21927         GNU_USER_DYNAMIC_LINKER.
21928         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21929         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21930         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21931         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21932         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21933         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21934         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
21935         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
21936         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
21937         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
21938
21939 2011-04-11  Kai Tietz  <ktietz@redhat.com>
21940
21941         PR target/9601
21942         PR target/11772
21943         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
21944         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
21945         comment.
21946         (ix86_is_msabi_thiscall): Removed.
21947         (ix86_is_type_thiscall): Likewise.
21948         (ix86_get_callcvt): New function.
21949         (ix86_comp_type_attributes): Simplify check.
21950         (ix86_function_regparm): Use ix86_get_callcvt for calling
21951         convention attribute checks.
21952         (ix86_return_pops_args): Likewise.
21953         (ix86_static_chain): Likewise.
21954         (x86_this_parameter): Likewise.
21955         (x86_output_mi_thunk): Likewise.
21956         (ix86_function_type_abi): Optimize check for types without attributes.
21957         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
21958         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
21959         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
21960         by flag-values.
21961         (IX86_BASE_CALLCVT): Helper macro.
21962         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
21963         Use ix86_get_callcvt for calling convention attribute checks and avoid
21964         symbol-decoration for stdcall in TARGET_RTD case.
21965         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
21966         Likewise.
21967         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
21968         for declaration.
21969
21970 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
21971
21972         * config/i386/sse.md (VI_128): New mode iterator.
21973         (VI12_128): Rename from SSEMODE12.
21974         (VI14_128): Rename from SSEMODE14.
21975         (VI124_128): New mode iterator.
21976         (VI24_128): Rename from SSEMODE248.
21977         (VI248_128): Rename from SSEMODE248.
21978         (SSEMODE124C8): Remove.
21979         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
21980         (*sse2_<plusminus_insn><mode>3): Merge with
21981         *avx_<plusminus_insn><mode>3.
21982         (*mulv8hi3): Merge with *avx_mulv8hi3.
21983         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
21984         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
21985         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
21986         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
21987         (ashr<mode>3): Merge with *avx_ashr<mode>3.
21988         (lshr<mode>3): Merge with *avx_lshr<mode>3.
21989         (ashl<mode>3): Merge with *avx_ashl<mode>3.
21990         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
21991         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
21992         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
21993         (*<smaxmin:code>v8hi3): Ditto.
21994         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
21995         (*<smaxmin:code>v16qi3): Ditto.
21996         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
21997         (*sse2_eq<mode>3): Ditto.
21998         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
21999         (*sse2_gt<mode>3): Ditto.
22000         (vcondv2di): Split out of vcond<mode>.
22001         (vconduv2di): Split out of vcondu<mode>.
22002
22003 2011-04-11  Richard Guenther  <rguenther@suse.de>
22004
22005         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
22006         before calling tree_low_cst.
22007
22008 2011-04-11  Richard Guenther  <rguenther@suse.de>
22009
22010         * stor-layout.c (layout_type): Compute all array index size operations
22011         in the original type.
22012         (initialize_sizetypes): Add comment.
22013         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
22014
22015 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
22016
22017         * common.opt (Tbss=, Tdata=, Ttext=): New options.
22018
22019 2011-04-11  Martin Jambor  <mjambor@suse.cz>
22020
22021         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
22022         of cgraph_node, handle NULL return value.
22023         (cgraph_global_info): Likewise.
22024         (cgraph_rtl_info): Likewise.
22025         * tree-inline.c (estimate_num_insns): Likewise.
22026         * gimplify.c (unshare_body): Likewise.
22027         (unvisit_body): Likewise.
22028         (gimplify_body): Likewise.
22029         * predict.c (optimize_function_for_size_p): Likewise.
22030         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
22031         (call_may_clobber_ref_p_1): Likewise.
22032         * varasm.c (function_section_1): Likewise.
22033         (assemble_start_function): Likewise.
22034
22035 2011-04-11  Martin Jambor  <mjambor@suse.cz>
22036
22037         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
22038         of cgraph_node.
22039         * final.c (rest_of_clean_state): Likewise.
22040         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
22041         * passes.c (pass_init_dump_file): Likewise.
22042         (execute_all_ipa_transforms): Likewise.
22043         (function_called_by_processed_nodes_p): Likewise.
22044         * predict.c (maybe_hot_frequency_p): Likewise.
22045         (probably_never_executed_bb_p): Likewise.
22046         (compute_function_frequency): Likewise.
22047         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
22048         (unnest_nesting_tree_1): Likewise.
22049         (lower_nested_functions): Likewise.
22050         * tree-optimize.c (execute_fixup_cfg): Likewise.
22051         (tree_rest_of_compilation): Likewise.
22052         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
22053         * tree-sra.c (ipa_early_sra): Likewise.
22054         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
22055         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
22056         * ipa.c (record_cdtor_fn): Likewise.
22057         * ipa-inline.c (cgraph_early_inlining): Likewise.
22058         (compute_inline_parameters_for_current): Likewise.
22059         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
22060         * ipa-pure-const.c (local_pure_const): Likewise.
22061         * ipa-split.c (split_function): Likewise.
22062         (execute_split_functions): Likewise.
22063         * cgraphbuild.c (build_cgraph_edges): Likewise.
22064         (rebuild_cgraph_edges): Likewise.
22065         (cgraph_rebuild_references): Likewise.
22066         (remove_cgraph_callee_edges): Likewise.
22067         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
22068         (verify_cgraph_node): Likewise.
22069         (cgraph_analyze_functions): Likewise.
22070         (cgraph_preserve_function_body_p): Likewise.
22071         (save_inline_function_body): Likewise.
22072         (save_inline_function_body): Likewise.
22073         * tree-inline.c (copy_bb): Likewise.
22074         (optimize_inline_calls): Likewise.
22075
22076 2011-04-11  Martin Jambor  <mjambor@suse.cz>
22077
22078         PR tree-optimization/48195
22079         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
22080         ipa_check_create_edge_args.
22081         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
22082         ipa_check_create_edge_args.
22083         * ipa-inline.c (inline_generate_summary): Do not call
22084         ipa_check_create_node_params and ipa_check_create_edge_args.
22085         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
22086         ipa_check_create_edge_args.
22087
22088 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
22089
22090         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
22091         instead of loop.
22092         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
22093         * function.c (record_hard_reg_sets): Likewise.
22094         * ira.c (compute_regs_asm_clobbered): Likewise.
22095         * sched-deps.c (sched_analyze_1): Likewise.
22096         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
22097
22098 2011-04-09  Xinliang David Li  <davidxl@google.com>
22099
22100         PR tree-optimization/PR48484
22101         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
22102         has_valid_pred lazily
22103
22104 2011-04-09  Duncan Sands  <baldrick@free.fr>
22105
22106         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
22107
22108 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
22109
22110         * combine.c (combine_validate_cost): Adjust comments.  Set registered
22111         cost of I0 to zero at the end, if any.
22112
22113 2011-04-08  Xinliang David Li  <davidxl@google.com>
22114
22115         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
22116         to insane profile data.
22117
22118 2011-04-08  Xinliang David Li  <davidxl@google.com>
22119
22120         * ipa-cp.c (ipcp_update_profiling): Correct
22121          negative scale factor due to insane profile data.
22122
22123 2011-04-08  Xinliang David Li  <davidxl@google.com>
22124
22125         * final.c (dump_basic_block_info): New function.
22126         (final): Dump basic block.
22127         (final_scan_insn): Remove old dump.
22128
22129 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
22130
22131         PR target/47829
22132         * config.gcc (i386-*-freebsd): Disable unwind table generation for
22133         crtbegin/crtend.
22134
22135 2011-04-08  Michael Matz  <matz@suse.de>
22136
22137         PR middle-end/48389
22138         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
22139         functions.
22140         (rebuild_jump_labels): Call rebuild_jump_labels_1.
22141         * rtl.h (rebuild_jump_labels_chain): Declare.
22142         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
22143         insns inserted on edges.
22144
22145 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
22146
22147         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
22148         * config/arm/arm-arches.def: New.
22149         * config/arm/arm-opts.h: New.
22150         * config/arm/genopt.sh: New.
22151         * config/arm/arm-tables.opt: New (generated).
22152         * config/arm/arm.c (arm_handle_option, arm_target_help,
22153         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
22154         (all_architectures): Get most table contents from arm-arches.def.
22155         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
22156         arm_selected_tune here.
22157         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
22158         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
22159         (march=, mcpu=, mtune=): Use Enum and Var.
22160         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
22161         (arm.o): Update dependencies.
22162
22163 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
22164
22165         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
22166         of header_file.
22167         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
22168         (write_typed_alloc_defns): Likewise.
22169         (main): Calls write_typed_alloc_defns with output_header.
22170
22171 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
22172
22173         PR inline-asm/48435
22174         * ira-color.c (setup_profitable_hard_regs): Add comments.
22175         Don't take prohibited hard regs into account.
22176         (setup_conflict_profitable_regs): Rename to
22177         get_conflict_profitable_regs.
22178         (check_hard_reg_p): Check prohibited hard regs.
22179
22180 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
22181
22182         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
22183         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
22184         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
22185
22186 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22187
22188         PR target/48366
22189         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
22190         move from floating point to shift amount register.
22191         (emit_move_sequence): Remove secondary reload support for floating
22192         point to shift amount amount register copies.
22193         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
22194         amount register copies.
22195         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
22196         register, return false if mode isn't a scalar integer mode.
22197         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
22198
22199 2011-04-08  Richard Guenther  <rguenther@suse.de>
22200
22201         * gimple.c (gimple_call_flags): Remove kludge.
22202
22203 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22204
22205         * sel-sched.c (sel_region_init): Move call to
22206         sel_setup_region_sched_flags after setup_current_loop_nest.
22207
22208 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
22209
22210         PR rtl-optimization/48272
22211         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
22212         init_insn_reg_pressure_info.  Adjust a caller.
22213         * sched-int.h (init_insn_reg_pressure_info): Declare.
22214         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
22215         when sched-pressure is enabled.
22216
22217 2011-04-08  Richard Guenther  <rguenther@suse.de>
22218
22219         * gimple.c (gimple_set_modified): Do not queue calls to
22220         MODIFIED_NORETURN_CALLS here ...
22221         * tree-ssa-operands.c (update_stmt_operands): ... but here.
22222
22223 2011-04-08  Richard Guenther  <rguenther@suse.de>
22224
22225         PR lto/48467
22226         * toplev.c (lang_dependent_init): Do not open asm_out_file
22227         in WPA mode, nor perform debug machinery initialization.
22228         (finalize): Do not unlink asm_out_file in WPA mode.
22229
22230 2011-04-08  Richard Guenther  <rguenther@suse.de>
22231
22232         * gimple.h (gimple_call_fntype): New function.
22233         (gimple_call_return_type): Use it.
22234         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
22235         * gimple-low.c (gimple_check_call_args): Likewise.
22236         * gimple.c (gimple_call_flags): Likewise.
22237         (gimple_call_arg_flags): Likewise.
22238         (gimple_call_return_flags): Likewise.
22239         * tree-cfg.c (verify_gimple_call): Likewise.
22240         (do_warn_unused_result): Likewise.
22241         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
22242         * value-prof.c (gimple_ic_transform): Fix fndecl check.
22243
22244 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
22245
22246         PR rtl-optimization/48235
22247         * sel-sched.c (code_motion_process_successors): Recompute the last
22248         insn in basic block if control flow changed.
22249         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
22250         Update condition for ilist_remove.
22251
22252 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22253
22254         PR rtl-optimization/48302
22255         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
22256         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
22257         it to record added preheader blocks.
22258         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
22259         on to sel_add_loop_preheaders.
22260         (sel_region_init): Move call to setup_current_loop_nest after
22261         sel_init_bbs.
22262
22263 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22264
22265         PR target/48273
22266         * cfgloop.h (loop_has_exit_edges): New helper.
22267         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
22268         non-clonable.
22269         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
22270         that have no exit edges.
22271
22272 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22273
22274         PR rtl-optimization/48442
22275         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
22276         all callers.  Adjust assert.
22277
22278 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
22279
22280         PR tree-optimization/48377
22281         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
22282         is_packed to true even for types with smaller TYPE_ALIGN than
22283         TYPE_SIZE.
22284
22285 2011-04-08  Richard Guenther  <rguenther@suse.de>
22286
22287         PR bootstrap/48513
22288         * doc/tm.texi: Re-generate.
22289
22290 2011-04-08  Wei Guozhi  <carrot@google.com>
22291
22292         PR target/47855
22293         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
22294         * config/arm/arm.c (arm_attr_length_push_multi): New function.
22295         * config/arm/arm.md (*push_multi): Change the length computation to
22296         call a C function.
22297
22298 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
22299
22300         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
22301         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
22302         * doc/tm.texi: Regenerate.
22303         * system.h (ASM_OUTPUT_BSS): Poison.
22304         * varasm.c (asm_output_bss): Remove function.
22305         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
22306
22307         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
22308         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
22309         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
22310         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
22311         Likewise.
22312         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
22313         Likewise.
22314         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
22315         Likewise.
22316         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
22317
22318 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
22319
22320         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
22321         EnumValue lines.
22322
22323 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
22324
22325         * config/m68k/m68k.c (m68k_handle_option): Don't handle
22326         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
22327         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
22328         OPT_mcpu32.
22329         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
22330         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
22331         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
22332         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
22333         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
22334         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
22335         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
22336         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
22337         options.  Don't map other m68k options manually.  Don't handle
22338         old-style options as canonical.
22339         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
22340         * doc/install.texi (m68k-*-*): Document binutils version requirement.
22341
22342 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
22343
22344         * basic-block.h (force_nonfallthru): Move to...
22345         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
22346         (force_nonfallthru): ...here.
22347         * cfghooks.c (force_nonfallthru): New function.
22348         * cfgrtl.c (force_nonfallthru): Rename into...
22349         (rtl_force_nonfallthru): ...this.
22350         (commit_one_edge_insertion): Do not set AUX field.
22351         (commit_edge_insertions): Do not discover new basic blocks.
22352         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
22353         (cfg_layout_rtl_cfg_hooks): Likewise.
22354         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
22355         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
22356         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
22357
22358 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
22359
22360         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
22361         Remove macros.
22362
22363 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
22364
22365         * config/i386/sse.md: Update copyright year.
22366         (avxcvtvecmode): Remove.
22367         (sse_movhlps): Merge with *avx_movhlps.
22368         (sse_movlhps): Merge with *avx_movlhps.
22369         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
22370         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
22371         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
22372         (sse_loadhps): Merge with *avx_loadhps.
22373         (sse_storelps): Merge with *avx_storelps.
22374         (sse_loadlps): Merge with *avx_loadlps.
22375         (sse_movss): Merge with *avx_movss.
22376         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
22377         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
22378         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
22379         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
22380         (vec_set<mode>_0): Ditto.
22381         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
22382         (sse4_1_insertps): Merge with *avx_insertps.
22383         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
22384         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
22385         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
22386         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
22387         (sse2_storehpd): Merge with *avx_storehpd.
22388         (sse2_loadhpd): Merge with *avx_loadhpd.
22389         (sse2_loadlpd): Merge with *avx_loadlpd.
22390         (sse2_movsd): Merge with *avx_movsd.
22391         (*vec_concatv2df): Merge with *vec_concatv2df.
22392
22393 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
22394
22395         PR debug/48343
22396         * combine.c (combine_instructions): Add last_combined_insn,
22397         update it if insn is after it, pass it to all try_combine calls.
22398         (try_combine): Add last_combined_insn parameter, pass it instead of
22399         i3 to propagate_for_debug.
22400
22401 2011-04-07  Nick Clifton  <nickc@redhat.com>
22402
22403         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
22404         to handle MDR <-> data register transfers.
22405         (movhi_internal): Likewise.
22406
22407 2011-04-07  Alan Modra  <amodra@gmail.com>
22408
22409         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
22410         previous stack info.
22411
22412 2011-04-07  Tom de Vries  <tom@codesourcery.com>
22413
22414         PR target/43920
22415         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
22416         flow_find_cross_jump.  Swap variables to implement backward replacement.
22417         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
22418
22419 2011-04-07  Tom de Vries  <tom@codesourcery.com>
22420
22421         PR target/43920
22422         * cfgcleanup.c (walk_to_nondebug_insn): New function.
22423         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
22424         and bb2.
22425         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
22426         src1 or src2.  Redirect edges to the last basic block.  Update
22427         frequency and count on multiple basic blocks in case of fallthru.
22428
22429 2011-04-07  Tom de Vries  <tom@codesourcery.com>
22430
22431         PR target/43920
22432         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
22433         function.
22434         (old_insns_match_p): Change return type.  Replace return false/true
22435         with return dir_none/dir_both.  Use can_replace_by.
22436         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
22437         direction from dir_p.  Register replacement direction in dir, last_dir
22438         and afterlast_dir.  Handle new return type of old_insns_match_p using
22439         merge_dir.  Return replacement direction in dir_p.
22440         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
22441         return type of old_insns_match_p.
22442         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
22443         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
22444         flow_find_cross_jump.
22445         * basic-block.h (enum replace_direction): New type.
22446         (flow_find_cross_jump): Add parameter to declaration.
22447
22448 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
22449
22450         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
22451         (AVXMODEDCVTPS2DQ): Ditto.
22452         (VEC_FLOAT_MODE): Ditto.
22453         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
22454         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
22455         (<any_logic:code><mode>3): Use VF mode iterator.
22456         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
22457         Use VF mode iterator.
22458         (copysign<mode>3): Use VF mode iterator.
22459         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
22460         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
22461         (*<any_logic:code><MODEF:mode>3): Merge with
22462         *avx_<any_logic:code><MODEF:mode>3.
22463         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
22464         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
22465         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
22466         (avx_cvtdq2ps<avxmodesuffix>): Remove.
22467         (sse2_cvtdq2ps): Use %v modifier.
22468         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
22469         (avx_cvtps2dq<avxmodesuffix>): Remove.
22470         (sse2_cvtps2dq): Use %v modifier.
22471         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
22472         (avx_cvttps2dq<avxmodesuffix>): Remove.
22473         (sse2_cvttps2dq): Use %v modifier.
22474         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
22475         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
22476         (sse2_cvtsd2siq): Fix insn template.
22477         (sse2_cvtsd2siq_2): Ditto.
22478         (sse2_cvttsd2siq): Ditto.
22479         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
22480         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
22481
22482 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
22483
22484         * gcov-io.c: Use GCC Runtime Library Exception.
22485
22486 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
22487
22488         PR debug/48466
22489         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
22490         as base_reg whatever register reg has been eliminated to, instead
22491         of hardcoding STACK_POINTER_REGNUM.
22492
22493 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
22494
22495         * doc/tm.texi.in: Document C target hooks as separate from general
22496         target hooks.
22497         * doc/tm.texi: Regenerate.
22498         * genhooks.c (struct hook_desc): Add docname field.
22499         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
22500         docname field.
22501         (hook_array): Include c-target.def.
22502         (emit_documentation): Use docname field in output.
22503         (emit_init_macros): Take docname argument.  Only emit definitions
22504         for hooks matching docname.
22505         (main): Expect additional arguments in all cases.  Pass argument
22506         to emit_init_macros.
22507         * target.def: Move initial macro definitions and comments to
22508         target-hooks-macros.h.
22509         (gcc_targetcm): Move to c-family/c-target.def.
22510         * target.h (targetcm): Move declaration to c-family/c-target.h.
22511         * targhooks.c (default_handle_c_option): Move to
22512         c-family/c-opts.c.
22513         * targhooks.h (default_handle_c_option): Move declaration to
22514         c-family/c-common.h.
22515         * target-hooks-macros.h: New file.
22516         * config.gcc (target_has_targetcm): Define and use to add to
22517         c_target_objs and cxx_target_objs.
22518         * config/default-c.c: New file.
22519         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
22520         of target.h and target-def.h.
22521         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
22522         (darwin_objc_construct_string, darwin_cfstring_ref_p,
22523         darwin_check_cfstring_format_arg): Make static.
22524         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
22525         TARGET_STRING_OBJECT_REF_TYPE_P,
22526         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
22527         * config/darwin-protos.h (darwin_objc_construct_string,
22528         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
22529         declare.
22530         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
22531         TARGET_STRING_OBJECT_REF_TYPE_P,
22532         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
22533         * config/t-darwin (darwin-c.o): Update dependencies.
22534         * system.h (TARGET_HAS_TARGETCM): Poison.
22535         * Makefile.in (TARGET_H): Update.
22536         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
22537         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
22538         (default-c.o): New target.
22539         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
22540         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
22541         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
22542         c-target.def.
22543         (build/genhooks.o): Update dependencies.
22544
22545 2011-04-06  Richard Guenther  <rguenther@suse.de>
22546
22547         * ipa-inline.c (enum inlining_mode): Remove.
22548         (cgraph_flatten): Use some other token.
22549         (cgraph_edge_early_inlinable_p): New function, split out from ...
22550         (cgraph_perform_always_inlining): New function, split out from ...
22551         (cgraph_decide_inlining_incrementally): ... here.
22552         (cgraph_mark_inline_edge): Adjust.
22553         (cgraph_early_inlining): Re-structure.
22554         (pass_early_inline): Require SSA form.
22555
22556 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
22557             Julian Brown  <julian@codesourcery.com>
22558             Mark Shinwell  <shinwell@codesourcery.com>
22559
22560         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
22561         LO_REGS only for Thumb-1.
22562         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
22563         be used in short instructions when optimising for size on Thumb-2.
22564
22565 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
22566
22567         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
22568         associated with user returns to be preserved.
22569
22570 2011-04-06  Tristan Gingold  <gingold@adacore.com>
22571
22572         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
22573         symbol_queue_size, DBXOUT_DECR_NESTING,
22574         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
22575         if XCOFF_DEBUGGING_INFO.
22576
22577 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
22578
22579         * config/i386/i386.md (attribute isa): New.
22580         (attribute enabled): New.
22581         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
22582         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
22583         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
22584         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
22585         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
22586         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
22587         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
22588         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
22589
22590         * config/i386/sse.md (VF): New mode iterator.
22591         (VF1): Ditto.
22592         (VF2): Ditto.
22593         (VF_128): Ditto.
22594         (SSEMODEF4): Remove.
22595         (attribute sse): Handle V8SF and V4DF modes.
22596         (<absneg:code><mode>2): Use VF mode iterator.
22597         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
22598         mode iterator.
22599         (<plusminus_insn><mode>3): Use VF mode iterator.
22600         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
22601         Use VF mode iterator.
22602         (<sse>_vm<plusminus_insn><mode>3): Merge with
22603         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
22604         (mul<mode>3): Use VF mode iterator.
22605         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
22606         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
22607         mode iterator.
22608         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
22609         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
22610         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
22611         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
22612         mode iterator.
22613         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
22614         Use VF1 mode iterator.
22615         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
22616         (sqrt<VF2:mode>2): New expander.
22617         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
22618         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
22619         and sqrtv2df2.  Use VF mode iterator.
22620         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
22621         mode iterator.
22622         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
22623         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
22624         Use VF1 mode iterator.
22625         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
22626         (<smaxmin:code><mode>3): Use VF mode iterator.
22627         (*<smaxmin:code><mode>3_finite): Merge with
22628         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
22629         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
22630         (<sse>_vm<smaxmin:code><mode>2): Merge with
22631         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
22632         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
22633         mode iterator.
22634         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
22635         mode iterator.
22636         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
22637         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
22638         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
22639         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
22640         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
22641         VF mode iterator.
22642         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
22643         Use VF_128 mode iterator.
22644         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
22645         mode iterator.
22646         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
22647         VF_128 mode iterator.
22648         (vcond<mode>): Use VF mode iterator.
22649         * config/i386/predicates.md (sse_comparison_operator): Merge with
22650         avx_comparison_float_operator.  Do not declare as special_predicate.
22651         * config/i386/i386.c (struct builtin_description): Update for renamed
22652         compare patterns.
22653         (ix86_expand_args_builtin): Ditto.
22654         (ix86_expand_sse_compare_mask): Ditto.
22655
22656 2011-04-06  Richard Guenther  <rguenther@suse.de>
22657
22658         * tree-inline.c (estimate_num_insns): For calls simply account
22659         for all passed arguments and a used return value.
22660
22661 2011-04-06  Richard Guenther  <rguenther@suse.de>
22662
22663         PR tree-optimization/47663
22664         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
22665         call_stmt_time fields.
22666         (cgraph_edge_inlinable_p): Declare.
22667         (cgraph_edge_recursive_p): New inline function.
22668         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
22669         (cgraph_clone_edge): Copy it.
22670         * ipa-inline.c (cgraph_estimate_edge_time): New function.
22671         Account for call stmt time.
22672         (cgraph_estimate_time_after_inlining): Take edge argument.
22673         (cgraph_estimate_edge_growth): Account call stmt size.
22674         (cgraph_estimate_size_after_inlining): Take edge argument.
22675         (cgraph_mark_inline_edge): Adjust.
22676         (cgraph_check_inline_limits): Likewise.
22677         (cgraph_recursive_inlining_p): Remove.
22678         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
22679         (cgraph_decide_recursive_inlining): Take edge argument and
22680         adjust.
22681         (cgraph_decide_inlining_of_small_functions): Do not avoid
22682         diags for recursive inlining here.
22683         (cgraph_flatten): Adjust.
22684         (cgraph_decide_inlining_incrementally): Likewise.
22685         (estimate_function_body_sizes): Remove call cost handling.
22686         (compute_inline_parameters): Initialize caller edge call costs.
22687         (cgraph_estimate_edge_growth): New function.
22688         (cgraph_estimate_growth): Use it.
22689         (cgraph_edge_badness): Likewise.
22690         (cgraph_check_inline_limits): Take an edge argument.
22691         (cgraph_decide_inlining_of_small_functions): Adjust.
22692         (cgraph_decide_inlining): Likewise.
22693         * tree-inline.c (estimate_num_insns): Only account for call
22694         return value if it is used.
22695         (expand_call_inline): Avoid diagnostics on recursive inline
22696         functions here.
22697         * lto-cgraph.c (lto_output_edge): Output edge call costs.
22698         (input_edge): Input edge call costs.
22699
22700 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22701
22702         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
22703
22704 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
22705
22706         * doc/invoke.texi (Spec Files): Fix typo.
22707
22708 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
22709
22710         * profile.c (branch_prob): Move declaration of local variable.  Remove
22711         obsolete ??? comment.  Expand the location explicitly instead of using
22712         the LOCATION_FILE and LOCATION_LINE macros.
22713
22714 2011-04-06  Wei Guozhi  <carrot@google.com>
22715
22716         PR target/47855
22717         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
22718         (arm_cond_branch): Likewise.
22719         (arm_cond_branch_reversed): Likewise.
22720         (arm_jump): Likewise.
22721         (push_multi): Likewise.
22722         * config/arm/constraints.md (Py): New constraint.
22723
22724 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22725
22726         PR bootstrap/48471
22727         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
22728         Move these...
22729         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
22730         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
22731         #ifdef DBX_DEBUGGING_INFO.
22732
22733 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
22734
22735         PR bootstrap/48403
22736         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
22737         if old and new states differ.
22738
22739 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
22740
22741         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
22742         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
22743         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
22744         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
22745         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
22746         mcfv4e): Use Alias.
22747         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
22748         ColdFire options to -mcpu= options.
22749
22750 2011-04-05  Jeff Law  <law@redhat.com>
22751
22752         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
22753         check if BB is a successor of LOOP->header and return
22754         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
22755
22756 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
22757
22758         * cprop.c (struct reg_use): Remove.
22759         (reg_use_table): Make an array of RTX.
22760         (find_used_regs, constprop_register, local_cprop_pass,
22761         bypass_block): Simplify users of reg_use_table.
22762         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
22763         on one of the uses found by find_used_regs.
22764
22765 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22766
22767         PR bootstrap/48469
22768         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
22769         declaration.
22770
22771 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22772
22773         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
22774         as an rtx.
22775         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
22776
22777 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
22778
22779         PR middle-end/48441
22780         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
22781
22782 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22783
22784         * combine.c: Include obstack.h.
22785         (struct insn_link): Define.
22786         (uid_log_links): Adjust type.
22787         (FOR_EACH_LOG_LINK): New macro.
22788         (insn_link_obstack): Declare.
22789         (alloc_insn_link): Define.
22790         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
22791         type of link variables.
22792         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
22793         (try_combine, record_promoted_values, distribute_notes): Likewise.
22794         (distribute_links): Likewise.  Tweak prototype.
22795         (clear_log_links): Delete.
22796         (adjust_for_new_dest): Call alloc_insn_link.
22797         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
22798
22799 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22800
22801         * gcse.c (modify_mem_list): Convert to an array of VECs.
22802         (canon_modify_mem_list, compute_transp): Tweak formatting.
22803         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
22804         (load_killed_in_block_p): Likewise.
22805         (record_last_mem_set_info): Likewise.
22806         (clear_modify_mem_tables): Likewise.
22807
22808 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22809
22810         PR middle-end/48461
22811         * function.c (emit_use_return_register_into_block): Only define if
22812         HAVE_return.
22813
22814 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
22815
22816         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
22817
22818 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
22819
22820         * config/rx/rx-opts.h: New.
22821         * config/rx/rx.c (rx_cpu_type): Remove.
22822         (rx_handle_option): Don't assert that global structures are in
22823         use.  Access variables via opts pointer.  Defer most handling of
22824         OPT_mint_register_.  Use error_at.
22825         (rx_option_override): Handle deferred OPT_mint_register_ here.
22826         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
22827         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
22828         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
22829         (rx_cpu_types): New Enum and EnumValue entries.
22830         (mint-register=): Use Defer and use Var accordingly.
22831
22832 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22833
22834         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
22835         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
22836         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
22837         Move these...
22838         (debug_free_queue, debug_nesting, symbol_queue_index):
22839         ...and these...
22840         * dbxout.c: ...to here.  Make static.
22841
22842 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22843
22844         * gcse.c (modify_pair): Define.  Define a VEC of it.
22845         (canon_modify_mem_list): Convert to an array of VECs.
22846         (free_insn_expr_list_list): Delete.
22847         (clear_modify_mem_tables): Call VEC_free instead.
22848         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
22849         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
22850         (canon_list_insert, compute_transp): Likewise.
22851
22852 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22853
22854         PR target/43920
22855         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
22856         for size.
22857
22858 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22859
22860         PR target/43920
22861         * function.c (emit_use_return_register_into_block): New function.
22862         (thread_prologue_and_epilogue_insns): Use
22863         emit_use_return_register_into_block.
22864
22865 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22866
22867         PR target/43920
22868         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
22869         insn.
22870
22871 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22872
22873         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
22874
22875 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
22876
22877         * config/arm/arm.md (define_constants for unspec): Replace with
22878         define_c_enum.
22879         (define_constants for unspecv): Replace with define_c_enum.
22880         * config/arm/neon.md (define_constants for unspec): Replace with
22881         define_c_enum.
22882
22883 2011-04-04  Richard Henderson  <rth@redhat.com>
22884
22885         PR bootstrap/48400
22886         * dwarf2out.c (output_line_info): Always emit line info from
22887         at least one section.
22888         (dwarf2out_init): Create text_section_line_info here ...
22889         (set_cur_line_info_table): ... not here.
22890
22891 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
22892
22893         PR target/48380
22894         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
22895         not called.
22896
22897         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
22898
22899 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
22900
22901         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
22902         (expr_equiv_p): Remove.
22903         (insert_set_in_table): Look at <dest, src> pair instead of expr.
22904         (hash_scan_set): Update call to insert_set_in_table.
22905         (dump_hash_table): Dump <dest, src> pair.
22906         (lookup_set): Simplify.  Lookup <dest, src> pair.
22907         (compute_transp): Remove, fold heavily simplified code into...
22908         (compute_local_properties): ...here.  Expect COMP and TRANSP
22909         unconditionally.
22910         (find_avail_set): Take set directly from struct expr.
22911         (find_bypass-set): Likewise.
22912         (bypass_block): Likewise.
22913         (cprop_insn): Likewise.  Remove redundant INSN_P test.
22914
22915         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
22916         checks on form of COND from find_implicit_sets to here.
22917         (find_implicit_sets): Cleanup control flow. Split critical edges
22918         if it exposes implicit sets.  Allocate/resize implicit_sets as
22919         necessary.
22920         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
22921         changed something.  Run df_analyze after find_implicit_sets if any
22922         edges were split.  Do not allocate implicit_sets here.
22923
22924         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
22925         (gcse_obstack): Renamed to cprop_obstack.
22926         (GNEW, GNEWVEC, GNEWVAR): Remove.
22927         (gmalloc): Remove.
22928         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
22929         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
22930         (gcse_alloc): Likewise, and rename to cprop_alloc.
22931         (alloc_gcse_men, free_gcse_mem): Remove.
22932         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
22933         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
22934         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
22935
22936         * cprop.c (oprs_not_set_p): Remove.
22937         (mark_set, mark_clobber): Remove.
22938         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
22939         (reg_not_set_p): New function.
22940         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
22941         (cprop_insn): Likewise.
22942         (cprop_jump): Use FOR_EACH_EDGE.
22943
22944 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
22945
22946         PR bootstrap/48403
22947         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
22948         (rank_for_schedule): Use scheduled_insns vector instead of
22949         last_scheduled_insn.
22950         (ok_for_early_queue_removal): Likewise.
22951         (queue_to_ready): Search forward in nonscheduled_insns_begin if
22952         we have a dbg_cnt.
22953         (choose_ready): Likewise.
22954         (commit_schedule): Use VEC_iterate.
22955         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
22956         a dbg_cnt, use it and ensure the first insn is in the ready list.
22957         (haifa_sched_init): Allocate scheduled_insns.
22958         (sched_extend_ready_list): Don't allocate it; reserve space.
22959         (haifa_sched_finish): Free it.
22960
22961 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
22962
22963         * optc-gen.awk: Always remove type from Variable entry before
22964         recording in var_seen.
22965
22966 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
22967
22968         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
22969         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
22970         call to tidy_fallthru_edges.
22971
22972 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
22973
22974         * doc/options.texi (ToLower): Document.
22975         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
22976         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
22977         * opts.h (cl_option): Add cl_tolower field.
22978         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
22979         arguments with lowercase strings.
22980         * config/rx/rx.opt (mcpu=): Add ToLower.
22981         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
22982         argument.
22983
22984 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
22985
22986         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
22987
22988 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
22989
22990         * config/vax/vax.c: Include reload.h.
22991
22992 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
22993
22994         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
22995         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
22996         (sparc_preferred_reload_class): New function.
22997
22998 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
22999
23000         PR debug/48401
23001         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
23002         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
23003
23004 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
23005
23006         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
23007         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
23008
23009 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
23010
23011         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
23012         (ASM_OUTPUT_ALIGNED_BSS): Define.
23013
23014 2011-04-03  Michael Matz  <matz@suse.de>
23015
23016         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
23017         and next_slot members.
23018         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
23019         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
23020         (lto_streamer_cache_append): Declare.
23021         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
23022         unsigned index, remove offset parameter, ensure that we append
23023         or update existing entries.
23024         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
23025         parameter, update next_slot for append.
23026         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
23027         parameter.
23028         (lto_streamer_cache_insert_at): Likewise.
23029         (lto_streamer_cache_append): New function.
23030         (lto_streamer_cache_lookup): Use unsigned index.
23031         (lto_streamer_cache_get): Likewise.
23032         (lto_record_common_node): Don't test tree_node_can_be_shared.
23033         (preload_common_node): Adjust call to lto_streamer_cache_insert.
23034         (lto_streamer_cache_delete): Don't free offsets member.
23035         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
23036         (lto_output_string_with_length): Use lto_output_data_stream.
23037         (lto_output_tree_header): Remove ix parameter, don't write it.
23038         (lto_output_builtin_tree): Likewise.
23039         (lto_write_tree): Adjust callers to above, don't track and write
23040         offset, write unsigned index.
23041         (output_unreferenced_globals): Don't emit all global vars.
23042         (write_global_references): Use unsigned indices.
23043         (lto_output_decl_state_refs): Likewise.
23044         (write_symbol): Likewise.
23045         * lto-streamer-in.c (lto_input_chain): Move earlier.
23046         (input_function): Use unsigned index.
23047         (input_alias_pairs): Don't read and then ignore all global vars.
23048         (lto_materialize_tree): Remove ix_p parameter, don't read index,
23049         don't pass it back, use lto_streamer_cache_append.
23050         (lto_register_var_decl_in_symtab): Use unsigned index.
23051         (lto_register_function_decl_in_symtab): Likewise.
23052         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
23053         index.
23054         (lto_get_builtin_tree): Don't read index, use
23055         lto_streamer_cache_append.
23056         (lto_read_tree): Adjust call to lto_materialize_tree.
23057
23058         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
23059         don't use function calls in arguments to MIN.
23060
23061         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
23062         twice.
23063
23064         * gimple.c (gimple_type_leader_entry): Mark deletable.
23065
23066 2011-04-03  Alan Modra  <amodra@gmail.com>
23067
23068         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
23069
23070 2011-04-03  Michael Matz  <matz@suse.de>
23071
23072         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
23073         an integer.
23074         * tree.h (tree_decl_non_common.vindex): Adjust comment.
23075
23076 2011-04-03  Michael Matz  <matz@suse.de>
23077
23078         * cgraphbuild.c (record_reference): Canonicalize constructor values.
23079         * gimple-fold.c (canonicalize_constructor_val): Accept being called
23080         without function context.
23081         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
23082         current_function_decl and cfun.
23083
23084 2011-04-03  Michael Matz  <matz@suse.de>
23085
23086         * tree.c (decl_init_priority_insert): Don't create entry for
23087         default priority.
23088         (decl_fini_priority_insert): Ditto.
23089         (fields_compatible_p, find_compatible_field): Remove.
23090         * tree.h (fields_compatible_p, find_compatible_field): Remove.
23091         * gimple.c (gimple_compare_field_offset): Adjust block comment.
23092
23093 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
23094
23095         * combine.c (try_combine): Remove useless local variable.
23096
23097 2011-04-03  Richard Guenther  <rguenther@suse.de>
23098             Ira Rosen  <ira.rosen@linaro.org>
23099
23100         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
23101         non-variable offsets and compare the remaining bases of the two
23102         accesses instead of looking for exact same data-ref.
23103
23104 2011-04-02  Kai Tietz  <ktietz@redhat.com>
23105
23106         PR target/48416
23107         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
23108
23109         * i386.c (ix86_is_msabi_thiscall): New helper function.
23110         (ix86_is_type_thiscall): New helper function.
23111         (ix86_comp_type_attributes): Handle thiscall for method-functions
23112         special.
23113         (init_cumulative_args): Likewise.
23114         (find_drap_reg): Likewise.
23115         (ix86_static_chain): Likewise.
23116         (x86_this_parameter): Likewise.
23117         (x86_output_mi_thunk): Likewise.
23118
23119 2011-04-01  Olivier Hainque  <hainque@adacore.com>
23120             Nicolas Setton  <setton@adacore.com>
23121             Eric Botcazou  <ebotcazou@adacore.com>
23122
23123         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
23124         (add_gnat_descriptive_type_attribute): New function.
23125         (gen_array_type_die): Call it.
23126         (gen_enumeration_type_die): Likewise.
23127         (gen_struct_or_union_type_die): Likewise.
23128         (modified_type_die): Likewise.
23129         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
23130         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
23131         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
23132
23133 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
23134
23135         PR bootstrap/48148
23136         * dwarf2out.c (resolve_addr): Don't call force_decl_die
23137         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
23138
23139         Revert:
23140         2011-03-17  Richard Guenther  <rguenther@suse.de>
23141
23142         PR bootstrap/48148
23143         * lto-cgraph.c (input_overwrite_node): Clear the abstract
23144         origin for decls in other ltrans units.
23145         (input_varpool_node): Likewise.
23146
23147 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
23148
23149         PR middle-end/48335
23150         * expr.c (expand_assignment): Handle all possibilities
23151         if TO_RTX is CONCAT.
23152         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
23153         (store_split_bit_field): If SUBREG_REG (op0) or
23154         op0 itself has smaller mode than word, return it
23155         for offset 0 and const0_rtx for out-of-bounds stores.
23156         If word is const0_rtx, skip it.
23157
23158 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
23159
23160         * config/h8300/h8300.c (print_operand_address): Rename to...
23161         (h8300_print_operand_address): ...this. Make static. Adjust comments.
23162         Call h8300_print_operand and h8300_print_operand_address instead of
23163         print_operand and print_operand_address. Declare.
23164         (print_operand): Renake to...
23165         (h8300_print_operand): ...this. Make static. Adjust comments.
23166         Call h8300_print_operand instead of print_operand. Declare.
23167         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
23168         (h8300_register_move_cost): Likewise.
23169         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
23170         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
23171         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
23172         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
23173         * config/h8300/h8300-protos.h (print_operand): Delete.
23174         (print_operand_address): Delete.
23175
23176 2011-04-01  Richard Henderson  <rth@redhat.com>
23177
23178         PR 48400
23179         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
23180         in strict mode before dwarf4.  Re-order tests to early out
23181         before switching sections.
23182
23183 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
23184
23185         * config/h8300/constraints.md: New file.
23186         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
23187         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
23188         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
23189         * config/h8300/predicates.md (bit_operand): Likewise.
23190         (incdec_operand): Use satisfies_constraint_M and
23191         satisfies_constraint_O.  Don't use C code block.
23192         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
23193         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
23194         (compute_mov_length): Use satisfies_constraint_G.
23195         (fix_bit_operand): Use satisfies_constraint_U.
23196         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
23197         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
23198         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
23199         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
23200         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
23201         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
23202         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
23203         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
23204         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
23205         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
23206         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
23207         (EXTRA_MEMORY_CONSTRAINT): Delete.
23208
23209 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
23210             Michael Meissner  <meissner@linux.vnet.ibm.com>
23211
23212         PR target/48262
23213         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
23214         operands, as per the specifications.
23215
23216         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
23217         (vec_extract_evenv4sf): Ditto.
23218         (vec_extract_evenv8hi): Ditto.
23219         (vec_extract_evenv16qi): Ditto.
23220         (vec_extract_oddv4si): Ditto.
23221
23222 2011-03-31  Mark Wielaard  <mjw@redhat.com>
23223
23224         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
23225         high_pc attribute if the CU has no associated code. Only output
23226         DW_AT_entry_pc for CU if not generating strict dwarf and
23227         dwarf_version < 4.
23228
23229 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
23230
23231         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
23232         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
23233         out of ...
23234         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
23235         * final.c (final_start_function): Call the new function rather
23236         than using a NULL argument for dwarf2out_frame_debug.
23237
23238         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
23239         that contains the prologue.
23240
23241         * haifa-sched.c (queue_insn): New arg REASON.  All callers
23242         changed.  Print it in debugging output.
23243
23244         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
23245
23246         * sched-ebb.c (begin_schedule_ready): Remove second argument.
23247         Split most of the code into...
23248         (begin_move_insn): ... here.  New function.
23249         (ebb_sched_info): Add a pointer to it.
23250         * haifa-sched.c (scheduled_insns): New static variable.
23251         (sched_extend_ready_list): Allocate it.
23252         (schedule_block): Use it to record the order of scheduled insns.
23253         Perform RTL changes to move insns only after all scheduling
23254         decisions have been made.
23255         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
23256         begin_move_insn field.
23257         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
23258         * sched-int.h (struct haifa_sched_info): Remove second argument
23259         from begin_schedule_ready hook.  Add new member begin_move_insn.
23260         * sched-rgn.c (begin_schedule_ready): Remove second argument.
23261         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
23262
23263         * haifa-sched.c (prune_ready_list): New function, broken out of
23264         schedule_block.
23265         (schedule_block): Use it.
23266
23267 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23268
23269         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
23270
23271 2011-04-01  Kai Tietz  <ktietz@redhat.com>
23272
23273         * config.gcc (*-*-mingw*): Allow as option the
23274         posix threading model.
23275         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
23276         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
23277         definition.
23278         (CPP_SPEC): Add pthread/no-pthread handling.
23279         (LIB_SPEC): Likewise.
23280         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
23281         (LIB_SPEC): Likewise.
23282         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
23283         flag to pass -pthread option for shared libgcc build.
23284         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
23285         for shared libgcc build.
23286         * config/i386/t-mingw-pthread: New file.
23287         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
23288         New define to enable use of library pthread by default.
23289         * config/i386/mingw.opt (pthread): New driver option.
23290         (no-pthread): New driver option.
23291         * config/i386/cygming.opt: Make sure trailing empty line is retained.
23292         * config/i386/mingw-w64.opt: Likewise.
23293
23294 2011-04-01  Gary Funck  <gary@intrepid.com>
23295
23296         * c-decl.c (grokdeclarator): Fix formatting.
23297
23298 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
23299
23300         * expr.c (emit_block_move_via_movmem): Use n_generator_args
23301         instead of n_operands.
23302         (set_storage_via_setmem): Likewise.
23303         * optabs.c (maybe_gen_insn): Likewise.
23304         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
23305         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
23306         (mips_expand_builtin_direct): Likewise.
23307         * config/spu/spu.c (expand_builtin_args): Likewise.
23308
23309 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
23310
23311         * recog.h (insn_data_d): Add n_generator_args.
23312         * genoutput.c (data): Likewise.
23313         (output_insn_data): Print it.
23314         (max_opno, num_dups): Delete.
23315         (scan_operands): Just fill in "d->operand[...]".
23316         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
23317
23318 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
23319
23320         * gensupport.h (pattern_stats): New structure.
23321         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
23322         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
23323         (max_operand_1, max_operand_vec): Delete.
23324         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
23325
23326 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
23327
23328         * emit-rtl.c (emit_pattern_after_setloc): New function.
23329         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
23330         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
23331         (emit_pattern_after): New function.
23332         (emit_insn_after, emit_jump_insn_after): Call it.
23333         (emit_call_insn_after, emit_debug_insn_after): Likewise.
23334         (emit_pattern_before_setloc): New function.
23335         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
23336         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
23337         Likewise.
23338         (emit_pattern_before): New function.
23339         (emit_insn_before, emit_jump_insn_before): Call it.
23340         (emit_call_insn_before, emit_debug_insn_before): Likewise.
23341
23342 2011-03-31  Richard Henderson  <rth@redhat.com>
23343
23344         * dwarf2out.c (dw_separate_line_info_ref): Remove.
23345         (dw_separate_line_info_entry): Remove.
23346         (enum dw_line_info_opcode): New.
23347         (dw_line_info_entry): Use it.
23348         (dw_line_info_table, dw_line_info_table_p): New.
23349         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
23350         (line_info_table, line_info_label_num): Remove.
23351         (line_info_table_in_use): Remove.
23352         (separate_line_info_table): Remove.
23353         (separate_line_info_table_allocated): Remove.
23354         (separate_line_info_table_in_use): Remove.
23355         (LINE_INFO_TABLE_INCREMENT): Remove.
23356         (line_info_label_num): New.
23357         (cur_line_info_table): New.
23358         (text_section_line_info, cold_text_section_line_info): New.
23359         (separate_line_info): New.
23360         (SEPARATE_LINE_CODE_LABEL): Remove.
23361         (print_dwarf_line_table): Remove.
23362         (debug_dwarf): Don't dump it.
23363         (output_one_line_info_table): New.
23364         (output_line_info): Use it.
23365         (new_line_info_table): New.
23366         (set_cur_line_info_table): New.
23367         (dwarf2out_switch_text_section): Use it.
23368         (dwarf2out_begin_function): Likewise.
23369         (push_dw_line_info_entry): New.
23370         (dwarf2out_source_line): Rewrite for new line info tables.
23371         (dwarf2out_init): Remove dead initailizations.
23372
23373 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
23374
23375         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
23376         various flags.
23377         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
23378         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
23379         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
23380         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
23381         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
23382         * opt-functions.awk (flag_init, switch_bit_fields): New.
23383         (switch_flags): Don't handle flags moved to bit-fields.  Don't
23384         generate CL_MISSING_OK or CL_SAVE.
23385         * optc-gen.awk: Update to generate bit-field output as well as
23386         flags field.
23387         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
23388         bit-field instead of CL_REJECT_DRIVER flag.
23389         * opts-common.c (generate_canonical_option,
23390         decode_cmdline_option): Use bit-fields instead of CL_* flags.
23391         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
23392         instead of CL_REJECT_NEGATIVE flag.
23393         * toplev.c (print_switch_values): Use cl_report bit-field instead
23394         of CL_REPORT flag.
23395
23396 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
23397
23398         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
23399         a zero minimum index only if it is redundant.
23400
23401 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
23402
23403         PR rtl-optimization/48381
23404         * ira-color.c (assign_hard_reg): Use hard reg set intersection
23405         instead of ira_class_hard_reg_index for calculating conflicting
23406         hard registers.
23407
23408 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
23409
23410         * cprop.c: Clean up hash table building.
23411         (reg_avail_info): Remove.
23412         (oprs_available_p): Remove.
23413         (record_last_reg_set_info): Remove.
23414         (record_last_set_info): Remove.
23415         (reg_available_p): New function.
23416         (gcse_constant_p): Do not treat unfolded conditions as constants.
23417         (make_set_regs_unavailable): New function.
23418         (hash_scan_set): Simplify with new reg_available_p.
23419         (compute_hash_table_work): Traverse insns stream only once.
23420         Do not compute reg_avail_info. Traverse insns in reverse order.
23421         Record implicit sets after recording explicit sets from the block.
23422
23423 2011-03-31  Michael Matz  <matz@suse.de>
23424
23425         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
23426
23427 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
23428
23429         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
23430         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
23431         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23432         (h8300_mode_dependent_address_p): New function.
23433         (h8300_get_index): Make static.
23434
23435 2011-03-31  Jeff Law  <law@redhat.com>
23436
23437         * reload1.c (elimination_effects): Fix typo in recent change.
23438
23439         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
23440         typo potentially leading to null pointer dereference.
23441
23442         * caller-save.c (new_saved_hard_reg): Eliminate return value.
23443         (setup_save_areas): Corresponding changes to avoid useless
23444         assignments.
23445
23446         * jump.c (reversed_comparison_code_parts): Avoid successive return
23447         statements when REVERSE_CONDITION is defined.
23448
23449         * expr.c (expand_assignment): Avoid useless assignments.
23450         (expand_expr_real_1): Likewise.
23451         (expand_expr_real_2): Avoid useless statements.
23452
23453         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
23454
23455         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
23456
23457         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
23458         statements.
23459
23460         * stmt.c (expand_expr_stmt): Avoid useless assignment.
23461
23462 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
23463
23464         PR target/47109
23465         * doc/tm.texi.in (TARGET_VERSION): Remove.
23466         * doc/tm.texi: Regenerate.
23467         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
23468         * collect2.c (main): Don't use TARGET_VERSION.
23469         * mips-tdump.c (main): Don't use TARGET_VERSION.
23470         * mips-tfile.c (main): Don't use TARGET_VERSION.
23471         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
23472         * config/rs6000/vxworksae.h: Remove.
23473         * config/alpha/alpha.h (TARGET_VERSION): Remove.
23474         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
23475         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
23476         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
23477         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
23478         * config/arm/arm.h (TARGET_VERSION): Remove.
23479         * config/arm/coff.h (TARGET_VERSION): Remove.
23480         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
23481         * config/arm/elf.h (TARGET_VERSION): Remove.
23482         * config/arm/freebsd.h (TARGET_VERSION): Remove.
23483         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
23484         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
23485         * config/arm/pe.h (TARGET_VERSION): Remove.
23486         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
23487         * config/arm/semi.h (TARGET_VERSION): Remove.
23488         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
23489         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
23490         * config/arm/vxworks.h (TARGET_VERSION): Remove.
23491         * config/avr/avr.h (TARGET_VERSION): Remove.
23492         * config/bfin/bfin.h (TARGET_VERSION): Remove.
23493         * config/fr30/fr30.h (TARGET_VERSION): Remove.
23494         * config/frv/frv.h (TARGET_VERSION): Remove.
23495         * config/h8300/h8300.h (TARGET_VERSION): Remove.
23496         * config/i386/cygwin.h (TARGET_VERSION): Remove.
23497         * config/i386/darwin.h (TARGET_VERSION): Remove.
23498         * config/i386/darwin64.h (TARGET_VERSION): Remove.
23499         * config/i386/djgpp.h (TARGET_VERSION): Remove.
23500         * config/i386/freebsd.h (TARGET_VERSION): Remove.
23501         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
23502         * config/i386/gnu.h (TARGET_VERSION): Remove.
23503         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
23504         * config/i386/i386elf.h (TARGET_VERSION): Remove.
23505         * config/i386/linux.h (TARGET_VERSION): Remove.
23506         * config/i386/linux64.h (TARGET_VERSION): Remove.
23507         * config/i386/lynx.h (TARGET_VERSION): Remove.
23508         * config/i386/mingw32.h (TARGET_VERSION): Remove.
23509         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
23510         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
23511         * config/i386/netware.h (TARGET_VERSION): Remove.
23512         * config/i386/nto.h (TARGET_VERSION): Remove.
23513         * config/i386/openbsd.h (TARGET_VERSION): Remove.
23514         * config/i386/vxworks.h (TARGET_VERSION): Remove.
23515         * config/ia64/elf.h (TARGET_VERSION): Remove.
23516         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
23517         * config/ia64/hpux.h (TARGET_VERSION): Remove.
23518         * config/ia64/linux.h (TARGET_VERSION): Remove.
23519         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
23520         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
23521         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
23522         * config/lm32/lm32.h (TARGET_VERSION): Remove.
23523         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
23524         * config/m32c/m32c.h (TARGET_VERSION): Remove.
23525         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
23526         * config/m32r/m32r.h (TARGET_VERSION): Remove.
23527         * config/m68k/linux.h (TARGET_VERSION): Remove.
23528         * config/m68k/m68k.h (TARGET_VERSION): Remove.
23529         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
23530         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
23531         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
23532         * config/mep/mep.h (TARGET_VERSION): Remove.
23533         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
23534         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
23535         * config/mips/iris6.h (MACHINE_TYPE): Remove.
23536         * config/mips/linux.h (TARGET_VERSION): Remove.
23537         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
23538         * config/mips/vxworks.h (TARGET_VERSION): Remove.
23539         * config/mmix/mmix.h (TARGET_VERSION): Remove.
23540         * config/mn10300/linux.h (TARGET_VERSION): Remove.
23541         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
23542         * config/pa/pa.h (TARGET_VERSION): Remove.
23543         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
23544         * config/picochip/picochip.h (TARGET_VERSION): Remove.
23545         * config/rs6000/aix.h (TARGET_VERSION): Remove.
23546         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
23547         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
23548         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
23549         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
23550         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
23551         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
23552         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
23553         * config/rs6000/linux.h (TARGET_VERSION): Remove.
23554         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
23555         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
23556         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
23557         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
23558         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
23559         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
23560         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
23561         * config/s390/linux.h (TARGET_VERSION): Remove.
23562         * config/s390/s390.h (TARGET_VERSION): Remove.
23563         * config/s390/tpf.h (TARGET_VERSION): Remove.
23564         * config/score/score.h (TARGET_VERSION): Remove.
23565         * config/sh/linux.h (TARGET_VERSION): Remove.
23566         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
23567         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
23568         * config/sh/sh.h (TARGET_VERSION): Remove.
23569         * config/sh/sh64.h (TARGET_VERSION): Remove.
23570         * config/sh/superh.h (TARGET_VERSION): Remove.
23571         * config/sh/vxworks.h (TARGET_VERSION): Remove.
23572         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
23573         * config/sparc/linux.h (TARGET_VERSION): Remove.
23574         * config/sparc/linux64.h (TARGET_VERSION): Remove.
23575         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
23576         TARGET_NAME32, TARGET_NAME): Remove.
23577         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
23578         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
23579         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
23580         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
23581         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
23582         * config/spu/spu.h (TARGET_VERSION): Remove.
23583         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
23584         * config/v850/v850.h (TARGET_VERSION): Remove.
23585         * config/vax/linux.h (TARGET_VERSION): Remove.
23586         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
23587         * config/xtensa/elf.h (TARGET_VERSION): Remove.
23588         * config/xtensa/linux.h (TARGET_VERSION): Remove.
23589
23590 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
23591
23592         PR target/48142
23593         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
23594         frame-related from frame-unrelated adjustments to the stack pointer.
23595
23596 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
23597
23598         * common.opt (fdebug-types-section): Move earlier.
23599         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
23600
23601 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
23602
23603         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
23604         var.
23605
23606 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
23607
23608         * tree.h (CASE_CHAIN): Define.
23609         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
23610         (gimple_redirect_edge_and_branch): Likewise.
23611
23612 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
23613
23614         PR middle-end/48367
23615         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
23616         calculation.
23617
23618 2011-03-30  Jeff Law  <law@redhat.com>
23619
23620         * PR bootstrap/48371
23621         * reload1.c (reload): Fix botch in last change.
23622
23623         * reload.h (struct reload): Fix typo introduced in last change.
23624
23625 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
23626
23627         * config/arm/arm.opt (mhard-float, msoft-float): Mark
23628         Undocumented.  Remove help text.
23629         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
23630         -mhard-float.
23631
23632 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
23633
23634         * doc/options.texi (NegativeAlias): Document.
23635         (Alias): Mention NegativeAlias.
23636         * opt-functions.awk: Handle NegativeAlias.
23637         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
23638         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
23639         * opts.h (CL_NEGATIVE_ALIAS): Define.
23640         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
23641         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
23642         OPT_mspe_.
23643         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
23644         Alias entries.
23645         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
23646         mno-spe and mno-isel instead of mspe=no and -misel=no.
23647
23648 2011-03-29  Mark Wielaard  <mjw@redhat.com>
23649
23650         * common.opt (fdebug-types-section): New flag.
23651         * doc/invoke.texi: Document new -fno-debug-types-section flag.
23652         * dwarf2out.c (use_debug_types): New define.
23653         (struct die_struct): Mark die_id with GTY desc use_debug_types.
23654         (print_die): Guard output of type unit signatures using
23655         use_debug_types.
23656         (build_abbrev_table): Replace assert of dwarf_version >= 4
23657         with assert on use_debug_types.
23658         (size_of_die): Likewise.
23659         (unmark_dies): Likewise.
23660         (value_format): Decide AT_ref_external form on use_debug_types.
23661         (output_die): Replace dwarf_version version check guard with
23662         use_debug_types where appropriate.
23663         (modified_type_die): Likewise.
23664         (gen_reference_type_die): Likewise.
23665         (dwarf2out_start_source_file): Likewise.
23666         (dwarf2out_end_source_file): Likewise.
23667         (prune_unused_types_walk_attribs): Likewise.
23668         (dwarf2out_finish): Likewise.
23669
23670 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
23671
23672         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
23673
23674 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
23675
23676         PR rtl-optimization/48332
23677         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
23678         mode of input operand N and modeN to its actual mode.
23679
23680 2011-03-30  Jeff Law  <law@redhat.com>
23681
23682         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
23683         define accessor macro.
23684         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
23685         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
23686         (reg_equiv_init): Likewise.
23687         (reg_equivs_size): New variable.
23688         (reg_equiv_init_size): Remove.
23689         (allocate_initial_values): Move prototype to here from....
23690         * integrate.h (allocate_initial_values): Remove prototype.
23691         * integrate.c: Include reload.h.
23692         (allocate_initial_values): Corresponding changes.
23693         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
23694         (fix_reg_equiv_init, no_equiv): Corresponding changes.
23695         (update_equiv_regs): Corresponding changes.
23696         (ira): Corresponding changes.
23697         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
23698         (push_secondary_reload): Corresponding changes.
23699         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
23700         (make_memloc, find_reloads_address): Corresponding changes.
23701         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
23702         (find_reloads_address_1): Corresponding changes.
23703         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
23704         (refers_to_regno_for_reload_p): Corresponding changes.
23705         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
23706         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
23707         * reload1.c: Include ggc.h.
23708         (grow_reg_equivs): New function.
23709         (replace_pseudos_in, reload): Corresponding changes.
23710         (calculate_needs_all_insns, alter_regs): Corresponding changes.
23711         (eliminate_regs_1, elimination_effects): Corresponding changes.
23712         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
23713         (delete_output_reload): Likewise.
23714         * caller-save.c (mark_referenced_regs): Corresponding changes.
23715         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
23716         * frv/predicates.md (frv_load_operand): Corresponding changes.
23717         * microblaze/microblaze.c (double_memory_operand): Corresponding
23718         changes.
23719         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
23720         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
23721         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
23722         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
23723         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
23724         changes.
23725         * pa/pa.c (emit_move_sequence): Corresponding changes.
23726         * vax/vax.c (nonindexed_address_p): Corresponding changes.
23727
23728 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
23729
23730         PR target/47551
23731         * config/arm/arm.c (coproc_secondary_reload_class): Handle
23732         structure modes.  Don't check neon_vector_mem_operand for
23733         vector or structure modes.
23734
23735 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
23736             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
23737
23738         PR target/43590
23739         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
23740         operand 1 and reshuffle the operands to match.
23741         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
23742
23743 2011-03-30  Christian Schüler  <cschueler@gmx.de>
23744
23745         PR driver/48208
23746         * config/c.opt (F): Added 'Driver' to -F option.
23747
23748         PR driver/48260
23749         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
23750           handler function.
23751         * config/darwin.opt: Added '-arch' option.
23752
23753 2011-03-30  Nick Clifton  <nickc@redhat.com>
23754
23755         * config/rx/rx.md: Add peepholes and patterns to combine
23756         extending loads and simple arithmetic instructions.
23757         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
23758         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
23759         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
23760         modes to use pre-decrement and post-increment addressing.
23761         (rx_is_restricted_memory_address): Add range checking of REG+INT
23762         addresses.
23763         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
23764         (rx_memory_move_cost): Adjust cost of stores.
23765         (rx_adjust_insn_length): New function.
23766
23767 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
23768
23769         PR c/48305
23770         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
23771         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
23772         matching arg00/arg01 types.
23773
23774 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
23775
23776         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
23777         last_location to UNKNOWN_LOCATION.
23778
23779 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
23780
23781         PR target/48349
23782         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
23783         FLOAT_SSE_REGS.
23784
23785 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
23786             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23787
23788         PR bootstrap/48337
23789         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
23790         Init(PROCESSOR_V7).
23791         (sparc_cpu): Likewise.
23792         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
23793         PROCESSOR_V7.
23794
23795 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
23796
23797         PR target/48336
23798         PR middle-end/48342
23799         PR rtl-optimization/48345
23800         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
23801         hard regs for given mode from profitable regs when doing secondary
23802         allocation.
23803
23804 2011-03-29  Jeff Law  <law@redhat.com>
23805
23806         PR bootstrap/48327
23807         * tree-ssa-threadupdate.c (struct redirection_data): Remove
23808         do_not_duplicate field.
23809         (lookup_redirection_data): Corresponding changes.
23810         (create_duplicates): Always create a template block.
23811         (redirect_edges): Remove code which reused the original block
23812         when it was going to become unreachable code.
23813         (thread_block): Don't set do_not_duplicate field.
23814
23815 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
23816
23817         * lto-opts.c (register_user_option_p, lto_register_user_option):
23818         Make type argument unsigned.
23819         * lto-streamer.h (lto_register_user_option): Make type argument
23820         unsigned.
23821         * opth-gen.awk: Make CL_* macros unsigned.
23822         * opts-common.c (find_opt): Make lang_mask argument unsigned.
23823         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
23824         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
23825         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
23826         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
23827         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
23828         (find_opt): Make lang_mask argument unsigned.
23829
23830 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
23831
23832         PR rtl-optimization/48331
23833         PR rtl-optimization/48334
23834         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
23835         for any used algorithm.
23836
23837 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
23838
23839         * ira-conflicts.c (build_object_conflicts): Add unused attribute
23840         to parent_max.
23841
23842 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
23843
23844         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
23845         (alpha_option_override): Don't set alpha_sr_alias_set.
23846         (emit_frame_store_1): Use gen_frame_mem rather than calling
23847         set_mem_alias_set.
23848         (alpha_expand_epilogue): Ditto.
23849
23850 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
23851
23852         PR tree-optimization/48290
23853         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
23854         vectorization, check that relevant phis in the basic block after
23855         the inner loop are really inner loop's exit phis.
23856
23857 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
23858
23859         PR debug/48190
23860         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
23861         (cached_dw_loc_list_def): New structure.
23862         (cached_dw_loc_list): New typedef.
23863         (cached_dw_loc_list_table): New variable.
23864         (cached_dw_loc_list_table_hash): New function.
23865         (cached_dw_loc_list_table_eq): Likewise.
23866         (add_location_or_const_value_attribute): Take a bool cache_p.
23867         Cache the list when the parameter is true.
23868         (gen_formal_parameter_die): Update caller.
23869         (gen_variable_die): Likewise.
23870         (dwarf2out_finish): Likewise.
23871         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
23872         while generating debug info for the decl.
23873         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
23874         (dwarf2out_init): Initialize cached_dw_loc_list_table.
23875         (resolve_addr): Cache the result of resolving a chain of
23876         location lists.
23877
23878 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
23879
23880         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
23881         conflict object hard regset nodes have intersecting hard reg sets.
23882
23883         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
23884         after regstat_init_n_sets_and_refs.
23885
23886         * ira.c: Add more comments at the top.
23887         (setup_stack_reg_pressure_class, setup_pressure_classes):
23888         Add comments how we compute the register pressure classes.
23889         (setup_allocno_and_important_classes): Add more comments.
23890         (setup_class_translate_array, reorder_important_classes)
23891         (setup_reg_class_relations): Add comments.
23892
23893         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
23894         start of the file.
23895
23896         * ira-color.c: Add 2011 to the Copyright line.
23897         (assign_hard_reg):  Add more comments.
23898         (improve_allocation): Ditto.
23899
23900         * ira-costs.c: Add 2011 to the Copyright line.
23901         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
23902         comments.
23903         (setup_regno_cost_classes_by_mode): Ditto.
23904
23905         Initial patches from ira-improv branch:
23906
23907         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
23908
23909         * ira-build.c (ira_create_object): Remove initialization of
23910         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
23911         (ira_create_allocno): Remove initialization of
23912         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
23913         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
23914         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
23915         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
23916         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
23917         Initialize ALLOCNO_ADD_DATA.
23918         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
23919         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
23920         ALLOCNO_REG.
23921         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
23922         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
23923
23924         * ira.c (ira_reallocate): Remove.
23925         (setup_pressure_classes): Call
23926         ira_init_register_move_cost_if_necessary.  Use
23927         ira_register_move_cost instead of ira_get_register_move_cost.
23928         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
23929         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
23930
23931         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
23932         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
23933         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
23934         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
23935         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
23936         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
23937         Fix formatting.
23938         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
23939         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
23940         (struct allocno_color_data): New.
23941         (allocno_color_data_t): New typedef.
23942         (allocno_color_data): New definition.
23943         (ALLOCNO_COLOR_DATA): New macro.
23944         (struct object_color_data): New.
23945         (object_color_data_t): New typedef.
23946         (object_color_data): New definition.
23947         (OBJECT_COLOR_DATA): New macro.
23948         (update_copy_costs, calculate_allocno_spill_cost): Call
23949         ira_init_register_move_cost_if_necessary.  Use
23950         ira_register_move_cost instead of ira_get_register_move_cost.
23951         (move_spill_restore, update_curr_costs): Ditto.
23952         (allocno_spill_priority): Make it inline.
23953         (color_pass): Allocate and free allocno_color_dat and object_color_data.
23954         (struct coalesce_data, coalesce_data_t): New.
23955         (allocno_coalesce_data): New definition.
23956         (ALLOCNO_COALESCE_DATA): New macro.
23957         (merge_allocnos, coalesced_allocno_conflict_p): Use
23958         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
23959         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
23960         (coalesce_allocnos): Ditto.
23961         (setup_coalesced_allocno_costs_and_nums): Ditto.
23962         (collect_spilled_coalesced_allocnos): Ditto.
23963         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
23964         (setup_slot_coalesced_allocno_live_ranges): Ditto.
23965         (coalesce_spill_slots): Ditto.
23966         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
23967         free allocno_coalesce_data.
23968
23969         * ira-conflicts.c: Fix formatting.
23970         (process_regs_for_copy): Call
23971         ira_init_register_move_cost_if_necessary.  Use
23972         ira_register_move_cost instead of ira_get_register_move_cost.
23973         (build_object_conflicts): Optimize.
23974
23975         * ira-costs.c (record_reg_classes): Optimize.  Call
23976         ira_init_register_move_cost_if_necessary.  Use
23977         ira_register_move_cost, ira_may_move_in_cost, and
23978         ira_may_move_out_cost instead of ira_get_register_move_cost and
23979         ira_get_may_move_cost.
23980         (record_address_regs): Ditto.
23981         (scan_one_insn): Optimize.
23982         (find_costs_and_classes): Optimize.
23983         (process_bb_node_for_hard_reg_moves): Call
23984         ira_init_register_move_cost_if_necessary.  Use
23985         ira_register_move_cost instead of ira_get_register_move_cost.
23986
23987         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
23988         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
23989         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
23990         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
23991         definitions.
23992         (ira_initiate_emit_data, ira_finish_emit_data)
23993         (create_new_allocno): New functions.
23994         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
23995         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
23996         Use ira_register_move_cost instead of ira_get_register_move_cost.
23997
23998         * ira-int.h: Fix some comments.
23999         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
24000         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
24001         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
24002         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
24003         add_data.
24004         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
24005         bitfield after mode.  Make hard_regno a short int.  Make
24006         hard_regno short.  Remove first_coalesced_allocno and
24007         next_coalesced_allocno.  Move mem_optimized_dest_p,
24008         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
24009         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
24010         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
24011         temp, colorable_p.  Add new member add_data.
24012         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
24013         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
24014         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
24015         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
24016         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
24017         (ALLOCNO_ADD_DATA): New macro.
24018         (ira_emit_data_t): New typedef.
24019         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
24020         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
24021         from struct ira_allocno.
24022         (ALLOCNO_EMIT_DATA): New macro.
24023         (ira_allocno_emit_data, allocno_emit_reg): New.
24024         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
24025         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
24026         (OBJECT_ADD_DATA): New macro.
24027         (ira_reallocate): Remove.
24028         (ira_initiate_emit_data, ira_finish_emit_data): New.
24029         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
24030         (ira_init_register_move_cost_if_necessary): New.
24031         (ira_object_conflict_iter_next): Merge into
24032         ira_object_conflict_iter_cond.
24033         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
24034
24035         * ira-live.c (process_single_reg_class_operands): Call
24036         ira_init_register_move_cost_if_necessary.  Use
24037         ira_register_move_cost instead of ira_get_register_move_cost.
24038
24039         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
24040
24041         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
24042
24043         * ira-costs.c: Fix formatting.
24044         (cost_classes, cost_classes_num): Remove.
24045         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
24046         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
24047         (cost_classes_del, cost_classes_htab): New.
24048         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
24049         (initiate_regno_cost_classes, setup_cost_classes): New.
24050         (setup_regno_cost_classes_by_aclass): New.
24051         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
24052         (record_reg_classes): Use regno_cost_classes instead of
24053         cost_classes.  Move checking opposite operand up.
24054         (record_address_regs): Use regno_cost_classes
24055         instead of cost_classes.
24056         (scan_one_insn): Ditto.  Use always general register.
24057         (print_allocno_costs): Use regno_cost_classes instead of
24058         cost_classes.
24059         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
24060         (find_costs_and_classes): Set up cost classes for each registers.
24061         Use also their mode for this.  Use regno_cost_classes instead of
24062         cost_classes.
24063         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
24064         cost_classes.
24065         (free_ira_costs, ira_init_costs): Don't use cost_classes.
24066         (ira_costs, ira_set_pseudo_classes): Call
24067         initiate_regno_cost_classes and finish_regno_cost_classes.
24068
24069         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
24070
24071         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
24072
24073         * target.def (ira_cover_classes): Remove.
24074
24075         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
24076
24077         * doc/tm.texi.in: Ditto.
24078
24079         * ira-conflicts.c: Remove mentioning cover classes from the file.
24080         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
24081         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
24082
24083         * targhooks.c (default_ira_cover_classes): Remove.
24084
24085         * targhooks.h (default_ira_cover_classes): Ditto.
24086
24087         * haifa-sched.c: Remove mentioning cover classes from the file.
24088         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
24089         ira_pressure_classes and ira_pressure_classes_num instead of
24090         ira_reg_class_cover_size and ira_reg_class_cover.  Use
24091         sched_regno_pressure_class instead of sched_regno_cover_class.
24092         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
24093         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
24094
24095         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
24096         classes from the file.
24097         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
24098         (struct object_hard_regs, struct object_hard_regs_node): New.
24099         (struct ira_object): New members profitable_hard_regs,
24100         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
24101         (struct ira_allocno): Rename cover_class to aclass.  Rename
24102         cover_class_cost and updated_cover_class_cost to class_cost and
24103         updated_class_cost.  Remove splay_removed_p and
24104         left_conflict_size.  Add new members colorable_p.
24105         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
24106         (ALLOCNO_COLORABLE_P): New macro.
24107         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
24108         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
24109         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
24110         (OBJECT_...): Rename parameter C to O.
24111         (OBJECT_PROFITABLE_HARD_REGS): New macro.
24112         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
24113         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
24114         (struct target_ira_int): New members x_ira_max_memory_move_cost,
24115         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
24116         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
24117         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
24118         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
24119         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
24120         x_ira_reg_class_subunion.
24121         (ira_max_memory_move_cost, ira_max_register_move_cost)
24122         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
24123         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
24124         (ira_important_class_nums, ira_reg_class_superunion): New macros.
24125         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
24126         (ira_reg_class_union): Rename to ira_reg_class_subunion.
24127         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
24128         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
24129         (ira_tune_allocno_costs_and_cover_classes): Rename to
24130         ira_tune_allocno_costs.
24131         (ira_debug_hard_regs_forest): New.
24132         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
24133         (ira_object_conflict_iter_next): Fix comments.
24134         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
24135         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
24136         cover_class to aclass.
24137         (ira_allocate_and_accumulate_costs): Ditto.
24138         (ira_allocate_and_set_or_copy_costs): Ditto.
24139
24140         * opts.c (decode_options): Remove ira_cover_class check.
24141
24142         * ira-color.c: Remove mentioning cover classes from the file.  Use
24143         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
24144         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
24145         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
24146         (splay-tree.h): Remove include.
24147         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
24148         before copy_freq_compare_func.
24149         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
24150         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
24151         New definitions.
24152         (hard_regs_roots, hard_regs_node_vec): Ditto.
24153         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
24154         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
24155         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
24156         (create_new_object_hard_regs_node): Ditto.
24157         (add_new_object_hard_regs_node_to_forest): Ditto.
24158         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
24159         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
24160         Ditto.
24161         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
24162         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
24163         (remove_unused_object_hard_regs_nodes): Ditto.
24164         (enumerate_object_hard_regs_nodes): Ditto.
24165         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
24166         (object_hard_regs_subnode_t): Ditto.
24167         (struct object_hard_regs_subnode): Ditto.
24168         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
24169         (setup_object_hard_regs_subnode_index): Ditto.
24170         (get_object_hard_regs_subnodes_num): Ditto.
24171         (form_object_hard_regs_nodes_forest): Ditto.
24172         (finish_object_hard_regs_nodes_tree): Ditto.
24173         (finish_object_hard_regs_nodes_forest): Ditto.
24174         (allocnos_have_intersected_live_ranges_p): Rename to
24175         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
24176         (pseudos_have_intersected_live_ranges_p): Rename to
24177         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
24178         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
24179         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
24180         (update_copy_costs): Remove assert.  Skip cost update if the hard
24181         reg does not belong the class.
24182         (assign_hard_reg): Process only profitable hard regs.
24183         (uncolorable_allocnos_num): Make it scalar.
24184         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
24185         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
24186         and ira_reg_class_max_nregs.
24187         (bucket_allocno_compare_func): Check frequency first.
24188         (sort_bucket): Add compare function as a parameter.
24189         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
24190         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
24191         (push_allocno_to_stack): Rewrite for checking new allocno
24192         colorability.
24193         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
24194         (push_only_colorable): Pass new parameter to sort_bucket.
24195         (push_allocno_to_spill): Remove.
24196         (allocno_spill_priority_compare): Make it inline and rewrite.
24197         (splay_tree_allocate, splay_tree_free): Remove.
24198         (allocno_spill_sort_compare): New function.
24199         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
24200         build and use splay tree.  Choose first allocno in uncolorable
24201         allocno bucket to spill.  Remove setting spill cost.
24202         (all_conflicting_hard_regs): Remove.
24203         (setup_allocno_available_regs_num): Check only profitable hard
24204         regs.  Print info about hard regs nodes.
24205         (setup_allocno_left_conflicts_size): Remove.
24206         (put_allocno_into_bucket): Don't call
24207         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
24208         (improve_allocation): New.
24209         (color_allocnos): Call setup_profitable_hard_regs,
24210         form_object_hard_regs_nodes_forest, improve_allocation,
24211         finish_object_hard_regs_nodes_forest.  Setup spill cost.
24212         (print_loop_title): Use pressure classes.
24213         (color_allocnso): Ditto.
24214         (do_coloring): Remove allocation and freeing splay_tree_node_pool
24215         and allocnos_for_spilling.
24216         (ira_sort_regnos_for_alter_reg): Don't setup members
24217         {first,next}_coalesced_allocno.
24218         (color): Remove allocating and freeing removed_splay_allocno_vec.
24219         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
24220         prohibited_class_mode_regs.
24221
24222         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
24223         formatting.
24224         (update_allocno_pressure_excess_length): Use pressure classes.
24225         (inc_register_pressure, dec_register_pressure): Check for pressure
24226         class.
24227         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
24228         pressure class.  Use ira_reg_class_nregs instead of
24229         ira_reg_class_max_nregs.
24230         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
24231         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
24232         (single_reg_class): Use ira_reg_class_nregs instead of
24233         ira_reg_class_max_nregs.
24234         (process_bb_node_lives): Use pressure classes.
24235
24236         * ira-emit.c: Remove mentioning cover classes from the file.  Use
24237         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
24238         (change_loop): Use pressure classes.
24239         (modify_move_list): Call ira_set_allocno_class instead of
24240         ira_set_allocno_cover_class.
24241
24242         * ira-build.c: Remove mentioning cover classes from the file.  Use
24243         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
24244         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
24245         ALLOCNO_UPDATED_CLASS_COST instead of
24246         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
24247         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
24248         (ira_create_allocno): Remove initialization of
24249         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
24250         ALLOCNO_COLORABLE_P.
24251         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
24252         Update conflict regs for the objects.
24253         (create_cap_allocno): Remove assert.  Don't propagate
24254         ALLOCNO_AVAILABLE_REGS_NUM.
24255         (ira_free_allocno_costs): New function.
24256         (finish_allocno): Change a part of code into call of
24257         ira_free_allocno_costs.
24258         (low_pressure_loop_node_p): Use pressure classes.
24259         (object_range_compare_func): Don't compare classes.
24260         (setup_min_max_conflict_allocno_ids): Ditto.
24261
24262         * loop-invariant.c: Remove mentioning cover classes from the file.
24263         Use ira_pressure_classes and ira_pressure_classes_num instead of
24264         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
24265         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
24266         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
24267         Use reg_allocno_class instead of reg_cover_class.
24268         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
24269         STACK_REG_COVER_CLASS.
24270         (get_regno_cover_class): Rename to get_regno_pressure_class.
24271         (move_loop_invariants): Initialize and finalize regstat.
24272
24273         * ira.c: Remove mentioning cover classes from the file.  Add
24274         comments about coloring without cover classes.  Use ALLOCNO_CLASS
24275         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
24276         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
24277         setup_class_subset_and_memory_move_costs.
24278         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
24279         (setup_cover_and_important_classes): Rename to
24280         setup_allocno_and_important_classes.
24281         (setup_class_translate_array): New.
24282         (setup_class_translate): Call it for allocno and pressure classes.
24283         (cover_class_order): Rename to allocno_class_order.
24284         (comp_reg_classes_func): Use ira_allocno_class_translate instead
24285         of ira_class_translate.
24286         (reorder_important_classes): Set up ira_important_class_nums.
24287         (setup_reg_class_relations): Set up ira_reg_class_superunion.
24288         (print_class_cover): Rename to print_classes.  Add parameter.
24289         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
24290         Print pressure classes too.
24291         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
24292         setup_reg_subclasses.
24293         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
24294         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
24295         (setup_prohibited_class_mode_regs): Use
24296         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
24297         (clarify_prohibited_class_mode_regs): New function.
24298         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
24299         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
24300         (ira_init_once): Initialize them.
24301         (free_register_move_costs): Process them.
24302         (ira_init): Move calls of find_reg_classes and
24303         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
24304         Call clarify_prohibited_class_mode_regs.
24305         (ira_no_alloc_reg): Remove.
24306         (too_high_register_pressure_p): Use pressure classes.
24307
24308         * sched-deps.c: Remove mentioning cover classes from the file.
24309         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
24310         ira_pressure_classes and ira_pressure_classes_num instead of
24311         ira_reg_class_cover_size and ira_reg_class_cover.
24312         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
24313         sched_regno_pressure_class instead of sched_regno_cover_class.
24314         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
24315         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
24316
24317         * ira.h: Add 2010 to Copyright.
24318         (ira_no_alloc_reg): Remove external.
24319         (struct target_ira): Rename x_ira_hard_regno_cover_class,
24320         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
24321         x_ira_class_translate to x_ira_hard_regno_allocno_class,
24322         x_ira_allocno_classes_num, x_ira_allocno_classes, and
24323         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
24324         x_ira_pressure_classes, x_ira_pressure_class_translate, and
24325         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
24326         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
24327         x_ira_no_alloc_regs.
24328         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
24329         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
24330         ira_allocno_classes_num and ira_allocno_classes.
24331         (ira_class_translate): Rename to ira_allocno_class_translate.
24332         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
24333         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
24334         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
24335         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
24336         (ira_no_alloc_regs): New.
24337
24338         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
24339         classes from the file.  Use ALLOCNO_CLASS instead of
24340         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
24341         ALLOCNO_COVER_CLASS_COST.
24342         (regno_cover_class): Rename to regno_aclass.
24343         (record_reg_classes): Use ira_reg_class_subunion instead of
24344         ira_reg_class_union.
24345         (record_address_regs): Check overflow.
24346         (scan_one_insn): Ditto.
24347         (print_allocno_costs): Print total mem cost fore regional allocation.
24348         (print_pseudo_costs): Use REG_N_REFS.
24349         (find_costs_and_classes): Use classes intersected with them on the
24350         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
24351         ira_reg_class_union.  Use ira_allocno_class_translate and
24352         regno_aclass instead of ira_class_translate and regno_cover_class.
24353         Modify code for finding regno_aclass.  Setup preferred classes for
24354         the next pass.
24355         (setup_allocno_cover_class_and_costs): Rename to
24356         setup_allocno_class_and_costs.  Use regno_aclass instead of
24357         regno_cover_class.  Use ira_set_allocno_class instead of
24358         ira_set_allocno_cover_class.
24359         (init_costs, finish_costs): Use regno_aclass instead of
24360         regno_cover_class.
24361         (ira_costs): Use setup_allocno_class_and_costs instead of
24362         setup_allocno_cover_class_and_costs.
24363         (ira_tune_allocno_costs_and_cover_classes): Rename to
24364         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
24365         by processing objects.  Use ira_reg_class_max_nregs instead of
24366         ira_reg_class_nregs.
24367
24368         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
24369
24370         * sched-int.h: Remove mentioning cover classes from the file.
24371         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
24372
24373         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
24374         classes from the file.
24375         (struct reg_pref): Rename coverclass into allocnoclass.
24376         (reg_cover_class): Rename to reg_allocno_class.
24377
24378         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
24379
24380         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
24381
24382         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
24383
24384         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
24385
24386         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
24387
24388         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
24389
24390         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
24391
24392         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
24393
24394         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
24395
24396         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
24397
24398         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
24399         (i386_ira_cover_classes): Ditto.
24400
24401         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
24402
24403         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
24404
24405         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
24406
24407         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
24408
24409         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
24410
24411         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
24412
24413         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
24414         (mips_ira_cover_classes): Ditto.
24415
24416         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
24417
24418         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
24419
24420         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
24421
24422         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
24423
24424         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
24425
24426         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
24427         (IRA_COVER_CLASSES_VSX): Ditto.
24428
24429         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
24430         (rs6000_ira_cover_classes): Ditto.
24431
24432         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
24433
24434         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
24435
24436         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
24437
24438         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
24439
24440         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
24441
24442         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
24443
24444         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
24445
24446         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
24447
24448         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
24449
24450         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
24451
24452 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
24453
24454         PR debug/48253
24455         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
24456         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
24457         dw_fde_unlikely_section_end_label, cold_in_std_section,
24458         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
24459         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
24460         fields.
24461         (output_fde): Use dw_fde_second_{begin,end} if second is
24462         true, otherwise dw_fde_{begin,end}.
24463         (output_call_frame_info): Test dw_fde_second_begin != NULL
24464         instead of dw_fde_switched_sections.
24465         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
24466         fields, initialize new fields.  Initialize in_std_section
24467         unconditionally from the first partition.
24468         (dwarf2out_end_epilogue): Don't override dw_fde_end when
24469         dw_fde_second_begin is non-NULL.
24470         (dwarf2out_switch_text_section): Stop initializing removed
24471         dw_fde_struct fields, initialize new fields, initialize
24472         also dw_fde_end here.  Set dw_fde_switch_cfi even when
24473         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
24474         (struct var_loc_list_def): Add last_before_switch field.
24475         (arange_table, arange_table_allocated, arange_table_in_use,
24476         ARANGE_TABLE_INCREMENT, add_arange): Removed.
24477         (size_of_aranges): Count !in_std_section and !second_in_std_section
24478         hunks in fdes, instead of looking at arange_table_in_use.
24479         (output_aranges): Add aranges_length argument, don't call
24480         size_of_aranges here.  Instead of using aranges_table*
24481         emit ranges for fdes when !in_std_section resp.
24482         !second_in_std_section.
24483         (dw_loc_list): Break ranges crossing section switch.
24484         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
24485         use dw_fde_second_end instead of dw_fde_end as end of last range.
24486         (gen_subprogram_die): Don't call add_arange.  Use
24487         dw_fde_{begin,end} for first partition and if switched
24488         section dw_fde_second_{begin,end} for the second.
24489         (var_location_switch_text_section_1,
24490         var_location_switch_text_section): New functions.
24491         (dwarf2out_begin_function): Initialize cold_text_section even
24492         when function_section () isn't text_section.
24493         (prune_unused_types): Don't walk arange_table.
24494         (dwarf2out_finish): Don't needlessly test
24495         flag_reorder_blocks_and_partition when testing cold_text_section_used.
24496         If info_section_emitted, call size_of_aranges and if it indicates
24497         non-empty .debug_aranges, call output_aranges with the computed
24498         size.  Stop using removed dw_fde_struct fields, use
24499         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
24500         for second.
24501
24502         PR debug/48203
24503         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
24504         create ENTRY_VALUE if incoming or address of incoming's MEM
24505         is a hard REG.
24506         * dwarf2out.c (mem_loc_descriptor): Don't emit
24507         DW_OP_GNU_entry_value of DW_OP_fbreg.
24508         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
24509         on ENTRY_VALUE is able to find the canonical parameter VALUE.
24510         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
24511         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
24512         ENTRY_VALUE_EXPs.
24513         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
24514         is a REG_P or MEM_P with REG_P address, compute hash directly
24515         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
24516         (preserve_only_constants): Don't clear VALUES forwaring
24517         ENTRY_VALUE to some other VALUE.
24518
24519 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
24520
24521         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
24522         instead of GEN_INT.
24523
24524 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
24525
24526         * cfgexpand.c (expand_gimple_cond): Always set the source location and
24527         block before expanding the statement.
24528         (expand_gimple_stmt_1): Likewise.  Set them here...
24529         (expand_gimple_stmt): ...and not here.  Tidy.
24530         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
24531         unknown.
24532
24533 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
24534
24535         * Makefile.in: New rule for cprop.o.
24536         * gcse.c: Move constant/copy propagation to cprop.c.
24537         (compute_local_properties): Only handle expression tables.
24538         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
24539         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
24540         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
24541         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
24542         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
24543         compute_cprop_data, find_used_regs, try_replace_reg,
24544         find_avail_set, cprop_jump, constprop_register, cprop_insn,
24545         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
24546         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
24547         find_bypass_set, reg_killed_on_edge, bypass_block,
24548         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
24549         execute_rtl_cprop, pass_rtl_cprop): Move to...
24550         * cprop.c: ...here.  New file, constant/copy propagation for RTL
24551         moved from gcse.c to here with minor cleanups in duplicated code.
24552
24553 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
24554
24555         * config/i386/i386.c (flag_opts): Fix a typo in
24556         -mavx256-split-unaligned-store.
24557
24558 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
24559
24560         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
24561         LIBCALL_VALUE): Remove macros.
24562         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24563         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24564         (h8300_function_value, h8300_libcall_value,
24565         h8300_function_value_regno_p): New functions.
24566
24567 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
24568
24569         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
24570
24571 2011-03-28  Jeff Law  <law@redhat.com>
24572
24573         * tree-ssa-threadupdate.c (redirect_edges): Call
24574         create_edge_and_update_destination_phis as needed.
24575         (create_edge_and_update_destination_phis): Accept new BB argument.
24576         All callers updated.
24577         (thread_block): Do not update the profile when threading around
24578         intermediate blocks.
24579         (thread_single_edge): Likewise.
24580         (determine_bb_domination_status): If BB is not a successor of the
24581         loop header, return NONDOMINATING.
24582         (register_jump_thread): Note when we register a jump thread around
24583         an intermediate block.
24584         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
24585         (thread_across_edge): Use it.
24586
24587 2011-03-28  Tristan Gingold  <gingold@adacore.com>
24588
24589         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
24590         when for_return is 2.
24591
24592 2011-03-28  Jeff Law  <law@redhat.com>
24593
24594         * var-tracking.c (canonicalize_values_mark): Delete unused
24595         lhs assignment.
24596         (canonicalize_values_star, set_variable_part): Likewise.
24597         (clobber_variable_part, delete_variable_part): Likewise.
24598
24599 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
24600
24601         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
24602
24603 2011-03-28  Martin Jambor  <mjambor@suse.cz>
24604
24605         * tree-inline.c (expand_call_inline): Do not check that destination
24606         node is analyzed.
24607         (optimize_inline_calls): Assert that destination node is analyzed.
24608         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
24609         not call tree_lowering_passes.
24610         * cgraph.h (cgraph_analyze_function): Declare.
24611         * cgraphunit.c (cgraph_analyze_function): Make public.
24612
24613 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
24614
24615         * config/sparc/sparc-opts.h: New.
24616         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
24617         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
24618         (sparc_option_override): Store processor_type enumeration rather
24619         than string in cpu_default.  Remove name and enumeration from
24620         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
24621         without using sparc_select.  Use target_flags_explicit instead of
24622         fpu_option_set.
24623         * config/sparc/sparc.h (enum processor_type): Move to
24624         sparc-opts.h.
24625         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
24626         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
24627         HeaderInclude entry.
24628         (mcpu=, mtune=): Use Var and Enum.
24629         (sparc_processor_type): New Enum and EnumValue entries.
24630
24631 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24632             Iain Sandoe  <iains@gcc.gnu.org>
24633
24634         PR target/48245
24635         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
24636
24637 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
24638
24639         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
24640         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
24641         Insert new statements at it in lieu of STMT.
24642         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
24643         * tree-vect-stmts.c (vectorizable_store): Likewise.
24644         (vectorizable_load): Likewise.
24645
24646 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
24647
24648         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
24649         (divtf3): Ditto.
24650         (multf3): Ditto.
24651         (subtf3): Ditto.
24652
24653 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
24654
24655         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
24656         unaligned 256bit load/store.
24657         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
24658         (*avx_movdqu<avxmodesuffix>): Likewise.
24659
24660 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24661
24662         PR target/48288
24663         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
24664         * config/pa/pa.md (iordi3): Use new predicate in expander.
24665         (iorsi3): Likewise.
24666
24667 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
24668
24669         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
24670         FUNCTION_VALUE_REGNO_P): Remove macros.
24671         * config/mips/mips-protos.h (mips_function_value): Remove.
24672         * config/mips/mips.c (mips_function_value): Rename to...
24673         (mips_function_value_1): ... this. Make static.  Handle receiving
24674         the function type in 'fn_decl_or_type' argument.
24675         (mips_function_value, mips_libcall_value,
24676         mips_function_value_regno_p): New function.
24677         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24678         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24679
24680 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
24681
24682         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
24683         and -mavx256-split-unaligned-store.
24684         (ix86_option_override_internal): Split 32-byte AVX unaligned
24685         load/store by default.
24686         (ix86_avx256_split_vector_move_misalign): New.
24687         (ix86_expand_vector_move_misalign): Use it.
24688
24689         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
24690         -mavx256-split-unaligned-store.
24691
24692         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
24693         256bit load/store.  Generate unaligned store on misaligned memory
24694         operand.
24695         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
24696         256bit load/store.
24697         (*avx_movdqu<avxmodesuffix>): Likewise.
24698
24699         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
24700         -mavx256-split-unaligned-store.
24701
24702 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
24703
24704         PR target/38598
24705         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
24706         Update commentary.
24707
24708 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
24709
24710         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
24711         opno arguments with an expand_operand.  Use create_input_operand.
24712         (mips_prepare_builtin_target): Delete.
24713         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
24714         functions.
24715         (mips_expand_builtin_direct): Use create_output_operand and
24716         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
24717         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
24718         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
24719
24720 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
24721
24722         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
24723         function.
24724         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
24725
24726 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
24727
24728         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
24729         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
24730         basic blocks and call commit_edge_insertions directly.
24731         (fixup_abnormal_edges): Move from here to...
24732         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
24733         on the edges and return whether some have actually been inserted.
24734         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
24735         compensation code.
24736
24737 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
24738
24739         PR rtl-optimization/48144
24740         * sel-sched-ir.c (merge_history_vect): Factor out from ...
24741         (merge_expr_data): ... here.
24742         (av_set_intersect): Rename to av_set_code_motion_filter.
24743         Update all callers.  Call merge_history_vect when an expression
24744         is found in both sets.
24745         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
24746
24747 2011-03-26  Alan Modra  <amodra@gmail.com>
24748
24749         * config/rs6000/predicates.md (word_offset_memref_op): Handle
24750         cmodel medium addresses.
24751         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
24752         64-bit gpr loads and stores.
24753         (rs6000_secondary_reload_ppc64): New function.
24754         * config/rs6000/rs6000-protos.h: Declare it.
24755         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
24756
24757 2011-03-26  Alan Modra  <amodra@gmail.com>
24758
24759         PR target/47487
24760         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
24761         GNU Go in traceback table.
24762
24763 2011-03-25  Richard Henderson  <rth@redhat.com>
24764
24765         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
24766         if there are exactly 6 operands.
24767         (set_storage_via_setmem): Similarly.
24768
24769 2011-03-25  Kai Tietz  <ktietz@redhat.com>
24770
24771         * collect2.c (write_c_file_stat): Handle backslash
24772         as right-hand directory separator.
24773         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
24774         checking just for slash.
24775         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
24776         instead of checking for trailing slash.
24777         * gcc.c (record_temp_file): Use filename_cmp instead
24778         of strcmp.
24779         (do_spec_1): Likewise.
24780         (replace_outfile_spec_function): Likewise.
24781         (is_directory): Use filename_ncmp instead of strncmp.
24782         (print_multilib_info): Likewise.
24783         * gcov.c (find_source): Use filename_cmp instead
24784         instead of strcmp.
24785         (make_gcov_file_name): Fix order of slash/backslash
24786         checks.
24787         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
24788         (add_standard_paths): Likewise.
24789         * mips-tfile.c (saber_stop): Handle backslash.
24790         * prefix.c (update_path): Use filename_ncmp instead of
24791         strncmp.
24792         * profile.c (output_location): Use filename_cmp instead
24793         of strcmp.
24794         * read-md.c (handle_toplevel_file): Handle backslash.
24795         * tlink.c (frob_extension):  Likewise.
24796         * tree-cfg.c (same_line_p): Use filename_cmp instead of
24797         strcmp.
24798         * tree-dump.c (dequeue_and_dump): Handle backslash.
24799         * tree.c (get_file_function_name): Likewise.
24800         * gengtype.c (read_input_list): Likewise.
24801         (get_file_realbasename): Likewise.
24802         (get_output_file_with_visibility): Use filename_cmp
24803         instead of strcmp.
24804
24805 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
24806
24807         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
24808         case to VFPv1.
24809
24810 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
24811
24812         * fold-const.c (expr_location_or): New function.
24813         (fold_truth_not_expr): Call it.
24814
24815 2011-03-25  Jeff Law  <law@redhat.com>
24816
24817         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
24818         va_end.
24819         * c-family/c-common.c (def_fn_type): Likewise.
24820         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
24821         * emit-rtl.c (gen_rtvec): Likewise.
24822         * lto/lto-lang.c (def_fn_type): Likewise.
24823
24824 2011-03-25  Richard Guenther  <rguenther@suse.de>
24825
24826         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
24827         also generate copies.
24828         (fini_copy_prop): Handle constant values properly.
24829
24830 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
24831
24832         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
24833         mode size instead of bitsize with DWARF2_ADDR_SIZE.
24834         (hash_loc_operands, compare_loc_operands): Handle
24835         DW_OP_GNU_entry_value.
24836
24837 2011-03-25  Kai Tietz  <ktietz@redhat.com>
24838
24839         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
24840         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
24841         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
24842         comment and use macro TARGET_64BIT_MS_ABI instead.
24843         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
24844         and change default behavior for 32-bit MS_ABI.
24845         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
24846         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
24847         32-bit, too.
24848         (ix86_cfun_abi): Likewise.
24849         (ix86_maybe_switch_abi): Adjust comment.
24850         (init_cumulative_args): Check for bit-ness in MS_ABI case.
24851         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
24852         instead of checking for SYSV_ABI.
24853         (ix86_nsaved_sseregs): Likewise.
24854         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
24855         to 16 bytes.
24856         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
24857         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
24858         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
24859         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
24860         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
24861
24862 2011-03-25  Richard Guenther  <rguenther@suse.de>
24863
24864         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
24865         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
24866         (verify_gimple): Remove.
24867         * tree-cfg.c (verify_gimple_call): Merge verification
24868         from verify_stmts.
24869         (verify_gimple_phi): Merge verification from verify_stmts.
24870         (verify_gimple_label): New function.
24871         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
24872         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
24873         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
24874         (verify_stmts): Rename to verify_gimple_in_cfg.
24875         (verify_gimple_in_cfg): New function.
24876         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
24877         * tree-ssa.c (verify_ssa): Likewise.
24878         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
24879
24880 2011-03-25  Richard Guenther  <rguenther@suse.de>
24881
24882         * passes.c (init_optimization_passes): Add FRE pass after
24883         early SRA.
24884
24885 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
24886             Andrew Stubbs  <ams@codesourcery.com>
24887
24888         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
24889         for Cortex-A8.
24890         (arm_movdi_vfp_cortexa8): New pattern.
24891         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
24892         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
24893         instructions when tuning for Cortex-A8.  Set attribute "arch".
24894         * config/arm/arm.md: Move include arm-tune.md up a bit.
24895         (define_attr "arch"): Add "onlya8" and "nota8" values.
24896         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
24897
24898 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
24899
24900         PR bootstrap/48282
24901         Revert:
24902         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24903
24904         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
24905         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
24906         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
24907         * passes.c (init_optimization_passes): Move
24908         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
24909
24910 2011-03-25  Kai Tietz  <ktietz@redhat.com>
24911
24912         * c-typeck.c (comptypes_internal): Replace target
24913         hook call of comp_type_attributes by version in tree.c file.
24914         * gimple.c (gimple_types_compatible_p_1): Likewise.
24915         * tree-ssa.c (useless_type_conversion_p): Likewise.
24916         * tree.c (build_type_attribute_qual_variant): Likewise.
24917         (attribute_value_equal): New static helper function.
24918         (comp_type_attributes): New function.
24919         (merge_attributes): Use attribute_value_equal for comparison.
24920         (attribute_list_contained): Likewise.
24921         * tree.h (comp_type_attributes): New prototype.
24922
24923 2011-03-25  Richard Guenther  <rguenther@suse.de>
24924
24925         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
24926         of complex types at -O0.
24927         (verify_gimple_assign_binary): Likewise.
24928         (verify_gimple_assign_ternary): Likewise.
24929
24930 2011-03-24  Mark Wielaard  <mjw@redhat.com>
24931
24932         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
24933         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
24934
24935 2011-03-24  Mark Wielaard  <mjw@redhat.com>
24936
24937         PR debug/48041
24938         * dwarf2out.c (output_abbrev_section): Only write table when
24939         abbrev_die_table_in_use > 1.
24940
24941 2011-02-24  Richard Henderson  <rth@redhat.com>
24942
24943         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
24944         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
24945         (alpha_expand_unaligned_load_words): Use extql.
24946         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
24947         (emit_insxl): Handle all modes for consistency.
24948
24949 2011-02-24  Richard Henderson  <rth@redhat.com>
24950
24951         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
24952         (alpha_expand_unaligned_load): Likewise.
24953         (alpha_expand_unaligned_store): Likewise.
24954         (alpha_expand_unaligned_load_words): Likewise.
24955         (alpha_expand_unaligned_store_words): Likewise.
24956         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
24957         (alpha_split_lock_test_and_set_12): Likewise.
24958         (print_operand, alpha_fold_builtin_extxx): Likewise.
24959         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
24960         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
24961         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
24962         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
24963         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
24964         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
24965         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
24966         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
24967         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
24968         (extwl, extll, extql): Similarly.
24969         (inswh, inslh, insqh): Similarly.
24970         (mskbl, mskwl, mskll, mskql): Similarly.
24971         (mskwh, msklh, mskqh): Similarly.
24972
24973 2011-02-24  Richard Henderson  <rth@redhat.com>
24974
24975         * config/alpha/alpha.md (attribute isa): Add er, ner.
24976         (attribute enabled): Handle them.
24977         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
24978
24979 2011-02-24  Richard Henderson  <rth@redhat.com>
24980
24981         * config/alpha/alpha.md (attribute isa): Add vms.
24982         (attribute enabled): Handle it.
24983         (*movsf): Merge *movsf_{nofix,fix,nofp}.
24984         (*movdf): Merge *movdf_{nofix,fix,nofp}.
24985         (*movtf): Rename from *movtf_internal for consistency.
24986         (*movsi): Merge with *movsi_nt_vms.
24987         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
24988         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
24989         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
24990         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
24991
24992 2011-02-24  Richard Henderson  <rth@redhat.com>
24993
24994         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
24995         (extendqisi2, extendhisi2): Likewise.
24996         (extendqidi2): Simplify BWX/non-BWX expansions.
24997         (extendhidi2): Similarly.
24998
24999 2011-02-24  Richard Henderson  <rth@redhat.com>
25000
25001         * config/alpha/alpha.md (attribute isa): New.
25002         (attribute enabled): New.
25003         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
25004         (zero_extendqisi2, zero_extendqidi2): Similarly.
25005         (zero_extendhisi2, zero_extendhidi2): Similarly.
25006         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
25007
25008 2011-02-24  Richard Henderson  <rth@redhat.com>
25009
25010         * config/alpha/predicates.md (input_operand): Revert last change;
25011         update comment to mention 32-bit VMS rather than Windows.
25012
25013 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
25014
25015         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
25016         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
25017         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
25018         * passes.c (init_optimization_passes): Move
25019         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
25020
25021 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
25022
25023         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
25024
25025 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
25026
25027         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
25028         correctly.
25029
25030 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
25031
25032         PR debug/48204
25033         * simplify-rtx.c (simplify_const_unary_operation): Call
25034         real_convert when changing mode class with FLOAT_EXTEND.
25035
25036 2011-03-24  Nick Clifton  <nickc@redhat.com>
25037
25038         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
25039         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
25040         * config/rx/rx.c (rx_option_override): Set align_jumps,
25041         align_loops and align_labels if not set by the user.
25042         (rx_align_for_label): New function.
25043         (rx_max_skip_for_label): New function.
25044         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
25045         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
25046         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
25047         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
25048         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
25049
25050 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
25051
25052         PR rtl-optimization/48263
25053         * optabs.c (expand_binop_directly): Reinstate convert_modes code
25054         and original commutative_p handling.  Use maybe_gen_insn.
25055
25056 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25057
25058         * reload.c (find_reloads_subreg_address): Add address_reloaded
25059         parameter and return true there if the full address has been
25060         reloaded.
25061         (find_reloads_toplev): Pass address_reloaded flag.
25062         (find_reloads_address_1): Don't use address_reloaded parameter.
25063
25064 2011-03-24  Jeff Law  <law@redhat.com>
25065
25066         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
25067         unused variable "ann".
25068         (remove_unused_locals): Likewise.
25069
25070         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
25071         statement.
25072
25073         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
25074         after it is freed.
25075
25076 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25077
25078         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
25079         for invalid symbolic addresses.
25080         (s390_secondary_reload): Don't use s390_check_symref_alignment for
25081         larl operands.
25082
25083 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
25084
25085         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
25086         the argument in calls to fold_truth_not_expr.
25087
25088 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
25089
25090         * tree.c (record_node_allocation_statistics): New function.
25091         (make_node_stat, copy_node_stat, build_string): Call it.
25092         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
25093         (build1_stat, build_omp_clause): Likewise.
25094
25095 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
25096
25097         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
25098         last commit.
25099
25100 2011-03-24  Richard Guenther  <rguenther@suse.de>
25101
25102         PR tree-optimization/48271
25103         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
25104         blocks that still exist.
25105
25106 2011-03-24  Richard Guenther  <rguenther@suse.de>
25107
25108         PR tree-optimization/48270
25109         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
25110         not free datarefs before ddrs.
25111
25112 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
25113
25114         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
25115         from the address built for a reference with variable offset.
25116
25117 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
25118
25119         PR target/48237
25120         * config/i386/i386.md (*movdf_internal_rex64): Do not split
25121         alternatives that can be handled with movq or movabsq insn.
25122         (*movdf_internal): Disable for !TARGET_64BIT.
25123         (*movdf_internal_nointeger): Ditto.
25124         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
25125
25126 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
25127
25128         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
25129         (FUNCTION_ARG_ADVANCE): Likewise.
25130         * tm.texi.in: Change references to them to hook references.
25131         * tm.texi: Regenerate.
25132         * targhooks.c (default_function_arg): Eliminate check for target macro.
25133         (default_function_incoming_arg): Likewise.
25134         (default_function_arg_advance): Likewise.
25135         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
25136         (function_arg_advance): Likewise.
25137         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
25138
25139 2011-03-24  Richard Guenther  <rguenther@suse.de>
25140
25141         PR middle-end/48269
25142         * tree-object-size.c (addr_object_size): Do not double-account
25143         for MEM_REF offsets.
25144
25145 2011-03-24  Diego Novillo  <dnovillo@google.com>
25146
25147         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
25148         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
25149         (lto_input_data_block): Move from lto-opts.c.  Make extern.
25150         Update all users.
25151         (lto_input_string): Rename from input_string.  Make extern.
25152         Update all users.
25153         * lto-streamer-out.c (lto_output_string_with_length): Rename from
25154         output_string_with_length.
25155         Output 0 to indicate a non-NULL string.  Update all callers to
25156         not emit 0.
25157         (lto_output_string): Rename from output_string.  Make extern.
25158         Update all users.
25159         (lto_output_decl_state_streams): Make extern.
25160         (lto_output_decl_state_refs): Make extern.
25161         * lto-streamer.h (lto_input_string): Declare.
25162         (lto_input_data_block): Declare.
25163         (lto_output_string): Declare.
25164         (lto_output_string_with_length): Declare.
25165         (lto_output_decl_state_streams): Declare.
25166         (lto_output_decl_state_refs): Declare.
25167
25168 2011-03-24  Richard Guenther  <rguenther@suse.de>
25169
25170         PR tree-optimization/46562
25171         * tree.c (build_invariant_address): New function.
25172         * tree.h (build_invariant_address): Declare.
25173         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
25174         a renamed function moved ...
25175         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
25176         Take valueization callback parameter.
25177         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
25178         * gimple-fold.h: New file.
25179         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
25180         (ccp_fold, fold_const_aggregate_ref,
25181         fold_ctor_reference, fold_nonarray_ctor_reference,
25182         fold_array_ctor_reference, fold_string_cst_ctor_reference,
25183         get_base_constructor): Move ...
25184         * gimple-fold.c: ... here.
25185         (gimple_fold_stmt_to_constant_1): New function
25186         split out from ccp_fold.  Take a valueization callback parameter.
25187         Valueize all operands.
25188         (gimple_fold_stmt_to_constant): New wrapper function.
25189         (fold_const_aggregate_ref_1): New function split out from
25190         fold_const_aggregate_ref.  Take a valueization callback parameter.
25191         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
25192         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
25193         invariant POINTER_PLUS_EXPRs to invariant form.
25194         (vn_valueize): New function.
25195         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
25196         * tree-vrp.c (vrp_valueize): New function.
25197         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
25198         to fold statements to constants.
25199         * tree-ssa-pre.c (eliminate): Properly guard propagation of
25200         function declarations.
25201         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
25202         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
25203
25204 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
25205
25206         * config/h8300/predicates.md (jump_address_operand): Fix register
25207         mode check.
25208
25209 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
25210
25211         * doc/invoke.texi (max-stores-to-sink): Document.
25212         * params.h (MAX_STORES_TO_SINK): Define.
25213         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
25214         if either vectorization or if-conversion is disabled.
25215         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
25216         tree-vect-data-refs.c vect_equal_offsets.
25217         (dr_equal_offsets_p): New function.
25218         (find_data_references_in_bb): Remove static.
25219         * tree-data-ref.h (find_data_references_in_bb): Declare.
25220         (dr_equal_offsets_p): Likewise.
25221         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
25222         (vect_drs_dependent_in_basic_block): Update calls to
25223         vect_equal_offsets.
25224         (vect_check_interleaving): Likewise.
25225         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
25226         (cond_if_else_store_replacement): Rename to...
25227         (cond_if_else_store_replacement_1): ... this.  Change arguments and
25228         documentation.
25229         (cond_if_else_store_replacement): New function.
25230         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
25231         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
25232
25233 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
25234
25235         PR target/46934
25236         * config/arm/arm.md (casesi): Use the gen_int_mode() function
25237         to subtract lower bound instead of GEN_INT().
25238
25239 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
25240
25241         PR other/48179
25242         PR other/48221
25243         PR other/48234
25244         * doc/extend.texi (Alignment): Move section to match order in TOC.
25245         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
25246         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
25247
25248 2011-03-23  Jeff Law  <law@redhat.com>
25249
25250         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
25251         before removing the edge.
25252
25253         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
25254         it may have been freed by redirect_branch_edge or
25255         redirect_edge_succ_nodup.
25256
25257 2011-03-23  Richard Guenther  <rguenther@suse.de>
25258
25259         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
25260         (check_va_list_escapes): Likewise.
25261         (check_all_va_list_escapes): Likewise.
25262
25263 2011-03-23  Richard Guenther  <rguenther@suse.de>
25264
25265         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
25266         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
25267         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
25268         (alias.o): Likewise.
25269         (ipa-type-escape.o): Remove.
25270         (ipa-struct-reorg.o): Likewise.
25271         (GTFILES): Remove ipa-struct-reorg.c.
25272         * alias.c: Do not include ipa-type-escape.h.
25273         * tree-ssa-alias.c: Likewise.
25274         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
25275         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
25276         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
25277         and ipa-type-escape passes.
25278         * tree-pass.h (pass_ipa_type_escape): Remove.
25279         (pass_ipa_struct_reorg): Likewise.
25280         * ipa-struct-reorg.h: Remove.
25281         * ipa-struct-reorg.c: Likewise.
25282         * ipa-type-escape.h: Likewise.
25283         * ipa-type-escape.c: Likewise.
25284         * doc/invoke.texi (-fipa-struct-reorg): Remove.
25285         (--param struct-reorg-cold-struct-ratio): Likewise.
25286         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
25287         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
25288         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
25289
25290 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25291
25292         * config/s390/2084.md: Enable all insn reservations also for z9_ec
25293         cpu attribute value.
25294         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
25295         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
25296         * config/s390/s390.c (processor_flags_table): New constant array.
25297         (s390_handle_arch_option): Remove.
25298         (s390_handle_option): Remove s390_handle_arch_option invocations
25299         and OPT_mwarn_framesize_ handling.
25300         (s390_option_override): Remove s390_handle_arch_option invocation.
25301         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
25302         warnings.
25303         * config/s390/s390.md (cpu attribute): Add z9_ec value.
25304         * config/s390/s390.opt (s390_tune, s390_arch)
25305         (march=): Replace s390_arch_option enum and values with
25306         processor_type.  Set variable name to s390_arch.  Set
25307         initialization value.
25308         (mtune=): Replace s390_arch_option with processor_type.  Set
25309         variable name to s390_tune.  Set initialization value.
25310
25311 2011-03-23  Julian Brown  <julian@codesourcery.com>
25312
25313         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
25314         accesses which are not naturally aligned.
25315
25316 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
25317
25318         PR target/47553
25319         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
25320
25321 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
25322
25323         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
25324         parameter from "int" to "enum insn_code".
25325         (expand_operand_type): New enum.
25326         (expand_operand): New structure.
25327         (create_expand_operand): New function.
25328         (create_fixed_operand, create_output_operand): Likewise
25329         (create_input_operand, create_convert_operand_to): Likewise.
25330         (create_convert_operand_from, create_address_operand): Likewise.
25331         (create_integer_operand): Likewise.
25332         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
25333         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
25334         (expand_insn, expand_jump_insn): Likewise.
25335         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
25336         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
25337         (expand_movstr, expand_builtin___clear_cache): Likewise.
25338         (expand_builtin_lock_release): Likewise.
25339         * explow.c (allocate_dynamic_stack_space): Likewise.
25340         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
25341         and use the default handling in that case.
25342         * expmed.c (check_predicate_volatile_ok): Delete.
25343         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
25344         (emit_cstore): Likewise.
25345         * expr.c (emit_block_move_via_movmem): Likewise.
25346         (set_storage_via_setmem, expand_assignment): Likewise.
25347         (emit_storent_insn, try_casesi): Likewise.
25348         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
25349         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
25350         (expand_vec_shift_expr, expand_binop_directly): Likewise.
25351         (expand_twoval_unop, expand_twoval_binop): Likewise.
25352         (expand_unop_direct, emit_indirect_jump): Likewise.
25353         (emit_conditional_move, vector_compare_rtx): Likewise.
25354         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
25355         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
25356         (expand_sync_lock_test_and_set): Likewise.
25357         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
25358         (emit_unop_insn): Likewise.
25359         (expand_copysign_absneg): Change icode to an insn_code.
25360         (create_convert_operand_from_type): New function.
25361         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
25362         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
25363         (expand_insn, expand_jump_insn): Likewise.
25364         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
25365         than const_int_operand for operand 2.
25366
25367 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25368
25369         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
25370         if possible.
25371
25372 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25373
25374         * emit-rtl.c (emit_pattern_before_noloc): New function.
25375         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
25376         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
25377         (emit_pattern_after_noloc): New function.
25378         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
25379         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
25380
25381 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25382
25383         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
25384         (__ffsDI2): Likewise.
25385
25386 2011-03-22  Richard Henderson  <rth@redhat.com>
25387
25388         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
25389         of !TARGET_ABI_OPEN_VMS.
25390         (alpha_trampoline_init, alpha_start_function): Likewise.
25391         (alpha_expand_epilogue, alpha_file_start): Likewise.
25392         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
25393         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
25394         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
25395         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
25396         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
25397
25398 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25399
25400         * config/s390/s390-opts.h: New.
25401         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
25402         s390_arch_flags, s390_warn_framesize, s390_stack_size,
25403         s390_stack_guard): Remove.
25404         (s390_handle_arch_option): Return void.  Take enum
25405         s390_arch_option value instead of string and searching array.
25406         (s390_handle_option): Don't assert that global structures are in
25407         use.  Access variables via opts pointer.  Use error_at.  Don't use
25408         sscanf for -mstack-guard= or -mstack-size=.  Update call to
25409         s390_handle_arch_option.
25410         (s390_option_override): Update call to s390_handle_arch_option.
25411         (s390_emit_prologue): Use %d format for s390_stack_size in
25412         diagnostic.  Use %wd for HOST_WIDE_INT.
25413         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
25414         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
25415         * config/s390/s390.opt (config/s390/s390-opts.h): New
25416         HeaderInclude entry.
25417         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
25418         s390_arch_flags, s390_warn_framesize): New Variable entries.
25419         (s390_arch_option): New Enum and EnumValue entries.
25420         (march=): Use Enum instead of Var.
25421         (mstack-guard=, mstack-size=): Use UInteger and Var.
25422         (mtune=): Use Enum.
25423
25424 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25425
25426         * config/score/score.c (score_handle_option): Don't assert that
25427         global structures are in use.  Access target_flags via opts
25428         pointer.  Use value of -march= option to determine target_flags
25429         settings.
25430         * config/score/score.opt (march=): Use Enum.
25431         (score_arch): New Enum and EnumValue entries.
25432
25433 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25434
25435         * config/mep/mep.c (option_mtiny_specified): Remove.
25436         (mep_option_override): Move register handling for -mivc2 from
25437         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
25438         instead of option_mtiny_specified.
25439         (mep_handle_option): Access target_flags via opts pointer.  Don't
25440         assert that global structures are in use.  Defer part of -mivc2
25441         handling and move it to mep_option_override.
25442         * config/mep/mep.opt (IVC2): New Mask entry.
25443         (mivc2): Use Var and Defer instead of Mask.
25444
25445 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25446
25447         * config/v850/v850-opts.h: New.
25448         * config/v850/v850.c (small_memory): Replace with
25449         small_memory_physical_max array.  Make that array static const.
25450         (v850_handle_memory_option): Take integer value of argument.  Take
25451         gcc_options pointer, option text and location.  Return void.
25452         Update for changes to small memory structures.
25453         (v850_handle_option): Access target_flags via opts pointer.  Don't
25454         assert that global structures are in use.  Update calls to
25455         v850_handle_memory_option.
25456         (v850_encode_data_area): Update references to small memory settings.
25457         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
25458         (enum small_memory_type): Move to v850-opts.h.
25459         * config/v850/v850.opt (config/v850/v850-opts.h): New
25460         HeaderInclude entry.
25461         (small_memory_max): New Variable entry.
25462         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
25463         (mtda, mzda): Likewise.
25464
25465 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25466
25467         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
25468         pointer.  Don't assert that global structures are in use.
25469
25470 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25471
25472         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
25473         via opts pointer.  Don't assert that global structures are in use.
25474
25475 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25476
25477         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
25478         (munix=93): Use Var.
25479         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
25480         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
25481         * config/pa/pa-opts.h: New.
25482         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
25483         (pa_handle_option): Don't assert that global structures are in
25484         use.  Access target_flags via opts pointer.  Don't handle
25485         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
25486         OPT_munix_98 here.
25487         (pa_option_override): Handle deferred OPT_mfixed_range_.
25488
25489 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25490
25491         * config/mn10300/mn10300-opts.h: New.
25492         * config/mn10300/mn10300.c (mn10300_processor,
25493         mn10300_tune_string): Remove.
25494         (mn10300_handle_option): Don't assert that global structures are
25495         in use.  Access mn10300_processor via opts pointer.  Don't handle
25496         OPT_mtune_ here.
25497         * config/mn10300/mn10300.h (enum processor_type): Move to
25498         mn10300-opts.h.
25499         (mn10300_processor): Remove.
25500         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
25501         HeaderInclude entry.
25502         (mn10300_processor): New Variable entry.
25503         (mtune=): Use Var.
25504
25505 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25506
25507         * config/microblaze/microblaze.c: Don't include opts.h.
25508         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
25509         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
25510         (mno-clearbss): Use Var and Warn.
25511
25512 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25513
25514         * config/m32r/m32r-opts.h: New.
25515         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
25516         (m32r_handle_option): Don't assert that global structures are in
25517         use.  Access target_flags and m32r_cache_flush_func via opts
25518         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
25519         OPT_mno_flush_trap here.
25520         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
25521         include of m32r-opts.h.
25522         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
25523         HeaderInclude entry.
25524         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
25525         (mmodel=): Use Enum and Var.
25526         (m32r_model): New Enum and EnumValue entries.
25527         (mno-flush-trap): Use Var.
25528         (msdata=): Use Enum and Var.
25529         (m32r_sdata): New Enum and EnumValue entries.
25530
25531 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25532
25533         * config/m32c/m32c.c: Don't include opts.h.
25534         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
25535         m32c_handle_option): Remove.
25536         (m32c_option_override): Check global_options_set.x_target_memregs
25537         instead of target_memregs_set.
25538         * config/m32c/m32c.h (target_memregs): Remove.
25539         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
25540         variable.
25541
25542 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25543
25544         * config/iq2000/iq2000-opts.h: New.
25545         * config/iq2000/iq2000.c: Don't include opts.h.
25546         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
25547         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
25548         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
25549         HeaderInclude entry.
25550         (iq2000_tune): New Variable entry.
25551         (march=): Add comment.  Use Enum.
25552         (iq2000_arch): New Enum and EnumValue entries.
25553         (mcpu=): Use Enum and Var.
25554         (iq2000_tune): New Enum and EnumValue entries.
25555
25556 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25557
25558         * config/ia64/ia64-opts.h: New.
25559         * config/ia64/ia64.c (ia64_tune): Remove.
25560         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
25561         here.  Use error_at.
25562         (ia64_option_override): Handle deferred OPT_mfixed_range_.
25563         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
25564         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
25565         HeaderInclude entry.
25566         (ia64_tune): New Variable entry.
25567         (mfixed-range=): Use Defer and Var.
25568         (mtune=): Use Enum and Var.
25569         (ia64_tune): New Enum and EnumValue entries.
25570
25571 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25572
25573         * config/frv/frv-opts.h: New.
25574         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
25575         frv-opts.h.
25576         (frv_cpu_type): Remove.
25577         * config/frv/frv.c: Don't include opts.h.
25578         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
25579         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
25580         (frv_cpu_type): New Variable entry.
25581         (frv_cpu): New Enum and EnumValue entries.
25582
25583 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25584
25585         * config/cris/cris.c (cris_handle_option): Access target_flags via
25586         opts pointer.  Don't assert that global structures are in use.
25587         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
25588         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
25589
25590 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25591
25592         * config/bfin/bfin-opts.h: New.
25593         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
25594         bfin_si_revision, bfin_workarounds): Remove.
25595         (bfin_cpus): Make static const.
25596         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
25597         not bfin_lib_id_given.
25598         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
25599         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
25600         pointer. Use error_at.  Don't assert that global structures are in use.
25601         * config/bfin/bfin.h: Include bfin-opts.h.
25602         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
25603         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
25604         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
25605         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
25606         entries.
25607
25608 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25609
25610         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
25611         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
25612         or -msoft-float here.
25613         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
25614         -msoft-float and -mhard-float.
25615         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
25616         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
25617         msoft-float.
25618         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
25619         -msoft-float.
25620         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
25621         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
25622         not mhard-float.
25623         (LIBGCC_SPEC): Don't handle -msoft-float.
25624         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
25625         -mhard-float.
25626         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
25627         msoft-float.
25628         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
25629         -mfloat-abi=*, not -msoft-float and -mhard-float.
25630         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
25631         -msoft-float.
25632         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
25633         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
25634         mhard-float and msoft-float.
25635         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
25636         mfloat-abi=soft in comments, not mhard-float and msoft-float.
25637         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
25638         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
25639         mhard-float.
25640         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
25641         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
25642         msoft-float.
25643         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
25644         not mhard-float.
25645         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
25646         not msoft-float.
25647
25648 2011-03-22  Richard Henderson  <rth@redhat.com>
25649
25650         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
25651         TARGET_ABI_WINDOWS_NT.
25652         (alpha_output_function_end_prologue): Likewise.
25653         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
25654         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
25655         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
25656         (trap, *movsi_nt_vms): Likewise.
25657         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
25658         (*tablejump_osf_nt_internal): Remove.
25659         * config/alpha/predicates.md (input_operand): Only test Pmode.
25660
25661 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25662
25663         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
25664         via opts pointer.  Use error_at.  Don't assert that global
25665         structures are in use.
25666
25667 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25668
25669         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
25670         (ix86_handle_option): Access ix86_isa_flags and
25671         ix86_isa_flags_explicit via opts pointer.  Don't assert that
25672         global structures are in use.
25673         (ix86_function_specific_save, ix86_function_specific_restore):
25674         Update ix86_isa_flags_explicit field name.
25675         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
25676         (ix86_isa_flags_explicit): Rename TargetSave entry to
25677         x_ix86_isa_flags_explicit.
25678
25679 2011-03-22  Richard Henderson  <rth@redhat.com>
25680
25681         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
25682         (alpha_option_override, direct_return): Likewise.
25683         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
25684         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
25685         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
25686         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
25687         (alpha_expand_epilogue, alpha_end_function): Likewise.
25688         (alpha_init_libfuncs): Likewise.
25689         (struct machine_function): Remove unicosmk members.
25690         (print_operand) ['t']: Remove.
25691         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
25692         unicosmk_output_module_name, unicosmk_output_common,
25693         current_section_align, unicosmk_output_text_section_asm_op,
25694         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
25695         unicosmk_section_type_flags, unicosmk_unique_section,
25696         unicosmk_asm_named_section, unicosmk_insert_attributes,
25697         unicosmk_output_align, unicosmk_defer_case_vector,
25698         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
25699         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
25700         unicosmk_output_ssib, unicosmk_add_call_info_word,
25701         unicosmk_extern_head, unicosmk_output_default_externs,
25702         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
25703         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
25704         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
25705         * config/alpha/alpha-protos.h: Update.
25706         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
25707         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
25708         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
25709         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
25710         (*mulsi_se, mulvsi3): Likewise.
25711         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
25712         (*divmodsi_internal, call, call_value, realign): Likewise.
25713         (moddi3, umoddi3): Likewise; remove duplicate expander.
25714         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
25715         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
25716         (*movdi_nofix): Remove r/U alternative.
25717         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
25718         * config/alpha/constraints.md ("U"): Remove.
25719         * config/alpha/predicates.md (call_operand"): Don't test
25720         TARGET_ABI_UNICOSMK.
25721
25722 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25723
25724         * target.def (handle_option): Take gcc_options and
25725         cl_decoded_option pointers and location_t.
25726         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
25727         * doc/tm.texi: Regenerate.
25728         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
25729         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
25730         * lto-opts.c (lto_reissue_options): Generate option structure for
25731         targetm.handle_option call.
25732         * opts.c (target_handle_option): Update call to
25733         targetm.handle_option.  Remove assertions about values now passed
25734         down to hook.
25735         * targhooks.c (default_target_handle_option): New.
25736         * targhooks.h (default_target_handle_option): Declare.
25737         * config/alpha/alpha.c: Include opts.h.
25738         (alpha_handle_option): Update to new hook interface.
25739         * config/arm/arm.c: Include opts.h.
25740         (arm_handle_option): Update to new hook interface.
25741         * config/arm/t-arm (arm.o): Update dependencies.
25742         * config/bfin/bfin.c: Include opts.h.
25743         (bfin_handle_option): Update to new hook interface.
25744         * config/cris/cris.c: Include opts.h.
25745         (cris_handle_option): Update to new hook interface.
25746         * config/frv/frv.c: Include opts.h.
25747         (frv_handle_option): Update to new hook interface.
25748         * config/i386/i386.c: Include opts.h.
25749         (ix86_handle_option): Update to new hook interface.
25750         (ix86_valid_target_attribute_inner_p): Generate option structure
25751         for call to ix86_handle_option.
25752         * config/i386/t-i386 (i386.o): Update dependencies.
25753         * config/ia64/ia64.c: Include opts.h.
25754         (ia64_handle_option): Update to new hook interface.
25755         * config/ia64/t-ia64 (ia64.o): Update dependencies.
25756         * config/iq2000/iq2000.c: Include opts.h.
25757         (iq2000_handle_option): Update to new hook interface.
25758         * config/m32c/m32c.c: Include opts.h.
25759         (m32c_handle_option): Update to new hook interface.
25760         * config/m32r/m32r.c: Include opts.h.
25761         (m32r_handle_option): Update to new hook interface.
25762         * config/m68k/m68k.c: Include opts.h.
25763         (m68k_handle_option): Update to new hook interface.
25764         * config/mep/mep.c: Include opts.h.
25765         (mep_handle_option): Update to new hook interface.
25766         * config/microblaze/microblaze.c: Include opts.h.
25767         (microblaze_handle_option): Update to new hook interface.
25768         * config/mips/mips.c: Include opts.h.
25769         (mips_handle_option): Update to new hook interface.
25770         * config/mn10300/mn10300.c: Include opts.h.
25771         (mn10300_handle_option): Update to new hook interface.
25772         * config/pa/pa.c: Include opts.h.
25773         (pa_handle_option): Update to new hook interface.
25774         * config/pdp11/pdp11.c: Include opts.h.
25775         (pdp11_handle_option): Update to new hook interface.
25776         * config/rs6000/rs6000.c: Include opts.h.
25777         (rs6000_handle_option): Update to new hook interface.
25778         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
25779         * config/rx/rx.c: Include opts.h.
25780         (rx_handle_option): Update to new hook interface.
25781         * config/s390/s390.c: Include opts.h.
25782         (s390_handle_option): Update to new hook interface.
25783         * config/score/score.c: Include opts.h.
25784         (score_handle_option): Update to new hook interface.
25785         * config/sh/sh.c: Include opts.h.
25786         (sh_handle_option): Update to new hook interface.
25787         * config/sparc/sparc.c: Include opts.h.
25788         (sparc_handle_option): Update to new hook interface.
25789         * config/v850/v850.c: Include opts.h.
25790         (v850_handle_option): Update to new hook interface.
25791
25792 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25793
25794         * gcc.c (driver_unknown_option_callback): Only permit and save
25795         unknown -Wno- options.
25796         (driver_wrong_lang_callback): Save options directly instead of via
25797         driver_unknown_option_callback.
25798
25799 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
25800
25801         * combine.c (simplify_set): Try harder to find the best CC mode when
25802         simplifying a nested COMPARE on the RHS.
25803
25804 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25805
25806         * config/alpha/gnu.h: Remove.
25807         * config/arc: Remove directory.
25808         * config/arm/netbsd.h: Remove.
25809         * config/arm/t-pe: Remove.
25810         * config/crx: Remove directory.
25811         * config/i386/netbsd.h: Remove.
25812         * config/m68hc11: Remove directory.
25813         * config/m68k/uclinux-oldabi.h: Remove.
25814         * config/mcore/mcore-pe.h: Remove.
25815         * config/mcore/t-mcore-pe: Remove.
25816         * config/netbsd-aout.h: Remove.
25817         * config/rs6000/gnu.h: Remove.
25818         * config/sh/sh-symbian.h: Remove.
25819         * config/sh/symbian-base.c: Remove.
25820         * config/sh/symbian-c.c: Remove.
25821         * config/sh/symbian-cxx.c: Remove.
25822         * config/sh/symbian-post.h: Remove.
25823         * config/sh/symbian-pre.h: Remove.
25824         * config/sh/t-symbian: Remove.
25825         * config/svr3.h: Remove.
25826         * config/vax/netbsd.h: Remove.
25827         * config.build: Don't handle i[34567]86-*-pe.
25828         * config.gcc: Remove handling of deprecations for most deprecated
25829         targets.
25830         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
25831         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
25832         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
25833         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
25834         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
25835         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
25836         Remove cases.
25837         * config.host: Don't handle i[34567]86-*-pe.
25838         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
25839         (ASM_SPEC32): Don't handle -mcall-gnu.
25840         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
25841         -mcall-gnu.
25842         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
25843         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
25844         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
25845         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
25846         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
25847         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
25848         conditional on SYMBIAN.
25849         * configure.ac: Don't handle powerpc*-*-gnu*.
25850         * configure: Regenerate.
25851         * doc/extend.texi (interrupt attribute): Don't mention CRX.
25852         * doc/install-old.texi (m6811, m6812): Don't mention.
25853         * doc/install.texi (arc-*-elf*): Don't document multilib option.
25854         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
25855         (m68k-uclinuxoldabi): Don't mention.
25856         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
25857         Remove.
25858         (-mcall-gnu): Remove.
25859         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
25860         families): Remove constraint documentation.
25861
25862 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
25863
25864         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
25865         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
25866         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
25867
25868 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
25869
25870         PR target/48226
25871         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
25872         vector when peeking at the next token for vector, don't expand the
25873         keywords.
25874
25875 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
25876
25877         * config/avr/avr-protos.h (expand_epilogue): Change prototype
25878         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
25879         * config/avr/avr.c (init_cumulative_args)
25880         (avr_function_arg_advance): Use it.
25881         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
25882         sibcall epilogues.
25883         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
25884         (avr_function_ok_for_sibcall): ...this new function.
25885         (avr_lookup_function_attribute1): New static Function.
25886         (avr_naked_function_p, interrupt_function_p)
25887         (signal_function_p, avr_OS_task_function_p)
25888         (avr_OS_main_function_p): Use it.
25889         * config/avr/avr.md ("sibcall", "sibcall_value")
25890         ("sibcall_epilogue"): New expander.
25891         ("*call_insn", "*call_value_insn"): New insn.
25892         ("call_insn", "call_value_insn"): Remove
25893         ("call", "call_value", "epilogue"): Change expander to handle
25894         sibling calls.
25895
25896 2011-03-21  Nick Clifton  <nickc@redhat.com>
25897
25898         * doc/invoke.texi (Overall Options): Move closing brace to end of
25899         options list.
25900         (Optimization Options): Add missing @gol.
25901         (Directory Options): Likewise.
25902         (i386 and x86-64 Options): Likewise.
25903         (RS6000 and PowerPC Options): Likewise.
25904         (i386 and x86-64 Windows Options): Likewise.
25905         (V850 Options): Add text missing from descriptions.
25906
25907 2011-03-22  Richard Henderson  <rth@redhat.com>
25908
25909         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
25910         (avr_incoming_return_addr_rtx): New.
25911         (emit_push_byte): New.
25912         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
25913         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
25914         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
25915         (emit_pop_byte): New.
25916         (expand_epilogue): Use it.  Pop frame pointer by bytes.
25917         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
25918         (INCOMING_RETURN_ADDR_RTX): New.
25919         (INCOMING_FRAME_SP_OFFSET): New.
25920         (ARG_POINTER_CFA_OFFSET): New.
25921         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
25922         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
25923         (pophi): Remove.
25924
25925         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
25926
25927 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25928
25929         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
25930         (FUNCTION_ARG_ADVANCE): Likewise.
25931         * tm.texi.in: Change references to them to hook references.
25932         * tm.texi: Regenerate.
25933         * targhooks.c (default_function_arg): Eliminate check for target
25934         macro.
25935         (default_function_incoming_arg): Likewise.
25936         (default_function_arg_advance): Likewise.
25937         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
25938         (function_arg_advance): Likewise.
25939         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
25940
25941 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25942
25943         * tree.c (build_call_1): New function.
25944         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
25945
25946 2011-03-22  Richard Guenther  <rguenther@suse.de>
25947
25948         PR tree-optimization/48228
25949         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
25950         for single-arg PHIs.
25951
25952 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
25953
25954         PR rtl-optimization/48143
25955         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
25956         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
25957         sse2_cvtps2pd): Likewise.
25958
25959 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25960
25961         * recog.c (canonicalize_change_group): Use validate_unshare_change.
25962
25963 2011-03-22  Richard Guenther  <rguenther@suse.de>
25964
25965         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
25966         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
25967         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
25968         and REALIGN_LOAD_EXPR.
25969         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
25970         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
25971         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
25972         DOT_PROD_EXPR case ...
25973         (expand_expr_real_2): ... here.
25974         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
25975         and REALIGN_LOAD_EXPR.
25976         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
25977         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
25978         (vect_create_epilog_for_reduction): Likewise.
25979         (vectorizable_reduction): Likewise.
25980         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
25981         * tree-vect-stmts.c (vectorizable_load): Likewise.
25982
25983 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
25984
25985         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
25986
25987 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25988
25989         * config/s390/s390.c (s390_delegitimize_address): Fix offset
25990         handling for PLTOFF/GOTOFF.
25991
25992 2011-03-22  Nick Clifton  <nickc@redhat.com>
25993
25994         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
25995         trailing backslash from the end of the macro definition.
25996
25997 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25998
25999         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
26000         and PLT unspecs.
26001
26002 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
26003
26004         * expr.h (prepare_operand): Move to...
26005         * optabs.h (prepare_operand): ...here and change the insn code
26006         parameter from "int" to "enum insn_code".
26007         (insn_operand_matches): Declare.
26008         * expr.c (init_expr_target): Use insn_operand_matches.
26009         (compress_float_constant): Likewise.
26010         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
26011         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
26012         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
26013         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
26014         Likewise.
26015         (gen_cond_trap): Likewise.
26016         (prepare_operand): Likewise.  Change icode to an insn_code.
26017         (insn_operand_matches): New function.
26018         * reload.c (find_reloads_address_1): Use insn_operand_matches.
26019         * reload1.c (gen_reload): Likewise.
26020         * targhooks.c (default_secondary_reload): Likewise.
26021
26022 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
26023
26024         * config/alpha/alpha.md (unspec): New define_c_enum.
26025         (unspecv): Ditto.
26026
26027 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
26028
26029         PR debug/48214
26030         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
26031         between a call and its CALL_ARG_LOCATION note.
26032
26033 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
26034
26035         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
26036
26037 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
26038
26039         PR c/42544
26040         PR c/48197
26041         * c-common.c (shorten_compare): If primopN is first sign-extended
26042         to opN and then zero-extended to result type, set primopN to opN.
26043
26044 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
26045
26046         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
26047         for barrier handlers.
26048
26049 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
26050
26051         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
26052         UNSPEC constants to be in the unspec enumeration, and redefine
26053         all UNSPECV constants to be in the unspecv enumeration, so that
26054         dumps print which unspec/unspec_volatile this is.
26055         * config/rs6000/vector.md (UNSPEC_*): Ditto.
26056         * config/rs6000/paired.md (UNSPEC_*): Ditto.
26057         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
26058         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
26059         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
26060
26061         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
26062         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
26063         UNSPECV_LWSYNC, since these are used as unspec_volatile.
26064         * config/rs6000/sync.md (isync, lwsync): Ditto.
26065
26066 2011-03-21  Richard Guenther  <rguenther@suse.de>
26067
26068         * params.def (lto-min-partition): Fix typo.
26069
26070 2011-03-21  Richard Guenther  <rguenther@suse.de>
26071
26072         PR c/47939
26073         * c-decl.c (grokdeclarator): Drop to the main variant only
26074         for array types.  Drop flag_gen_aux_info check.
26075
26076 2011-03-21  Richard Guenther  <rguenther@suse.de>
26077
26078         PR translation/47911
26079         * params.def (lto-partitions): Fix typo.
26080         (lto-min-partition): Fix wording.
26081
26082 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
26083
26084         * config/rs6000/t-freebsd: Remove duplication from file.
26085
26086 2011-03-21  Richard Guenther  <rguenther@suse.de>
26087
26088         PR middle-end/47661
26089         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
26090
26091 2011-03-21  Richard Guenther  <rguenther@suse.de>
26092
26093         PR lto/48210
26094         * params.def (lto-partitions): Require at least 1 partition.
26095
26096 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26097
26098         * gthr-solaris.h: Remove.
26099         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
26100         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
26101         (LIB_SPEC): Likewise.
26102         * config/sol2.opt (threads): Remove.
26103         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
26104         (sparc*-*-solaris2*): Likewise.
26105         * configure.ac (enable_threads): Enable solaris support.
26106         * configure: Regenerate.
26107         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
26108         * doc/install.texi (Configuration, --enable-threads=lib): Remove
26109         solaris.
26110
26111 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26112
26113         * config.gcc: Obsolete *-*-solaris2.8*.
26114         * doc/install.texi (Specific, *-*-solaris2*): Document it.
26115
26116 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26117
26118         PR bootstrap/48135
26119         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
26120         reference.  Solaris 8 perl works.
26121
26122 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26123
26124         PR bootstrap/48135
26125         * doc/install.texi (Prerequisites): Move jar etc. up.
26126         Explain support library version requirements.
26127
26128 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26129
26130         PR bootstrap/48135
26131         * doc/install.texi (Prerequisites): Move Perl to build
26132         requirements.  Always necessary on Solaris 2 with Sun ld.
26133
26134 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26135
26136         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
26137         binutils 2.21.
26138         (Specific, i?86-*-solaris2.[89]): Likewise.
26139         (Specific, i?86-*-solaris2.10): Likewise.
26140         (Specific, mips-sgi-irix6): Likewise.
26141         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
26142         Update for binutils 2.21.
26143
26144 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26145
26146         * configure.ac (gcc_cv_lto_plugin): Fix typo.
26147         Allow -fuse-linker-plugin for non-default plugin linker.
26148         * configure: Regenerate.
26149
26150 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
26151
26152         PR bootstrap/48167
26153         * gengtype.c (files_rules): Added rule for cp/parser.h.
26154
26155 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
26156
26157         PR target/48213
26158         * config/s390/s390.c (s390_delegitimize_address): Don't call
26159         lowpart_subreg if orig_x has BLKmode.
26160
26161 2011-03-21  Kai Tietz  <ktietz@redhat.com>
26162
26163         PR target/12171
26164         * doc/plugins.texi: Adjust documentation for plugin register_callback.
26165         * tree.h (attribute_spec): Add new member affects_type_identity.
26166         * attribs.c (empty_attribute_table): Adjust attribute_spec
26167         initializers.
26168         * config/alpha/alpha.c: Likewise.
26169         * config/arc/arc.c: Likewise.
26170         * config/arm/arm.c: Likewise.
26171         * config/avr/avr.c: Likewise.
26172         * config/bfin/bfin.c: Likewise.
26173         * config/crx/crx.c: Likewise.
26174         * config/darwin.h: Likewise.
26175         * config/h8300/h8300.c: Likewise.
26176         * config/i386/cygming.h: Likewise.
26177         * config/i386/i386.c: Likewise.
26178         * config/ia64/ia64.c: Likewise.
26179         * config/m32c/m32c.c: Likewise.
26180         * config/m32r/m32r.c: Likewise.
26181         * config/m68hc11/m68hc11.c: Likewise.
26182         * config/m68k/m68k.c: Likewise.
26183         * config/mcore/mcore.c: Likewise.
26184         * config/mep/mep.c: Likewise.
26185         * config/microblaze/microblaze.c: Likewise.
26186         * config/mips/mips.c: Likewise.
26187         * config/rs6000/rs6000.c: Likewise.
26188         * config/rx/rx.c: Likewise.
26189         * config/sh/sh.c: Likewise.
26190         * config/sol2.h: Likewise.
26191         * config/sparc/sparc.c: Likewise.
26192         * config/spu/spu.c: Likewise.
26193         * config/stormy16/stormy16.c: Likewise.
26194         * config/v850/v850.c: Likewise.
26195
26196 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
26197
26198         * simplify-rtx.c (simplify_binary_operation_1): Handle
26199         (xor (and A B) C) case when B and C are both constants.
26200
26201 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
26202
26203         * tree-dfa.c (add_referenced_var): Fix typo in comment.
26204
26205 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26206
26207         PR bootstrap/48168
26208         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
26209
26210 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
26211
26212         PR rtl-optimization/48156
26213         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
26214         assume df and df_lr are not NULL.
26215
26216 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
26217
26218         PR debug/48023
26219         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
26220         between a call and its CALL_ARG_LOCATION note.
26221
26222 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
26223
26224         PR debug/48178
26225         * config/sh/sh.c (find_barrier): Don't emit a constant pool
26226         between a call and its corresponding CALL_ARG_LOCATION note.
26227
26228 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
26229
26230         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
26231         instead of loop. Use HARD_REGISTER_NUM_P predicate.
26232         * haifa-sched.c (setup_ref_regs): Ditto.
26233         * caller-save.c (add_used_regs_1): Ditto.
26234         * dse.c (look_for_hardregs): Ditto.
26235         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
26236         * sched-rgn.c (check_live_1): Ditto.
26237
26238 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
26239
26240         * c-decl.c (diagnose_mismatched_decls): Give an error for
26241         redefining a typedef with variably modified type.
26242
26243 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
26244
26245         * c-decl.c (grokfield): Don't allow typedefs for structures or
26246         unions with no tag by default.
26247         * doc/extend.texi (Unnamed Fields): Update.
26248
26249 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
26250
26251         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
26252         Rewrite using indirect functions.
26253         (lwp_slwpcb): Ditto.
26254         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
26255         (avx_vinsertf128<mode>): Ditto.
26256
26257 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26258
26259         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
26260         unspecs.
26261
26262 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26263
26264         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
26265         splitting between a call and its corresponding CALL_ARG_LOCATION note.
26266
26267 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
26268
26269         PR rtl-optimization/48170
26270         * gcse.c (hoist_code): Remove bogus asserts.
26271
26272 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
26273
26274         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
26275         computation for prologue/epilogue.
26276
26277 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26278
26279         * Makefile.in (check-consistency): Remove.
26280
26281 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
26282
26283         PR debug/48176
26284         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
26285         arange_table_in_use is 0, but either text_section_used or
26286         cold_text_section_used is true.  Don't call it if
26287         !info_section_emitted.
26288
26289 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
26290
26291         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
26292         FUNCTION_VALUE_REGNO_P): Remove.
26293         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
26294         Remove.
26295         * config/avr/avr.c (avr_ret_register): Make static inline.
26296         (avr_function_value_regno_p): New function.
26297         (avr_libcall_value): Make static. Add 'func' argument.
26298         (avr_function_value): Make static. Rename 'func' argument to
26299         'fn_decl_or_type', forward it to avr_libcall_value. Call
26300         avr_ret_register function instead of RET_REGISTER macro.
26301         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
26302
26303 2011-03-18  Jason Merrill  <jason@redhat.com>
26304
26305         PR c++/23372
26306         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
26307
26308 2011-03-18  Richard Guenther  <rguenther@suse.de>
26309
26310         * doc/install.texi (--enable-gold): Remove.
26311         (--with-plugin-ld): Document.
26312         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
26313
26314 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
26315
26316         PR middle-end/47790
26317         * expr.c (optimize_bitfield_assignment_op): Revamp to work
26318         again after expansion changes.
26319
26320 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
26321
26322         * combine.c (try_combine): Do simplification only call of
26323         subst() on i2 even when i1 is present. Update comments.
26324
26325 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
26326
26327         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
26328         and UNSPEC_PCREL_SYMOFF.
26329
26330 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26331
26332         * config/s390/s390.md: Use define_c_enum for the unspec constant
26333         definitions.
26334
26335 2011-03-18  Richard Henderson  <rth@redhat.com>
26336             Jakub Jelinek  <jakub@redhat.com>
26337
26338         PR bootstrap/48161
26339         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
26340         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
26341
26342 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
26343
26344         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
26345         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
26346         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
26347         Change return type to bool.
26348         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
26349
26350 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
26351
26352         PR debug/48163
26353         * var-tracking.c (prepare_call_arguments): If CALL target
26354         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
26355         pc instead of looking it up using cselib_lookup and use
26356         Pmode for it if x has VOIDmode.
26357         * dwarf2out.c (gen_subprogram_die): If also both first and
26358         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
26359
26360         PR debug/48163
26361         * function.c (assign_parms): For data.passed_pointer parms
26362         use MEM of data.entry_parm instead of data.entry_parm itself
26363         as DECL_INCOMING_RTL.
26364         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
26365         also when passed and declared mode is the same, DECL_RTL
26366         is a MEM with pseudo as address and DECL_INCOMING_RTL is
26367         a MEM too.
26368
26369 2011-03-16  Jeff Law  <law@redhat.com>
26370
26371         PR rtl-optimization/37273
26372         * ira-costs.c (scan_one_insn): Detect constants living in memory and
26373         handle them like argument loads from stack slots.  Do not double
26374         count memory for memory constants and argument loads from stack slots.
26375
26376 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
26377
26378         PR debug/48160
26379         * var-tracking.c (prepare_call_arguments): Check SUBREG.
26380
26381 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
26382
26383         PR target/48171
26384         * config/i386/i386.opt: Add Save to -mavx and -mfma.
26385
26386 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
26387
26388         PR bootstrap/48153
26389         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
26390         if dwarf_strict.
26391         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
26392         Clear call_arg_locations and call_arg_loc_last always.
26393
26394         PR middle-end/48152
26395         * var-tracking.c (prepare_call_arguments): If argument needs to be
26396         passed by reference, adjust argtype and mode.
26397
26398 2011-03-17  Richard Guenther  <rguenther@suse.de>
26399
26400         PR middle-end/48134
26401         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
26402         a value make sure to fold the statement.
26403
26404 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
26405
26406         PR target/43872
26407         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
26408         return condition with !cfun->calls_alloca.
26409
26410 2011-03-17  Richard Guenther  <rguenther@suse.de>
26411
26412         PR bootstrap/48148
26413         * lto-cgraph.c (input_overwrite_node): Clear the abstract
26414         origin for decls in other ltrans units.
26415         (input_varpool_node): Likewise.
26416
26417 2011-03-17  Richard Guenther  <rguenther@suse.de>
26418
26419         PR middle-end/48165
26420         * tree-object-size.c (compute_object_offset): Properly return
26421         the offset operand of MEM_REFs as sizetype.
26422
26423 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
26424
26425         PR rtl-optimization/48141
26426         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
26427         * dse.c: Include params.h.
26428         (active_local_stores_len): New variable.
26429         (add_wild_read, dse_step1): Clear it when setting active_local_stores
26430         to NULL.
26431         (record_store, check_mem_read_rtx): Decrease it when removing
26432         from the chain.
26433         (scan_insn): Likewise.  Increase it when adding to chain, if it
26434         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
26435         set active_local_stores to NULL before the addition.
26436         * Makefile.in (dse.o): Depend on $(PARAMS_H).
26437
26438         PR rtl-optimization/48141
26439         * dse.c (record_store): If no positions are needed in an insn
26440         that cannot be deleted, at least unchain it from active_local_stores.
26441
26442 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
26443
26444         PR debug/47510
26445         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
26446         (lookup_type_die_strip_naming_typedef): ... here.
26447         (get_context_die): Use it.
26448         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
26449         the anonymous struct named by the naming typedef.
26450
26451 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
26452
26453         PR target/48154
26454         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
26455         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
26456
26457 2011-03-16  Jeff Law  <law@redhat.com>
26458
26459         * tree-vrp.c (identify_jump_threads): Slightly simplify type
26460         check for operands of conditional.  Allow type to be a pointer.
26461
26462 2011-03-16  Richard Guenther  <rguenther@suse.de>
26463
26464         PR tree-optimization/48149
26465         * fold-const.c (fold_binary_loc): Fold
26466         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
26467
26468 2011-03-16  Richard Guenther  <rguenther@suse.de>
26469
26470         PR tree-optimization/26134
26471         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
26472         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
26473         (non_rewritable_mem_ref_base): Handle complex type component
26474         accesses, constrain offsets for vector and complex extracts
26475         more properly.
26476
26477 2011-03-16  Richard Guenther  <rguenther@suse.de>
26478
26479         PR tree-optimization/48146
26480         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
26481         operands avoiding the need for renaming.
26482
26483 2011-03-16  Richard Guenther  <rguenther@suse.de>
26484
26485         * gimple-fold.c (maybe_fold_reference): Open-code relevant
26486         constant folding.  Move MEM_REF canonicalization first.
26487         Rely on fold_const_aggregate_ref for initializer folding.
26488         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
26489
26490 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
26491
26492         PR middle-end/48136
26493         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
26494         arg0/arg1 or their arguments are always fold converted to matching
26495         types.
26496
26497         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
26498         to nargs.
26499
26500 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26501
26502         PR lto/46944
26503         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
26504         Handle in-tree gold.
26505         (ld_vers): Extract binutils version for gold.
26506         (gcc_cv_ld_hidden): Handle gold here.
26507         (gcc_cv_lto_plugin): Determine level of linker plugin support.
26508         * configure: Regenerate.
26509         * config.in: Regenerate.
26510         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
26511         -fuse-linker-plugin otherwise.
26512         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
26513         (LINK_COMMAND_SPEC): Use it.
26514         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
26515
26516 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
26517
26518         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
26519         * calls.c: Remove debug.h include.
26520         (emit_call_1): Don't call virtual_call_token debug hook.
26521         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
26522         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
26523         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
26524         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
26525         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
26526         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
26527         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
26528         dwarf2out_virtual_call): Remove.
26529         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
26530         copy_call_info and virtual_call hooks.
26531         (dwarf2out_init): Don't initialize vcall_insn_table,
26532         debug_dcall_section and debug_vcall_section.
26533         (prune_unused_types): Don't mark nodes from dcall_table.
26534         (dwarf2out_finish): Don't output dcall or vcall tables.
26535         * final.c (final_scan_insn): Don't call direct_call or
26536         virtual_call debug hooks.
26537         * debug.h (struct gcc_debug_hooks): Remove direct_call,
26538         virtual_call_token, copy_call_info and virtual_call hooks.
26539         (debug_nothing_uid): Remove prototype.
26540         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
26541         copy_call_info and virtual_call hooks.
26542         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
26543         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
26544         * debug.c (do_nothing_debug_hooks): Likewise.
26545         (debug_nothing_uid): Remove.
26546         * doc/invoke.texi (-fenable-icf-debug): Remove.
26547         * common.opt (-fenable-icf-debug): Likewise.
26548
26549         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
26550         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
26551         call's MEM.  Handle functions returning aggregate through a hidden
26552         first pointer.  For virtual calls add clobbered pc to call arguments
26553         chain.
26554         * dwarf2out.c (gen_subprogram_die): Emit
26555         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
26556         can't be emitted.
26557
26558         PR debug/45882
26559         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
26560         * rtl.h (ENTRY_VALUE_EXP): Define.
26561         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
26562         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
26563         * print-rtl.c (print_rtx): Likewise.
26564         * gengtype.c (adjust_field_rtx_def): Likewise.
26565         * var-tracking.c (vt_add_function_parameter): Adjust
26566         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
26567         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
26568         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
26569         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
26570         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
26571
26572         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
26573         Call var_location debug hook even on CALL_INSNs.
26574         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
26575         * rtl.def (ENTRY_VALUE): New.
26576         * dwarf2out.c: Include cfglayout.h.
26577         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
26578         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
26579         (struct call_arg_loc_node): New type.
26580         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
26581         tail_call_site_count): New variables.
26582         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
26583         DW_TAG_GNU_call_site_parameter.
26584         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
26585         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
26586         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
26587         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
26588         and DW_AT_GNU_all_source_call_sites.
26589         (mem_loc_descriptor): Handle ENTRY_VALUE.
26590         (add_src_coords_attributes): Don't add enything if
26591         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
26592         (dwarf2out_abstract_function): Save and clear call_arg_location,
26593         call_site_count and tail_call_site_count around dwarf2out_decl call.
26594         (gen_call_site_die): New function.
26595         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
26596         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
26597         (dwarf2out_function_decl): Clear call_arg_locations,
26598         call_arg_loc_last, set call_site_count and tail_call_site_count
26599         to -1 and free block_map.
26600         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
26601         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
26602         followed by any real instructions.
26603         (dwarf2out_begin_function): Set call_site_count and
26604         tail_call_site_count to 0.
26605         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
26606         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
26607         attempt to force a DIE for it and worst case remove the attribute.
26608         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
26609         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
26610         the decl itself.
26611         * var-tracking.c: Include tm_p.h.
26612         (vt_stack_adjustments): For calls call note_register_arguments.
26613         (argument_reg_set): New variable.
26614         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
26615         ensure the VALUE is resolved.
26616         (call_arguments): New variable.
26617         (prepare_call_arguments): New function.
26618         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
26619         (struct expand_loc_callback_data): Add ignore_cur_loc field.
26620         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
26621         always use the best expression.
26622         (vt_expand_loc): Add ignore_cur_loc argument.
26623         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
26624         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
26625         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
26626         note for all calls.
26627         (vt_add_function_parameter): Use cselib_lookup_from_insn.
26628         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
26629         argument.  Don't call cselib_preserve_only_values and
26630         cselib_reset_table.
26631         (note_register_arguments): New function.
26632         (vt_initialize): Compute argument_reg_set.  Call
26633         vt_add_function_parameters before processing basic blocks instead of
26634         afterwards.  For calls call prepare_call_arguments before calling
26635         cselib_process_insn.
26636         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
26637         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
26638         (var-tracking.o): Depend on $(TM_P_H).
26639         * cfglayout.h (insn_scope): New prototype.
26640         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
26641         * cfglayout.c (insn_scope): No longer static.
26642         * insn-notes.def (CALL_ARG_LOCATION): New.
26643         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
26644         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
26645         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
26646         nothing for DECL_EXTERNAL BLOCK_VARS.
26647
26648 2011-03-16  Alan Modra  <amodra@gmail.com>
26649
26650         PR target/45844
26651         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
26652         create invalid offset address for vsx splat insn.
26653         * config/rs6000/predicates.md (splat_input_operand): New.
26654         * config/rs6000/vsx.md (vsx_splat_*): Use it.
26655
26656 2011-03-15  Xinliang David Li  <davidxl@google.com>
26657
26658         PR c/47837
26659         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
26660         (normalize_preds): New function.
26661         (is_use_properly_guarded): Normalize def predicates.
26662
26663 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
26664
26665         PR target/46788
26666         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
26667         in the output template.
26668
26669 2011-03-15  Richard Guenther  <rguenther@suse.de>
26670
26671         PR middle-end/47650
26672         * tree-pretty-print.c (dump_function_declaration): Properly
26673         dump unprototyped and varargs function types.
26674
26675 2011-03-15  Richard Guenther  <rguenther@suse.de>
26676
26677         PR tree-optimization/13954
26678         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
26679         and friends.
26680
26681 2011-03-15  Richard Guenther  <rguenther@suse.de>
26682
26683         PR tree-optimization/48037
26684         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
26685         selects into BIT_FIELD_REFs.
26686         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
26687         vector select.
26688
26689 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
26690
26691         PR tree-optimization/48129
26692         * builtins.c (fold_builtin_snprintf): Convert to type of
26693         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
26694         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
26695
26696 2011-03-15  Richard Guenther  <rguenther@suse.de>
26697
26698         PR tree-optimization/41490
26699         * tree-ssa-dce.c (propagate_necessity): Handle returns without
26700         value but with VUSE.
26701         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
26702         return statements.
26703         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
26704         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
26705         * tree-tailcall.c (find_tail_calls): Ignore returns.
26706
26707 2011-03-15  Richard Guenther  <rguenther@suse.de>
26708
26709         PR middle-end/48031
26710         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
26711         or variable-indexed array accesses when in gimple form.
26712
26713 2011-03-15  Richard Guenther  <rguenther@suse.de>
26714
26715         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
26716
26717 2011-03-15  Alan Modra  <amodra@gmail.com>
26718
26719         PR target/48032
26720         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
26721         presume symbol_refs without a symbol_ref_decl are suitably
26722         aligned, nor other trees we may see here.  Handle anchor symbols.
26723         (legitimate_constant_pool_address_p): Comment.  Add mode param.
26724         Check cmodel=medium addresses.  Adjust all calls.
26725         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
26726         creating cmodel=medium optimized access to locals.
26727         * config/rs6000/constraints.md (R): Pass QImode to
26728         legitimate_constant_pool_address_p.
26729         * config/rs6000/predicates.md (input_operand): Pass mode to
26730         legitimate_constant_pool_address_p.
26731         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
26732         Update prototype.
26733
26734 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
26735
26736         PR target/48053
26737         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
26738         64-bit constants being loaded into registers other than GPRs such
26739         as loading 0 into a VSX register.
26740
26741 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26742
26743         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
26744
26745 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
26746
26747         PR middle-end/47917
26748         * builtins.c (fold_builtin_snprintf): New function.
26749         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
26750         (fold_builtin_4): Likewise.
26751
26752         PR middle-end/38878
26753         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
26754         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
26755         and C - X == X also strip nops from +/-/p+ operand.
26756         When optimizing -X == C, fold C to arg0's type.
26757
26758         PR debug/47946
26759         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
26760         emit it as add_AT_int instead of add_AT_unsigned.
26761
26762 2011-03-14  Tom Tromey  <tromey@redhat.com>
26763
26764         * unwind-dw2.c: Include sys/sdt.h if it exists.
26765         (_Unwind_DebugHook): Use STAP_PROBE2.
26766         * config.in, configure: Rebuild.
26767         * configure.ac: Check for sys/sdt.h.
26768
26769 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
26770
26771         * config/i386/i386.md (ROUND_FLOOR): New constant.
26772         (ROUND_CEIL): Ditto.
26773         (ROUND_TRUNC): Ditto.
26774         (ROUND_MXCSR): Ditto.
26775         (ROUND_NO_EXC): Ditto.
26776         (rint<mode>2): Use new defines instead of numerical constants.
26777         (floor<mode>2): Ditto.
26778         (ceil<mode>2): Ditto.
26779         (btrunc<mode>2): Ditto.
26780         * config/i386/i386-builtin-types.def: Define ROUND function type
26781         aliases.
26782         * config/i386/i386.c (enum ix86_builtins): Add
26783         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
26784         (struct builtin_description): Add
26785         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
26786         (ix86_expand_sse_round): New static function.
26787         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
26788         function types.
26789         (ix86_builtin_vectorized_function): Handle
26790         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
26791
26792 2011-03-14  Tom Tromey  <tromey@redhat.com>
26793
26794         * c-parser.c (c_parser_asm_string_literal): Clear
26795         warn_overlength_strings.
26796
26797 2011-03-14  Tom Tromey  <tromey@redhat.com>
26798
26799         * c-parser.c (disable_extension_diagnostics): Save
26800         warn_overlength_strings.
26801         (restore_extension_diagnostics): Restore warn_overlength_strings.
26802
26803 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
26804
26805         * BASE-VER: Change to 4.7.0.
26806
26807 2011-03-14  Richard Guenther  <rguenther@suse.de>
26808
26809         PR middle-end/48098
26810         * tree.c (build_vector_from_val): Adjust assert to requirements
26811         and reality.
26812
26813 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
26814
26815         PR bootstrap/48102
26816         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
26817
26818 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
26819
26820         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
26821         terms of target_flags_explicit. Adjust copyright year.
26822
26823         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
26824         * config/rs6000/t-freebsd: New file. Add override for
26825         LIB2FUNCS_EXTRA.
26826
26827 2011-03-13  Chris Demetriou  <cgd@google.com>
26828
26829         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
26830         (-fno-diagnostics-show-option): this, to reflect current default.
26831         (-Werror=): Update text about -fno-diagnostics-show-option.
26832
26833 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
26834
26835         PR target/48053
26836         * config/rs6000/predicates.md (easy_vector_constant_add_self,
26837         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
26838         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
26839         mode is not V2DImode or V2DFmode.
26840         (vspltis_constant): Do not handle V2DImode and V2DFmode.
26841         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
26842         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
26843         registers to 0.
26844         (movdi_internal64): Likewise.
26845
26846 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
26847
26848         PR tree-optimization/47127
26849         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
26850         parameter.
26851         (set_cloog_options): Same.
26852         (scop_to_clast): Same.
26853         (print_clast_stmt): Do not call cloog_state_malloc and
26854         cloog_state_free.
26855         (print_generated_program): Same.
26856         (gloog): Same.
26857         * graphite-clast-to-gimple.h (cloog_state): Declared.
26858         (scop_to_clast): Adjust declaration.
26859         * graphite.c (cloog_state): Defined here.
26860         (graphite_initialize): Call cloog_state_malloc.
26861         (graphite_finalize): Call cloog_state_free.
26862
26863 2011-03-11  Jason Merrill  <jason@redhat.com>
26864
26865         * attribs.c (lookup_attribute_spec): Take const_tree.
26866         * tree.h: Adjust.
26867
26868 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
26869
26870         * config/sparc/sparc.c (sparc_option_override): Use
26871         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
26872
26873 2011-03-11  Richard Guenther  <rguenther@suse.de>
26874
26875         PR tree-optimization/48067
26876         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
26877         multiplication result will be only used once on the target
26878         stmt.
26879
26880 2011-03-11  Richard Guenther  <rguenther@suse.de>
26881
26882         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
26883
26884 2011-03-11  Richard Guenther  <rguenther@suse.de>
26885
26886         PR lto/48073
26887         * tree.c (find_decls_types_r): Do not walk types only reachable
26888         from IDENTIFIER_NODEs.
26889
26890 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
26891
26892         PR middle-end/48044
26893         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
26894         all vnode->force_output nodes as needed.
26895
26896 2011-03-11  Jason Merrill  <jason@redhat.com>
26897
26898         PR c++/48069
26899         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
26900         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
26901
26902 2011-03-11  Martin Jambor  <mjambor@suse.cz>
26903
26904         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
26905         cgraph_node.
26906
26907 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
26908
26909         PR tree-optimization/48063
26910         * ipa-inline.c (cgraph_decide_inlining): Don't try to
26911         inline functions called once if !tree_can_inline_p (node->callers).
26912
26913 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
26914
26915         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
26916         extra_objs.
26917         * config/score/score3.c: Delete.
26918         * config/score/score3.h: Delete.
26919         * config/score/mul-div.S: Delete.
26920         * config/score/sfp-machine.h: Add new file.
26921         * config/score/constraints.md: Add new file.
26922         * config/score/t-score-softfp: Add new file.
26923         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
26924         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
26925         (score7_extra_constraint): Delete.
26926         (score7_option_override): Remove unused code.
26927         * config/score/score.c: Remove score3 and score5 define and code.
26928         * config/score/score.h: Remove score3 and score5 define and code.
26929         * config/score/score.md: Remove score3 template and unusual insn.
26930         * config/score/score.opt: Remove score3 and score5 options.
26931
26932 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26933
26934         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
26935         when _HPUX_SOURCE is defined.
26936         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
26937
26938 2011-03-10  Jason Merrill  <jason@redhat.com>
26939
26940         PR c++/48029
26941         * stor-layout.c (layout_type): Don't set structural equality
26942         on arrays of incomplete type.
26943         * tree.c (type_hash_eq): Handle comparing them properly.
26944
26945 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
26946
26947         PR debug/48043
26948         * config/s390/s390.c (s390_delegitimize_address): Make sure the
26949         result mode matches original rtl mode.
26950
26951 2011-03-10  Nick Clifton  <nickc@redhat.com>
26952
26953         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
26954         (andsi3, andsi3_flags): Fix timings for three operand alternative.
26955
26956 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
26957
26958         PR rtl-optimization/47866
26959         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
26960         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
26961         if target wasn't scalar.
26962         * function.c (assign_stack_temp_for_type): Assert that neither
26963         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
26964         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
26965         macro.
26966         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
26967
26968 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26969
26970         * config/s390/s390-protos.h (s390_label_align): New prototype.
26971         * config/s390/s390.c (s390_label_align): New function.
26972         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
26973
26974 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
26975
26976         PR target/47755
26977         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
26978         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
26979         (output_vec_const_move): Ditto.
26980
26981 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
26982
26983         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
26984         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
26985         * config/mips/mips.c (mips_preferred_reload_class): Make static.
26986         Change 'rclass' argument and result type to reg_class_t.
26987         (TARGET_PREFERRED_RELOAD_CLASS): Define.
26988
26989 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
26990
26991         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
26992         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
26993         (TARGET_MEMORY_MOVE_COST): Define.
26994         (avr_register_move_cost, avr_memory_move_cost): New Functions.
26995
26996 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
26997
26998         PR debug/47881
26999         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
27000         removed anything.
27001
27002         PR tree-optimization/48022
27003         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
27004         for EQ/NE_EXPR.
27005
27006 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
27007
27008         PR debug/47991
27009         * var-tracking.c (find_use_val): Return NULL for
27010         cui->sets && cui->store_p BLKmode MEMs.
27011
27012 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
27013
27014         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
27015         Remove.
27016         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
27017         xstormy16_print_operand_address): Remove.
27018         * config/stormy16/stormy16.c (xstormy16_print_operand,
27019         xstormy16_print_operand_address): Make static.
27020         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
27021
27022 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
27023
27024         PR target/47862
27025         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
27026         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
27027         before definition.
27028
27029 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
27030
27031         PR bootstrap/48000
27032         * cfgloopmanip.c (fix_bb_placements): Return immediately
27033         if FROM is BASE_LOOP's header.
27034
27035 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
27036
27037         * gimplify.c (gimplify_function_tree): Fix building calls
27038         to __builtin_return_address.
27039
27040 2011-03-07  Alan Modra  <amodra@gmail.com>
27041
27042         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
27043         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
27044         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
27045         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
27046         return_mode args.
27047         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
27048         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
27049         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
27050         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
27051         * config/rs6000/rs6000.c
27052         (rs6000_elf_end_indicate_exec_stack): Rename to..
27053         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
27054         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
27055         (rs6000_file_start): ..here.
27056         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
27057         file scope variables.
27058         (call_ABI_of_interest): New function.
27059         (init_cumulative_args): Set above vars when function return value
27060         is a float, vector, or small struct.
27061         (rs6000_function_arg_advance_1): Likewise for function args.
27062         (rs6000_va_start): Set rs6000_passes_float if variable arg function
27063         references float args.
27064
27065 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
27066
27067         * doc/cfg.texi: Remove "See" before @ref.
27068         * doc/invoke.texi: Likewise.
27069
27070 2011-03-05  Jason Merrill  <jason@redhat.com>
27071
27072         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
27073
27074 2011-03-05  Anthony Green  <green@moxielogic.com>
27075
27076         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
27077
27078 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
27079
27080         PR rtl-optimization/47899
27081         * cfgloopmanip.c (fix_bb_placements): Fix first argument
27082         to flow_loop_nested_p when moving the loop upward.
27083
27084 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
27085
27086         PR target/47719
27087         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
27088
27089 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
27090
27091         PR tree-optimization/47967
27092         * ipa-cp.c (build_const_val): Return NULL instead of creating
27093         VIEW_CONVERT_EXPR for mismatching sizes.
27094         (ipcp_create_replace_map): Return NULL if build_const_val failed.
27095         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
27096         give up on versioning.
27097
27098 2011-03-05  Alan Modra  <amodra@gmail.com>
27099
27100         PR target/47986
27101         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
27102         full cmodel medium/large lo_sum + high addresses.
27103
27104 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27105
27106         * config/s390/s390.c (s390_decompose_address): Reject non-literal
27107         pool references in UNSPEC_LTREL_OFFSET.
27108
27109 2011-03-04  Jan Hubicka  <jh@suse.cz>
27110
27111         PR lto/47497
27112         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
27113         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
27114         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
27115         Add node pointers.
27116         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
27117         cgraph_add_thunk): Add node pointers.
27118         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
27119         associated to right node.
27120         (input_node): Update use of cgraph_same_body_alias
27121         and cgraph_add_thunk.
27122
27123 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
27124
27125         * config/i386/i386.opt (mprefer-avx128): New flag.
27126         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
27127         modes when the flag -mprefer-avx128 is on.
27128
27129 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
27130
27131         * dwarf2out.c (compare_loc_operands): Fix address handling.
27132
27133 2011-03-04  Alan Modra  <amodra@gmail.com>
27134
27135         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
27136
27137 2011-03-04  Richard Guenther  <rguenther@suse.de>
27138
27139         PR middle-end/47968
27140         * expmed.c (extract_bit_field_1): Prefer vector modes that
27141         vec_extract patterns can handle.
27142
27143 2011-03-04  Richard Guenther  <rguenther@suse.de>
27144
27145         PR middle-end/47975
27146         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
27147
27148 2011-03-04  Richard Henderson  <rth@redhat.com>
27149
27150         * explow.c (emit_stack_save): Remove 'after' parameter.
27151         (emit_stack_restore): Likewise.
27152         * expr.h: Update to match.
27153         * builtins.c, calls.c, stmt.c: Likewise.
27154         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
27155         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
27156         * function.c (expand_function_end): Insert the emit_stack_save
27157         sequence before parm_birth_insn instead of after.
27158
27159 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
27160
27161         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
27162         (ssse3_pmaddubsw128): Ditto.
27163         (ssse3_pmaddubsw): Ditto.
27164
27165 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
27166
27167         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
27168
27169 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
27170
27171         PR c/47963
27172         * gimplify.c (omp_add_variable): Only call omp_notice_variable
27173         on TYPE_SIZE_UNIT if it is a DECL.
27174
27175         PR debug/47283
27176         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
27177         first operand is not is_gimple_mem_ref_addr, try to fold it.
27178         If the operand still isn't is_gimple_mem_ref_addr, clear
27179         MEM_EXPR on op0.
27180
27181 2011-03-03  Richard Guenther  <rguenther@suse.de>
27182
27183         PR middle-end/47283
27184         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
27185         match comment.
27186         (refs_may_alias_p_1): For release branches return true if
27187         we are confused by our input.
27188
27189 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27190
27191         * config/s390/s390.c (s390_function_value): Rename to ...
27192         (s390_function_and_libcall_value): ... this.
27193         (s390_function_value): New function.
27194         (s390_libcall_value): New function.
27195         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
27196         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
27197         target macro definitions.
27198         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
27199
27200 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
27201
27202         * config/i386/freebsd64.h (CC1_SPEC): Define.
27203         * config/i386/linux64.h (CC1_SPEC): Define.
27204         * config/i386/x86-64.h (CC1_SPEC): Don't define.
27205
27206 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
27207
27208         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
27209         Remove.
27210         * config/stormy16/stormy16.c: Include reload.h.
27211         (xstormy16_memory_move_cost): New function.
27212         (TARGET_MEMORY_MOVE_COST): Define.
27213
27214 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
27215
27216         PR rtl-optimization/47925
27217         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
27218         with side effects.  Remove the more-specific check for volatile asms.
27219
27220 2011-03-02  Alan Modra  <amodra@gmail.com>
27221
27222         PR target/47935
27223         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
27224         toc relative addresses for valid offsets.
27225
27226 2011-03-01  Richard Guenther  <rguenther@suse.de>
27227
27228         PR tree-optimization/47890
27229         * tree-vect-loop.c (get_initial_def_for_induction): Set
27230         related stmt properly.
27231
27232 2011-03-01  Richard Guenther  <rguenther@suse.de>
27233
27234         PR lto/47924
27235         * lto-streamer.c (lto_record_common_node): Also register
27236         the canonical type.
27237
27238 2011-03-01  Richard Guenther  <rguenther@suse.de>
27239
27240         PR lto/46911
27241         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
27242         Do not stream DECL_ABSTRACT_ORIGIN.
27243         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
27244         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
27245         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
27246         Do not stream DECL_ABSTRACT_ORIGIN.
27247         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
27248         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
27249
27250 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
27251
27252         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
27253         FUNCTION_VALUE_REGNO_P): Remove.
27254         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
27255         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
27256         Add 'outgoing' argument.
27257         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
27258         function.
27259         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27260         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27261
27262 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
27263
27264         PR debug/28047
27265         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
27266         (lookup_filename): Likewise.
27267         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
27268
27269 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
27270             Jakub Jelinek  <jakub@redhat.com>
27271
27272         PR middle-end/47893
27273         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
27274         (assign_stack_local_1): Change last argument type to int.
27275         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
27276         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
27277         don't record padding space into frame_space_list nor use those areas.
27278         (assign_stack_local): Adjust caller.
27279         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
27280         of assign_stack_local, pass 0 as last argument.
27281         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
27282         callers.
27283
27284 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
27285
27286         PR debug/47283
27287         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
27288         Use target address_mode and pointer_mode hooks instead of hardcoded
27289         Pmode and ptr_mode.  Handle some simple cases of extending if
27290         POINTERS_EXTEND_UNSIGNED < 0.
27291         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
27292         Call convert_debug_memory_address.
27293         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
27294         convert_debug_memory_address.
27295
27296         PR middle-end/46790
27297         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
27298         * configure: Regenerated.
27299         * config.in: Regenerated.
27300         * varasm.c (default_function_section): Return NULL
27301         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
27302
27303 2011-02-28  Martin Jambor  <mjambor@suse.cz>
27304
27305         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
27306         the description to match the printed values.
27307
27308 2011-02-28  Richard Guenther  <rguenther@suse.de>
27309
27310         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
27311         of the copied scope tree.
27312
27313 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27314
27315         * doc/extend.texi (Function Attributes): Avoid deeply (and
27316         wrongly) nested tables.
27317
27318 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
27319
27320         PR middle-end/47903
27321         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
27322         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
27323         r isn't op0 nor op1.
27324
27325 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
27326
27327         * config/avr/avr.md: Remove magic comment for emacs.
27328
27329 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
27330
27331         PR target/45261
27332         * config/avr/avr.c (avr_option_override): Use error on bad options.
27333         (avr_help): New function.
27334         (TARGET_HELP): Define.
27335
27336 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
27337
27338         PR target/42240
27339         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
27340         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
27341
27342 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
27343
27344         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
27345         (ARM Options): Ditto.
27346         (i386 and x86-64 Options): Ditto.
27347         (RX Options): Ditto.
27348         (SPARC Options): Ditto.
27349
27350 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
27351
27352         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
27353         FreeBSD 6 and later.  Generally use cpu generic.
27354
27355 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
27356
27357         * doc/cpp.texi: Update copyright years.
27358
27359 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
27360
27361         PR target/46898
27362         * config/lm32/lm32.md (ashrsi3): Added needed variable.
27363
27364 2011-02-25  Jon Beniston  <jon@beniston.com>
27365
27366         PR target/46898
27367         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
27368         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
27369         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
27370         (lm32_block_move_inline): Add type cast to remove warning.
27371         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
27372         (gen_int_relational): Move declarations to start of function.
27373
27374 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
27375
27376         PR tree-optimization/45470
27377         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
27378         can throw internally only.
27379         * tree-vect-stmts.c (vectorizable_call): Likewise.
27380
27381 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
27382
27383         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
27384         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
27385         * config/stormy16/stormy16-protos.h
27386         (xstormy16_preferred_reload_class): Remove.
27387         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
27388         static. Change 'rclass' argument and return type to reg_class_t.
27389         (TARGET_PREFERRED_RELOAD_CLASS,
27390         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
27391
27392 2011-02-24  Richard Guenther  <rguenther@suse.de>
27393
27394         * lto-streamer-in.c (input_bb): Do not find referenced vars
27395         in debug statements.
27396
27397 2011-02-23  Jason Merrill  <jason@redhat.com>
27398
27399         * common.opt (fabi-version): Document v5 and v6.
27400
27401 2011-02-23  Richard Guenther  <rguenther@suse.de>
27402
27403         PR tree-optimization/47849
27404         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
27405
27406 2011-02-23  Jie Zhang  <jie@codesourcery.com>
27407
27408         * opts-common.c (decode_cmdline_option): Print empty string
27409         argument as "" in decoded->orig_option_with_args_text.
27410         * gcc.c (execute): Print empty string argument as ""
27411         in the verbose output.
27412         (do_spec_1): Keep empty string argument.
27413
27414 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
27415
27416         * config.gcc: Declare score-* and crx-* obsolete.
27417
27418 2011-02-23  Jie Zhang  <jie@codesourcery.com>
27419
27420         PR rtl-optimization/47763
27421         * web.c (web_main): Ignore naked clobber when replacing register.
27422
27423 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
27424
27425         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
27426         Remove.
27427
27428 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
27429
27430         PR doc/47848
27431         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
27432
27433 2011-02-22  Mike Stump  <mikestump@comcast.net>
27434
27435         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
27436         assembler.
27437         * configure: Regenerate.
27438
27439 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
27440
27441         PR rtl-optimization/46002
27442         * ira-color.c (update_copy_costs): Change class intersection
27443         test to reg_class_contents[] test of 'hard_regno'.
27444
27445 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
27446
27447         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
27448         than Driver option.
27449         * config/hpux11.opt (mt): Likewise.
27450         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
27451         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
27452         * config/vax/elf.opt (mno-asm-pic): Likewise.
27453         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
27454
27455 2011-02-21  Mike Stump  <mikestump@comcast.net>
27456
27457         PR target/47822
27458         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
27459         tree so we can get save the type.
27460         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
27461         for CFString instead of trying to use past the end of the builtins.
27462         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
27463         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
27464         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
27465         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
27466         Rename to darwin_builtin_cfstring.
27467         (darwin_init_cfstring_builtins): Return the built type.
27468
27469 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
27470
27471         PR target/47840
27472         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
27473         (_mm256_insert_epi64): Use _mm_insert_epi64.
27474
27475 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
27476
27477         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27478         * config/stormy16/stormy16-protos.h
27479         (xstormy16_mode_dependent_address_p): Remove.
27480         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
27481         Make static. Change return type to bool. Change argument type to
27482         const_rtx. Remove dead code.
27483         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27484
27485 2011-02-21  Richard Guenther  <rguenther@suse.de>
27486
27487         PR lto/47820
27488         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
27489         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
27490         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
27491         TUs context.
27492         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
27493         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
27494
27495 2011-02-20  Richard Guenther  <rguenther@suse.de>
27496
27497         PR lto/47822
27498         * tree.c (free_lang_data_in_decl): Clean builtins from
27499         the TU decl BLOCK_VARS.
27500
27501 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
27502
27503         PR debug/47620
27504         PR debug/47630
27505         * haifa-sched.c (fix_tick_ready): Skip tick computation
27506         for debug insns.
27507
27508 2011-02-19  Richard Guenther  <rguenther@suse.de>
27509
27510         PR lto/47647
27511         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
27512         Remove lazy BLOCK_VARS streaming.
27513         (lto_input_ts_block_tree_pointers): Likewise.
27514         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
27515
27516 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
27517
27518         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
27519
27520 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
27521
27522         * config/i386/biarch32.h, config/i386/mach.h,
27523         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
27524
27525 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
27526
27527         PR target/47800
27528         * config/i386/i386.md (peephole2 for shift and plus): Use
27529         operands[1] original mode in the first insn.
27530
27531 2011-02-18  Mike Stump  <mikestump@comcast.net>
27532
27533         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
27534
27535 2011-02-18  Jan Hubicka  <jh@suse.cz>
27536
27537         PR middle-end/47788
27538         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
27539         to zero when the function is not inlinable at all.
27540
27541 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27542
27543         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
27544         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
27545         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
27546         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
27547         * config/pa/t-pa64: Likewise.
27548         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
27549
27550 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
27551
27552         PR driver/47787
27553         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
27554
27555 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27556
27557         PR target/47792
27558         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
27559
27560 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
27561
27562         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
27563         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
27564         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
27565         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
27566         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
27567         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
27568         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
27569         m32r_load_postinc_p, m32r_store_preinc_predec_p,
27570         m32r_legitimate_address_p): New functions.
27571         * config/m32r/constraints.md (constraint "S"): Don't use
27572         STORE_PREINC_PREDEC_P.
27573         (constraint "U"): Don't use LOAD_POSTINC_P.
27574
27575 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
27576
27577         PR rtl-optimization/46178
27578         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
27579         compute ira_hard_regno_cover_class[].
27580
27581 2011-02-18  Richard Guenther  <rguenther@suse.de>
27582
27583         PR lto/47798
27584         * lto-streamer.h (lto_global_var_decls): Declare.
27585         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
27586         statics for global var processing.
27587
27588 2011-02-18  Richard Guenther  <rguenther@suse.de>
27589
27590         PR tree-optimization/47737
27591         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
27592         edge dominance check.
27593
27594 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
27595
27596         PR debug/47780
27597         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
27598         avoid invalid rtx sharing.
27599
27600 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
27601
27602         * doc/cpp.texi (Obsolete Features): Add background on the
27603         origin of assertions.
27604
27605 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
27606
27607         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
27608         objc_abi == 2.
27609         * config/darwin.c (output_objc_section_asm_op): Added support for
27610         ABI v1 and v2.
27611         (is_objc_metadata): New.
27612         (darwin_objc2_section): New.
27613         (darwin_objc1_section): New.
27614         (machopic_select_section): Added support for ABI v1 and v2.
27615         (darwin_emit_objc_zeroed): New.
27616         (darwin_output_aligned_bss): Detect objc metadata and treat it
27617         appropriately.
27618         (darwin_asm_output_aligned_decl_common): Same.
27619         (darwin_asm_output_aligned_decl_local): Same.
27620         * config/darwin-sections.def: Updated for ABI v1 and v2.
27621         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
27622         compiling Objective-C code for the NeXT runtime, default to using
27623         ABI version 0 for 32-bit, and version 2 for 64-bit.
27624
27625 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27626
27627         * common.opt (optimize_fast): New Variable.
27628         * opts.c (default_options_optimization): Use opts->x_optimize_fast
27629         instead of local variable ofast.
27630
27631 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
27632
27633         * doc/invoke.texi (fobjc-abi-version): Documented.
27634         (fobjc-nilcheck): Documented.
27635         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
27636         version.
27637
27638 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27639
27640         PR driver/47390
27641         * common.opt (export-dynamic): New Driver option.
27642         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
27643
27644 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27645
27646         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
27647
27648 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
27649             Jan Hubicka  <jh@suse.cz>
27650
27651         PR debug/47106
27652         PR debug/47402
27653         * cfgexpand.c (account_used_vars_for_block): Remove.
27654         (estimated_stack_frame_size): Use referenced vars.
27655         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
27656         that were referenced in the original function.  Test src_fn
27657         rather than cfun.  Drop redundant get_var_ann.
27658         (setup_one_parameter): Drop redundant get_var_ann.
27659         (declare_return_variable): Likewise.
27660         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
27661         (copy_arguments_for_versioning): Drop redundant get_var_ann.
27662         * ipa-inline.c (compute_inline_parameters): Do not compute
27663         disregard_inline_limits here.
27664         (compute_inlinable_for_current, pass_inlinable): New.
27665         (pass_inline_parameters): Require PROP_referenced_vars.
27666         * cgraphunit.c (cgraph_process_new_functions): Don't run
27667         compute_inline_parameters explicitly unless function is in SSA form.
27668         (cgraph_analyze_function): Set .disregard_inline_limits.
27669         * tree-sra.c (convert_callers): Compute inliner parameters
27670         only for functions already in SSA form.
27671
27672 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27673
27674         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
27675         -mlittle-endian-data.
27676
27677 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27678
27679         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
27680         -mno-fpu, not -fpu and -no-fpu.
27681         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
27682         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
27683
27684 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
27685
27686         PR target/43653
27687         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
27688         input reload with PLUS RTX.
27689
27690 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27691
27692         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
27693         of InverseVar(MDMX).
27694
27695 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27696
27697         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
27698         --m4-340.
27699
27700 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27701
27702         * config/mn10300/mn10300.opt (mno-crt0): New.
27703
27704 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27705
27706         * config/m68k/uclinux.opt (static-libc): New Driver option.
27707
27708 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27709
27710         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
27711
27712 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27713
27714         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
27715         %{muser-extend-enabled}.
27716
27717 2011-02-16  Richard Guenther  <rguenther@suse.de>
27718
27719         PR tree-optimization/47738
27720         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
27721         the TODO from tree_predictive_commoning.
27722
27723 2011-02-15  Jeff Law  <law@redhat.com>
27724
27725         Revert
27726         2011-01-25  Jeff Law  <law@redhat.com>
27727
27728         PR rtl-optimization/37273
27729         * ira-costs.c (scan_one_insn): Detect constants living in memory and
27730         handle them like argument loads from stack slots.  Do not double
27731         count memory for memory constants and argument loads from stack slots.
27732
27733 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
27734
27735         PR target/47755
27736         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
27737         mode for vector constants.  Remove code that checks for TImode.
27738
27739 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27740
27741         PR debug/47106
27742         PR debug/47402
27743         * cgraph.h (compute_inline_parameters): Return void.
27744         * ipa-inline.c (compute_inline_parameters): Adjust.
27745
27746 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27747
27748         PR debug/47106
27749         PR debug/47402
27750         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
27751         rather than decl.
27752         * cfgexpand.c (estimated_stack_frame_size): Likewise.
27753         * ipa-inline.c (compute_inline_parameters): Adjust.
27754
27755 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27756
27757         PR debug/47106
27758         PR debug/47402
27759         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
27760         Adjust all users.  Pass FN to...
27761         * tree-flow-inline.h (first_referenced_var): ... this.  Add
27762         fn argument.
27763         * ipa-struct-reorg.c: Adjust.
27764         * tree-dfa.c: Adjust.
27765         * tree-into-ssa.c: Adjust.
27766         * tree-sra.c: Adjust.
27767         * tree-ssa-alias.c: Adjust.
27768         * tree-ssa-live.c: Adjust.
27769         * tree-ssa.c: Adjust.
27770         * tree-ssanames.c: Adjust.
27771         * tree-tailcall.c: Adjust.
27772
27773 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27774
27775         PR debug/47106
27776         PR debug/47402
27777         * tree-flow.h (referenced_var_lookup): Add fn parameter.
27778         Adjust all callers.
27779         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
27780         * tree-flow-inline.h: Adjust.
27781         * gimple-pretty-print.c: Adjust.
27782         * tree-into-ssa.c: Adjust.
27783         * tree-ssa.c: Adjust.
27784         * cfgexpand.c: Adjust.
27785
27786 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
27787
27788         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
27789         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27790         (EXTRA_CONSTRAINT): Delete.
27791         * config/iq2000/constraints.md: New file.
27792         * config/iq2000/iq2000.md: Include it.
27793         (define_insn ""): Delete.
27794         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
27795         unsupported constraint letters from patterns.
27796         (call_value, call_value_internal1): Likewise.
27797         (call_value_multiple_internal1): Likewise.
27798
27799 2011-02-15  Nick Clifton  <nickc@redhat.com>
27800
27801         * config/mn10300/mn10300.c: Include tm-constrs.h.
27802         (struct liw_data): New data structure describing an LIW candidate
27803         instruction.
27804         (extract_bundle): Use struct liw_data.  Allow small integer
27805         operands for some instructions.
27806         (check_liw_constraints): Use struct liw_data.  Remove swapped
27807         parameter.  Add comments describing the checks.  Fix bug when
27808         assigning the source of liw1 to the source of liw2.
27809         (liw_candidate): Delete.  Code moved into extract_bundle.
27810         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
27811         before swapping.
27812         * config/mn10300/predicates.md (liw_operand): New predicate.
27813         Allows registers and small integer constants.
27814         * config/mn10300/constraints.md (O): New constraint.  Accetps
27815         integers in the range -8 to +7 inclusive.
27816         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
27817         for moving a small integer into a register.  Give this alternative
27818         LIW attributes.
27819         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
27820         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
27821         using the J,K,L and M constraints,
27822         (liw): Remove SI mode on second operands to allow for HI and QI
27823         mode values.
27824         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
27825         instruction.
27826
27827 2011-02-15  Richard Guenther  <rguenther@suse.de>
27828
27829         PR tree-optimization/47743
27830         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
27831         for a non-type-compatible VN lookup bail out.
27832
27833 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
27834
27835         * config/fr30/constraints.md: New file.
27836         * config/fr30/fr30.md: Include it.
27837         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
27838         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27839         (EXTRA_CONSTRAINT): Delete.
27840
27841 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
27842
27843         * config/frv/constraints.md: New file.
27844         * config/frv/predicates.md: Include it.
27845         * config/frv/frv.c (reg_class_from_letter): Delete.
27846         (frv_option_override): Don't initialize it.
27847         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
27848         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
27849         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
27850         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
27851         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
27852         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27853         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
27854         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
27855         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
27856         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
27857         (REG_CLASS_FROM_CONSTRAINT): Delete.
27858
27859 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
27860
27861         PR middle-end/47581
27862         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
27863         if frame size is 0 in a leaf function.
27864
27865 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27866
27867         PR pch/14940
27868         * config/alpha/host-osf.c: New file.
27869         * config/alpha/x-osf: New file.
27870         * config.host (alpha*-dec-osf*): Use it.
27871
27872 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
27873
27874         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27875         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
27876         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
27877         (rx_mode_dependent_address_p): ...this. Make static. Change argument
27878         type to const_rtx.
27879         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27880
27881 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27882
27883         * config/stormy16/constraints.md: New file.
27884         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
27885         Use satisfies_constraint_Q and satisfies_constraint_R.
27886         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
27887         Delete.
27888         (xstormy16_legitiamte_address_p): Declare.
27889         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
27890         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27891         (EXTRA_CONSTRAINT): Delete.
27892         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
27893         Un-staticize.
27894         (xstormy16_extra_constraint_p): Delete.
27895
27896 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
27897
27898         PR tree-optimization/46494
27899         * loop-unroll.c (split_edge_and_insert): Adjust comment.
27900         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
27901         (pass_rtl_loop_done): Add TODO_verify_flow.
27902         * fwprop.c (pass_rtl_fwprop): Likewise.
27903         * modulo-sched.c (pass_sms): Likewise.
27904         * tree-ssa-dom.c (pass_dominator): Likewise.
27905         * tree-ssa-loop-ch.c (pass_ch): Likewise.
27906         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
27907         (pass_tree_loop_done): Likewise.
27908         * tree-ssa-pre.c (execute_pre): Likewise.
27909         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
27910         * tree-ssa-sink.c (pass_sink_code): Likewise.
27911         * tree-vrp.c (pass_vrp): Likewise.
27912
27913 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27914
27915         * config/v850/constraints.md: New file.
27916         * config/v850/v850.md: Include it.
27917         * config/v850/predicates.md (reg_or_0_operand): Use
27918         satisfies_constraint_G.
27919         (special_symbolref_operand): Use satisfies_constraint_K.
27920         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
27921         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
27922         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
27923         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
27924         (EXTRA_CONSTRAINT): Delete.
27925         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
27926         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
27927         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
27928
27929 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
27930
27931         PR target/47696
27932         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
27933         description.
27934
27935 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27936
27937         * config/mcore/constraints.md: New file.
27938         * config/mcore/mcore.md: Include it.
27939         * config/mcore/mcore.c (reg_class_from_letter): Delete.
27940         * config/mcore/mcore.h (reg_class_from_letter): Delete.
27941         (REG_CLASS_FROM_LETTER): Delete.
27942         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
27943         insn_const_int_ok_for_constraint.
27944         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
27945         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
27946         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27947         (EXTRA_CONSTRAINT): Delete.
27948
27949 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27950
27951         PR ada/41929
27952         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
27953         (IS_SIGHANDLER): Define.
27954         (sparc64_is_sighandler): New function, split off from
27955         sparc64_fallback_frame_state.
27956         (sparc_is_sighandler): New function, split off from
27957         sparc_fallback_frame_state.
27958         (sparc64_fallback_frame_state): Merge with ...
27959         (sparc_fallback_frame_state): ... this into ...
27960         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
27961         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
27962         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
27963         stack instead of hardcoded offsets.
27964
27965 2011-02-14  Andriy Gapon  <avg@freebsd.org>
27966
27967         PR target/45808
27968         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
27969
27970 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27971
27972         * configure: Regenerate.
27973
27974 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
27975
27976         PR driver/45731
27977         * gcc.c (asm_options): Correct spec matching --target-help.
27978
27979 2011-02-12  Martin Jambor  <mjambor@suse.cz>
27980
27981         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
27982         to gimple call error.
27983
27984 2011-02-12  Mike Stump  <mikestump@comcast.net>
27985
27986         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
27987         comments in backslash regions.
27988
27989 2011-02-12  Mike Stump  <mikestump@comcast.net>
27990             Jakub Jelinek  <jakub@redhat.com>
27991             Iain Sandoe  <iains@gcc.gnu.org>
27992
27993         PR target/47324
27994         * dwarf2out.c (output_cfa_loc): When required, apply the
27995         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
27996         (output_loc_sequence): Likewise.
27997         (output_loc_operands_raw): Likewise.
27998         (output_loc_sequence_raw): Likewise.
27999         (output_cfa_loc): Likewise.
28000         (output_loc_list): Suppress register number adjustment when
28001         calling output_loc_sequence()
28002         (output_die): Likewise.
28003
28004 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
28005
28006         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
28007         Remove macros.
28008         * config/xtensa/xtensa.c (xtensa_register_move_cost,
28009         xtensa_memory_move_cost): New functions.
28010         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
28011
28012 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
28013
28014         PR lto/47225
28015         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
28016         in the current directory.
28017         * configure: Rebuilt.
28018
28019 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
28020
28021         * config/darwin.c (darwin_override_options): Add a hunk missed
28022         from the commit of r168571.  Trim comment line lengths and
28023         correct indents of the preceding block.
28024
28025 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
28026
28027         * gcc.c (driver_handle_option): Concatenate the argument to -F with
28028         the switch.
28029
28030 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
28031
28032         * common.opt (nostartfiles): New Driver option.
28033
28034 2011-02-11  Xinliang David Li  <davidxl@google.com>
28035
28036         PR tree-optimization/47707
28037         * tree-chrec.c (convert_affine_scev): Keep type precision.
28038
28039 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
28040
28041         PR tree-optimization/47420
28042         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
28043
28044 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
28045
28046         PR rtl-optimization/47614
28047         * rtl.h (check_for_inc_dec): Declare.
28048         * dse.c (check_for_inc_dec): Externalize...
28049         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
28050         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
28051
28052 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
28053
28054         PR driver/47678
28055         * gcc.c (main): Do not compile inputs if there were errors in
28056         option handling.
28057         * opts-common.c (read_cmdline_option): Check for wrong language
28058         after other error checks.
28059
28060 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
28061
28062         * cgraph.c: Fix comment typos.
28063         * cgraph.h: Likewise.
28064         * cgraphunit.c: Likewise.
28065         * ipa-cp.c: Likewise.
28066         * ipa-inline.c: Likewise.
28067         * ipa-prop.c: Likewise.
28068         * ipa-pure-const.c: Likewise.
28069         * ipa-ref.c: Likewise.
28070         * ipa-reference.c: Likewise.
28071
28072 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
28073
28074         PR debug/47684
28075         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
28076
28077 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28078
28079         PR testsuite/47400
28080         * doc/sourcebuild.texi (Require Support): Document
28081         dg-require-ascii-locale.
28082
28083 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
28084
28085         * doc/lto.texi (Write summary): Fix missing parentheses.
28086
28087 2011-02-10  DJ Delorie  <dj@redhat.com>
28088
28089         * config/m32c/m32c.c (m32c_option_override): Disable
28090         -fcombine-stack-adjustments until flag value tracking and compare
28091         optimization can be rewritten.
28092
28093 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
28094
28095         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
28096         PROCESSOR_POWER7.
28097         (PROCESSOR_DEFAULT64): Likewise.
28098
28099 2011-02-10  Richard Henderson  <rth@redhat.com>
28100
28101         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
28102         change from 2011-02-03.
28103         * config/rx/rx.c (flags_from_code): Likewise.
28104         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
28105         is valid, n/pz otherwise.
28106         (rx_select_cc_mode): Return CCmode if Y is not zero.
28107
28108 2011-02-10  Richard Guenther  <rguenther@suse.de>
28109
28110         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
28111
28112 2011-02-10  Richard Guenther  <rguenther@suse.de>
28113
28114         PR tree-optimization/47677
28115         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
28116
28117 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
28118
28119         PR target/47665
28120         * combine.c (make_compound_operation): Only change shifts into
28121         multiplication for SCALAR_INT_MODE_P.
28122
28123 2011-02-10  Jie Zhang  <jie@codesourcery.com>
28124
28125         PR testsuite/47622
28126         Revert
28127         2011-02-05  Jie Zhang  <jie@codesourcery.com>
28128         PR debug/42631
28129         * web.c (entry_register): Don't clobber the number of the
28130         first uninitialized reference in used[].
28131
28132 2011-02-09  Richard Guenther  <rguenther@suse.de>
28133
28134         PR tree-optimization/47664
28135         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
28136         all edges again.
28137
28138 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
28139
28140         PR target/46481
28141         PR target/47032
28142         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
28143         PROCESSOR_POWER7.
28144         (PROCESSOR_DEFAULT64): Same.
28145         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
28146
28147 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28148
28149         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
28150
28151 2011-02-09  Martin Jambor  <mjambor@suse.cz>
28152
28153         PR middle-end/45505
28154         * tree-sra.c (struct access): New flags grp_scalar_read and
28155         grp_scalar_write.  Changed description of assignment read and write
28156         flags.
28157         (dump_access): Dump new flags, reorder all of them.
28158         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
28159         to detect multiple scalar reads.
28160         (analyze_access_subtree): Use the new scalar read write flags instead
28161         of the old flags.  Adjusted comments.
28162
28163 2011-02-08  DJ Delorie  <dj@redhat.com>
28164
28165         PR target/47548
28166         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
28167         patterns.
28168
28169 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
28170
28171         * config/m68k/uclinux.opt: New.
28172         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
28173
28174 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
28175
28176         * config/cris/elf.opt (sim): New Driver option.
28177
28178 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
28179
28180         * config/xtensa/elf.opt: New.
28181         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
28182
28183 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
28184
28185         * config/vax/elf.opt: New.
28186         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
28187
28188 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
28189
28190         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
28191
28192 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
28193
28194         * config/gnu-user.opt: New.
28195         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
28196         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
28197         *-*-uclinux*): Use gnu-user.opt.
28198
28199 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
28200
28201         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
28202         * config/i386/gnu.h (CPP_SPEC): Likewise.
28203
28204 2011-02-08  Ian Lance Taylor  <iant@google.com>
28205
28206         * common.opt (fcx-limited-range): Add SetByCombined flag.
28207         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
28208         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
28209         (fassociative-math, freciprocal-math): Likewise.
28210         (funsafe-math-optimizations): Likewise.
28211         * opth-gen.awk: Handle SetByCombined.
28212         * optc-gen.awk: Likewise.
28213         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
28214         (set_unsafe_math_optimizations_flags): Likewise.
28215         * doc/options.texi (Option properties): Document SetByCombined.
28216
28217 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
28218
28219         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
28220         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
28221         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
28222         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
28223         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
28224
28225 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
28226
28227         PR tree-optimization/46834
28228         PR tree-optimization/46994
28229         PR tree-optimization/46995
28230         * graphite-sese-to-poly.c (used_outside_reduction): New.
28231         (detect_commutative_reduction): Call used_outside_reduction.
28232         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
28233         translate_scalar_reduction_to_array only when at least one
28234         loop-phi/close-phi tuple has been detected.
28235
28236 2011-02-08  Richard Guenther  <rguenther@suse.de>
28237
28238         PR middle-end/47639
28239         * tree-vect-generic.c (expand_vector_operations_1): Update
28240         stmts here ...
28241         (expand_vector_operations): ... not here.  Cleanup EH info
28242         and the CFG if required.
28243
28244 2011-02-08  Richard Guenther  <rguenther@suse.de>
28245
28246         PR tree-optimization/47641
28247         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
28248         require type compatibility.
28249
28250 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28251
28252         * gimple-low.c (lower_function_body): Don't remove the location of
28253         the return statement here.
28254         (lower_gimple_return): Do it here instead but only if the return
28255         statement is actually used twice.
28256
28257 2011-02-08  Richard Guenther  <rguenther@suse.de>
28258
28259         PR tree-optimization/47632
28260         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
28261         unused up_to_stmt parameter, return whether cfg-cleanup is
28262         necessary, remove EH info properly.
28263         (forward_propagate_into_gimple_cond): Adjust caller.
28264         (forward_propagate_into_cond): Likewise.
28265         (forward_propagate_comparison): Likewise.
28266         (tree_ssa_forward_propagate_single_use_vars): Make
28267         forward_propagate_comparison case similar to the two others.
28268
28269 2011-02-08  Nick Clifton  <nickc@redhat.com>
28270
28271         * config/mn10300/mn10300.opt (mliw): New command line option.
28272         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
28273         (liw_bundling): New automaton.
28274         (liw): New attribute.
28275         (liw_op): New attribute.
28276         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
28277         (movsi_internal): Add LIW attributes.
28278         (andsi3): Likewise.
28279         (iorsi3): Likewise.
28280         (xorsi3): Likewise.
28281         (addsi3): Separate register and immediate alternatives.
28282         Add LIW attributes.
28283         (subsi3): Likewise.
28284         (cmpsi): Likewise.
28285         (aslsi3): Likewise.
28286         (lshrsi3): Likewise.
28287         (ashrsi3): Likewise.
28288         (liw): New pattern.
28289         * config/mn10300/mn10300.c (liw_op_names): New
28290         (mn10300_print_operand): Handle 'W' operand descriptor.
28291         (extract_bundle): New function.
28292         (check_liw_constraints): New function.
28293         (liw_candidate): New function.
28294         (mn10300_bundle_liw): New function.
28295         (mn10300_reorg): New function.
28296         (TARGET_MACHINE_DEPENDENT_REORG): Define.
28297         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
28298         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
28299         __LIW__ or __NO_LIW__.
28300         * doc/invoke.texi: Describe the -mliw command line option.
28301
28302 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28303
28304         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
28305         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
28306         pthread_mutex_unlock): Remove.
28307         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
28308         * config/pa/t-pa64: Likewise.
28309         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
28310         shared libc if not linking against libpthread.
28311         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
28312
28313 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
28314
28315         PR target/47558
28316         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
28317         on 10.6 and later to ensure that we always use the unwinder from
28318         the system.  Only add -no_compact_unwind when tarteting darwin
28319         10.6 or later.
28320
28321 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
28322
28323         PR target/46997
28324         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
28325         (vec_interleave_lowv2sf): Ditto.
28326         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
28327         (vec_extract_oddv2sf): Ditto.
28328
28329 2011-02-07  Mike Stump  <mikestump@comcast.net>
28330
28331         PR target/42333
28332         Add __ieee_divdc3 entry point.
28333         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
28334         entry point.
28335         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
28336         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
28337         * config/darwin.c (darwin_rename_builtins): Add.
28338         * config/darwin-protos.h (darwin_rename_builtins): Add.
28339
28340 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
28341
28342         PR target/47636
28343         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
28344         for the condition.
28345
28346 2011-02-07  Mike Stump  <mikestump@comcast.net>
28347
28348         * config/darwin.opt (mmacosx-version-min): Update default OS version.
28349
28350 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
28351
28352         PR target/47534
28353         * config/avr/libgcc.S (exit): Move .endfunc
28354
28355 2011-02-07  Richard Guenther  <rguenther@suse.de>
28356
28357         PR tree-optimization/47615
28358         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
28359         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
28360         (run_scc_vn): Initialize it.
28361         (visit_reference_op_load): Use it.
28362         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
28363
28364 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28365
28366         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
28367         DImode trapping arithmetic libfuncs.
28368
28369 2011-02-07  Richard Guenther  <rguenther@suse.de>
28370
28371         PR tree-optimization/47621
28372         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
28373         two duplicates ...
28374         (execute_update_addresses_taken): ... here.  Make it more
28375         conservative in what we accept.
28376
28377 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
28378
28379         * config/sparc/freebsd.h (ASM_SPEC): Define.
28380         * config/sparc/vxworks.h (ASM_SPEC): Define.
28381
28382 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
28383
28384         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
28385
28386 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
28387
28388         * doc/invoke.texi: Remove reference to compiler internals from
28389         user documentation.
28390
28391         * reg-notes.def: Remove REG_VALUE_PROFILE.
28392         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
28393
28394 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
28395
28396         PR middle-end/47610
28397         * varasm.c (default_section_type_flags): If decl is NULL,
28398         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
28399
28400 2011-02-05  Jie Zhang  <jie@codesourcery.com>
28401
28402         PR debug/42631
28403         * web.c (entry_register): Don't clobber the number of the
28404         first uninitialized reference in used[].
28405
28406 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
28407
28408         PR tree-optimization/46194
28409         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
28410         (build_classic_dist_vector_1): Do not represent classic distance
28411         vectors when the access functions are variating in different loops.
28412
28413 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
28414
28415         * config/mips/iris6.opt: New.
28416         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
28417
28418 2011-02-04  Richard Henderson  <rth@redhat.com>
28419             Steve Ellcey  <sje@cup.hp.com>
28420
28421         PR target/46997
28422         * config/ia64/predicates.md (mux1_brcst_element): New.
28423         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
28424         * config/ia64/ia64.c (ia64_unpack_assemble): New.
28425         (ia64_unpack_sign): New.
28426         (ia64_expand_unpack): Rewrite using new routines.
28427         (ia64_expand_widen_sum): Ditto.
28428         (ia64_expand_dot_prod_v8qi): Ditto.
28429         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
28430         routines, add endian check.
28431         (pmpy2_even): Rename from pmpy2_r, add endian check.
28432         (pmpy2_odd): Rename from pmpy2_l, add endian check.
28433         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
28434         (vec_widen_smult_hi_v4hi): Ditto.
28435         (vec_widen_umult_lo_v4hi): Ditto.
28436         (vec_widen_umult_hi_v4hi): Ditto.
28437         (mulv2si3): Change endian checks.
28438         (sdot_prodv4hi): Rewrite with new calls.
28439         (udot_prodv4hi): New.
28440         (vec_pack_ssat_v4hi): Add endian check.
28441         (vec_pack_usat_v4hi): Ditto.
28442         (vec_pack_ssat_v2si): Ditto.
28443         (max1_even): Rename from max1_r, add endian check.
28444         (max1_odd): Rename from max1_l, add endian check.
28445         (*mux1_rev): Format change.
28446         (*mux1_mix): Ditto.
28447         (*mux1_shuf): Ditto.
28448         (*mux1_alt): Ditto.
28449         (*mux1_brcst_v8qi): Use new predicate.
28450         (vec_extract_evenv8qi): Remove endian check.
28451         (vec_extract_oddv8qi): Ditto.
28452         (vec_interleave_lowv4hi): Format change.
28453         (vec_interleave_highv4hi): Ditto.
28454         (mix2_even): Rename from mix2_r, add endian check.
28455         (mix2_odd): Rename from mux2_l, add endian check.
28456         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
28457         (vec_extract_evenodd_helper): Format change.
28458         (vec_extract_evenv4hi): Remove endian check.
28459         (vec_extract_oddv4hi): Remove endian check.
28460         (vec_interleave_lowv2si): Format change.
28461         (vec_interleave_highv2si): Format change.
28462         (vec_initv2si): Remove endian check.
28463         (vecinit_v2si): Add endian check.
28464         (reduc_splus_v2sf): Add endian check.
28465         (reduc_smax_v2sf): Ditto.
28466         (reduc_smin_v2sf): Ditto.
28467         (vec_initv2sf): Remove endian check.
28468         (fpack): Add endian check.
28469         (fswap): Add endian check.
28470         (vec_interleave_highv2sf): Add endian check.
28471         (vec_interleave_lowv2sf): Add endian check.
28472         (fmix_lr): Add endian check.
28473         (vec_setv2sf): Format change.
28474         (*vec_extractv2sf_0_be): Use shift to extract operand.
28475         (*vec_extractv2sf_1_be): New.
28476         (vec_pack_trunc_v4hi): Add endian check.
28477         (vec_pack_trunc_v2si): Format change.
28478
28479 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
28480
28481         PR inline-asm/23200
28482         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
28483         do bb, locus and block comparison and disallow loads if it is not set.
28484         (stmt_is_replaceable_p): New function.
28485         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
28486         callers.
28487         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
28488         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
28489         SSA_NAME_DEF_STMT.
28490         * tree-flow.h (stmt_is_replaceable_p): New prototype.
28491
28492 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
28493
28494         * config/rs6000/xilinx.opt: New.
28495         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
28496
28497 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
28498
28499         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
28500
28501 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
28502
28503         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
28504         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
28505         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
28506         secondary_reload_info, xtensa_secondary_reload): Remove.
28507         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
28508         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
28509         (xtensa_preferred_reload_class): Make static. Change return and
28510         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
28511         Use CONST_DOUBLE_P predicate.
28512         (xtensa_preferred_output_reload_class): New function.
28513         (xtensa_secondary_reload): Make static.
28514
28515 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
28516
28517         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
28518         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
28519         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
28520
28521 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
28522
28523         PR middle-end/31490
28524         * output.h (SECTION_RELRO): Define.
28525         (SECTION_MACH_DEP): Adjust.
28526         (get_variable_section): New prototype.
28527         * varpool.c (varpool_finalize_named_section_flags): New function.
28528         (varpool_assemble_pending_decls): Call it.
28529         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
28530         * cgraphunit.c (cgraph_output_in_order): Call
28531         varpool_finalize_named_section_flags.
28532         * varasm.c (get_section): Allow section flags conflicts between
28533         relro and read-only sections if the section hasn't been declared yet.
28534         Set SECTION_OVERRIDE after diagnosing section type conflict.
28535         (get_variable_section): No longer static.
28536         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
28537         readonly sections that need relocations.
28538         (decl_readonly_section_1): New function.
28539         (decl_readonly_section): Use it.
28540
28541         Revert:
28542         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
28543                     Steve Ellcey  <sje@cup.hp.com>
28544
28545         PR middle-end/31490
28546         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
28547         if section attribute used.
28548
28549 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
28550
28551         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
28552         * config/darwin.c (SECTION_NO_ANCHOR): Define.
28553         (darwin_init_sections): Remove assertion.
28554
28555 2011-02-03  Nick Clifton  <nickc@redhat.com>
28556
28557         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
28558         lt and ge.
28559         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
28560         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
28561         instead of "n" and "pz".
28562         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
28563         CC_FLAG_S.
28564
28565 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
28566
28567         PR target/47312
28568         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
28569         fma, expand FMA_EXPR as fma{,f,l} call.
28570
28571         PR lto/47274
28572         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
28573         copy them into a unsigned char variable and pass address of it to
28574         lto_output_data_stream.
28575
28576         PR target/47564
28577         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
28578         around backend_init_target and lang_dependent_init_target calls.
28579         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
28580         (verify_cgraph_node): Don't call set_cfun here.  Use
28581         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
28582         Set error_found for incorrectly represented calls to thunks.
28583
28584 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
28585
28586         PR debug/43092
28587         PR rtl-optimization/43494
28588         * rtl.h (for_each_inc_dec_fn): New type.
28589         (for_each_inc_dec): Declare.
28590         * rtlanal.c (struct for_each_inc_dec_ops): New type.
28591         (for_each_inc_dec_find_inc_dec): New fn.
28592         (for_each_inc_dec_find_mem): New fn.
28593         (for_each_inc_dec): New fn.
28594         * dse.c (struct insn_size): Remove.
28595         (replace_inc_dec, replace_inc_dec_mem): Remove.
28596         (emit_inc_dec_insn_before): New fn.
28597         (check_for_inc_dec): Use it, along with for_each_inc_dec.
28598         (canon_address): Pass mem modes to cselib_lookup.
28599         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
28600         (cselib_lookup_from_insn): Likewise.
28601         (cselib_subst_to_values): Likewise.
28602         * cselib.c (find_slot_memmode): New var.
28603         (cselib_find_slot): New fn.  Use it instead of
28604         htab_find_slot_with_hash everywhere.
28605         (entry_and_rtx_equal_p): Use find_slot_memmode.
28606         (autoinc_split): New fn.
28607         (rtx_equal_for_cselib_p): Rename and implement in terms of...
28608         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
28609         Deal with autoinc.  Special-case recursion into MEMs.
28610         (cselib_hash_rtx): Likewise.
28611         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
28612         address and MEM modes.
28613         (cselib_subst_to_values): Add memmode, pass it on.
28614         Deal with autoinc.
28615         (cselib_lookup): Add memmode argument, pass it on.
28616         (cselib_lookup_from_insn): Add memmode.
28617         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
28618         (struct cselib_record_autoinc_data): New.
28619         (cselib_record_autoinc_cb): New fn.
28620         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
28621         mode to cselib_lookup.  Reset autoinced REGs here instead of...
28622         (cselib_process_insn): ... here.
28623         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
28624         to cselib_lookup.
28625         (add_uses): Likewise, also to cselib_subst_to_values.
28626         (add_stores): Likewise.
28627         * sched-deps.c (add_insn_mem_dependence): Pass mode to
28628         cselib_subst_to_values.
28629         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
28630         * gcse.c (do_local_cprop): Adjusted.
28631         * postreload.c (reload_cse_simplify_set): Adjusted.
28632         (reload_cse_simplify_operands): Adjusted.
28633         * sel-sched-dump (debug_mem_addr_value): Pass mode.
28634
28635 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
28636
28637         PR tree-optimization/45122
28638         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
28639         unsafe assumptions when there's more than one loop exit.
28640
28641 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
28642
28643         PR target/47272
28644         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
28645         Document using vector double with the load/store builtins, and
28646         that the load/store builtins always use Altivec instructions.
28647
28648         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
28649         to use altivec memory instructions, even on VSX.
28650         (vector_altivec_store_<mode>): Ditto.
28651
28652         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
28653         function.
28654
28655         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
28656         V2DF, V2DI support to load/store overloaded builtins.
28657
28658         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
28659         altivec load/store builtins for V2DF/V2DI types.
28660
28661         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
28662         set avoid indexed addresses on power6 if -maltivec.
28663         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
28664         vector_altivec_load/vector_altivec_store builtins.
28665         (altivec_expand_st_builtin): Ditto.
28666         (altivec_expand_builtin): Add VSX memory builtins.
28667         (rs6000_init_builtins): Add V2DI types to internal types.
28668         (altivec_init_builtins): Add support for V2DF/V2DI altivec
28669         load/store builtins.
28670         (rs6000_address_for_altivec): Insure memory address is appropriate
28671         for Altivec.
28672
28673         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
28674         vec_vsx_ld and vec_vsx_st.
28675         (vsx_store_<mode>): Ditto.
28676
28677         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
28678         variables to hold long long types for VSX vector memory builtins.
28679         (RS6000_BTI_unsigned_long_long): Ditto.
28680         (long_long_integer_type_internal_node): Ditti.
28681         (long_long_unsigned_type_internal_node): Ditti.
28682
28683         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
28684         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
28685         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
28686
28687         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
28688         short cuts.
28689         (vec_vsx_st): Ditto.
28690
28691 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
28692
28693         * config/pa/pa-hpux10.opt: New.
28694         * config/hpux11.opt (pthread): New Driver option.
28695         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
28696         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
28697
28698 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
28699
28700         * config/ia64/vms.opt: New.
28701         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
28702
28703 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
28704
28705         PR target/47580
28706         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
28707         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
28708         generator functions.
28709         (vsx_floatuns<VSi><mode>2): Ditto.
28710         (vsx_fix_trunc<mode><VSi>2): Ditto.
28711         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
28712
28713 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
28714
28715         * config/i386/djgpp.opt (posix): New Driver option.
28716
28717 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
28718
28719         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
28720         Move to the unsupported targets list.
28721
28722 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
28723
28724         PR rtl-optimization/47525
28725         * df-scan.c: Update copyright years.
28726         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
28727         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
28728
28729 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28730
28731         * config/i386/sysv4.h (TARGET_VERSION): Remove.
28732         (SUBTARGET_RETURN_IN_MEMORY): Remove.
28733         (ASM_OUTPUT_ASCII): Remove.
28734         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
28735
28736 2011-02-02  Jeff Law  <law@redhat.com>
28737
28738         PR middle-end/47543
28739         * reload.c (find_reloads_address): Handle reg+d address where both
28740         components are invalid by reloading the entire address.
28741
28742 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
28743             Richard Guenther  <rguenther@suse.de>
28744
28745         PR tree-optimization/40979
28746         PR bootstrap/47044
28747         * passes.c (init_optimization_passes): After LIM call copy_prop
28748         and DCE to clean up.
28749         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
28750
28751 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
28752
28753         PR tree-optimization/47576
28754         PR tree-optimization/47555
28755         * doc/invoke.texi (scev-max-expr-complexity): Documented.
28756         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
28757         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
28758         * tree-scalar-evolution.c (follow_ssa_edge): Use
28759         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
28760
28761 2011-02-02  Richard Guenther  <rguenther@suse.de>
28762
28763         PR tree-optimization/47566
28764         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
28765
28766 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
28767
28768         PR debug/47106
28769         PR debug/47402
28770         * tree-inline.c (declare_return_variable): Remove unused caller
28771         variable.
28772
28773         PR debug/47106
28774         PR debug/47402
28775         * tree-flow-inline.h (clear_is_used, is_used_p): New.
28776         * cfgexpand.c (account_used_vars_for_block): Use them.
28777         * tree-nrv.c (tree_nrv): Likewise.
28778         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
28779         (dump_scope_block): Likewise.
28780         (remove_unused_locals): Likewise.
28781
28782         PR debug/47106
28783         PR debug/47402
28784         * tree-inline.c (declare_return_variable): Add result decl to
28785         local decls only once.
28786         * gimple-low.c (record_vars_into): Mark newly-created variables
28787         as referenced.
28788
28789 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
28790
28791         PR debug/47498
28792         PR debug/47501
28793         PR debug/45136
28794         PR debug/45130
28795         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
28796         debug insns.
28797         (no_real_insns_p, schedule_block, set_priorities): Drop special
28798         treatment of boundary debug insns.
28799         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
28800         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
28801         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
28802         (BOUNDARY_DEBUG_INSN_P): Likewise.
28803         (SCHEDULE_DEBUG_INSN_P): Likewise.
28804         * sched-rgn.c (init_ready_list): Drop special treatment of
28805         boundary debug insns.
28806         * final.c (rest_of_clean_state): Clear notes' BB.
28807
28808 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28809
28810         * config/openbsd.opt (assert=): New Driver option.
28811
28812 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28813
28814         * config/i386/nto.opt: New.
28815         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
28816
28817 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28818
28819         * config/i386/netware.opt: New.
28820         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
28821
28822 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28823
28824         * config/interix.opt (posix): New Driver option.
28825
28826 2011-02-01  DJ Delorie  <dj@redhat.com>
28827
28828         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
28829
28830         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
28831         class for A0/A1.
28832
28833 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
28834
28835         PR tree-optimization/47561
28836         * toplev.c (process_options): Print the Graphite flags.  Add
28837         flag_loop_flatten to the list of options requiring Graphite.
28838
28839 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28840
28841         * config/i386/cygming.opt (posix): New Driver option.
28842
28843 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28844
28845         * config/arm/vxworks.opt: New.
28846         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
28847
28848 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28849
28850         * config/alpha/elf.opt: New.
28851         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
28852         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
28853
28854 2011-02-01  Richard Guenther  <rguenther@suse.de>
28855
28856         PR tree-optimization/47559
28857         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
28858         store-motion on references that can throw.
28859
28860 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
28861
28862         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
28863         * tree-pass.h (TDF_CSELIB): New macro.
28864         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
28865         cselib_lookup): Check for it rather than for TDF_DETAILS.
28866
28867 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
28868
28869         PR driver/47547
28870         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
28871         is HOST_BIT_BUCKET.
28872
28873         * opts.c (finish_options): Don't add x_aux_base_name if it is
28874         HOST_BIT_BUCKET.
28875
28876 2011-02-01  Richard Guenther  <rguenther@suse.de>
28877
28878         PR tree-optimization/47555
28879         Revert
28880         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
28881
28882         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
28883
28884 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
28885
28886         PR gcc/46692
28887         * config/lm32/t-lm32: Add multilib for all CPU options.
28888
28889 2011-02-01  Richard Guenther  <rguenther@suse.de>
28890
28891         PR tree-optimization/47541
28892         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
28893         sure to have a field at offset zero.
28894
28895 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28896
28897         * config/arc/arc.opt (EB, EL): New Driver options.
28898
28899 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28900
28901         * config/alpha/osf5.opt: New.
28902         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
28903
28904 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28905
28906         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
28907
28908 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
28909
28910         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
28911         -floop-interchange.
28912         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
28913         is an alias of -floop-interchange and that it requires the
28914         Graphite infrastructure.
28915         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
28916         flag_loop_interchange based on the value of flag_tree_loop_linear.
28917
28918 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
28919             Richard Guenther  <rguenther@suse.de>
28920
28921         PR tree-optimization/47538
28922         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
28923         type instead of r1type, except for comparisons.  For right
28924         shifts and comparisons punt if there are mismatches in
28925         sizetype vs. non-sizetype types.
28926
28927 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28928
28929         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28930         avx_runtime.
28931
28932 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28933
28934         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
28935         version number.
28936         * configure: Regenerate.
28937
28938 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28939
28940         * configure.ac (gcc_cv_ld_static_option): Define.
28941         (gcc_cv_ld_dynamic_option): Define.
28942         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
28943         instead.
28944         (HAVE_LD_STATIC_DYNAMIC): Update message.
28945         (LD_STATIC_OPTION): Define.
28946         (LD_DYNAMIC_OPTION): Define.
28947         * configure: Regenerate.
28948         * config.in: Regenerate.
28949         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
28950         HAVE_LD_STATIC_DYNAMIC]: Use them.
28951
28952 2011-01-31  Nick Clifton  <nickc@redhat.com>
28953
28954         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
28955         registers inside interrupt handlers if the handler is not a leaf
28956         function.
28957
28958 2011-01-31  Nick Clifton  <nickc@redhat.com>
28959
28960         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
28961         reg_renumber returning an INVALID_REGNUM.
28962
28963 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
28964
28965         PR libgcj/44341
28966         * doc/install.texi: Document host options discarded when cross
28967         configuring target libraries.
28968
28969 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
28970
28971         Reverted:
28972         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
28973         PR debug/45136
28974         PR debug/45130
28975         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
28976         debug insns.
28977         (no_real_insns_p, schedule_block, set_priorities): Drop special
28978         treatment of boundary debug insns.
28979         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
28980         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
28981         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
28982         (BOUNDARY_DEBUG_INSN_P): Likewise.
28983         (SCHEDULE_DEBUG_INSN_P): Likewise.
28984         * sched-rgn.c (init_ready_list): Drop special treatment of
28985         boundary debug insns.
28986         * final.c (rest_of_clean-state): Clear notes' BB.
28987
28988 2011-01-31  Alan Modra  <amodra@gmail.com>
28989
28990         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
28991         toc relative expressions as we do in print_operand_address.
28992
28993 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
28994
28995         * doc/extend.texi: Follow spelling conventions.
28996         * doc/invoke.texi: Fix a typo.
28997
28998 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
28999
29000         * config/hpux11.opt: New.
29001         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
29002         ia64*-*-hpux*): Use hpux11.opt.
29003
29004 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
29005
29006         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
29007         to tmake_file.
29008
29009 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
29010
29011         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
29012         support sites.
29013
29014 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
29015
29016         * doc/install.texi (Binaries): Remove outdated reference for
29017         Motorola 68HC11/68HC12 downloads.
29018
29019 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
29020
29021         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
29022         Drepper's paper.
29023
29024 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
29025
29026         PR bootstrap/47147
29027         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
29028         used by NetBSD.
29029
29030 2011-01-28  Ahmad Sharif  <asharif@google.com>
29031
29032         * value-prof.c (check_counter): Corrected error message.
29033
29034 2011-01-29  Jie Zhang  <jie@codesourcery.com>
29035
29036         * config/arm/arm.c (arm_legitimize_reload_address): New.
29037         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
29038         arm_legitimize_reload_address.
29039         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
29040
29041 2011-01-28  Ian Lance Taylor  <iant@google.com>
29042
29043         * godump.c (go_define): Ignore macros whose definitions include
29044         two adjacent operands.
29045
29046 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
29047
29048         PR target/42894
29049         * varasm.c (force_const_mem): Store copy of x in desc->constant
29050         instead of x itself.
29051         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
29052         itself into REG_EQUAL note.
29053
29054 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
29055
29056         * config/freebsd.opt (posix, rdynamic): New Driver options.
29057
29058 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29059
29060         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
29061         -Bstatic/-Bdynamic.
29062         * configure: Regenerate.
29063
29064 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
29065
29066         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
29067         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
29068
29069 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
29070
29071         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
29072         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
29073         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
29074         (s390_preferred_reload_class): Make static. Change return and
29075         'rclass' argument type to reg_class_t.
29076
29077 2011-01-27  Jan Hubicka  <jh@suse.cz>
29078
29079         PR middle-end/46949
29080         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
29081         (process_function_and_variable_attributes): Check defined weakrefs.
29082
29083 2011-01-27  Martin Jambor  <mjambor@suse.cz>
29084
29085         PR tree-optimization/47228
29086         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
29087         build_ref_for_offset.
29088
29089 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29090
29091         * config/spu/spu-elf.h (ASM_SPEC): Remove.
29092
29093 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
29094
29095         PR rtl-optimization/46856
29096         * postreload.c (reload_combine_recognize_const_pattern): Do not
29097         separate cc0 setter and user on cc0 targets.
29098
29099 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
29100
29101         PR c/43082
29102         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
29103         passed a VOID_TYPE expression, immediately emit an error and
29104         return error_mark_node.
29105
29106 2011-01-26  Jeff Law  <law@redhat.com>
29107
29108         PR rtl-optimization/47464
29109         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
29110         rather than may_trap_p as needed.
29111
29112 2011-01-26  DJ Delorie  <dj@redhat.com>
29113
29114         PR rtl-optimization/46878
29115         * combine.c (insn_a_feeds_b): Check for the implicit cc0
29116         setter/user dependency as well.
29117
29118 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
29119
29120         PR rtl-optimization/44469
29121         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
29122         after removing trivially dead basic blocks.
29123
29124 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
29125
29126         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
29127         * config/frv/frv.h (LINK_SPEC): Likewise.
29128         * config/i386/netware.h (LINK_SPEC): Likewise.
29129         * config/m68k/linux.h (ASM_SPEC): Likewise.
29130         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
29131         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
29132         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
29133         * config/sparc/linux.h (ASM_SPEC): Likewise.
29134         * config/sparc/linux64.h (ASM_SPEC): Likewise.
29135         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
29136
29137 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
29138
29139         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
29140         * config/frv/frv.h (ASM_SPEC): Likewise.
29141         * config/m68k/linux.h (ASM_SPEC): Likewise.
29142         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
29143         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
29144         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
29145         * config/sparc/linux.h (ASM_SPEC): Likewise.
29146         * config/sparc/linux64.h (ASM_SPEC): Likewise.
29147         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
29148
29149 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
29150
29151         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
29152         * config/frv/frv.h (LINK_SPEC): Likewise.
29153         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
29154
29155 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
29156
29157         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
29158         * config/frv/frv.h (ASM_SPEC): Likewise.
29159         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
29160         * config/m68k/linux.h (ASM_SPEC): Likewise.
29161         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
29162         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
29163         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
29164         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
29165         * config/sparc/linux.h (ASM_SPEC): Likewise.
29166         * config/sparc/linux64.h (ASM_SPEC): Likewise.
29167         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
29168         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
29169
29170 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
29171
29172         PR target/46997
29173         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
29174         (*mux2): Ditto.
29175         (vec_extract_evenodd_help): Ditto.
29176         (vec_extract_evenv4hi): Ditto.
29177         (vec_extract_oddv4hi): Ditto.
29178         (vec_interleave_lowv2si): Ditto.
29179         (vec_interleave_highv2si): Ditto.
29180         (vec_extract_evenv2si): Ditto.
29181         (vec_extract_oddv2si: Ditto.
29182         (vec_pack_trunc_v2si): Ditto.
29183
29184 2011-01-22  Jan Hubicka  <jh@suse.cz>
29185
29186         PR target/47237
29187         * cgraph.h (cgraph_local_info): New field can_change_signature.
29188         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
29189         signature can change.
29190         (ipcp_estimate_growth): Call sequence simplify only if calle signature
29191         can change.
29192         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
29193         (cgraph_function_versioning): We can not change signature of functions
29194         that don't allow that.
29195         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
29196         (lto_input_node): Likewise.
29197         * ipa-inline.c (compute_inline_parameters): Compute
29198         local.can_change_signature.
29199         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
29200         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
29201         functions that can not change signature.
29202         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
29203         init_cumulative_args): Do not use local calling conventions
29204         for functions that can not change signature.
29205
29206 2011-01-22  Jan Hubicka  <jh@suse.cz>
29207
29208         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
29209
29210 2011-01-26  Richard Guenther  <rguenther@suse.de>
29211
29212         PR tree-optimization/47190
29213         * cgraphunit.c (process_common_attributes): New function.
29214         (process_function_and_variable_attributes): Use it.
29215
29216 2011-01-26  Richard Guenther  <rguenther@suse.de>
29217
29218         PR lto/47423
29219         * cgraphbuild.c (record_eh_tables): Record reference to personality
29220         function.
29221
29222 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
29223
29224         PR debug/45454
29225         * sel-sched.c (moveup_expr): Don't let debug insns prevent
29226         non-debug insns from moving up.
29227
29228 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
29229
29230         PR target/40125
29231         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
29232         t-dlldir{,-x} fragment for build and add it to tmake_file.
29233         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
29234         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
29235         * config/i386/t-dlldir: New file.
29236         (SHLIB_DLLDIR): Define.
29237         * config/i386/t-dlldir-x: New file.
29238         (SHLIB_DLLDIR): Define.
29239         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
29240         (SHLIB_INSTALL): Use it.
29241
29242 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
29243
29244         PR target/47246
29245         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
29246         lower bound of the allowed Thumb-2 coprocessor load/store
29247         index range to -256. Add explaining comment.
29248
29249 2011-01-25  Ian Lance Taylor  <iant@google.com>
29250
29251         * godump.c (go_define): Improve lexing of macro expansion to only
29252         accept expressions which match Go spec.
29253
29254 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
29255
29256         PR c++/43601
29257         * tree.c (handle_dll_attribute): Handle it.
29258         * doc/extend.texi (@item dllexport): Mention it.
29259         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
29260
29261 2011-01-25  Ian Lance Taylor  <iant@google.com>
29262
29263         PR tree-optimization/26854
29264         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
29265         (decl_jump_unsafe): Move higher in file, with no other change.
29266         (bind): Set has_jump_unsafe_decl if appropriate.
29267         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
29268         (check_earlier_gotos): Likewise.
29269         (c_check_switch_jump_warnings): Likewise.
29270
29271 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
29272
29273         * doc/invoke.texi (Warning Options): Add missing hyphen.
29274         (-fprofile-dir): Minor grammatical fixes.
29275         (-fbranch-probabilities): Likewise.
29276
29277 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
29278
29279         PR debug/45136
29280         PR debug/45130
29281         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
29282         debug insns.
29283         (no_real_insns_p, schedule_block, set_priorities): Drop special
29284         treatment of boundary debug insns.
29285         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
29286         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
29287         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
29288         (BOUNDARY_DEBUG_INSN_P): Likewise.
29289         (SCHEDULE_DEBUG_INSN_P): Likewise.
29290         * sched-rgn.c (init_ready_list): Drop special treatment of
29291         boundary debug insns.
29292         * final.c (rest_of_clean-state): Clear notes' BB.
29293
29294 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29295
29296         * Makefile.in (LAMBDA_H): Removed.
29297         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
29298         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
29299         lambda-trans.o, and tree-loop-linear.o.
29300         (lto-symtab.o): Remove dependence on LAMBDA_H.
29301         (tree-loop-linear.o): Remove rule.
29302         (lambda-mat.o): Same.
29303         (lambda-trans.o): Same.
29304         (lambda-code.o): Same.
29305         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
29306         (tree-vect-slp.o): Same.
29307         * hwint.h (gcd): Moved here.
29308         (least_common_multiple): Same.
29309         * lambda-code.c: Removed.
29310         * lambda-mat.c: Removed.
29311         * lambda-trans.c: Removed.
29312         * lambda.h: Removed.
29313         * tree-loop-linear.c: Removed.
29314         * lto-symtab.c: Do not include lambda.h.
29315         * omega.c (gcd): Removed.
29316         * passes.c (init_optimization_passes): Remove pass_linear_transform.
29317         * tree-data-ref.c (print_lambda_vector): Moved here.
29318         (lambda_vector_copy): Same.
29319         (lambda_matrix_copy): Same.
29320         (lambda_matrix_id): Same.
29321         (lambda_vector_first_nz): Same.
29322         (lambda_matrix_row_add): Same.
29323         (lambda_matrix_row_exchange): Same.
29324         (lambda_vector_mult_const): Same.
29325         (lambda_vector_negate): Same.
29326         (lambda_matrix_row_negate): Same.
29327         (lambda_vector_equal): Same.
29328         (lambda_matrix_right_hermite): Same.
29329         * tree-data-ref.h: Do not include lambda.h.
29330         (lambda_vector): Moved here.
29331         (lambda_matrix): Same.
29332         (dependence_level): Same.
29333         (lambda_transform_legal_p): Removed declaration.
29334         (lambda_collect_parameters): Same.
29335         (lambda_compute_access_matrices): Same.
29336         (lambda_vector_gcd): Same.
29337         (lambda_vector_new): Same.
29338         (lambda_vector_clear): Same.
29339         (lambda_vector_lexico_pos): Same.
29340         (lambda_vector_zerop): Same.
29341         (lambda_matrix_new): Same.
29342         * tree-flow.h (least_common_multiple): Removed declaration.
29343         * tree-parloops.c (lambda_trans_matrix): Moved here.
29344         (LTM_MATRIX): Same.
29345         (LTM_ROWSIZE): Same.
29346         (LTM_COLSIZE): Same.
29347         (LTM_DENOMINATOR): Same.
29348         (lambda_trans_matrix_new): Same.
29349         (lambda_matrix_vector_mult): Same.
29350         (lambda_transform_legal_p): Same.
29351         * tree-pass.h (pass_linear_transform): Removed declaration.
29352         * tree-ssa-loop.c (tree_linear_transform): Removed.
29353         (gate_tree_linear_transform): Removed.
29354         (pass_linear_transform): Removed.
29355         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
29356         flag_loop_interchange.
29357
29358 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
29359
29360         PR tree-optimization/47265
29361         PR tree-optimization/47443
29362         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
29363         if name still has some uses.
29364
29365 2011-01-25  Martin Jambor  <mjambor@suse.cz>
29366
29367         PR tree-optimization/47382
29368         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
29369         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
29370
29371 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
29372
29373         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
29374         sjlj_except_unwind_info.
29375
29376 2011-01-25  Richard Guenther  <rguenther@suse.de>
29377
29378         PR tree-optimization/47426
29379         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
29380         visible functions results escape.
29381
29382 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
29383
29384         PR target/45701
29385         * config/arm/arm.c (any_sibcall_uses_r3): New function.
29386         (arm_get_frame_offsets): Use it.
29387
29388 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29389             Jakub Jelinek  <jakub@redhat.com>
29390
29391         PR tree-optimization/47271
29392         * tree-if-conv.c (bb_postdominates_preds): New.
29393         (if_convertible_bb_p): Call bb_postdominates_preds.
29394         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
29395         (predicate_scalar_phi): Call bb_postdominates_preds.
29396
29397 2011-01-25  Nick Clifton  <nickc@redhat.com>
29398
29399         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
29400         * config/rx/rx.c (rx_function_value): Likewise.
29401         (rx_promote_function_mode): Likewise.
29402         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
29403         in order to make it legitimate.
29404         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
29405         make sure that the first operand is the same as the result register.
29406         (addsi3_unspec): Delete.
29407         (subdi3): Do not accept immediate operands.
29408         (subdi3_internal): Likewise.
29409
29410 2011-01-25  Jeff Law  <law@redhat.com>
29411
29412         PR rtl-optimization/37273
29413         * ira-costs.c (scan_one_insn): Detect constants living in memory and
29414         handle them like argument loads from stack slots.  Do not double
29415         count memory for memory constants and argument loads from stack slots.
29416
29417 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
29418
29419         PR tree-optimization/47427
29420         PR tree-optimization/47428
29421         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
29422         coalesce if the new root var would be TREE_READONLY.
29423
29424 2011-01-25  Richard Guenther  <rguenther@suse.de>
29425
29426         PR middle-end/47414
29427         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
29428         correct type for TBAA.
29429
29430 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29431
29432         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
29433         (close_phi_written_to_memory): Call for_each_index with
29434         dr_indices_valid_in_loop.
29435
29436 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29437
29438         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
29439         when it is initialized.
29440
29441 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29442
29443         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
29444         call to graphite_find_data_references_in_stmt.
29445         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
29446         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
29447         call to graphite_find_data_references_in_stmt.
29448         (analyze_drs_in_stmts): Same.
29449         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
29450         in which the scalar analysis of indices is performed.
29451         (create_data_ref): Same.  Update call to dr_analyze_indices.
29452         (find_data_references_in_stmt): Update call to create_data_ref.
29453         (graphite_find_data_references_in_stmt): Same.
29454         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
29455         declaration.
29456         (create_data_ref): Same.
29457         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
29458         call to create_data_ref.
29459
29460 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29461
29462         * graphite-sese-to-poly.c (build_poly_scop): Move
29463         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
29464
29465 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29466
29467         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
29468         VAR_DECL, PARM_DECL, and RESULT_DECL.
29469
29470 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29471
29472         * graphite-dependences.c (reduction_dr_1): Allow several reductions
29473         in a reduction PBB.
29474         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
29475         that have already been marked as PBB_IS_REDUCTION.
29476
29477 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29478
29479         * graphite-scop-detection.c (same_close_phi_node): New.
29480         (remove_duplicate_close_phi): New.
29481         (make_close_phi_nodes_unique): New.
29482         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
29483
29484 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29485
29486         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
29487         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
29488         of both data references to be the same.
29489
29490 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29491
29492         * graphite-dependences.c (build_lexicographical_constraint): Remove
29493         the gdim parameter.
29494         (build_lexicographical_constraint): Adjust call to
29495         ppl_powerset_is_empty.
29496         (dependence_polyhedron): Same.
29497         (graphite_legal_transform_dr): Same.
29498         (graphite_carried_dependence_level_k): Same.
29499         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
29500         parameter.
29501         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
29502
29503 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29504
29505         * graphite-sese-to-poly.c
29506         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
29507         (close_phi_written_to_memory): New.
29508         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
29509         and unshare_expr.
29510
29511 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29512
29513         * doc/install.texi: Update the expected version number of PPL to 0.11.
29514         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
29515         #if PPL_VERSION_MINOR < 11.
29516
29517 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29518
29519         * graphite-dependences.c: Include graphite-cloog-util.h.
29520         (new_poly_ddr): Inlined into dependence_polyhedron.
29521         (free_poly_ddr): Moved close by new_poly_ddr.
29522         (dependence_polyhedron_1): Renamed dependence_polyhedron.
29523         Early return NULL when ppl_powerset_is_empty returns true.
29524         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
29525         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
29526         (graphite_legal_transform_dr): Call new_poly_ddr.
29527         (graphite_carried_dependence_level_k): Same.
29528         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
29529         (dot_transformed_deps_stmt_1): Removed.
29530         (dot_deps_stmt_1): Call dot_deps_stmt_2.
29531         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
29532         (dot_deps_1): Call dot_deps_2.
29533         * Makefile.in (graphite-dependences.o): Add missing dependence on
29534         graphite-cloog-util.h.
29535
29536 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29537
29538         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
29539         (build_lexicographical_constraint): Same.
29540         (dependence_polyhedron_1): Same.
29541         (graphite_legal_transform_dr): Same.
29542         (graphite_carried_dependence_level_k): Same.
29543         * graphite-ppl.c (ppl_powerset_is_empty): New.
29544         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
29545         * tree-data-ref.c (dump_data_reference): Print the basic block index.
29546
29547 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29548
29549         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
29550         the "a followed by b" relation and document it.
29551
29552 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29553
29554         * graphite-dependences.c (build_lexicographical_constraint): Stop the
29555         iteration when the bag of constraints is empty.
29556
29557 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29558
29559         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
29560
29561 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29562
29563         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
29564         nest and two loop depths as parameters.
29565         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
29566         lst_perfect_nestify.
29567
29568 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29569
29570         * graphite-dependences.c (print_pddr): Call
29571         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
29572
29573 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29574
29575         * graphite-ppl.c (debug_gmp_value): New.
29576         * graphite-ppl.h (debug_gmp_value): Declared.
29577
29578 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
29579
29580         * doc/install.texi: Document availability of cloog-0.16.
29581
29582 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
29583
29584         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
29585         invalid postdominance info.
29586
29587 2011-01-24  Jan Hubicka  <jh@suse.cz>
29588
29589         PR c/21659
29590         * doc/extend.texi (weak pragma): Drop claim that it must
29591         appear before definition.
29592         * varasm.c (merge_weak, declare_weak): Only sanity check
29593         that DECL is not output at a time it is declared weak.
29594
29595 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
29596
29597         * machmode.def: Fixed comments.
29598
29599 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
29600
29601         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
29602
29603 2011-01-24  Paul Koning  <ni1d@arrl.net>
29604
29605         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
29606         WORDS_BIG_ENDIAN.
29607
29608 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
29609
29610         PR target/46519
29611         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
29612         (block_info): Add scanned and prev.
29613         (move_or_delete_vzeroupper_2): Return if the basic block
29614         has been scanned and the upper 128bit state is unchanged
29615         from the last scan.
29616         (move_or_delete_vzeroupper_1): Return true if the exit
29617         state is changed.
29618         (move_or_delete_vzeroupper): Visit basic blocks using the
29619         work-list based algorithm based on vt_find_locations in
29620         var-tracking.c.
29621
29622         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
29623
29624 2011-01-24  Nick Clifton  <nickc@redhat.com>
29625
29626         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
29627         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
29628         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
29629         then define __v850e1__.
29630         * doc/invoke.texi: Document -mv850es.
29631
29632 2011-01-24  Richard Henderson  <rth@redhat.com>
29633
29634         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
29635         compound unordered comparisons.
29636         * config/rx/rx.c (rx_split_fp_compare): Remove.
29637         * config/rx/rx-protos.h: Update.
29638         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
29639         (cbranchsf4): Don't call rx_split_fp_compare.
29640         (*cbranchsf4): Use rx_split_cbranch.
29641         (*cmpsf): Don't accept "i" constraint.
29642         (*conditional_branch): Only valid after reload.
29643         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
29644
29645 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
29646
29647         PR target/47385
29648         * config/rs6000/altivec.md (vector constant splitters): Add
29649         support for creating vector single precision constants if -mvsx is
29650         used and we would create the constant using Altivec primitives.
29651
29652 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
29653             Richard Sandiford  <rdsandiford@googlemail.com>
29654
29655         PR rtl-optimization/47166
29656         * reload1.c (emit_reload_insns): Disable the spill_reg_store
29657         mechanism for PRE_MODIFY and POST_MODIFY.
29658         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
29659         reloadreg.
29660
29661 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
29662
29663         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
29664
29665 2011-01-22  Jan Hubicka  <jh@suse.cz>
29666
29667         PR lto/47333
29668         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
29669
29670 2011-01-22  Jan Hubicka  <jh@suse.cz>
29671
29672         PR tree-optimization/43884
29673         PR lto/44334
29674         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
29675         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
29676
29677 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
29678
29679         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
29680         * config/s390/s390.c (s390_register_move_cost,
29681         s390_memory_move_cost): New.
29682         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
29683
29684 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29685
29686         PR middle-end/47401
29687         * except.c (sjlj_assign_call_site_values): Move setting the
29688         crtl->uses_eh_lsda flag to ...
29689         (sjlj_mark_call_sites): ... here.
29690         (sjlj_emit_function_enter): Support NULL dispatch label.
29691         (sjlj_build_landing_pads): In a function with no landing pads
29692         that still has must-not-throw regions, generate code to register
29693         a personality function with empty LSDA.
29694
29695 2011-01-21  Richard Henderson  <rth@redhat.com>
29696
29697         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
29698
29699         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
29700
29701         * compare-elim.c: New file.
29702         * Makefile.in (OBJS-common): Add it.
29703         (compare-elim.o): New.
29704         * common.opt (fcompare-elim): New.
29705         * opts.c (default_options_table): Add OPT_fcompare_elim.
29706         * tree-pass.h (pass_compare_elim_after_reload): New.
29707         * passes.c (init_optimization_passes): Add it.
29708         * recog.h: Protect against re-inclusion.
29709         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
29710         * doc/invoke.texi (-fcompare-elim): Document it.
29711         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
29712         * doc/tm.texi: Rebuild.
29713
29714 2011-01-22  Nick Clifton  <nickc@redhat.com>
29715
29716         * config/rx/rx.md (cstoresf4): Pass comparison operator to
29717         rx_split_fp_compare.
29718
29719 2011-01-22  Nick Clifton  <nickc@redhat.com>
29720
29721         * config/rx/rx.md (UNSPEC_CONST): New.
29722         (deallocate_and_return): Wrap the amount popped off the stack in
29723         an UNSPEC_CONST in order to stop it being rejected by
29724         -mmax-constant-size.
29725         (pop_and_return): Add a "(return)" rtx.
29726         (call): Drop the immediate operand.
29727         (call_internal): Likewise.
29728         (call_value): Likewise.
29729         (call_value_internal): Likewise.
29730         (sibcall_internal): Likewise.
29731         (sibcall_value_internal): Likewise.
29732         (sibcall): Likewise.  Generate an explicit call using
29733         sibcall_internal.
29734         (sibcall_value): Likewise.
29735         (mov<>): FAIL if a constant operand is not legitimate.
29736         (addsi3_unpsec): New pattern.
29737
29738         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
29739         (ok_for_max_constant): New function.
29740         (gen_safe_add): New function.
29741         (rx_expand_prologue): Use gen_safe_add.
29742         (rx_expand_epilogue): Likewise.
29743         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
29744         UNSPEC CONSTs.
29745
29746 2011-01-21  Jeff Law  <law@redhat.com>
29747
29748         PR tree-optimization/47053
29749         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
29750         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
29751         statements are deleted.
29752         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
29753         is nonempty, then purge dead edges and cleanup the CFG.
29754
29755 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
29756
29757         PR debug/47402
29758         Temporarily revert:
29759         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
29760         PR debug/47106
29761         * tree-dfa.c (create_var_ann): Mark variable as used.
29762
29763 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
29764
29765         PR middle-end/45566
29766         * except.c (convert_to_eh_region_ranges): Emit queued no-region
29767         notes from other section in hot/cold partitioning even if
29768         last_action is -3.  Increment call_site_base.
29769
29770         PR rtl-optimization/47366
29771         * fwprop.c (forward_propagate_into): Return bool.  If
29772         any changes are made, -fnon-call-exceptions is used and
29773         REG_EH_REGION note is present, call purge_dead_edges
29774         and return true if it purged anything.
29775         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
29776         any EH edges were purged.
29777
29778 2011-01-21  Jeff Law  <law@redhat.com>
29779
29780         PR rtl-optimization/41619
29781         * caller-save.c (setup_save_areas): Break out code to determine
29782         which hard regs are live across calls by examining the reload chains
29783         so that it is always used.
29784         Eliminate code which checked REG_N_CALLS_CROSSED.
29785
29786 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
29787
29788         PR tree-optimization/47355
29789         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
29790         NOP has non-debug uses beyond PHIs in new_bb.
29791
29792 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
29793
29794         PR debug/47106
29795         * cfgexpand.c (account_used_vars_for_block): Only account vars
29796         that are annotated as used.
29797         (estimated_stack_frame_size): Don't set TREE_USED.
29798         * tree-dfa.c (create_var_ann): Mark variable as used.
29799
29800 2011-01-21  Richard Guenther  <rguenther@suse.de>
29801
29802         PR middle-end/47395
29803         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
29804
29805 2011-01-21  Richard Guenther  <rguenther@suse.de>
29806
29807         PR tree-optimization/47365
29808         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
29809         (vn_reference_lookup_pieces): Adjust.
29810         (vn_reference_lookup): Likewise.
29811         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
29812         (vn_reference_lookup_3): Only look through kills if in
29813         VN_WALKREWRITE mode.
29814         (vn_reference_lookup_pieces): Adjust.
29815         (vn_reference_lookup): Likewise.
29816         (visit_reference_op_load): Likewise.
29817         (visit_reference_op_store): Likewise.
29818         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
29819         (compute_avail): Likewise.
29820         (eliminate): Likewise.
29821
29822 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
29823
29824         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
29825         DECL_IGNORED_P non-reg vars if they are used.
29826
29827         PR tree-optimization/47391
29828         * varpool.c (const_value_known_p): Return false if
29829         decl is volatile.
29830
29831 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
29832
29833         PR bootstrap/47215
29834         * config/i386/i386.c (ix86_local_alignment): Handle
29835         case for va_list_type_node is nil.
29836         (ix86_canonical_va_list_type): Likewise.
29837
29838 2011-01-21  Alan Modra  <amodra@gmail.com>
29839
29840         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
29841         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
29842
29843 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29844
29845         * config/arm/arm.md (define_attr type): Rename f_load
29846         and f_store to f_fpa_load and f_fpa_store. Update.
29847         (write_conflict): Deal with rename fallout.
29848         (*push_fp_multi): Likewise.
29849         * config/arm/fpa.md (f_load): Use f_fpa_load.
29850         (f_store): Use f_fpa_store.
29851         (*movsf_fpa): Likewise.
29852         (*movdf_fpa): Likewise.
29853         (*movxf_fpa): Likewise.
29854         (*thumb2_movsf_fpa): Likewise.
29855         (*thumb2_movdf_fpa): Likewise.
29856         (*thumb2_movxf_fpa): Likewise.
29857         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
29858         f_loadd and f_stored.
29859         (*thumb2_movdi_vfp): Likewise.
29860         (*thumb2_movsf_vfp): Fix attribute to f_loads.
29861         (*thumb2_movsi_vfp): Likewise.
29862         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
29863         Use f_loads instead of f_load.
29864         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
29865
29866 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
29867
29868         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29869         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
29870         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29871         (xtensa_mode_dependent_address_p): New function.
29872         (constantpool_address_p): Make static. Change return type to bool.
29873         Change argument type to const_rtx. Use CONST_INT_P predicate.
29874
29875 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
29876
29877         PR debug/46583
29878         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
29879
29880 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
29881
29882         PR debug/47283
29883         * cfgexpand.c (expand_debug_expr): Instead of generating
29884         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
29885         etc. handling.
29886
29887 2011-01-20  Richard Guenther  <rguenther@suse.de>
29888
29889         PR middle-end/47370
29890         * tree-inline.c (remap_gimple_op_r): Recurse manually for
29891         the pointer operand of MEM_REFs.
29892
29893 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
29894
29895         PR tree-optimization/46130
29896         * ipa-split.c (consider_split): If return_bb contains non-virtual
29897         PHIs other than for retval or if split_function would not adjust it,
29898         refuse to split.
29899
29900 2011-01-20  Richard Guenther  <rguenther@suse.de>
29901
29902         PR tree-optimization/47167
29903         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
29904         Revert previous change, only avoid enumeral type changes.
29905
29906 2011-01-19  Mike Stump  <mikestump@comcast.net>
29907
29908         * doc/tm.texi.in (BRANCH_COST): Englishify.
29909         * doc/tm.texi (BRANCH_COST): Likewise.
29910
29911 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
29912
29913         PR c++/47291
29914         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
29915         (gen_scheduled_generic_parms_dies): New functions.
29916         (gen_struct_or_union_type_die): Schedule template parameters DIEs
29917         generation for the end of CU compilation.
29918         (dwarf2out_finish): Generate template parameters DIEs here.
29919
29920 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29921
29922         PR debug/46240
29923         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
29924         debug bind stmt on merge edges.
29925
29926 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29927
29928         PR debug/47079
29929         PR debug/46724
29930         * function.c (instantiate_expr): Instantiate incoming rtl of
29931         implicit arguments, and recurse on VALUE_EXPRs.
29932         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
29933         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
29934
29935 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29936
29937         * c-parser.c (c_parser_for_statement): Initialize
29938         collection_expression.
29939
29940 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29941
29942         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
29943
29944 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29945
29946         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
29947         (LINK_SHLIB_SPEC): Don't use %(link_path).
29948         (SUBTARGET_EXTRA_SPECS): Remove link_path.
29949
29950 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29951
29952         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
29953         (NO_SHARED_LIB_SUPPORT): Remove.
29954         (LINK_SHLIB_SPEC): Remove one conditional definition.
29955
29956 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29957
29958         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
29959         %{call_shared}.
29960         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
29961         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
29962         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
29963         %{call_shared} and conditionals on these options not being passed.
29964         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
29965         %{call_shared}.
29966
29967 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
29968
29969         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
29970         simplify.
29971
29972         * ipa-split.c: Spelling fixes.
29973
29974 2011-01-19  Richard Henderson  <rth@redhat.com>
29975
29976         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
29977         (*mulsi3): Likewise.
29978
29979         * longlong.h [__mn10300__] (count_leading_zeros): New.
29980         [__mn10300__] (umul_ppmm, smul_ppmm): New.
29981         [__mn10300__] (add_ssaaaa, subddmmss): New.
29982         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
29983         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
29984
29985 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29986
29987         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
29988
29989 2011-01-19  Richard Henderson  <rth@redhat.com>
29990
29991         * config/mn10300/mn10300.md (addsi3_flags): New.
29992         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
29993         (subsi3_flags, subc_internal, subdi3): New.
29994         (subdi3_internal, *subdi3_degenerate): New.
29995         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
29996
29997         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
29998         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
29999         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
30000         * config/mn10300/mn10300-protos.h: Update.
30001         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
30002         (return_ret): Likewise.  Rename from return_internal_regs.
30003         (return_internal): Remove.
30004
30005         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
30006         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
30007         (mn10300_legitimate_constant_p): Likewise.
30008         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
30009         (mn10300_frame_size): New.
30010         (mn10300_expand_prologue): Use it.
30011         (mn10300_expand_epilogue): Likewise.
30012         (mn10300_initial_offset): Likewise.
30013         * config/mn10300/mn10300-protos.h: Update.
30014         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
30015         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
30016         (prologue, epilogue, return_internal): Tidy output code.
30017         (mn10300_store_multiple_operation, return): Likewise.
30018         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
30019         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
30020         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
30021         (load_pic, am33_load_pic): New.
30022         (mn10300_load_pic0, mn10300_load_pic1): New.
30023
30024         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
30025         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
30026         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
30027         (cc_flags_for_mode, cc_flags_for_code): New.
30028         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
30029         overflow flag is not valid.  Validate that the flags we need
30030         for the comparison are valid.
30031         (mn10300_output_cmp): Remove.
30032         (mn10300_output_add): New.
30033         (mn10300_select_cc_mode): Use cc_flags_for_code.
30034         (mn10300_split_cbranch): New.
30035         (mn10300_match_ccmode): New.
30036         (mn10300_split_and_operand_count): New.
30037         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
30038         to the function.
30039         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
30040         (addsi3): ... here.  Use mn10300_output_add.
30041         (*addsi3_flags): New.
30042         (*am33_subsi3, *mn10300_subsi3): Merge...
30043         (subsi3): ... here.  Use attribute isa.
30044         (*subsi3_flags): New.
30045         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
30046         when possible.
30047         (*am33_andsi3, *mn10300_andsi3): Merge...
30048         (andsi3): ... here.
30049         (*andsi3_flags): New.
30050         (andsi3 splitters): New.
30051         (*am33_iorsi3, *mn10300_iorsi3): Merge...
30052         (iorsi3): ... here.
30053         (*iorsi3_flags): New.
30054         (*am33_xorsi3, *mn10300_xorsi3): Merge...
30055         (xorsi3): ... here.
30056         (*xorsi3_flags): New.
30057         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
30058         (one_cmplsi2): ... here.
30059         (*one_cmplsi2_flags): New.
30060         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
30061         instead of "dax" in constraints.  Use mn10300_split_cbranch.
30062         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
30063         use matching constraints to eliminate a self-comparison.
30064         (*integer_conditional_branch): Rename from integer_conditional_branch.
30065         Use int_mode_flags to match CC_REG.
30066         (*cbranchsi4_btst, *btstsi): New.
30067         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
30068         mn10300_split_cbranch.
30069         (*am33_cmpsf): Rename from am33_cmpsf.
30070         (*float_conditional_branch): Rename from float_conditional_branch.
30071         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
30072         (zero_extendqisi2): ... here.
30073         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
30074         (zero_extendhisi2): ... here.
30075         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
30076         (extendqisi2): ... here.
30077         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
30078         (extendhisi2): ... here.
30079         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
30080         (ashlsi3): ... here.
30081         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
30082         (lshrsi3): ... here.
30083         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
30084         (ashrsi3): ... here.
30085         (consecutive add peephole): Remove.
30086         * config/mn10300/predicates.md (label_ref_operand): New.
30087         (int_mode_flags): New.
30088         (CCZN_comparison_operator): New.
30089
30090         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
30091         (throughput_42_latency_43): New reservation.
30092         (mulsidi3, umulsidi3): New expanders.
30093         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
30094         the MDR register to allocation; separately allocate the low and
30095         high parts of the DImode result.
30096         (umulsidi3_internal): Similarly.
30097         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
30098         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
30099         (udivsi3, umodsi3): Remove.
30100         (udivmodsi4, divmodsi4): New expanders.
30101         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
30102         (*divmodsi4): Simiarly.
30103         (ext_internal): New.
30104
30105         * config/mn10300/constraints.md ("z"): New constraint.
30106         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
30107         (FIXED_REGISTERS): Don't fix MDR.
30108         (CALL_USED_REGSITERS): Reformat nicely.
30109         (REG_ALLOC_ORDER): Add MDR.
30110         (enum regclass): Add MDR_REGS.
30111         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
30112         (IRA_COVER_CLASSES): Add MDR_REGS.
30113         (REGNO_REG_CLASS): Handle MDR_REG.
30114         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
30115         (mn10300_register_move_cost): Likewise.
30116         * config/mn10300/mn10300.md (MDR_REG): New.
30117         (*movsi_internal): Handle moves to/from MDR_REGS.
30118
30119         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
30120         POST_MODIFY.
30121         (mn10300_secondary_reload): Tidy combination reload classes.
30122         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
30123         addresses for AM33.  Allow symbolic offsets for reg+imm.
30124         (mn10300_regno_in_class_p): New.
30125         (mn10300_legitimize_reload_address): New.
30126         * config/mn10300/mn10300.h (enum reg_class): Remove
30127         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
30128         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
30129         SP_OR_GENERAL_REGS.
30130         (REG_CLASS_NAMES): Update to match.
30131         (REG_CLASS_CONTENTS): Likewise.
30132         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
30133         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
30134         (REGNO_IN_RANGE_P): Remove.
30135         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
30136         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
30137         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
30138         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
30139         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
30140         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
30141         (REGNO_GENERAL_P): New.
30142         (HAVE_POST_MODIFY_DISP): New.
30143         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
30144         (LEGITIMIZE_RELOAD_ADDRESS): New.
30145         * config/mn10300/mn10300-protos.h: Update.
30146
30147         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
30148         DATA_REGS for AM33 stack-pointer destination.
30149         (mn10300_preferred_output_reload_class): Likewise.
30150         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
30151         into a form appropriate for ...
30152         (TARGET_SECONDARY_RELOAD): New.
30153         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
30154         * config/mn10300/mn10300-protos.h: Update.
30155         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
30156         reload_insi; use the "A" constraint for the scratch; handle AM33
30157         moves of sp to non-address registers.
30158
30159         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
30160         (*movqi_internal): ... here.
30161         (*am33_movhi, *mn10300_movhi): Merge into...
30162         (*movhi_internal): ... here.
30163         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
30164         as the source/destination of moves from/to SP.
30165         (movsf): Only allow for AM33-2.
30166         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
30167         any integer constant constraint.  Only allow for AM33-2.  Tidy
30168         all of the alternative outputs.
30169         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
30170         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
30171         for MN103.
30172         (udivsi3, umodsi3): New patterns for MN103 only.
30173
30174 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
30175
30176         * doc/tm.texi.in: Spell out that a lack of register class unions
30177         can lead to ICEs.
30178         * doc/tm.texi: Regenerate.
30179
30180 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
30181
30182         PR rtl-optimization/47337
30183         * dce.c (check_argument_store): New function.
30184         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
30185
30186         PR tree-optimization/47290
30187         * tree-eh.c (infinite_empty_loop_p): New function.
30188         (cleanup_empty_eh): Use it.
30189
30190 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
30191
30192         PR target/46997
30193         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
30194         (a64_expand_widen_sum): Ditto.
30195         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
30196         (vec_extract_evenodd_help): Ditto.
30197         (vec_extract_evenv4hi): Ditto.
30198         (vec_extract_oddv4hi): Ditto.
30199         (vec_extract_evenv2si): Ditto.
30200         (vec_extract_oddv2si): Ditto.
30201         (vec_extract_evenv2sf): Ditto.
30202         (vec_extract_oddv2sf): Ditto.
30203         (vec_pack_trunc_v4hi: Ditto.
30204         (vec_pack_trunc_v2si): Ditto.
30205         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
30206         (vec_interleave_highv8qi): Ditto.
30207         (mix1_r): Ditto.
30208         (vec_extract_oddv8qi): Ditto.
30209         (vec_interleave_lowv4hi): Ditto.
30210         (vec_interleave_highv4hi): Ditto.
30211         (vec_interleave_lowv2si): Ditto.
30212         (vec_interleave_highv2si): Ditto.
30213
30214 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
30215
30216         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
30217         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
30218         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
30219         (pa_c_mode_for_suffix): New.
30220         (TARGET_EXPAND_BUILTIN): Define.
30221         (TARGET_C_MODE_FOR_SUFFIX): Define.
30222         (pa_builtins): Define.
30223         (pa_init_builtins): Register __float128 type and init new support
30224         builtins.
30225         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
30226         * config/pa/quadlib.c (_U_Qfcopysign): New.
30227
30228 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
30229
30230         PR middle-end/46894
30231         * explow.c (allocate_dynamic_stack_space): Do not assume more than
30232         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
30233         are defined.
30234
30235 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30236
30237         PR tree-optimization/47179
30238         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
30239         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
30240
30241 2011-01-18  Richard Guenther  <rguenther@suse.de>
30242
30243         PR rtl-optimization/47216
30244         * emit-rtl.c: Include tree-flow.h.
30245         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
30246         of replicating it with different semantics.
30247         * Makefile.in (emit-rtl.o): Adjust.
30248
30249 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30250
30251         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
30252         (cortex_a9_dp): Handle neon types correctly.
30253
30254 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
30255
30256         PR rtl-optimization/47299
30257         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
30258         subtarget.  Use normal multiplication if both operands are constants.
30259         * expmed.c (expand_widening_mult): Don't try to optimize constant
30260         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
30261         before using it.
30262
30263 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30264
30265         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
30266         spacing after 'e.g.', typos, comma, hyphenation.
30267
30268 2011-01-17  Richard Henderson  <rth@redhat.com>
30269
30270         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
30271         (rx_restricted_mem_operand): New.
30272         (rx_shift_operand): Use register_operand.
30273         (rx_source_operand, rx_compare_operand): Likewise.
30274         * config/rx/rx.md (addsi3_flags): New expander.
30275         (adddi3): Rewrite as expander.
30276         (adc_internal, *adc_flags, adddi3_internal): New patterns.
30277         (subsi3_flags): New expander.
30278         (subdi3): Rewrite as expander.
30279         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
30280
30281         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
30282         (rx_init_builtins): Remove sat builtin.
30283         (rx_expand_builtin): Likewise.
30284         * config/rx/rx.md (ssaddsi3): New.
30285         (*sat): Rename from sat.  Represent the CC_REG input.
30286
30287         * config/rx/predicates.md (rshift_operator): New.
30288         * config/rx/rx.c (rx_expand_insv): Remove.
30289         * config/rx/rx-protos.h: Update.
30290         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
30291         operand to the canonical position.
30292         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
30293         (*bitclr, *bitclr_in_memory): Similarly.
30294         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
30295         (insv): Retain the zero_extract in the expansion.
30296
30297         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
30298         (bswaphi2, bitinvert, revw): Likewise.
30299
30300         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
30301         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
30302         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
30303         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
30304         (bitset, bitset_in_memory): Likewise.
30305         (bitinvert, bitinvert_in_memory): Likewise.
30306         (bitclr, bitclr_in_memory): Likewise.
30307         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
30308         (rx_strend, rx_cmpstrn): Likewise.
30309         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
30310         (bitop peep2 patterns): Remove.
30311
30312         * config/rx/rx.c (rx_match_ccmode): New.
30313         * config/rx/rx-protos.h: Update.
30314         * config/rx/rx.md (abssi2): Clobber, don't set flags.
30315         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
30316         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
30317         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
30318         (fix_truncsfsi2, floatsisf2): Likewise.
30319         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
30320         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
30321         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
30322         (*subsi3_flags, *xorsi3_flags): New.
30323
30324         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
30325
30326         * config/rx/rx.c (rx_print_operand): Remove workaround for
30327         unsplit comparison operations.
30328
30329         * config/rx/rx.md (movsicc): Split after reload.
30330         (*movsicc): Merge *movsieq and *movsine via match_operator.
30331         (*stcc): New pattern.
30332
30333         * config/rx/rx.c (rx_float_compare_mode): Remove.
30334         * config/rx/rx.h (rx_float_compare_mode): Remove.
30335         * config/rx/rx.md (cstoresi4): Split after reload.
30336         (*sccc): New pattern.
30337
30338         * config/rx/predicates.md (label_ref_operand): New.
30339         (rx_z_comparison_operator): New.
30340         (rx_zs_comparison_operator): New.
30341         (rx_fp_comparison_operator): New.
30342         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
30343         Validate that the flags are set properly for the comparison.
30344         (rx_gen_cond_branch_template): Remove.
30345         (rx_cc_modes_compatible): Remove.
30346         (mode_from_flags): New.
30347         (flags_from_code): Rename from flags_needed_for_conditional.
30348         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
30349         (rx_select_cc_mode): Likewise.
30350         (rx_split_fp_compare): New.
30351         (rx_split_cbranch): New.
30352         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
30353         (*cbranchsi4): Use match_operator and rx_split_cbranch.
30354         (*cbranchsf4): Similarly.
30355         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
30356         match_operator and rx_split_cbranch.
30357         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
30358         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
30359         (*cmpsi): Rename from cmpsi.
30360         (*tstsi): Rename from tstsi.
30361         (*cmpsf): Rename from cmpsf; use CC_Fmode.
30362         (*conditional_branch): Rename from conditional_branch.
30363         (*reveresed_conditional_branch): Remove.
30364         (b<code>): Remove expander.
30365         * config/rx/rx-protos.h: Update.
30366
30367         * config/rx/rx.c (rx_compare_redundant): Remove.
30368         * config/rx/rx.md (cmpsi): Don't use it.
30369         * config/rx/rx-protos.h: Update.
30370
30371         * config/rx/rx-modes.def (CC_F): New mode.
30372         * config/rx/rx.c (rx_select_cc_mode): New.
30373         * config/rx/rx.h (SELECT_CC_MODE): Use it.
30374         * config/rx/rx-protos.h: Update.
30375
30376 2011-01-17  Richard Henderson  <rth@redhat.com>
30377
30378         * except.c (dump_eh_tree): Fix stray ; after for statement.
30379
30380 2011-01-17  Richard Guenther  <rguenther@suse.de>
30381
30382         PR tree-optimization/47313
30383         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
30384         handling before copying the body.  Properly deal with
30385         by-reference result in SSA form.
30386
30387 2011-01-17  Ian Lance Taylor  <iant@google.com>
30388
30389         PR target/47219
30390         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
30391         (struct_value_alias_set): Don't define.
30392         (sparc_option_override): Don't set sparc_sr_alias_set and
30393         struct_value_alias_set.
30394         (save_or_restore_regs): Use gen_frame_mem rather than calling
30395         set_mem_alias_set.
30396         (sparc_struct_value_rtx): Likewise.
30397
30398 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30399
30400         PR target/47318
30401         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
30402         (_mm_maskstore_pd): Likewise.
30403         (_mm_maskload_ps): Likewise.
30404         (_mm_maskstore_ps): Likewise.
30405         (_mm256_maskload_pd): Change mask to __m256i.
30406         (_mm256_maskstore_pd): Likewise.
30407         (_mm256_maskload_ps): Likewise.
30408         (_mm256_maskstore_ps): Likewise.
30409
30410         * config/i386/i386-builtin-types.def: Updated.
30411         (ix86_expand_special_args_builtin): Likewise.
30412
30413         * config/i386/i386.c (bdesc_special_args): Update
30414         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
30415         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
30416         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
30417         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
30418
30419         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
30420         Use <avxpermvecmode> on mask register.
30421         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
30422
30423 2011-01-17  Olivier Hainque  <hainque@adacore.com>
30424             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
30425             Eric Botcazou  <ebotcazou@adacore.com>
30426
30427         PR target/46655
30428         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
30429         if <= USHRT_MAX in 32-bit mode.
30430
30431 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30432
30433         * doc/install.texi (Configuration, Specific): Wrap long
30434         lines in examples.  Allow line wrapping in long options
30435         and URLs where beneficial for PDF output.
30436
30437 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
30438
30439         * config/mips/mips.c (mips_classify_symbol): Don't return
30440         SYMBOL_PC_RELATIVE for nonlocal labels.
30441
30442 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
30443
30444         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
30445
30446 2011-01-15  Jan Hubicka  <jh@suse.cz>
30447
30448         PR tree-optimization/47276
30449         * ipa.c (function_and_variable_visibility): Do not try to mark alias
30450         declarations as needed.
30451
30452 2011-01-15  Martin Jambor  <mjambor@suse.cz>
30453
30454         * common.opt (fdevirtualize): New flag.
30455         * doc/invoke.texi (Option Summary): Document it.
30456         * opts.c (default_options_table): Add devirtualize flag.
30457         * ipa-prop.c (detect_type_change): Return immediately if
30458         devirtualize flag is not set.
30459         (detect_type_change_ssa): Likewise.
30460         (compute_known_type_jump_func): Likewise.
30461         (ipa_analyze_virtual_call_uses): Likewise.
30462
30463 2011-01-14  Martin Jambor  <mjambor@suse.cz>
30464
30465         PR tree-optimization/45934
30466         PR tree-optimization/46302
30467         * ipa-prop.c (type_change_info): New type.
30468         (stmt_may_be_vtbl_ptr_store): New function.
30469         (check_stmt_for_type_change): Likewise.
30470         (detect_type_change): Likewise.
30471         (detect_type_change_ssa): Likewise.
30472         (compute_complex_assign_jump_func): Check for dynamic type change.
30473         (compute_complex_ancestor_jump_func): Likewise.
30474         (compute_known_type_jump_func): Likewise.
30475         (compute_scalar_jump_functions): Likewise.
30476         (ipa_analyze_virtual_call_uses): Likewise.
30477         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
30478
30479 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30480
30481         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
30482         * config/i386/i386.opt (msse5): New Alias.
30483
30484 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30485
30486         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
30487         * config/sparc/linux64.h (CC1_SPEC): Likewise.
30488         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
30489         * config/sparc/sparc.h (CC1_SPEC): Likewise.
30490
30491 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30492
30493         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
30494         -mcpu options.
30495         * config/sparc/linux64.h (CC1_SPEC): Likewise.
30496         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
30497         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
30498         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
30499         Likewise.
30500         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
30501
30502 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30503
30504         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
30505
30506 2011-01-14  Mike Stump  <mikestump@comcast.net>
30507
30508         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
30509         * config/fr30/fr30.md: Likweise
30510         (movsi_push): Likewise.
30511         (movsi_pop): Likewise.
30512         (enter_func): Likewise.
30513         * config/moxie/moxie.md (movsi_push): Likewise.
30514         (movsi_pop): Likewise.
30515
30516 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30517
30518         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
30519         %{no_archive} %{exact_version}.
30520         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
30521         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
30522         %{no_archive} %{exact_version}.
30523         * config/mips/openbsd.h (LINK_SPEC): Likewise.
30524         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
30525         * config/mips/vxworks.h: Likewise.
30526
30527 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30528
30529         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
30530
30531 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30532
30533         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
30534         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
30535
30536 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30537
30538         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
30539         -nodefaultlib.
30540
30541 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30542
30543         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
30544         for mcpu not cpu.
30545         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
30546         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
30547         not cpu.
30548         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
30549         Don't handle -shlib.
30550
30551 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30552
30553         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
30554         (CC1_SPEC): Don't handle -profile.
30555
30556 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30557
30558         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
30559         * config/mips/mips.h (CC1_SPEC): Likewise.
30560
30561 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30562
30563         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
30564         * config/mips/mips.h (CC1_SPEC): Likewise.
30565
30566 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30567
30568         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
30569         * config/m32r/linux.h (LINK_SPEC): Likewise.
30570         * config/mips/linux.h (LINK_SPEC): Likewise.
30571         * config/mips/linux64.h (LINK_SPEC): Likewise.
30572         * config/sparc/linux.h (LINK_SPEC): Likewise.
30573         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
30574         LINK_SPEC): Likewise.
30575         * config/xtensa/linux.h (LINK_SPEC): Likewise.
30576
30577 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30578
30579         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
30580         %{version:-v}.
30581         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
30582
30583 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30584
30585         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
30586         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
30587
30588 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30589
30590         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
30591
30592 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30593
30594         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
30595         supports -Bstatic/-Bdynamic.
30596         * configure: Regenerate.
30597
30598 2011-01-14  Jan Hubicka  <jh@suse.cz>
30599             Jack Howarth  <howarth@bromo.med.uc.edu>
30600
30601         PR target/46037
30602         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
30603         when checking debug_info_level. Test write_symbols instead of
30604         debug_hooks->var_location when setting flag_var_tracking_uninit.
30605
30606 2011-01-14  Richard Guenther  <rguenther@suse.de>
30607
30608         PR tree-optimization/47179
30609         * target.def (ref_may_alias_errno): New target hook.
30610         * targhooks.h (default_ref_may_alias_errno): Declare.
30611         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
30612         (default_ref_may_alias_errno): New function.
30613         * target.h (struct ao_ref_s): Declare.
30614         * tree-ssa-alias.c: Include target.h.
30615         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
30616         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
30617         (targhooks.o): Likewise.
30618         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
30619         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
30620
30621 2011-01-14  Richard Guenther  <rguenther@suse.de>
30622
30623         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
30624
30625 2011-01-14  Richard Guenther  <rguenther@suse.de>
30626
30627         PR tree-optimization/47280
30628         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
30629         return CFG changes.
30630         (tree_ssa_forward_propagate_single_use_vars): Deal with
30631         CFG changes from associate_plusminus.
30632
30633 2011-01-14  Richard Guenther  <rguenther@suse.de>
30634
30635         PR middle-end/47281
30636         Revert
30637         2011-01-11  Richard Guenther  <rguenther@suse.de>
30638
30639         PR tree-optimization/46076
30640         * tree-ssa.c (useless_type_conversion_p): Conversions from
30641         unprototyped to empty argument list function types are useless.
30642
30643 2011-01-14  Richard Guenther  <rguenther@suse.de>
30644
30645         PR tree-optimization/47286
30646         * tree-ssa-structalias.c (new_var_info): Register variables are global.
30647
30648 2011-01-14  Martin Jambor  <mjambor@suse.cz>
30649
30650         PR middle-end/46823
30651         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
30652
30653 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
30654
30655         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
30656         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
30657         * config/xtensa/xtensa.c (xtensa_libcall_value,
30658         xtensa_function_value_regno_p): New functions.
30659         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
30660
30661 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
30662
30663         PR c++/47213
30664         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
30665         PE specific hook.
30666         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
30667         New function prototype.
30668         * config/i386/winnt.c (i386_pe_assemble_visibility):
30669         Warn only if attribute was specified by user.
30670
30671 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
30672
30673         PR target/47251
30674         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
30675         floating point.
30676         (floatunsdidf2_fcfidu): Ditto.
30677
30678 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30679
30680         * config/s390/s390.c (print_operand_address): Replace 'error' with
30681         'output_operand_lossage'.
30682         (print_operand): Likewise.
30683
30684 2011-01-13  Jeff Law  <law@redhat.com>
30685
30686         PR rtl-optimization/39077
30687         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
30688         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
30689         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
30690         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
30691         * gcse.c (prune_insertions_deletions): New function.
30692         (compute_pre_data): Use it.
30693
30694 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
30695
30696         PR debug/PR46973
30697         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
30698         static function.
30699         (prune_unused_types_mark): Use it.
30700
30701 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
30702
30703         PR rtl-optimization/45352
30704         * sel-sched.c: Update copyright years.
30705         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
30706         in the advancing loop when we have issued issue_rate insns.
30707
30708 2011-01-12  Richard Henderson  <rth@redhat.com>
30709
30710         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
30711         (TARGET_MD_ASM_CLOBBERS): New.
30712
30713         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
30714         (TARGET_DELEGITIMIZE_ADDRESS): New.
30715
30716         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
30717         (clzsi2, *bsch): New patterns.
30718
30719         * config/mn10300/mn10300.md (INT): New mode iterator.
30720         (*mov<INT>_clr): New pattern, and peep2 to generate it.
30721
30722         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
30723         flag_split_wide_types.
30724
30725         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
30726         (mn10300_trampoline_init): Rewrite without a template, an immediate
30727         load and a direct branch.
30728         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
30729
30730 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
30731
30732         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
30733         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
30734         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
30735         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
30736
30737 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
30738
30739         PR debug/47209
30740         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
30741         of type.
30742
30743 2011-01-12  Jan Hubicka  <jh@suse.cz>
30744
30745         PR driver/47244
30746         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
30747         (PLUGIN_COND_CLOSE): New macro.
30748         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
30749
30750 2011-01-12  Richard Guenther  <rguenther@suse.de>
30751
30752         PR lto/47259
30753         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
30754         register variables in a MEM_REF.
30755
30756 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
30757
30758         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
30759         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
30760         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
30761         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
30762         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
30763         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
30764         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
30765         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
30766         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
30767         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
30768         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
30769         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
30770         * config/gnu-user.h: New.  Copied from linux.h.
30771         (LINUX_TARGET_STARTFILE_SPEC): Rename to
30772         GNU_USER_TARGET_STARTFILE_SPEC.
30773         (LINUX_TARGET_ENDFILE_SPEC): Rename to
30774         GNU_USER_TARGET_ENDFILE_SPEC.
30775         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
30776         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
30777         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
30778         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
30779         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
30780         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
30781         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
30782         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
30783         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
30784         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
30785         * config/arm/linux-eabi.h (CC1_SPEC): Use
30786         GNU_USER_TARGET_CC1_SPEC.
30787         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
30788         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
30789         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
30790         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
30791         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
30792         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
30793         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
30794         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
30795
30796 2011-01-12  Richard Guenther  <rguenther@suse.de>
30797
30798         PR other/46946
30799         * doc/invoke.texi (ffast-math): Document it is turned on
30800         with -Ofast.
30801
30802 2011-01-12  Jan Hubicka  <jh@suse.cz>
30803
30804         PR tree-optimization/47233
30805         * opts.c (common_handle_option): Disable ipa-reference with profile
30806         feedback.
30807
30808 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
30809
30810         * c-parser.c (c_parser_objc_at_property_declaration): Improved
30811         error message.
30812
30813 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
30814
30815         * c-parser.c (c_lex_one_token): Updated and reindented some
30816         comments.  No changes in code.
30817
30818 2011-01-11  Ian Lance Taylor  <iant@google.com>
30819
30820         * godump.c (go_output_var): Don't output the variable if there is
30821         already a type with the same name.
30822
30823 2011-01-11  Ian Lance Taylor  <iant@google.com>
30824
30825         * godump.c (go_format_type): Don't generate float80.
30826
30827 2011-01-11  Richard Henderson  <rth@redhat.com>
30828
30829         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
30830         declaration.  Rewrite for both speed and size.
30831         (mn10300_address_cost_1): Remove.
30832         (mn10300_register_move_cost): New.
30833         (mn10300_memory_move_cost): New.
30834         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
30835         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
30836         extensions, shifts, BSWAP, CLZ.
30837         (mn10300_wide_const_load_uses_clr): Remove.
30838         (TARGET_REGISTER_MOVE_COST): New.
30839         (TARGET_MEMORY_MOVE_COST): New.
30840         * config/mn10300/mn10300-protos.h: Update.
30841         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
30842
30843         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
30844         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
30845         * config/mn10300/mn10300-protos.h: Update.
30846         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
30847         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
30848         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
30849         (*test_int_bitfield, *test_byte_bitfield): Remove.
30850         (*bit_test, *subreg_bit_test): Remove.
30851         * config/mn10300/predicates.md (const_8bit_operand): Remove.
30852
30853         * config/mn10300/constraints.md ("c"): Rename from "A".
30854         ("A", "D"): New constraint letters.
30855         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
30856         (fmssf4, fnmasf4, fnmssf4): Likewise.
30857
30858         * config/mn10300/mn10300.md (isa): New attribute.
30859         (enabled): New attribute.
30860
30861         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
30862         (abssf2, negsf2): Define only for hardware fp.
30863         (sqrtsf2): Reformat.
30864         (addsf3, subsf3, mulsf3): Merge expander and insn.
30865
30866         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
30867         (DEBUGGER_AUTO_OFFSET): Remove.
30868         (DEBUGGER_ARG_OFFSET): Remove.
30869
30870         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
30871         Emit register stores with the same offsets as the hardware.
30872         (mn10300_store_multiple_operation): Don't check that the register
30873         save offsets are monotonic.
30874         * config/mn10300/mn10300-protos.h: Update.
30875
30876         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
30877
30878         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
30879         in terms of the value on the stack, not the MDR register.
30880
30881 2011-01-11  Jan Hubicka  <jh@suse.cz>
30882
30883         PR lto/45721
30884         PR lto/45375
30885         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
30886         (symbol_alias_set_destroy, symbol_alias_set_contains,
30887         propagate_aliases_backward): Declare.
30888         * lto-streamer-out.c (struct sets): New sturcture.
30889         (trivally_defined_alias): New function.
30890         (output_alias_pair_p): Rewrite.
30891         (output_unreferenced_globals): Fix output of alias pairs.
30892         (produce_symtab): Likewise.
30893         * ipa.c (function_and_variable_visibility): Set weak alias destination
30894         as needed in lto.
30895         * varasm.c (symbol_alias_set_t): Remove.
30896         (symbol_alias_set_destroy): Export.
30897         (propagate_aliases_forward, propagate_aliases_backward): New functions
30898         based on ...
30899         (compute_visible_aliases): ... this one; remove.
30900         (trivially_visible_alias): New
30901         (trivially_defined_alias): New.
30902         (remove_unreachable_alias_pairs): Rewrite.
30903         (finish_aliases_1): Reorganize code checking if alias is defined.
30904         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
30905         in LTO mode.
30906
30907 2011-01-11  Richard Guenther  <rguenther@suse.de>
30908
30909         PR tree-optimization/46076
30910         * tree-ssa.c (useless_type_conversion_p): Conversions from
30911         unprototyped to empty argument list function types are useless.
30912
30913 2011-01-11  Richard Guenther  <rguenther@suse.de>
30914
30915         PR middle-end/45235
30916         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
30917         volatile MEMs as MEM_READONLY_P.
30918
30919 2011-01-11  Richard Guenther  <rguenther@suse.de>
30920
30921         PR tree-optimization/47239
30922         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
30923
30924 2011-01-11  Jeff Law  <law@redhat.com>
30925
30926         PR tree-optimization/47086
30927         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
30928         IVs from statements that might throw.
30929
30930 2011-01-10  Jan Hubicka  <jh@suse.cz>
30931
30932         PR lto/45375
30933         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
30934
30935 2011-01-10  Jan Hubicka  <jh@suse.cz>
30936
30937         PR lto/45375
30938         * profile.c (read_profile_edge_counts): Ignore profile inconistency
30939         when correcting profile.
30940
30941 2011-01-10  Jan Hubicka  <jh@suse.cz>
30942
30943         PR lto/46083
30944         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
30945         DECL_FINI_PRIORITY.
30946         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
30947         Restore DECL_FINI_PRIORITY.
30948
30949 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30950
30951         * doc/gimple.texi: Fix quoting of multi-word return values in
30952         @deftypefn statements.  Ensure presence of return value.  Wrap
30953         overlong @deftypefn lines.
30954         (is_gimple_operand, is_gimple_min_invariant_address): Remove
30955         descriptions of removed functions.
30956         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
30957         of multi-word return value in @deftypefn statement.
30958
30959 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30960
30961         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
30962         (Conditional Expressions, Logical Operators)
30963         (Statement and operand traversals): Do not indent smallexample
30964         code.  Fix duplicate function argument in example.
30965
30966 2011-01-10  Jeff Law  <law@redhat.com>
30967
30968         PR tree-optimization/47141
30969         * ipa-split.c (split_function): Handle case where we are
30970         returning a value and the return block has a virtual operand phi.
30971
30972 2011-01-10  Jan Hubicka  <jh@suse.cz>
30973
30974         PR tree-optimization/47234
30975         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
30976         (pass_feedback_split_functions): Declare.
30977         * passes.c (init_optimization_passes): Add ipa-split as subpass of
30978         tree-profile.
30979         * ipa-split.c (gate_split_functions): Update comments; disable
30980         split-functions for profile_arc_flag and branch_probabilities.
30981         (gate_feedback_split_functions): New function.
30982         (execute_feedback_split_functions): New function.
30983         (pass_feedback_split_functions): New global var.
30984
30985 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
30986
30987         PR lto/46760
30988         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
30989         calling gimple_call_set_cannot_inline.
30990
30991 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
30992
30993         * config/darwin-sections.def: Remove unused section.
30994
30995 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
30996
30997         PR c++/47218
30998         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
30999
31000 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
31001
31002         PR objc/47232
31003         * c-parser.c (c_parser_declaration_or_fndef): Improved
31004         error message.
31005
31006 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
31007
31008         * config/i386/winnt.c (i386_pe_start_function): Make sure
31009         to switch back to function's section.
31010
31011 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
31012
31013         PR gcc/46902
31014         PR testsuite/46912
31015         * plugin.c: Move include of dlfcn.h from here...
31016         * system.h: ... to here.
31017
31018 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31019
31020         * doc/cpp.texi (C++ Named Operators): Fix markup for header
31021         file name.
31022         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
31023         two extra empty pages in PDF output.
31024
31025 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
31026
31027         PR objc/47078
31028         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
31029         for error recovery purposes behave as if it was not specified so
31030         that the default type is usd.
31031
31032 2011-01-07  Jan Hubicka  <jh@suse.cz>
31033
31034         PR tree-optmization/46469
31035         * ipa.c (function_and_variable_visibility): Clear needed flags on
31036         nodes with external decls; handle weakrefs merging correctly.
31037
31038 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
31039
31040         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
31041         not false.
31042
31043 2011-01-07  Jan Hubicka  <jh@suse.cz>
31044
31045         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
31046         and no longer claim that gold is required for linker plugin.
31047         * configure: Regenerate.
31048         * gcc.c (PLUGIN_COND): New macro.
31049         (LINK_COMMAND_SPEC): Use it.
31050         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
31051         * config.in (HAVE_LTO_PLUGIN): New.
31052         * configure.ac (--with-lto-plugin): New parameter; autodetect
31053         HAVE_LTO_PLUGIN.
31054
31055 2011-01-07  Jan Hubicka  <jh@suse.cz>
31056
31057         PR tree-optimization/46367
31058         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
31059         when we can update original.
31060         (cgraph_mark_inline_edge): Sanity check.
31061         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
31062
31063 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31064
31065         * config/spu/spu.h (ASM_COMMENT_START): Define.
31066
31067 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
31068
31069         PR driver/42445
31070         * gcc.c (%>S): New.
31071         (SWITCH_KEEP_FOR_GCC): Likewise.
31072         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
31073         (do_spec_1): Handle "%>".
31074
31075         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
31076
31077 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
31078
31079         PR target/47201
31080         * config/i386/i386.c (ix86_delegitimize_address): If
31081         simplify_gen_subreg fails, return orig_x.
31082
31083         PR bootstrap/47187
31084         * value-prof.c (gimple_stringop_fixed_value): Handle
31085         lhs of the call properly.
31086
31087 2011-01-07  Jan Hubicka  <jh@suse.cz>
31088
31089         PR lto/45375
31090         * lto-opt.c (lto_reissue_options): Set flag_shlib.
31091
31092 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
31093
31094         * target.def (function_switched_text_sections): New hook.
31095         * doc/tm.texi: Regenerated.
31096         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
31097         * final.c (default_function_switched_text_sections): New.
31098         (final_scan_insn): Call function_switched_text_sections when a
31099         mid-function section change occurs.
31100         * output.h (default_function_switched_text_sections): Declare.
31101         * config/darwin-protos.h (darwin_function_switched_text_sections):
31102         Likewise.
31103         * config/darwin.c (darwin_function_switched_text_sections): New.
31104         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
31105
31106 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
31107
31108         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
31109         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
31110         the secondary code fragment when outputting for DWARF == 2.
31111
31112 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
31113
31114         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
31115         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
31116         Remove.
31117         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
31118         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
31119
31120 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
31121
31122         PR debug/46704
31123         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
31124         when it is not empty.
31125
31126 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
31127
31128         Bobcat Enablement
31129         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
31130         (case ${target}): Add btver1.
31131         * config/i386/driver-i386.c (host_detect_local_cpu): Let
31132         -march=native recognize btver1 processors.
31133         * config/i386/i386-c.c (ix86_target_macros_internal): Add
31134         btver1 def_and_undef
31135         * config/i386/i386.c (struct processor_costs btver1_cost): New
31136         btver1 cost table.
31137         (m_BTVER1): New definition.
31138         (m_AMD_MULTIPLE): Includes m_BTVER1.
31139         (initial_ix86_tune_features): Add btver1 tune.
31140         (processor_target_table): Add btver1 entry.
31141         (static const char *const cpu_names): Add btver1 entry.
31142         (software_prefetching_beneficial_p): Add btver1.
31143         (ix86_option_override_internal): Add btver1 instruction sets.
31144         (ix86_issue_rate): Add btver1.
31145         (ix86_adjust_cost): Add btver1.
31146         * config/i386/i386.h (TARGET_BTVER1): New definition.
31147         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
31148         (enum processor_type): Add PROCESSOR_BTVER1.
31149         * config/i386/i386.md (define_attr "cpu"): Add btver1.
31150
31151 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31152
31153         PR target/43309
31154         * config/i386/i386.c (legitimize_tls_address)
31155         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
31156         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
31157         (tls_initial_exec_64_sun): New pattern.
31158
31159 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
31160
31161         * doc/invoke.texi (Overall Options): Improve wording and markup
31162         of the description of -wrapper.
31163
31164 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
31165
31166         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
31167         rdynamic, threads): New Driver options.
31168
31169 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31170
31171         PR target/38118
31172         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
31173         if coming from .tdata.
31174         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
31175
31176 2011-01-06  Jan Hubicka  <jh@suse.cz>
31177
31178         PR lto/47188
31179         * collect2.c (main): Do not enable LTOmode when plugin is active.
31180
31181 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31182
31183         PR other/45915
31184         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
31185         --version output if supported.
31186         * configure: Regenerate.
31187
31188 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
31189
31190         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
31191         Driver options.
31192
31193 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
31194
31195         PR c/47150
31196         * c-convert.c (convert): When converting a complex expression
31197         other than COMPLEX_EXPR to a different complex type, ensure
31198         c_save_expr is called instead of save_expr, unless in_late_binary_op.
31199         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
31200         when converting COMPLEX_TYPE.
31201
31202 2011-01-06  Ira Rosen  <irar@il.ibm.com>
31203
31204         PR tree-optimization/47139
31205         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
31206         only the last reduction value is used outside the loop.  Update
31207         documentation.
31208
31209 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
31210
31211         * config/rtems.opt: New.
31212         * config.gcc (*-*-rtems*): Use rtems.opt.
31213
31214 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
31215
31216         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
31217         processors do not support 3DNow instructions.
31218
31219 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31220
31221         * config/spu/spu.c (spu_option_override): Set parameter
31222         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
31223
31224 2011-01-05  Jan Hubicka  <jh@suse.cz>
31225
31226         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
31227         at the command line.
31228
31229 2011-01-05  Martin Jambor  <mjambor@suse.cz>
31230
31231         PR lto/47162
31232         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
31233         deltas on streamed outgoing edges.
31234         (output_node_opt_summary): Output info for outgoing edges only when
31235         the node is in new parameter set.
31236         (output_cgraph_opt_summary): New parameter set, passed to the two
31237         aforementioned functions.  Update its forward declaration and its
31238         callee too.
31239
31240 2011-01-05  Tom Tromey  <tromey@redhat.com>
31241
31242         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
31243         operator to c_finish_omp_atomic.
31244         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
31245         (build_unary_op): Update.
31246         (build_modify_expr): Update.
31247         (build_asm_expr): Update.
31248
31249 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31250
31251         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
31252         newly inserted insns.
31253         (pad_bb): Likewise.
31254         (spu_emit_branch_hint): Likewise.
31255         (insert_hbrp_for_ilb_runout): Likewise.
31256         (spu_machine_dependent_reorg): Call df_finish_pass after
31257         schedule_insns returns.
31258
31259 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31260
31261         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
31262
31263 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
31264
31265         PR tree-optimization/47005
31266         * tree-sra.c (struct access): Add 'non_addressable' bit.
31267         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
31268         (decide_one_param_reduction): Return 0 if the parameter is passed by
31269         reference and one of the accesses in the group is non_addressable.
31270
31271 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
31272
31273         PR tree-optimization/47056
31274         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
31275         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
31276         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
31277
31278 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
31279
31280         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
31281         initializer.  Skip view conversions from aggregate types.
31282
31283 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
31284
31285         PR bootstrap/47055
31286         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
31287
31288 2011-01-04  Philipp Thomas  <pth@suse.de>
31289
31290         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
31291         obvious typo.
31292
31293 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31294
31295         * function.c (thread_prologue_and_epilogue_insns): Do not crash
31296         on empty epilogue sequences.
31297
31298 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
31299
31300         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
31301         non-static): New Driver options.
31302
31303 2011-01-04  Jie Zhang  <jie@codesourcery.com>
31304
31305         PR driver/47137
31306         * gcc.c (default_compilers[]): Set combinable field to 0
31307         for all assembly languages.
31308
31309 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
31310
31311         * config/mips/loongson3a.md: New file.
31312         * config/mips/mips.md: Include loongson3a.md.
31313         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
31314         TUNE_LOONGSON_3A.
31315
31316 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
31317
31318         PR middle-end/47017
31319         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
31320         instead of convert_memory_address_addr_space on the base expression.
31321
31322 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31323
31324         * config/spu/spu.c (spu_option_override): Update error text
31325         for bad -march= / -mtune= values.
31326
31327 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31328
31329         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
31330         if branch-hint optimization will be performed.
31331
31332 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
31333
31334         PR tree-optimization/47148
31335         * ipa-split.c (split_function): Convert arguments to
31336         DECL_ARG_TYPE if possible.
31337
31338         PR tree-optimization/47155
31339         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
31340         when computing uns.
31341
31342         PR rtl-optimization/47157
31343         * combine.c (try_combine): If undobuf.other_insn becomes
31344         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
31345         and set *new_direct_jump_p too.
31346
31347 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
31348
31349         PR tree-optimization/47021
31350         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
31351
31352 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
31353
31354         * gcc.c (process_command): Update copyright notice dates.
31355         * gcov.c (print_version): Likewise.
31356         * gcov-dump.c (print_version): Likewise.
31357         * mips-tfile.c (main): Likewise.
31358         * mips-tdump.c (main): Likewise.
31359
31360 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31361
31362         PR tree-optimization/46801
31363         * tree-sra.c (type_internals_preclude_sra_p): Check whether
31364         aggregate fields start at byte boundary instead of the bit-field flag.
31365
31366 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
31367
31368         PR driver/47137
31369         * gcc.c (main): Revert revision 168407.
31370
31371 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31372
31373         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
31374
31375 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31376
31377         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
31378         vector optab to expand vector/scalar shift, update gimple to vector.
31379
31380 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31381
31382         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
31383         a thunk.
31384
31385 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31386
31387         PR tree-optimization/46984
31388         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
31389         HOST_WIDE_INT.
31390         (cgraph_create_indirect_edge): Fixed line length.
31391         (cgraph_indirect_call_info): Declare.
31392         (cgraph_make_edge_direct) Update declaration.
31393         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
31394         (cgraph_create_indirect_edge): Use it.
31395         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
31396         callees.
31397         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
31398         the new thunk_delta representation.
31399         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
31400         HOST_WIDE_INT.
31401         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
31402         (ipa_read_indirect_edge_info): Likewise.
31403         * lto-cgraph.c (output_edge_opt_summary): New function.
31404         (output_node_opt_summary): Call it on all outgoing edges.
31405         (input_edge_opt_summary): New function.
31406         (input_node_opt_summary): Call it on all outgoing edges.
31407
31408 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
31409
31410         PR driver/47137
31411         * gcc.c (main): Don't check have_o when settting combine_inputs.
31412
31413 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
31414
31415         * regrename.c: Add general comment describing the pass.
31416         (struct du_head): Remove 'length' field.
31417         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
31418         (regrename_optimize): Do not sort chains.  Rework comments, add others.
31419         Force renaming to the preferred class (if any) in the first pass and do
31420         not consider registers that belong to it in the second pass.
31421         (create_new_chain): Do not set 'length' field.
31422         (scan_rtx_reg): Likewise.
31423
31424 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
31425
31426         PR tree-optimization/47140
31427         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
31428         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
31429         to bit_value_binop.
31430
31431         PR rtl-optimization/47028
31432         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
31433         parm_birth_insn instead of at the beginning of first bb.
31434
31435 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
31436
31437         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
31438         Remove the word "see" before "@pxref".
31439         * doc/rtl.texi: Remove the word "see" before "@pxref".
31440
31441 2011-01-01  Jan Hubicka  <jh@suse.cz>
31442
31443         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
31444         memory.
31445
31446 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
31447
31448         PR target/38662
31449         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
31450
31451 \f
31452 Copyright (C) 2011 Free Software Foundation, Inc.
31453
31454 Copying and distribution of this file, with or without modification,
31455 are permitted in any medium without royalty provided the copyright
31456 notice and this notice are preserved.