OSDN Git Service

18e0107d71ed1e36cb3479f1f6656c61c66498b1
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
2
3         * c-parser.c (enum c_parser_prec): New enum, moved from within
4         c_parser_binary_expression.
5         (c_parser_binary_expression): Add PREC argument.  Stop parsing
6         if operator has lower or equal precedence than PREC.
7         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
8         callers.
9         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
10         Adjust c_finish_omp_atomic caller.
11         (c_parser_omp_taskyield): New function.
12         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
13         (c_parser_omp_clause_name): Handle final and mergeable clauses.
14         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
15         functions.
16         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
17         and PRAGMA_OMP_CLAUSE_MERGEABLE.
18         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
19         (c_parser_omp_clause_reduction): Handle min and max.
20         * c-typeck.c (c_finish_omp_clauses): Don't complain about
21         const qualified predetermined vars in firstprivate clause.
22         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
23         Handle MIN_EXPR and MAX_EXPR.
24         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
25         and OMP_CLAUSE_MERGEABLE.
26         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
27         and OMP_ATOMIC_CAPTURE_NEW.
28         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
29         OMP_CLAUSE_MERGEABLE.
30         (omp_clause_code_name): Likewise.
31         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
32         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
33         and OMP_CLAUSE_MERGEABLE.
34         (OMP_CLAUSE_FINAL_EXPR): Define.
35         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
36         OMP_CLAUSE_MERGEABLE.
37         (expand_task_call): Likewise.
38         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
39         (expand_omp_atomic_fetch_op): Handle cases where old or new
40         value is needed afterwards.
41         (expand_omp_atomic): Call expand_omp_atomic_load resp.
42         expand_omp_atomic_store.
43         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
44         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
45         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
46         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
47         * tree-nested.c (convert_nonlocal_omp_clauses,
48         convert_local_omp_clauses): Likewise.
49         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
50         OMP_ATOMIC_CAPTURE_NEW): New.
51         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
52         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
53         New inlines.
54         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
55         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
56         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
57
58 2011-08-02  Kai Tietz  <ktietz@redhat.com>
59
60         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
61         boolean-type.
62         (ssa_forward_propagate_and_combine): Interprete result of
63         forward_propagate_comparison.
64         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
65         boolean-typed operands for comparisons.
66
67 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
68         
69         * config/avr/libgcc.S: Gather related function in the
70         same input section.
71         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
72         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
73         references.
74         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
75         __udivmodsi4, __divmodsi4, __prologue_saves__,
76         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
77         __do_copy_data, __do_clear_bss, __do_global_ctors,
78         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
79
80 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
81
82         PR target/47766
83         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
84         (stack_protect_test): The pattern compares ptr_mode value.
85
86 2011-08-02  Alan Modra  <amodra@gmail.com>
87
88         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
89         note for save_LR_around_toc_setup sequence.
90
91 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
92
93         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
94
95 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
96             Joseph Myers  <joseph@codesourcery.com>
97
98         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
99         * hwint.c: Include diagnostic-core.h.
100         (abs_hwi): New.
101         (gcd): Moved here...
102         (pos_mul_hwi): New.
103         (mul_hwi): New.
104         (least_common_multiple): Moved here...
105         * hwint.h (gcd): ... from here.
106         (least_common_multiple): ... from here.
107         (HOST_WIDE_INT_MIN): New.
108         (HOST_WIDE_INT_MAX): New.
109         (abs_hwi): Declared.
110         (gcd): Declared.
111         (pos_mul_hwi): Declared.
112         (mul_hwi): Declared.
113         (least_common_multiple): Declared.
114         * omega.c (check_pos_mul): Removed.
115         (check_mul): Removed.
116         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
117         mul_hwi instead of check_mul.
118
119 2011-08-01  Richard Henderson  <rth@redhat.com>
120
121         PR target/49881
122         * config/avr/avr.h (PUSH_ROUNDING): New.
123         * config/avr/avr.md (pushqi1): Rename from *pushqi.
124         (*pushhi, *pushsi, *pushsf): Remove.
125         (MPUSH): New mode iterator.
126         (push<MPUSH>1): New expander.
127
128 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
129
130         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
131         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
132         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
133         mmix_preferred_output_reload_class): Remove.
134         * config/mmix/mmix.c (mmix_preferred_reload_class,
135         mmix_preferred_output_reload_class): Make static. Change rclass
136         argument and return type to reg_class_t.
137         (TARGET_PREFERRED_RELOAD_CLASS,
138         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
139
140 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
141
142         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
143         handling.
144
145 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
146
147         PR target/47766
148         * config/i386/i386.md (PTR): New.
149         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
150         (stack_protect_test): Likewise.
151         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
152         (stack_tls_protect_set_<mode>): Likewise.
153         (stack_tls_protect_test_<mode>): Likewise.
154
155 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
156
157         PR target/49927
158         * config/i386/i386.c (ix86_address_subreg_operand): New.
159         (ix86_decompose_address): Use ix86_address_subreg_operand.
160         (ix86_legitimate_address_p): Do not assert that subregs satisfy
161         register_no_elim_operand in DImode.
162
163 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
164
165         PR tree-optimization/49926
166         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
167         in a chain doesn't have uses both inside and outside the loop.
168
169 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
170
171         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
172         * config/avr/avr-devices.c (avr_mcu_types): Use it.
173         * config/avr/avr-mcus.def (AVR_MCU): Use it.
174         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
175         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
176         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
177         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
178         to detect if XJMP must not be skipped.
179
180 2011-08-02  Alan Modra  <amodra@gmail.com>
181
182         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
183         Delete.
184         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
185         (rs6000_emit_prologue): Don't prematurely return when
186         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
187         save_toc_in_prologue case.
188         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
189         calls_alloca.
190
191 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
192
193         * config/avr/avr-devices.c: Delete SVN property svn:executable.
194         * config/avr/predicates.md: Ditto.
195         * config/avr/driver-avr.c: Ditto.
196         * config/avr/genopt.sh: Set SVN property svn:executable to *.
197
198 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
199
200         * calls.c (emit_library_call_value_1): Declare size only if
201         BLOCK_REG_PADDING is defined.
202
203 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
204
205         PR target/49547
206         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
207         (x86_64-*-*): Likewise.
208         * config/i386/i386.opt (mlzcnt): New.
209         * config/i386/abmintrin.h: File removed.
210         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
211         * config/i386/lzcntintrin.h: ... here.  New file.
212         (__lzcnt): Rename to ...
213         (__lzcnt32): ... this.
214         * config/i386/bmiintrin.h (head): Update copyright year.
215         (__lzcnt_u16): Removed.
216         (__lzcnt_u32): Likewise.
217         (__lzcnt_u64): Likewise.
218         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
219         is defined, remove abmintrin.h.
220         * config/i386/cpuid.h (bit_LZCNT): New.
221         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
222         LZCNT feature.
223         * config/i386/i386-c.c (ix86_target_macros_internal): Define
224         __LZCNT__ if needed.
225         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
226         (ix86_option_override_internal): Handle LZCNT option.
227         (ix86_valid_target_attribute_inner_p): Likewise.
228         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
229         * config/i386/i386.h (TARGET_LZCNT): New.
230         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
231         * config/i386/i386.md (clz<mode>2): Update insn constraint.
232         (clz<mode>2_lzcnt): Likewise.
233         * doc/invoke.texi: Mention -mlzcnt option.
234         * doc/extend.texi: Likewise.
235
236 2011-08-01  Julian Brown  <julian@codesourcery.com>
237
238         * configure.ac (fixed-point): Add ARM support.
239         * configure: Regenerate.
240         * config/arm/arm.c (arm_fixed_mode_set): New struct.
241         (arm_set_fixed_optab_libfunc): New.
242         (arm_set_fixed_conv_libfunc): New.
243         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
244         ARM-specific names.
245         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
246         return values in SImode.
247         (arm_return_in_msb): Return fixed-point types in the msb.
248         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
249         upwards.
250         (arm_scalar_mode_supported_p): Support fixed-point modes.
251         (arm_vector_mode_supported_p): Support vector fixed-point modes.
252         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
253         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
254         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
255         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
256         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
257         New mode iterators.
258         (qaddsub_suf): New mode attribute.
259         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
260         vector modes.
261         * config/arm/predicates.md (sat_shift_operator): New predicate.
262         * config/arm/arm-fixed.md: New.
263         * config/arm/arm.md: Include arm-fixed.md.
264         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
265
266 2011-08-01  Julian Brown  <julian@codesourcery.com>
267
268         * calls.c (emit_library_call_value_1): Support padding for libcall
269         arguments and return values.
270         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
271         downwards in big-endian mode.
272
273 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
274
275         PR debug/49887
276         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
277         * config/sol2-protos.h: Likewise.
278         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
279         solaris_code_end.
280         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
281         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
282         solaris_file_end.
283         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
284
285 2011-08-01  Julian Brown  <julian@codesourcery.com>
286
287         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
288
289 2011-08-01  Julian Brown  <julian@codesourcery.com>
290
291         * final.c (output_addr_const): Print fixed-point constants as
292         decimal not hex.
293
294 2011-08-01  Richard Guenther  <rguenther@suse.de>
295
296         * stor-layout.c (initialize_sizetypes): Properly sign-extend
297         bitsiztype TYPE_MAX_VALUE.
298
299 2011-08-01  Julian Brown  <julian@codesourcery.com>
300
301         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
302         comparison helpers.
303
304 2011-07-31  Richard Henderson  <rth@redhat.com>
305
306         * config/h8300/crti.asm: Add flags to .section directive.
307         * config/h8300/crtn.asm: Likewise.
308
309 2011-07-31  Richard Henderson  <rth@redhat.com>
310
311         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
312         * tree.c (build_common_tree_nodes): Likewise.
313
314 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
315
316         PR target/49880
317         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
318         (divsi3_i1): Likewise.
319
320 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
321
322         PR tree-optimization/49749
323         * tree-ssa-reassoc.c (get_rank): New forward declaration.
324         (PHI_LOOP_BIAS): New macro.
325         (phi_rank): New function.
326         (loop_carried_phi): Likewise.
327         (propagate_rank): Likewise.
328         (get_rank): Add calls to phi_rank and propagate_rank.
329
330 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
331
332         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
333         of TARGET_64BIT.
334         (PTRDIFF_TYPE): Likewise.
335
336 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
337
338         PR target/49920
339         * config/i386/i386.md (strset): Do not expand strset_singleop
340         when %eax or $edi are fixed.
341         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
342         (*strsetsi_1): Ditto.
343         (*strsethi_1): Ditto.
344         (*strsetqi_1): Ditto.
345         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
346         (*rep_stossi): Ditto.
347         (*rep_stosqi): Ditto.
348         (*strlenqi_1): Ditto.
349         (cmpstrnsi): Also fail when %ecx is fixed.
350         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
351         (*cmpstrnqi_1): Ditto.
352         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
353         (*strmovsi_1): Ditto.
354         (*strmovhi_1): Ditto.
355         (*strmovqi_1): Ditto.
356         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
357         (*rep_movsi): Ditto.
358         (*rep_movqi): Ditto.
359
360 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
361
362         PR target/47908
363         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
364         Disable instruction scheduling for non-ColdFire targets.
365         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
366
367 2011-07-31  Revital Eres  <revital.eres@linaro.org>
368
369         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
370         of anti-dep edge from a branch.
371         (add_cross_iteration_register_deps): Create anti-dep edge from
372         a branch.
373
374 2011-07-31  Revital Eres  <revital.eres@linaro.org>
375
376         * modulo-sched.c: Change comment.
377         (reset_sched_times): Fix print message.
378         (print_partial_schedule): Add print info.
379
380 2011-07-31  Tom de Vries  <tom@codesourcery.com>
381
382         PR middle-end/43513
383         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
384         get_object_alignment and TYPE_ALIGN.
385
386 2011-07-30  Tom de Vries  <tom@codesourcery.com>
387
388         PR middle-end/43513
389         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
390         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
391
392 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
393
394         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
395         <sys/sbd.h>.
396         (cpu_types): New array.
397         (cputype): New function.
398         (host_detect_local_cpu): Only define buf, f if !__sgi__.
399         Use scaninvent instead of /proc/cpuinfo if __sgi__.
400         * config.host: Also use driver-native.o, mips/x-native on
401         mips-sgi-irix*.
402         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
403         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
404         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
405
406 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
407
408         PR middle-end/49897
409         PR middle-end/49898
410         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
411         in nested parallel and outer is a gimple_reg, mark it as addressable
412         and set its bit in task_shared_vars bitmap too.
413
414 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
415
416         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
417
418 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
419
420         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
421         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
422         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
423         AMASK_LOCKPFTCHOK): Define.
424         (host_detect_local_cpu): Remove buf, f, cpu_names.
425         Define cpu_types, implver, amask.
426         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
427         native CPU.
428         * config.host: Also use driver-alpha.o, alpha/x-alpha on
429         alpha*-dec-osf*.
430         * config/alpha/osf5.h [__alpha__ || __alpha]
431         (host_detect_local_cpu): Declare.
432         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
433         (DRIVER_SELF_SPECS): Define.
434
435 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
436
437         PR target/47715
438         * config/i386/i386.md (*load_tp_x32): New.
439         (*load_tp_x32_zext): Ditto.
440         (*add_tp_x32): Ditto.
441         (*add_tp_x32_zext): Ditto.
442         (*load_tp_<mode>): Disable for TARGET_X32 targets.
443         (*add_tp_<mode>): Ditto.
444         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
445         ptr_mode and convert to Pmode if needed.
446
447 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
448
449         PR target/49687
450         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
451         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
452         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
453         Add X to register footprint: Clobber r26/r27.
454
455 2011-07-29  Richard Guenther  <rguenther@suse.de>
456
457         * builtins.c (fold_builtin_signbit): Build the comparison
458         with a proper type.
459
460 2011-07-29  Richard Guenther  <rguenther@suse.de>
461
462         PR tree-optimization/49893
463         * tree-predcom.c (suitable_reference_p): Volatile references
464         are not suitable.
465
466 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
467
468         PR target/49313
469         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
470         (__ctzsi2): Result for 0 may be undefined.
471         (__ctzhi2): Result for 0 may be undefined.
472         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
473         (__popcountsi2): Ditto. And don't clobber r26.
474         (__popcountdi2): Ditto. And don't clobber r27.
475         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
476         (parityhi2): New expand.
477         (paritysi2): New expand.
478         (popcounthi2): New expand.
479         (popcountsi2): New expand.
480         (clzhi2): New expand.
481         (clzsi2): New expand.
482         (ctzhi2): New expand.
483         (ctzsi2): New expand.
484         (ffshi2): New expand.
485         (ffssi2): New expand.
486         (copysignsf3): New insn.
487         (bswapsi2): New expand.
488         (*parityhi2.libgcc): New insn.
489         (*parityqihi2.libgcc): New insn.
490         (*paritysihi2.libgcc): New insn.
491         (*popcounthi2.libgcc): New insn.
492         (*popcountsi2.libgcc): New insn.
493         (*popcountqi2.libgcc): New insn.
494         (*popcountqihi2.libgcc): New insn-and-split.
495         (*clzhi2.libgcc): New insn.
496         (*clzsihi2.libgcc): New insn.
497         (*ctzhi2.libgcc): New insn.
498         (*ctzsihi2.libgcc): New insn.
499         (*ffshi2.libgcc): New insn.
500         (*ffssihi2.libgcc): New insn.
501         (*bswapsi2.libgcc): New insn.
502
503 2011-07-29  Richard Guenther  <rguenther@suse.de>
504
505         * tree-vrp.c (get_value_range): Only set parameter default
506         definitions to varying, leave others at undefined.
507         (extract_range_from_binary_expr): Fix undefined handling.
508         (vrp_visit_phi_node): Handle merged undefined state.
509
510 2011-07-29  Wei Guozhi  <carrot@google.com>
511
512         PR rtl-optimization/49799
513         * combine.c (make_compound_operation): Check if the bit field is valid
514         before change it to bit field extraction.
515
516 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
517
518         PR rtl-optimization/49891
519         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
520         newly created returnjumps.
521
522 2011-07-28  DJ Delorie  <dj@redhat.com>
523
524         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
525         local frame in a naked function, and produce a suitable error for
526         that specific case.
527
528         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
529         registers to be reloaded in HI classes when the target is HI.
530
531 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
532
533         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
534         bound_one, bound_two.
535
536 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
537
538         PR middle-end/48648
539         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
540         CLAST assignments.
541         (translate_clast): Same.
542         (translate_clast_assignment): New.
543
544 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
545
546         PR tree-optimization/49876
547         * sese.c (rename_uses): Do not return false on gloog_error: set
548         the new_expr to integer_zero_node and continue code generation.
549         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
550
551 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
552
553         PR debug/49846
554         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
555         arguments also check if they aren't initialized with a MODE_INT
556         mode of the same size.
557
558 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
559
560         * expr.c (get_bit_range): Handle *MEM_REF's.
561
562 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
563
564         * rtlanal.c (tablejump_p): False for returns.
565         * reorg.c (first_active_target_insn): New static function.
566         (find_end_label): Set JUMP_LABEL for a new returnjump.
567         (optimize_skip, get_jump_flags, rare_destination,
568         mostly_true_jump, get_branch_condition,
569         steal_delay_list_from_target, own_thread_p,
570         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
571         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
572         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
573         * jump.c (delete_related_insns): Likewise.
574         (jump_to_label_p): New function.
575         (redirect_target): New static function.
576         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
577         (redirect_jump_1): Assert that the new label is nonnull.
578         (redirect_jump): Likewise.
579         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
580         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
581         exit block.
582         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
583         changed.  Ensure that the right label is passed to redirect_jump.
584         * function.c (emit_return_into_block,
585         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
586         ret_rtx in their JUMP_LABEL.
587         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
588         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
589         pass ret_rtx as label.
590         * cfglayout.c (fixup_reorder_chain): Use
591         force_nonfallthru_and_redirect rather than force_nonfallthru.
592         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
593         * rtl.h (ANY_RETURN_P): New macro.
594         (jump_to_label_p): Declare.
595         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
596         JUMP_LABELs.
597         (mark_target_live_regs): Likewise.
598         * basic-block.h (force_nonfallthru_and_redirect): Declare.
599         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
600         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
601         alpha_tablejump_best_label): Remove functions.
602         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
603         alpha_tablejump_best_label): Remove declarations.
604         * config/sh/sh.c (barrier_align, split_branches): Adjust for
605         ret_rtx in JUMP_LABELs.
606         * config/arm/arm.c (is_jump_table): Likewise.
607
608 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
609
610         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
611         special predicate.  Remove explicit mode checks.
612
613 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
614
615         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
616         DW_AT_data_member_location containing just DW_OP_plus_uconst.
617
618         PR debug/49871
619         * dwarf2out.c (size_of_die, value_format, output_die): Use
620         DW_FORM_udata instead of DW_FORM_data[48] for
621         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
622
623 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
624
625         * config/i386/i386.md (*tls_global_dynamic_64): Update
626         length attribute.
627
628 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
629
630         PR target/47715
631         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
632         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
633         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
634         (tls_dynamic_gnu2_64): Ditto.
635         (*tls_dynamic_gnu2_lea_64): Ditto.
636         (*tls_dynamic_gnu2_call_64): Ditto.
637         (*tls_dynamic_gnu2_combine_64): Ditto.
638
639 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
640
641         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
642
643 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
644
645         PR target/47364
646         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
647
648 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
649
650         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
651         before the core constraints. Adjust attributes.
652         ("*thumb2_movdf_vfp"): Likewise.
653
654 2011-07-28  Kai Tietz  <ktietz@redhat.com>
655
656         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
657         (simplify_truth_ops_using_ranges): Likewise.
658         (build_assert_expr_for): Likewise.
659         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
660         and handle BIT_NOT_EXPR for truth-operation.
661
662 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
663
664         PR target/49313
665         Undo r176835 from trunk
666         2011-07-27  Georg-Johann Lay
667
668 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
669
670         PR target/49687
671         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
672         Add _muluhisi3, _mulshisi3, _usmulhisi3.
673         * config/avr/libgcc.S (__mulsi3): Rewrite.
674         (__mulhisi3): Rewrite.
675         (__umulhisi3): Rewrite.
676         (__usmulhisi3): New.
677         (__muluhisi3): New.
678         (__mulshisi3): New.
679         (__mulohisi3): New.
680         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
681         declare.
682         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
683         (pseudo_register_or_const_int_operand): New.
684         (combine_pseudo_register_operand): New.
685         (u16_operand): New.
686         (s16_operand): New.
687         (o16_operand): New.
688         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
689         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
690         (any_extend, any_extend2): New code iterators.
691         (extend_prefix): New code attribute.
692         (mulsi3): Rewrite. Turn insn to expander.
693         (mulhisi3): Ditto.
694         (umulhisi3): Ditto.
695         (usmulhisi3): New expander.
696         (*mulsi3): New insn-and-split.
697         (mulu<mode>si3): New insn-and-split.
698         (muls<mode>si3): New insn-and-split.
699         (mulohisi3): New insn-and-split.
700         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
701         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
702         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
703         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
704         insn-and-split.
705         (*mulsi3_call): Rewrite.
706         (*mulhisi3_call): Rewrite.
707         (*umulhisi3_call): Rewrite.
708         (*usmulhisi3_call): New insn.
709         (*muluhisi3_call): New insn.
710         (*mulshisi3_call): New insn.
711         (*mulohisi3_call): New insn.
712         (extendqihi2): Use combine_pseudo_register_operand as predicate
713         for operand 1.
714         (extendqisi2): Ditto.
715         (zero_extendqihi2): Ditto.
716         (zero_extendqisi2): Ditto.
717         (zero_extendhisi2): Ditto.
718         (extendhisi2): Ditto. Don't early-clobber operand 0.
719
720 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
721
722         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
723
724 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
725
726         PR tree-optimization/49471
727         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
728         iv only when the largest type is unsigned.  Do not call
729         lang_hooks.types.type_for_size.
730
731 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
732
733         PR middle-end/45450
734         * graphite-poly.c (apply_poly_transforms): Disable legality check
735         after an openscop read.
736
737 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
738
739         PR middle-end/47691
740         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
741         copy_bb_and_scalar_dependences.
742         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
743         (graphite_copy_stmts_from_block): Update call to rename_uses.
744         (copy_bb_and_scalar_dependences): Update call to
745         graphite_copy_stmts_from_block.
746         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
747
748 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
749
750         PR target/49313
751         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
752         (__ctzsi2): Result for 0 may be undefined.
753         (__ctzhi2): Result for 0 may be undefined.
754         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
755         (__popcountsi2): Ditto. And don't clobber r26.
756         (__popcountdi2): Ditto. And don't clobber r27.
757         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
758         (parityhi2): New expand.
759         (paritysi2): New expand.
760         (popcounthi2): New expand.
761         (popcountsi2): New expand.
762         (clzhi2): New expand.
763         (clzsi2): New expand.
764         (ctzhi2): New expand.
765         (ctzsi2): New expand.
766         (ffshi2): New expand.
767         (ffssi2): New expand.
768         (copysignsf3): New insn.
769         (bswapsi2): New expand.
770         (*parityhi2.libgcc): New insn.
771         (*parityqihi2.libgcc): New insn.
772         (*paritysihi2.libgcc): New insn.
773         (*popcounthi2.libgcc): New insn.
774         (*popcountsi2.libgcc): New insn.
775         (*popcountqi2.libgcc): New insn.
776         (*popcountqihi2.libgcc): New insn-and-split.
777         (*clzhi2.libgcc): New insn.
778         (*clzsihi2.libgcc): New insn.
779         (*ctzhi2.libgcc): New insn.
780         (*ctzsihi2.libgcc): New insn.
781         (*ffshi2.libgcc): New insn.
782         (*ffssihi2.libgcc): New insn.
783         (*bswapsi2.libgcc): New insn.
784
785 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
786
787         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
788         the mode of symbolic_opreand RTXes.
789
790 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
791
792         * config/i386/predicates.md (x86_64_movabs_operand): Return false
793         for pic_32bit_operand RTXes.
794         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
795         in DImode.
796
797 2011-07-27  Kai Tietz  <ktietz@redhat.com>
798
799         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
800         for 32-bit, too.
801         (ix86_handle_abi_attribute): Allow function attributes
802         ms_abi/sysv_abi in 32-bit mode, too.
803         * doc/extend.texi: Adjust attribute documentation.
804
805         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
806         expression handling.
807         (and_var_with_comparison_1): Likewise.
808
809 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
810
811         * params.h (ALLOW_STORE_DATA_RACES): New.
812         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
813         * Makefile.in (expr.o): Depend on PARAMS_H.
814         * machmode.h (get_best_mode): Add argument.
815         * fold-const.c (optimize_bit_field_compare): Add argument to
816         get_best_mode.
817         (fold_truthop): Same.
818         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
819         * expr.c (emit_group_store): Same.
820         (copy_blkmode_from_reg): Same.
821         (write_complex_part): Same.
822         (optimize_bitfield_assignment_op): Add argument.
823         Add argument to get_best_mode.
824         (get_bit_range): New.
825         (expand_assignment): Calculate maxbits and pass it down accordingly.
826         (store_field): New argument.
827         (expand_expr_real_2): New argument to store_field.  Include params.h.
828         * expr.h (store_bit_field): New argument.
829         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
830         into account maxbits.
831         * calls.c (store_unaligned_arguments_into_pseudos): New argument
832         to store_bit_field.
833         * expmed.c (store_bit_field_1): New argument.  Use it.
834         (store_bit_field): Same.
835         (store_fixed_bit_field): Same.
836         (store_split_bit_field): Same.
837         (extract_bit_field_1): Pass new argument to get_best_mode.
838         (extract_bit_field): Same.
839         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
840         * doc/invoke.texi: Document parameter allow-store-data-races.
841
842 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
843
844         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
845
846 2011-07-27  Kai Tietz  <ktietz@redhat.com>
847
848         * tree-vrp.c (extract_range_from_binary_expr): Remove
849         TRUTH-binary cases and add new bitwise-cases.
850         (extract_range_from_assignment): Likewise.
851         (register_edge_assert_for_1): Likeiwise.
852         (register_edge_assert_for): Likewise.
853         (simplify_truth_ops_using_ranges): Likewise.
854         (simplify_stmt_using_ranges): Likewise.
855
856 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
857
858         PR target/47372
859         * config/i386/i386.c (ix86_delegitimize_address): Call
860         simplify_gen_subreg for PIC with mode of x only if modes of
861         x and orig_x are different.
862
863 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
864
865         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
866         to GC allocated copy of the string.
867         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
868         before .debug_line, not after it.
869
870 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
871
872         PR middle-end/47046
873         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
874         evolution_function_is_affine_p on CHREC_RIGHT.
875
876 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
877
878         * tree-data-ref.c (max_stmt_executions_tree): Do not call
879         lang_hooks.types.type_for_size.
880
881 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
882
883         PR middle-end/47653
884         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
885         loops using wrapping semantics.
886
887 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
888
889         PR middle-end/48805
890         * tree-scalar-evolution.c (instantiate_scev_r): Return
891         chrec_dont_know for ADDR_EXPR.
892
893 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
894             H.J. Lu  <hongjiu.lu@intel.com>
895
896         PR target/47369
897         PR target/49853
898         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
899         if legitimize_tls_address returned operand in wrong mode. Allow
900         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
901         if legitimize_pic_address returned operand in wrong mode.
902
903 2011-07-26  Martin Jambor  <mjambor@suse.cz>
904
905         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
906         return false for invariants.
907
908 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
909
910         * config/i386/i386.md (add->lea splitter): Implement using SWI
911         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
912         (add->lea zext splitter): Change operand 2 predicate to
913         x86_64_nonmemory_operand.
914
915 2011-07-26  Richard Guenther  <rguenther@suse.de>
916
917         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
918         frequency makes everything hot.
919
920 2011-07-26  Richard Guenther  <rguenther@suse.de>
921
922         PR tree-optimization/49840
923         * tree-vrp.c (range_fits_type_p): Properly handle full
924         double-int precision.
925
926 2011-07-26  Martin Jambor  <mjambor@suse.cz>
927
928         PR bootstrap/49786
929         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
930         counts.
931         (update_specialized_profile): Likewise.
932
933 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
934             H.J. Lu  <hongjiu.lu@intel.com>
935
936         PR target/47381
937         PR target/49832
938         PR target/49833
939         * config/i386/i386.md (i): Change SImode attribute to "e".
940         (g): Change SImode attribute to "rme".
941         (di): Change SImode attribute to "nF".
942         (general_operand): Change SImode attribute to x86_64_general_operand.
943         (general_szext_operand): Change SImode attribute to
944         x86_64_szext_general_operand.
945         (immediate_operand): Change SImode attribute to
946         x86_64_immediate_operand.
947         (nonmemory_operand): Change SImode attribute to
948         x86_64_nonmemory_operand.
949         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
950         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
951         (*lea_1): Use SWI48 mode iterator.
952         (*lea_1_zext): New insn pattern.
953         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
954         (*bt<mode>): Ditto.
955         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
956         Update operand constraints.
957         (addsi_1_zext): Ditto.
958         (*add<mode>2): Ditto.
959         (*addsi_3_zext): Ditto.
960         (*subsi_1_zext): Ditto.
961         (*subsi_2_zext): Ditto.
962         (*subsi_3_zext): Ditto.
963         (*addsi3_carry_zext): Ditto.
964         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
965         (*mulsi3_1_zext): Ditto.
966         (*andsi_1): Ditto.
967         (*andsi_1_zext): Ditto.
968         (*andsi_2_zext): Ditto.
969         (*<any_or:code>si_1_zext): Ditto.
970         (*<any_or:code>si_2_zext): Ditto.
971         (*test<mode>_1): Use <general_operand> predicate for operand 1.
972         (*and<mode>_2): Ditto.
973         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
974         (add->lea splitter): Check operand modes in insn constraint.  Extend
975         operands less than SImode wide to SImode.
976         (add->lea zext splitter): Do not extend input operands to DImode.
977         (*lea_general_1): Handle only QImode and HImode operands.
978         (*lea_general_2): Ditto.
979         (*lea_general_3): Ditto.
980         (*lea_general_1_zext): Remove.
981         (*lea_general_2_zext): Ditto.
982         (*lea_general_3_zext): Ditto.
983         (*lea_general_4): Check operand modes in insn constraint.  Extend
984         operands less than SImode wide to SImode.
985         (ashift->lea splitter): Ditto.
986         * config/i386/i386.c (ix86_print_operand_address): Print address
987         registers with 'q' modifier on 64bit targets.
988         * config/i386/predicates.md (pic_32bit_opreand): Define as special
989         predicate.  Reject non-SI and non-DI modes.
990
991 2011-07-25  Andrew Pinski  <apinski@cavium.com>
992
993         PR tree-opt/49671
994         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
995         TREE_THIS_NOTRAP into the inner most MEM_REF.
996         Always copy TREE_THIS_VOLATILE.
997         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
998         arguments are not volatile references.
999
1000 2011-07-25  Richard Henderson  <rth@redhat.com>
1001
1002         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
1003         * final.c (final_scan_insn): Don't test for it.
1004         (rest_of_clean_state): Likewise.
1005
1006 2011-07-25  Richard Henderson  <rth@redhat.com>
1007
1008         PR debug/49841
1009         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
1010         (emit_frame_save): Likewise.
1011         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
1012         insn onto a dummy blockage insn after the join label.
1013
1014 2011-07-25  Richard Henderson  <rth@redhat.com>
1015
1016         * dwarf2cfi.c (dw_trace_info): Add ID member.
1017         (get_trace_index): Remove.  Change users to use ID member.
1018         (before_next_cfi_note): New.
1019         (connect_traces): Remove unreachable traces before the main loop.
1020         Look across one trace and generate remember/restore_state if needed.
1021
1022 2011-07-25  Richard Henderson  <rth@redhat.com>
1023
1024         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
1025
1026 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
1027
1028         * genattr.c (write_upcase, gen_attr <enum definition writing>):
1029         Move to ...
1030         * genattr-common.c ... here.
1031         (main): Call gen_attr.
1032         * optc-gen.awk: Make generated program include insn-attr-common.h .
1033         * Makefile.in (oprions.o): Depend on insn-attr-common.h
1034
1035 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
1036
1037         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1038         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
1039         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
1040         m32c_print_operand, m32c_print_operand_address): Remove.
1041         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
1042         Change return type to bool. Change argument type to bool.
1043         (m32c_print_operand, m32c_print_operand_address): Make static.
1044         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
1045         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1046
1047 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1048
1049         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
1050         attributes): Document mmap.
1051
1052 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
1053
1054         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1055         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
1056         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
1057         mmix_print_operand, mmix_print_operand_address): Remove.
1058         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
1059         Change return type to bool. Change argument type to bool.
1060         (mmix_print_operand, mmix_print_operand_address): Make static.
1061         (mmix_intval, mmix_output_condition): Change 'x' argument type
1062         to const_rtx.
1063         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
1064         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1065
1066 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
1067
1068         PR target/39386
1069         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
1070         shift counter for x << x and x >> x shifts.
1071
1072 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1073
1074         PR target/47124
1075         * config.gcc: Reject *-*-solaris2 configuration.
1076
1077 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
1078
1079         PR tree-optimization/49809
1080         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
1081         gimple_get_lhs instead of gimple_assign_lhs.
1082
1083 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1084
1085         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
1086
1087 2011-07-25  Richard Guenther  <rguenther@suse.de>
1088
1089         PR tree-optimization/49822
1090         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1091         more.  Make sure to preserve stmts with side-effects.  Properly
1092         handle virtual defs, follow a longer def chain.
1093
1094 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
1095
1096         PR plugins/45348
1097         PR plugins/48425
1098         PR plugins/46577
1099         * Makefile.in: Do not flatten c-family directory when installing
1100         plugin headers.
1101
1102 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
1103
1104         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
1105         original nodes if we are dealing with virtual clones.
1106
1107 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
1108
1109         * common/config/c6x/c6x-common.c: New file.
1110
1111 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
1112
1113         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
1114
1115 2011-07-25  Richard Guenther  <rguenther@suse.de>
1116
1117         PR tree-optimization/49715
1118         * tree-vrp.c: Include expr.h and optabs.h.
1119         (range_fits_type_): New function.
1120         (simplify_float_conversion_using_ranges): Likewise.
1121         (simplify_stmt_using_ranges): Call it.
1122         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
1123         * optabs.c (can_float_p): Export.
1124         * optabs.h (can_float_p): Declare.
1125
1126 2011-07-25  Richard Guenther  <rguenther@suse.de>
1127
1128         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
1129         (get_value_range): For out-of-range SSA names or names created
1130         after propagation return a read-only varying range.
1131         (dump_all_value_ranges): Adjust.
1132         (vrp_initialize): Likewise.
1133         (vrp_finalize): Likewise.
1134
1135 2011-07-24  Richard Henderson  <rth@redhat.com>
1136
1137         PR debug/49831
1138         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
1139         them entirely.
1140
1141 2011-07-24  Richard Henderson  <rth@redhat.com>
1142
1143         PR debug/49825
1144         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
1145         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
1146
1147 2011-07-24  Richard Henderson  <rth@redhat.com>
1148
1149         PR debug/49827
1150         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
1151
1152 2011-07-24  Richard Henderson  <rth@redhat.com>
1153
1154         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
1155         Zero args_size for abnormal edges.  Adjust all callers.
1156
1157 2011-07-24  Richard Henderson  <rth@redhat.com>
1158
1159         PR debug/49825
1160         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
1161
1162 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
1163
1164         PR bootstrap/49835
1165         * collect2.c (demangle_flag): Removed.
1166
1167 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
1168
1169         * configure.ac (demangler_in_ld): Default to yes.
1170         * configure: Regenerated.
1171         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
1172         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
1173         --no-demangle options straight through to ld.  When
1174         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
1175         way that has the intended effect on Windows.
1176
1177 2011-07-23  Richard Henderson  <rth@redhat.com>
1178
1179         * dwarf2cfi.c: Include basic-block.h.
1180         (dw_label_info): Remove.
1181         (trace_work_list, trace_index): New.
1182         (remember_row, emit_cfa_remember): Remove.
1183         (dw_trace_info_hash, dw_trace_info_eq): New.
1184         (get_trace_index, get_trace_info): New.
1185         (save_point_p): New.
1186         (free_cfi_row): Remove.
1187         (add_cfi): Do not emit DW_CFA_remember_state.
1188         (cfa_row_equal_p): New.
1189         (barrier_args_size): Remove.
1190         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
1191         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
1192         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
1193         (dwarf2out_cfi_begin_epilogue): Remove.
1194         (dwarf2out_frame_debug_restore_state): Remove.
1195         (connect_traces, create_pseudo_cfg): New.
1196         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
1197         * Makefile.in (dwarf2cfi.o): Update.
1198
1199 2011-07-23  Richard Henderson  <rth@redhat.com>
1200
1201         * dwarf2cfi.c (dw_trace_info): New.
1202         (dw_label_info): New.
1203         (cie_return_save): New.
1204         (cur_trace): New.
1205         (queued_args_size): Rename from args_size.  Update all users.
1206         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
1207         (def_cfa_1): Use cur_trace instead of cfa_*.
1208         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
1209         (clobbers_queued_reg_save, reg_saved_in): Likewise.
1210         (dwarf2out_frame_debug_expr): Likewise.
1211         (create_cie_data): Split out from ...
1212         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
1213
1214 2011-07-23  Richard Henderson  <rth@redhat.com>
1215
1216         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
1217         Update all users to match.
1218         (execute_dwarf2_frame): Free reg_saved_in_data.
1219
1220 2011-07-23  Richard Henderson  <rth@redhat.com>
1221
1222         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
1223         (queued_reg_saves): Don't GTY.  Change to a VEC.
1224         (queue_reg_save): Update to match.
1225         (dwarf2out_flush_queued_reg_saves): Likewise.
1226         (clobbers_queued_reg_save): Likewise.
1227         (reg_saved_in): Likewise.
1228         (execute_dwarf2_frame): Free queued_reg_saves.
1229
1230 2011-07-23  Richard Henderson  <rth@redhat.com>
1231
1232         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
1233
1234 2011-07-23  Richard Henderson  <rth@redhat.com>
1235
1236         * dwarf2cfi.c (add_cfi_args_size): Split out from...
1237         (dwarf2out_args_size): ... here.
1238         (add_cfi_restore): Split out from ...
1239         (dwarf2out_frame_debug_cfa_restore): ... here.
1240         (def_cfa_0): Split out from ...
1241         (def_cfa_1): ... here.
1242         (cfi_oprnd_equal_p, cfi_equal_p): New.
1243         (change_cfi_row): New.
1244         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
1245         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
1246         (output_cfis): Remove.
1247         * dwarf2out.c (output_fde): Simplify output_cfi loop.
1248         (dwarf2out_switch_text_section): Don't call output_cfis.
1249         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
1250         * dwarf2out.h: Update decls.
1251         (enum dw_val_class): Add dw_val_class_none.
1252
1253 2011-07-23  Richard Henderson  <rth@redhat.com>
1254
1255         * dwarf2cfi.c (update_row_reg_save): New.
1256         (dwarf2out_frame_debug_cfa_expression): Use it.
1257         (dwarf2out_frame_debug_cfa_restore): Likewise.
1258         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
1259
1260 2011-07-23  Richard Henderson  <rth@redhat.com>
1261
1262         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
1263
1264 2011-07-23  Richard Henderson  <rth@redhat.com>
1265
1266         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
1267         (cie_cfi_row): New.
1268         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
1269         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
1270         (cur_row, remember_row): New.
1271         (def_cfa_1): Use cur_row instead of the old_* variables.
1272         (dwarf2out_frame_debug_restore_state): Similarly.
1273         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
1274         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
1275         (dwarf2out_frame_debug_adjust_cfa): Likewise.
1276         (dwarf2out_frame_debug_cfa_offset): Likewise.
1277         (dwarf2out_frame_debug_expr): Likewise.
1278         (execute_dwarf2_frame): Set up cur_row.
1279         * dwarf2out.h (struct cfa_loc): Mark for GTY.
1280
1281 2011-07-23  Richard Henderson  <rth@redhat.com>
1282
1283         * basic-block.h (EDGE_PRESERVE): New.
1284         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
1285         * bb-reorder.c: Include except.h.
1286         (fix_up_crossing_landing_pad): New.
1287         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
1288         landing pads in the right partition.  Duplicate as necessary.
1289         (partition_hot_cold_basic_blocks): Fix up DF info after
1290         duplicating landing pads.
1291         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
1292         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
1293         is set properly.  Validate that EH edges are not CROSSING.
1294         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
1295         (dw2_build_landing_pads): ... here.
1296         (convert_to_eh_region_ranges): Remove code to fixup crossing
1297         landing pads.
1298         * except.h (expand_dw2_landing_pad_for_region): Declare.
1299         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
1300
1301 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
1302
1303         PR target/49816
1304         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
1305
1306 2011-07-22  Jason Merrill  <jason@redhat.com>
1307
1308         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
1309
1310 2011-07-22  Richard Henderson  <rth@redhat.com>
1311
1312         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
1313
1314 2011-07-22  Richard Henderson  <rth@redhat.com>
1315
1316         * jump.c (maybe_propagate_label_ref): Split out of...
1317         (mark_all_labels): ... here.  Do not attempt label_ref
1318         propagation while in cfglayout mode.
1319
1320 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
1321
1322         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
1323         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
1324         (dwarf_attr_name): Handle DW_AT_GNU_macros.
1325         (dwarf2out_define): If the vector is empty and
1326         lineno is 0, emit a dummy entry first.
1327         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
1328         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
1329         optimize_macinfo_range): New functions.
1330         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
1331         mergeable, optimize longer strings using
1332         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
1333         optimize longer sequences of define/undef ops from headers
1334         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
1335         emit a section headers.
1336         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
1337         and macinfo_section_label to DEBUG_MACRO_SECTION
1338         resp. DEBUG_MACRO_SECTION_LABEL.
1339         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
1340         instead of DW_AT_macro_info.
1341
1342         PR other/32998
1343         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
1344         options.
1345         * dwarf2out.c: Include opts.h.
1346         (dchar_p): New typedef.  Define heap VEC for it.
1347         (producer_string): New variable.
1348         (gen_producer_string): New function.
1349         (gen_compile_unit_die): Use it.
1350         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
1351         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
1352         * doc/invoke.texi: Document -grecord-gcc-switches and
1353         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
1354         to -frecord-gcc-switches description.
1355
1356 2011-07-22  Jason Merrill  <jason@redhat.com>
1357
1358         PR c++/30112
1359         * c-decl.c (c_linkage_bindings): Define.
1360
1361 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
1362
1363         PR debug/49815
1364         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
1365
1366 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
1367
1368         * config/i386/i386.c (ix86_option_override_internal): Disallow
1369         MS ABI in x32 mode.
1370         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
1371         only for TARGET_LP64.
1372         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
1373
1374 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
1375
1376         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
1377         avoid warnings when GCC is built with a C++ compiler.
1378
1379 2011-07-22  Martin Jambor  <mjambor@suse.cz>
1380
1381         PR lto/49796
1382         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
1383         if decl node is in another partition, call cgraph_get_node only once.
1384
1385 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
1386
1387         * config.gcc (x86_64-*-linux*): Set
1388         default_gnu_indirect_function to yes.
1389
1390 2011-07-22  Richard Guenther  <rguenther@suse.de>
1391
1392         PR tree-optimization/45819
1393         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
1394         preserve volatile and notrap flags.
1395
1396 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1397             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1398
1399         PR bootstrap/49794
1400         * configure.ac: Test AM_ICONV with CXX.
1401         * configure: Regenerate.
1402         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
1403
1404 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1405
1406         PR bootstrap/49797
1407         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
1408         (set_cloog_options): Use it.
1409
1410 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
1411
1412         PR c++/49756
1413         * gcc.c (main): Call stack_limit_increase (64MB).
1414         * toplev.c (toplev_main): Likewise.
1415
1416 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1417
1418         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
1419         instead of force_reg.
1420
1421 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1422
1423         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
1424         needed and use force_reg after convert.
1425         (ix86_expand_call): Likewise.
1426         (ix86_expand_special_args_builtin): Likewise.
1427         (ix86_expand_builtin): Likewise.
1428
1429 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1430
1431         PR middle-end/47654
1432         PR middle-end/49649
1433         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
1434         in parameter.  Initialize v1 and v2 based on the values returned
1435         by clast_name_to_lb_ub.
1436         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
1437         values.
1438         (type_for_clast_bin): Same.
1439         (type_for_clast_expr): Same.
1440         (type_for_clast_eq): Update calls to type_for_clast_expr.
1441         (type_for_clast_for): Same.
1442         (build_iv_mapping): Same.
1443         * graphite-ppl.h (value_min): New.
1444
1445 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1446
1447         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
1448         types whenever possible.
1449
1450 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1451
1452         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
1453         and ub fields.
1454         (new_clast_name_index): Add lb and ub parameters.
1455         (free_clast_name_index): New.
1456         (clast_name_to_lb_ub): New.
1457         (save_clast_name_index): Add lb and ub parameters.
1458         (compute_bounds_for_param): New.
1459         (type_for_level): Removed.
1460         (type_for_clast_for): Removed level parameter.  Do not call
1461         type_for_level.
1462         (graphite_create_new_loop): Store the lb and ub for the clast_name
1463         of the iterator of the loop that has been generated.
1464         (graphite_create_new_loop_guard): Remove parameter level.
1465         (create_params_index): Store the lb and ub of each parameter.
1466         (gloog): Use free_clast_name_index.  Pass to create_params_index
1467         the current scop.
1468
1469 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1470
1471         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
1472         (max_precision_type): Inline max_signed_precision_type.
1473         (type_for_clast_red): Use max_precision_type.
1474         (type_for_clast_bin): Same.
1475         (type_for_clast_for): Same.
1476
1477 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1478
1479         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
1480         type_for_interval.
1481         (gcc_type_for_value): Renamed type_for_value.
1482         (gcc_type_for_clast_term): Renamed type_for_clast_term.
1483         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
1484         (gcc_type_for_clast_red): Renamed type_for_clast_red.
1485         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
1486         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
1487         (graphite_translate_clast_equation): Update calls.
1488         (compute_type_for_level): Renamed type_for_level.
1489         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
1490         (build_iv_mapping): Update calls.
1491         (graphite_create_new_loop_guard): Same.
1492
1493 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1494
1495         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
1496         comment.
1497
1498 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1499
1500         * graphite-clast-to-gimple.c (struct ivs_params): New.
1501         (clast_name_to_gcc): Use ivs_params to pass around parameters.
1502         (clast_to_gcc_expression): Same.
1503         (clast_to_gcc_expression_red): Same.
1504         (gcc_type_for_clast_term): Same.
1505         (gcc_type_for_clast_expr): Same.
1506         (gcc_type_for_clast_red): Same.
1507         (gcc_type_for_clast_bin): Same.
1508         (gcc_type_for_clast_eq): Same.
1509         (graphite_translate_clast_equation): Same.
1510         (graphite_create_guard_cond_expr): Same.
1511         (graphite_create_new_guard): Same.
1512         (graphite_create_new_loop): Same.
1513         (build_iv_mapping): Same.
1514         (translate_clast_user): Same.
1515         (graphite_create_new_loop_guard): Same.
1516         (translate_clast): Same.
1517         (translate_clast_for_loop): Same.
1518         (translate_clast_for): Same.
1519         (translate_clast_guard): Same.
1520         (initialize_cloog_names): Fix typo.
1521         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
1522
1523 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1524
1525         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
1526         (new_clast_name_index): Add level parameter.
1527         (clast_name_to_level): New.
1528         (save_clast_name_index): Add level parameter.
1529         (newivs_to_depth_to_newiv): Removed.
1530         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
1531         (graphite_create_new_loop): Add level parameter.  Pass level to
1532         save_clast_name_index.
1533         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
1534         (create_params_index): Pass level to save_clast_name_index.
1535
1536 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1537
1538         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
1539         recompute type, lb, and ub.  Get them from...
1540         (graphite_create_new_loop_guard): ...here.  Pass in parameter
1541         pointers to type, lb, and ub.
1542         (translate_clast_for_loop): Update function calls.
1543         (translate_clast_for): Same.
1544
1545 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1546
1547         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
1548         psct_dynamic_dim.
1549         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
1550         (gcc_type_for_iv_of_clast_loop): Update use of level.
1551         (gloog): Start counting nesting level from 0.
1552         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
1553         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
1554         psct_dynamic_dim on level.
1555
1556 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1557
1558         * config/i386/i386.c (ix86_legitimize_address): Convert to
1559         Pmode if needed.
1560
1561 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1562
1563         * config/i386/i386.c (function_value_64): Always return pointers
1564         in Pmode.
1565         (ix86_promote_function_mode): New.
1566         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
1567
1568 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1569
1570         PR tree-optimization/49749
1571         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
1572         remove no-longer-used maxrank variable.
1573
1574 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
1575
1576         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
1577
1578 2011-07-21  Jason Merrill  <jason@redhat.com>
1579
1580         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
1581         * recog.h (struct insn_data_d): Check it instead of
1582         HAVE_DESIGNATED_INITIALIZERS.
1583         * genoutput.c (output_insn_data): Likewise.
1584
1585 2011-07-21  Richard Guenther  <rguenther@suse.de>
1586
1587         PR tree-optimization/49770
1588         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
1589         valueized any operand.  Renamed from ...
1590         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
1591         (valueize_shared_reference_ops_from_ref): Return whether we
1592         valueized any operand.
1593         (vn_reference_lookup): Only when we valueized any operand
1594         use the valueized reference for alias analysis.  Do not preserve
1595         the original reference tree in this case.
1596
1597 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
1598
1599         * config/i386/i386.c (ix86_decompose_address): Reject all but
1600         register operands and subregs of DImode hard registers in index.
1601
1602 2011-07-21  Kai Tietz  <ktietz@redhat.com>
1603
1604         * fold-const.c (fold_unary_loc): Preserve indirect
1605         comparison cast to none-boolean type.
1606         * tree-ssa.c (useless_type_conversion_p): Preserve cast
1607         from/to boolean-type.
1608         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
1609         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
1610         * tree-cfg.c (verify_gimple_comparison): Check result
1611         type of comparison expression.
1612         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
1613         of condition result and disallow type-cast sinking into comparison.
1614
1615 2011-07-21  Richard Guenther  <rguenther@suse.de>
1616
1617         * tree-ssa-forwprop.c (combine_conversions): Return whether
1618         we have to run cfg-cleanup.  Properly remove dead stmts.
1619         (ssa_forward_propagate_and_combine): Adjust.
1620
1621 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
1622
1623         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
1624
1625 2011-07-21  Kai Tietz  <ktietz@redhat.com>
1626
1627         * tree-ssa-propagate.c (substitute_and_fold): Use
1628         do_dce flag to deside, if BB's statements are scanned
1629         in last to first, or first to last order.
1630
1631 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
1632
1633         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
1634
1635 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
1636             Uros Bizjak  <ubizjak@gmail.com>
1637             Richard Henderson  <rth@redhat.com>
1638
1639         * config/i386/constraints.md (w): New.
1640
1641         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
1642         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
1643
1644         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
1645         instead of TARGET_64BIT.
1646
1647         * config/i386/i386.md (indirect_jump): Replace
1648         nonimmediate_operand with indirect_branch_operand.
1649         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
1650         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
1651         Convert operand 0 to Pmode for x32 if not PIC.
1652         (*tablejump_1): Replace nonimmediate_operand with
1653         indirect_branch_operand.  Replace constraint "m" with "w".
1654         (*call_vzeroupper): Replace constraint "m" with "w".
1655         (*call): Likewise.
1656         (*call_rex64_ms_sysv_vzeroupper): Likewise.
1657         (*call_rex64_ms_sysv): Likewise.
1658         (*call_value_vzeroupper): Likewise.
1659         (*call_value): Likewise.
1660         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
1661         (*call_value_rex64_ms_sysv): Likewise.
1662         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
1663
1664         * config/i386/predicates.md (indirect_branch_operand): New.
1665         (call_insn_operand): Support x32.
1666
1667 2011-07-20  Michael Eager  <eager@eagercon.com>
1668
1669         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
1670
1671 2011-07-20  Richard Henderson  <rth@redhat.com>
1672
1673         * cfg.c (dump_bb_info): Dump basic_block->flags.
1674         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
1675
1676 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
1677
1678         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1679         of DImode hard registers in index.
1680         (ix86_legitimate_address_p): Allow subregs of base and index to span
1681         more than a word.  Assert that subregs of base and index satisfy
1682         register_no_elim_operand predicates.  Reject addresses where
1683         base and index have different modes.
1684
1685 2011-07-20  Robert Millan  <rmh@gnu.org>
1686
1687         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
1688
1689 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1690
1691         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
1692         removing now-unnecessary assignment.
1693
1694 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1695
1696         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
1697         memory address space to the type's address space.
1698
1699 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
1700
1701         PR target/36467
1702         PR target/49687
1703         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
1704         and expand appropriately if there is a CONST_INT in operand2.
1705         (usmulqihi3): New insn.
1706         (*sumulqihi3): New insn.
1707         (*osmulqihi3): New insn.
1708         (*oumulqihi3): New insn.
1709         (*muluqihi3.uconst): New insn_and_split.
1710         (*muluqihi3.sconst): New insn_and_split.
1711         (*mulsqihi3.sconst): New insn_and_split.
1712         (*mulsqihi3.uconst): New insn_and_split.
1713         (*mulsqihi3.oconst): New insn_and_split.
1714         (*ashifthi3.signx.const): New insn_and_split.
1715         (*ashifthi3.signx.const7): New insn_and_split.
1716         (*ashifthi3.zerox.const): New insn_and_split.
1717         (mulsqihi3): New insn.
1718         (muluqihi3): New insn.
1719         (muloqihi3): New insn.
1720         * config/avr/predicates.md (const_2_to_7_operand): New.
1721         (const_2_to_6_operand): New.
1722         (u8_operand): New.
1723         (s8_operand): New.
1724         (o8_operand): New.
1725         (s9_operand): New.
1726         (register_or_s9_operand): New.
1727
1728 2011-07-20  Kai Tietz  <ktietz@redhat.com>
1729
1730         * builtins.c (fold_builtin_expect): See through the cast
1731         from truthvalue_type_node to long.
1732
1733 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
1734
1735         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
1736         where we can use them from the standard and altivec instruction
1737         sets, instead of always using the 3 operand VSX forms that require
1738         the destination to overlap one of the inputs.
1739         (vsx_fms*): Ditto.
1740         (vsx_fnma*): Ditto.
1741         (vsx_fnms*): Ditto.
1742
1743         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
1744         for DF types.
1745         (fmsdf4_fpr): Ditto.
1746         (nfmadf4_fpr): Ditto.
1747         (nfmsdf4_fpr): Ditto.
1748
1749 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
1750
1751         * genrecog.c (make_insn_sequence): Correct position numbering
1752         when filtering out match_scratch and match_dup.
1753
1754 2011-07-20  Richard Guenther  <rguenther@suse.de>
1755
1756         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1757         against already removed statements.
1758         (forward_propagate_into_comparison): Remove dead defining stmts.
1759         (forward_propagate_into_gimple_cond): Likewise.
1760         (forward_propagate_into_cond): Simplify.
1761         (ssa_forward_propagate_and_combine): Handle changed cfg from
1762         forward_propagate_into_comparison.
1763         * tree-ssa-phiopt.c (conditional_replacement): Use proper
1764         locations for newly built statements.
1765
1766 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
1767
1768         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
1769
1770 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1771
1772         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
1773         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
1774
1775 2011-07-20  Richard Guenther  <rguenther@suse.de>
1776
1777         PR middle-end/18908
1778         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
1779         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
1780         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
1781
1782 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
1783
1784         * config/frv/frv.c (frv_register_move_cost): Define explicitly
1785         costs for subclasses of GR_REGS.
1786
1787 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
1788
1789         PR target/49780
1790         * config/i386/predicates.md (no_seg_addres_operand): No more special.
1791         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1792         of DImode hard registers in base.
1793         (ix86_legitimate_address_p): Allow SImode and DImode base and index
1794         registers.
1795
1796 2011-07-20  Richard Guenther  <rguenther@suse.de>
1797
1798         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
1799         (unify_nodes): Deal with that.
1800         (solve_graph): Likewise.
1801
1802 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
1803
1804         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
1805         canonicalize left operand from ZERO_EXTEND to AND.
1806
1807 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
1808
1809         * target.def (class_max_nregs): New hook.
1810         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
1811         * doc/tm.texi: Regenerate.
1812         * targhooks.c (default_class_max_nregs): New function.
1813         * targhooks.h (default_class_max_nregs): Declare.
1814         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
1815         x_ira_reg_class_min_nregs arrays to unsigned char.
1816         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
1817         hook instead of CLASS_MAX_NREGS macro.
1818         * reginfo.c (restore_register_info): Ditto.
1819         * ira-conflicts.c (process_regs_for_copy): Use
1820         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1821         Change type rclass and aclass vars to reg_class_t.
1822         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
1823         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
1824         reg_class_t.
1825         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
1826         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1827
1828         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
1829         * config/i386/i386.c (ix86_class_max_nregs): New function.
1830         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
1831         instead of CLASS_MAX_NREGS macro.
1832         (TARGET_CLASS_MAX_NREGS): Define.
1833         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
1834         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
1835         * config/avr/avr.c (class_max_nregs): Remove function.
1836         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
1837         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
1838         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
1839         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
1840         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
1841         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
1842         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
1843         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
1844         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
1845         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
1846         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
1847         * config/score/score.h (CLASS_MAX_NREGS): Remove.
1848         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
1849         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
1850         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
1851
1852 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
1853
1854         * cif-code.def (OVERWRITABLE): Fix typo and move around.
1855         (TARGET_OPTIMIZATION_MISMATCH): Delete.
1856         (EH_PERSONALITY): Fix typo.
1857         (NON_CALL_EXCEPTIONS): Fix message.
1858         (OPTIMIZATION_MISMATCH): Adjust message.
1859         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
1860
1861 2011-07-19  Ian Lance Taylor  <iant@google.com>
1862
1863         * doc/install.texi (Configuration): Document
1864         --enable-build-poststage1-with-cxx.
1865
1866 2011-07-19  Robert Millan  <rmh@gnu.org>
1867
1868         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
1869         (GLIBC_DYNAMIC_LINKER): Remove.
1870
1871         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
1872         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1873         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1874         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
1875         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
1876         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
1877
1878         * config/mips/linux.h: Remove everything except for ...
1879         (GLIBC_DYNAMIC_LINKER): ... this macro.
1880
1881         * config/mips/linux64.h: Remove everything except for ...
1882         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1883         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1884         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
1885         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
1886         (GNU_USER_LINK_EMULATIONN32): New macros.
1887
1888         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
1889         Use the new headers.
1890
1891 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1892
1893         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
1894         Add offset_known_p and size_known_p fields.
1895         (MEM_OFFSET_KNOWN_P): Update accordingly.
1896         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
1897         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
1898         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
1899         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
1900         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
1901         (init_emit_regs): Likewise.
1902
1903 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1904
1905         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
1906         (MEM_OFFSET): Change from returning an rtx to returning a
1907         HOST_WIDE_INT.
1908         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
1909         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
1910         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1911         (clear_mem_offset): Declare.
1912         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
1913         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
1914         MEM_OFFSET to get a HOST_WIDE_INT offset.
1915         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
1916         (adjust_offset_for_component_ref): Take a bool "known_p"
1917         parameter and a HOST_WIDE_INT "offset" parameter.
1918         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
1919         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
1920         than an rtx.  Use clear_mem_offset to clear the offset.
1921         * cfgcleanup.c (merge_memattrs): Likewise.
1922         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
1923         * function.c (assign_parm_find_stack_rtl): Likewise.
1924         (assign_parm_setup_stack): Likewise.
1925         * print-rtl.c (print_rtx): Likewise.
1926         * reload.c (find_reloads_subreg_address): Likewise.
1927         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1928         * var-tracking.c (INT_MEM_OFFSET): Likewise.
1929         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
1930         (get_mem_align_offset): Likewise.
1931         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1932         (clear_mem_offset): New function.
1933         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
1934         offset rather than an rtx.  Assume both the expressio and offset
1935         are available.
1936         (r10k_needs_protection_p_1): Update accordingly, checking the
1937         expression and offset availability here instead.
1938
1939 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1940
1941         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
1942         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
1943         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
1944         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
1945         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1946         (clear_mem_size): Declare.
1947         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1948         (clear_mem_size): New function.
1949         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
1950         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
1951         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
1952         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
1953         to clear the size.
1954         (nonoverlapping_memrefs_p): Likewise.
1955         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
1956         (expand_builtin_init_trampoline): Likewise.
1957         * calls.c (compute_argument_addresses): Likewise.
1958         * cfgcleanup.c (merge_memattrs): Likewise.
1959         * dce.c (find_call_stack_args): Likewise.
1960         * dse.c (record_store, scan_insn): Likewise.
1961         * dwarf2out.c (dw_sra_loc_expr): Likewise.
1962         * expr.c (emit_block_move_hints): Likewise.
1963         * function.c (assign_parm_find_stack_rtl): Likewise.
1964         * print-rtl.c (print_rtx): Likewise.
1965         * reload.c (find_reloads_subreg_address): Likewise.
1966         * rtlanal.c (may_trap_p_1): Likewise.
1967         * var-tracking.c (track_expr_p): Likewise.
1968         * varasm.c (assemble_trampoline_template): Likewise.
1969         * config/arm/arm.c (arm_print_operand): Likewise.
1970         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
1971         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
1972         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
1973         (expand_constant_setmem_prologue): Likewise.
1974         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
1975         * config/rs6000/rs6000.c (expand_block_move): Likewise.
1976         (adjacent_mem_locations): Likewise.
1977         * config/s390/s390.c (s390_expand_setmem): Likewise.
1978         (s390_expand_insv): Likewise.
1979         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
1980         (*extendqi<mode>2_short_displ): Likewise.
1981         * config/sh/sh.c (expand_block_move): Likewise.
1982         * config/sh/sh.md (extv, extzv): Likewise.
1983
1984 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1985
1986         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
1987         (mem_attrs_htab_eq): ...here.
1988         (find_mem_attrs): Replace with...
1989         (set_mem_attrs): ...this function.  Take a mem_attrs structure
1990         rather than individual fields.
1991         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1992         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1993         (set_mem_size, change_address, adjust_address_1, offset_address)
1994         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
1995         Update accordingly.
1996
1997 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1998
1999         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
2000         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
2001         Provide a dummy definition of MEM_ADDR_SPACE for generators.
2002         (target_rtl): Add x_mode_mem_attrs.
2003         (mode_mem_attrs): New macro.
2004         (get_mem_attrs): New function.
2005         * emit-rtl.c (get_mem_attrs): Rename to...
2006         (find_mem_attrs): ...this.
2007         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
2008         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
2009         (set_mem_size, change_address, adjust_address_1, offset_address)
2010         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
2011         Update accordingly.
2012         (init_emit_regs): Initialize mode_mem_attrs.
2013
2014 2011-07-19  Richard Guenther  <rguenther@suse.de>
2015
2016         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
2017         TRUTH_*_EXPR handling.
2018         * tree-ssa-operands.c (get_expr_operands): Likewise.
2019         * tree-ssa-pre.c (fully_constant_expression): Likewise.
2020         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
2021         Likewise.
2022         (is_and_or_or): Likewise.
2023         (is_norm_cond_subset_of): Likewise.
2024
2025 2011-07-19  Richard Guenther  <rguenther@suse.de>
2026
2027         * tree.h (fold_build_pointer_plus_loc): New helper function.
2028         (fold_build_pointer_plus_hwi_loc): Likewise.
2029         (fold_build_pointer_plus): Define.
2030         (fold_build_pointer_plus_hwi): Likewise.
2031         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
2032         (fold_builtin_memory_op): Likewise.
2033         (fold_builtin_stpcpy): Likewise.
2034         (fold_builtin_memchr): Likewise.
2035         (fold_builtin_strstr): Likewise.
2036         (fold_builtin_strchr): Likewise.
2037         (fold_builtin_strrchr): Likewise.
2038         (fold_builtin_strpbrk): Likewise.
2039         (fold_builtin_strcat): Likewise.
2040         (expand_builtin_memory_chk): Likewise.
2041         (fold_builtin_memory_chk): Likewise.
2042         * c-typeck.c (build_unary_op): Likewise.
2043         * cgraphunit.c (thunk_adjust): Likewise.
2044         * fold-const.c (build_range_check): Likewise.
2045         (fold_binary_loc): Likewise.
2046         * omp-low.c (extract_omp_for_data): Likewise.
2047         (expand_omp_for_generic): Likewise.
2048         (expand_omp_for_static_nochunk): Likewise.
2049         (expand_omp_for_static_chunk): Likewise.
2050         * tree-affine.c (add_elt_to_tree): Likewise.
2051         * tree-data-ref.c (split_constant_offset_1): Likewise.
2052         * tree-loop-distribution.c (generate_memset_zero): Likewise.
2053         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
2054         * tree-predcom.c (ref_at_iteration): Likewise.
2055         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
2056         (add_to_parts): Likewise.
2057         (create_mem_ref): Likewise.
2058         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
2059         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
2060         (number_of_iterations_le): Likewise.
2061         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
2062         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
2063         (vect_create_addr_base_for_vector_ref): Likewise.
2064         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
2065         (vect_create_cond_for_alias_checks): Likewise.
2066         * tree-vrp.c (extract_range_from_assert): Likewise.
2067         * config/alpha/alpha.c (alpha_va_start): Likewise.
2068         (alpha_gimplify_va_arg_1): Likewise.
2069         * config/i386/i386.c (ix86_va_start): Likewise.
2070         (ix86_gimplify_va_arg): Likewise.
2071         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2072         * config/mep/mep.c (mep_expand_va_start): Likewise.
2073         (mep_gimplify_va_arg_expr): Likewise.
2074         * config/mips/mips.c (mips_va_start): Likewise.
2075         (mips_gimplify_va_arg_expr): Likewise.
2076         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2077         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
2078         (rs6000_gimplify_va_arg): Likewise.
2079         * config/s390/s390.c (s390_va_start): Likewise.
2080         (s390_gimplify_va_arg): Likewise.
2081         * config/sh/sh.c (sh_va_start): Likewise.
2082         (sh_gimplify_va_arg_expr): Likewise.
2083         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
2084         * config/spu/spu.c (spu_va_start): Likewise.
2085         (spu_gimplify_va_arg_expr): Likewise.
2086         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2087         Likewise.
2088         (xstormy16_gimplify_va_arg_expr): Likewise.
2089         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
2090         (xtensa_gimplify_va_arg_expr): Likewise.
2091
2092 2011-07-19  Richard Guenther  <rguenther@suse.de>
2093
2094         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
2095         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
2096         handling.
2097
2098         PR middle-end/18908
2099         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
2100         result of BIT_*_EXPR to bitfield precision.
2101
2102 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
2103
2104         PR tree-optimization/49742
2105         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
2106         as a potential write.
2107
2108 2011-07-19  Richard Guenther  <rguenther@suse.de>
2109
2110         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
2111         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
2112         (forward_propagate_comparison): Simplify, remove obsolete code.
2113
2114 2011-07-19  Richard Guenther  <rguenther@suse.de>
2115
2116         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
2117         BIT_XOR_EXPR, same as the RTL expander does.
2118         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
2119         (verify_gimple_assign_unary): Likewise.
2120         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
2121         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
2122         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
2123
2124 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
2125
2126         PR tree-optimization/49768
2127         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
2128         if offset is smaller than bitoffset, but offset+size is bigger
2129         than bitoffset.
2130
2131 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
2132
2133         PR tree-optimization/49771
2134         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
2135         zero step, set segment length to the size of the data-ref's type.
2136
2137 2011-07-18  Martin Jambor  <mjambor@suse.cz>
2138
2139         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
2140         comments.
2141         (ipcp_values_pool): Declare.
2142         (ipcp_sources_pool): Likewise.
2143         (ipcp_lattice): Changed to forward declaration.
2144         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
2145         cannot_devirtualize.
2146         (ipa_node_params): New fields descriptors, lattices, known_vals,
2147         clone_for_all_contexts and node dead, removed fields params and
2148         count_scale.
2149         (ipa_set_param_count): Removed.
2150         (ipa_get_param_count): Made to work with descriptors vector.
2151         (ipa_get_param): Updated.
2152         (ipa_param_cannot_devirtualize_p): Removed.
2153         (ipa_param_types_vec_empty): Likewise.
2154         (ipa_set_param_used): New function.
2155         (ipa_get_param_used): Updated to use descriptors vector.
2156         (ipa_func_list): Removed.
2157         (ipa_init_func_list): Removed declaration.
2158         (ipa_push_func_to_list_1): Likewise.
2159         (ipa_pop_func_from_list): Likewise.
2160         (ipa_push_func_to_list): Removed.
2161         (ipa_lattice_from_jfunc): Remove declaration.
2162         (ipa_get_jf_pass_through_result): Declare.
2163         (ipa_get_jf_ancestor_result): Likewise.
2164         (ipa_value_from_jfunc): Likewise.
2165         (ipa_get_lattice): Update.
2166         (ipa_lat_is_single_const): New function.
2167         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
2168         (ipa_init_func_list): Likewise.
2169         (ipa_pop_func_from_list): Likewise.
2170         (ipa_get_param_decl_index): Fix coding style.
2171         (count_formal_params): Removed.
2172         (count_formal_params_1): Renamed to count_formal_params.
2173         (ipa_populate_param_decls): Update to use descriptors vector.
2174         (ipa_initialize_node_params): Likewise.
2175         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
2176         (ipa_analyze_params_uses): Likewise.
2177         (ipa_free_node_params_substructures): Likewise and free also lattices
2178         and known values.
2179         (duplicate_array): Removed.
2180         (ipa_edge_duplication_hook): Add the new edge to the list of edge
2181         clones.
2182         (ipa_node_duplication_hook): Update to use new lattices.
2183         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
2184         (ipa_free_all_structures_after_iinln): Likewise.
2185         (ipa_write_node_info): Update to use new lattices.
2186         (ipa_read_node_info): Likewise.
2187         (ipa_get_jf_pass_through_result): New function.
2188         (ipa_get_jf_ancestor_result): Likewise.
2189         (ipa_value_from_jfunc): Likewise.
2190         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
2191         * ipa-cp.c: Reimplemented.
2192         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
2193         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
2194         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
2195         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
2196         * doc/invoke.texi (devirt-type-list-size): Removed description.
2197         (ipa-cp-value-list-size): Added description.
2198
2199 2011-07-18  Richard Henderson  <rth@redhat.com>
2200
2201         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
2202         before calling create_basic_block.
2203
2204 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
2205
2206         PR middle-end/49675
2207         * tree.c (build_common_builtin_nodes): Register
2208         __builtin_return_address, __cyg_profile_func_enter
2209         and __cyg_profile_func_exit.
2210
2211 2011-07-18  Richard Henderson  <rth@redhat.com>
2212
2213         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
2214         (add_labels_and_missing_jumps): ... here.
2215         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
2216
2217 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
2218
2219         PR target/47744
2220         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2221         of DImode hard registers in PLUS address chains.
2222
2223 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2224
2225         PR bootstrap/49769
2226         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
2227         (alpha*-*-freebsd*): Likewise.
2228         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2229         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
2230         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
2231         crtprec80.o, crtfastmath.o to extra_parts for all targets.
2232         (ia64*-*-elf*): Remove extra_parts.
2233         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
2234         (sparc64-*-linux*): Likewise.
2235         (sparc64-*-freebsd*): Likewise.
2236
2237         Revert:
2238         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
2239         (ia64*-*-linux*): Likewise.
2240         (mips64*-*-linux*): Likewise.
2241         (mips*-*-linux*): Likewise.
2242
2243 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
2244
2245         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
2246
2247 2011-07-18  Richard Guenther  <rguenther@suse.de>
2248
2249         * gimplify.c (gimplify_expr): Use input_location, not saved_location
2250         when building new trees.
2251
2252 2011-07-18  Richard Guenther  <rguenther@suse.de>
2253
2254         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
2255         expansion result to bitfield precision if required.
2256
2257 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2258
2259         * config.gcc (i[3456x]86-*-netware*): Remove.
2260
2261         * gthr-nks.h: Remove.
2262         * configure.ac (enable_threads): Remove nks.
2263         * configure: Regenerate.
2264
2265         * config/i386/i386.c (ix86_encode_section_info): Remove netware
2266         reference.
2267         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
2268         <netware.h> reference.
2269
2270         * config/i386/netware-libgcc.c,
2271         gcc/config/i386/netware-libgcc.def,
2272         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
2273         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
2274         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
2275         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
2276
2277         * doc/extend.texi (Function Attributes,
2278         callee_pop_aggregate_return): Remove i?86-netware reference.
2279         * doc/install.texi (Configuration, --enable-threads): Remove nks.
2280
2281 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2282
2283         PR target/49746
2284         Revert:
2285         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2286
2287         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
2288         patterns.
2289
2290 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
2291
2292         PR middle-end/49732
2293         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
2294
2295 2011-07-16  Matthias Klose  <doko@ubuntu.com>
2296
2297         * doc/install.texi: Document --enable-static-libjava.
2298
2299 2011-07-15  Richard Henderson  <rth@redhat.com>
2300
2301         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2302         Replace all three arguments by returning a VEC of edges.
2303         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
2304         pointers and counts.
2305         (fix_edges_for_rarely_executed_code): Merge ...
2306         (rest_of_handle_partition_blocks): ... into...
2307         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
2308         any work was performed.
2309         (pass_partition_blocks): Clear todo_flags_finish.
2310
2311 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
2312             Jakub Jelinek  <jakub@redhat.com>
2313             Jonathan Wakely  <jwakely.gcc@gmail.com>
2314
2315         PR libstdc++/49745
2316         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
2317         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
2318
2319 2011-07-15  Jason Merrill  <jason@redhat.com>
2320
2321         PR testsuite/49741
2322         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
2323         rather than --tool_opts.
2324
2325 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
2326
2327         * doc/plugins.texi (Building GCC plugins): gengtype needs its
2328         corresponding gtype.state.
2329
2330 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2331
2332         PR target/49723
2333         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
2334
2335 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
2336
2337         PR target/48220
2338         * doc/md.texi (Standard Names): Document window_save.
2339         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
2340         expand_debug_expr and expand_debug_source_expr.  If the target has
2341         a window_save instruction, adjust the ENTRY_VALUE_EXP.
2342         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
2343         SSA_NAME_VAR is a parameter.
2344         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
2345         * var-tracking.c (parm_reg_t): New type and associated vector type.
2346         (windowed_parm_regs): New variable.
2347         (adjust_insn): If the target has a window_save instruction and this
2348         is the instruction, make its effect on parameter registers explicit.
2349         (next_non_note_insn_var_location): New function.
2350         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
2351         (vt_add_function_parameter): If the target has a window_save insn,
2352         adjust the incoming RTL and record that in windowed_parm_regs.
2353         (vt_finalize): Free windowed_parm_regs.
2354
2355 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
2356
2357         * doc/invoke.texi (C6X Options): New section.
2358         * doc/md.texi (TI C6X family): New section.
2359         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
2360         tic6x-*-uclinux.
2361         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
2362         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
2363         Provide C6X definitions.
2364         * config/c6x/c6x.md: New file.
2365         * config/c6x/constraints.md: New file.
2366         * config/c6x/predicates.md: New file.
2367         * config/c6x/c6x-sched.md.in: New file.
2368         * config/c6x/c6x-sched.md: New file.
2369         * config/c6x/gensched.sh: New file.
2370         * config/c6x/c6x-mult.md.in: New file.
2371         * config/c6x/genmult.sh: New file.
2372         * config/c6x/c6x-mult.md: New file.
2373         * config/c6x/sync.md: New file.
2374         * config/c6x/c6x-protos.h: New file.
2375         * config/c6x/sfp-machine.h: New file.
2376         * config/c6x/c6x.c: New file.
2377         * config/c6x/c6x.h: New file.
2378         * config/c6x/crti.s: New file.
2379         * config/c6x/crtn.s: New file.
2380         * config/c6x/lib1funcs.asm: New file.
2381         * config/c6x/c6x-modes.def: New file.
2382         * config/c6x/genopt.sh: New file.
2383         * config/c6x/c6x.opt: New file.
2384         * config/c6x/c6x-tables.opt: New file.
2385         * config/c6x/c6x-opts.h: New file.
2386         * config/c6x/c6x-isas.def: New file.
2387         * config/c6x/elf.h: New file.
2388         * config/c6x/elf-common.h: New file.
2389         * config/c6x/uclinux-elf.h: New file.
2390         * config/c6x/t-c6x: New file.
2391         * config/c6x/t-c6x-elf: New file.
2392         * config/c6x/t-c6x-uclinux: New file.
2393         * config/c6x/t-c6x-softfp: New file.
2394         * config/c6x/gtd.c: New file.
2395         * config/c6x/gtf.c: New file.
2396         * config/c6x/ltd.c: New file.
2397         * config/c6x/ltf.c: New file.
2398         * config/c6x/ged.c: New file.
2399         * config/c6x/gef.c: New file.
2400         * config/c6x/led.c: New file.
2401         * config/c6x/lef.c: New file.
2402         * config/c6x/eqd.c: New file.
2403         * config/c6x/eqf.c: New file.
2404         * config/c6x/libgcc-c6xeabi.ver: New file.
2405
2406         Revert
2407         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2408         PR rtl-optimization/11320
2409         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
2410         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
2411         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
2412         current_sched_info->compute_jump_reg_dependencies. Record which
2413         registers are used and which registers are set by the jump.
2414         Clear deps->reg_conditional_sets after a barrier.
2415         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
2416         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
2417         (init_deps): Initialize reg_conditional_sets.
2418         (free_deps): Clear reg_conditional_sets.
2419         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
2420         Mark registers live on entry of the fallthrough block and conditionally
2421         set as set by the jump. Mark registers live on entry of non-fallthrough
2422         blocks as used by the jump.
2423         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
2424         Mark new parameters as unused.
2425
2426 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
2427
2428         PR tree-opt/49309
2429         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
2430         Use fold_build2_loc instead of build2.
2431         Use the correct type for the new tree.
2432
2433 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2434
2435         PR rtl-optimization/11320
2436         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
2437         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
2438
2439 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
2440
2441         PR target/49487
2442         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
2443         of REG.
2444         (*rotw<mode>): Use const_int_operand for operand2.
2445         Use match_scatch for operand3.
2446         (*rotb<mode>): Ditto
2447         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
2448
2449 2011-07-14  Richard Guenther  <rguenther@suse.de>
2450
2451         PR tree-optimization/49651
2452         * tree-ssa-structalias.c (get_constraint_for_1): Properly
2453         handle dereferences with subvariables.
2454
2455 2011-07-14  Richard Guenther  <rguenther@suse.de>
2456
2457         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
2458         (fold_stmt_1): Do it here directly on gimple and as a first thing.
2459
2460 2011-07-14  Richard Guenther  <rguenther@suse.de>
2461
2462         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
2463         not bool_var when folding bool_var != 1 or bool_var == 0.
2464
2465 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2466
2467         * haifa-sched.c (schedule_insns): Remove outdated comment.
2468         (schedule_block): When computing a known value for TODO_SPEC,
2469         just set it rather than using logical operations.
2470         (try_ready): Likewise.  Use a local variable rather than a
2471         pointer to TODO_SPEC.  Reorder an if statement to move the
2472         easy case to the then block.
2473         * sched-deps.c (dep_spec_p): New static function.
2474         (update_dep): Use it to decide whether to call
2475         change_spec_dep_to_hard.
2476         (get_back_and_forw_lists): Use it.
2477         (sd_resolve_dep): Likewise.
2478         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
2479         (haifa_note_mem_dep): Likewise.
2480         (check_dep): Likewise.
2481         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
2482         (sched_free_deps): Free in two passes.
2483
2484 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
2485
2486         PR middle-end/49736
2487         * expr.c (all_zeros_p): Undo bogus part of last change.
2488
2489 2011-07-14  Matthias Klose <doko@ubuntu.com>
2490
2491         * doc/extend.texi (optimize attribute): Fix typo.
2492
2493 2011-07-14  Richard Guenther  <rguenther@suse.de>
2494
2495         * gimplify.c (gimplify_expr): Only do required conversions.
2496
2497 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
2498
2499         PR target/43746
2500         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
2501         i.e. use default_elf_select_section.
2502         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
2503         (READONLY_DATA_SECTION_ASM_OP): Remove.
2504         (TARGET_ASM_NAMED_SECTION): Move from here...
2505         * config/avr/avr.c: ...to here.
2506         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
2507         (avr_asm_named_section): Make static.
2508
2509 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2510
2511         PR bootstrap/49739
2512         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
2513         and crtfastmath.o for Linux/x86.
2514
2515 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2516
2517         * haifa-sched.c: Include "hashtab.h"
2518         (sched_no_dce): New global variable.
2519         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
2520         SHADOW_P): New macros.
2521         (last_clock_var, cycle_issued_insns): Move declarations.
2522         (must_backtrack): New static variable.
2523         (struct delay_pair): New structure.
2524         (delay_htab, delay_htab_i2): New static variables.
2525         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
2526         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
2527         functions.
2528         (dep_cost_1): If delay pairs exist, try to look up the insns and
2529         use the correct pair delay if we find them.
2530         (rank-for_schedule): Tweak priority for insns that must be scheduled
2531         soon to avoid backtracking.
2532         (queue_insn): Detect conditions which force backtracking.
2533         (ready_add): Likewise.
2534         (struct sched_block_state): Add member shadows_only_p.
2535         (struct haifa_save_data): New structure.
2536         (backtrack_queue): New static variable.
2537         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
2538         unschedule_insns_until, restore_last_backtrack_point,
2539         free_topmost_backtrack_point, free_backtrack_queue,
2540         estimate_insn_tick, estimate_shadow_tick): New functions.
2541         (prune_ready_list): New arg shadows_only_p.  All callers changed.
2542         If true, remove everything that isn't SHADOW_P.  Look up delay
2543         pairs and estimate ticks to avoid scheduling the first insn too early.
2544         (verify_shadows): New function.
2545         (schedule_block): Add machinery to enable backtracking.
2546         (sched_init): Take sched_no_dce into account when setting
2547         DF_LR_RUN_DCE.
2548         (free_delay_pairs): New function.
2549         (init_h_i_d): Initialize INSN_EXACT_TICK.
2550         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
2551         * sched-deps.c (sd_unresolve_dep): New function.
2552         * sched-int. (struct haifa_sched_info): New fields save_state
2553         and restore_state.
2554         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
2555         feeds_backtrack_insn and shadow_p.
2556         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
2557         (sched_no_dce): Declare variable.
2558         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
2559         sd_unresolve_dep): Declare functions.
2560         * modulo-sched.c (sms_sched_info): Clear the two new fields.
2561         * sched-rgn.c (rgn_const_sched_info): Likewise.
2562         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2563         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
2564         (ebb_sched_info): Add them for the two new fields.
2565         (add_deps_for_risky_insns): Call add_delay_dependencies.
2566
2567 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
2568
2569         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
2570         Rename -mr11.
2571         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
2572         (rs6000_call_indirect_aix): Ditto.
2573         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
2574         (call_indirect_aix<ptrsize>_internal): Ditto.
2575         (call_indirect_aix<ptrsize>_nor11): Ditto.
2576         (call_indirect_aix<ptrsize>_internal2): Ditto.
2577         (call_value_indirect_aix<ptrsize>): Ditto.
2578         (call_value_indirect_aix<ptrsize>_internal): Ditto.
2579         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2580         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2581         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
2582
2583 2011-07-13  Jason Merrill  <jason@redhat.com>
2584
2585         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
2586
2587 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2588
2589         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
2590         * config/spu/spu.md ("clrsb<mode>2"): New expander.
2591
2592 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
2593
2594         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
2595         * configure: Regenerate.
2596
2597 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2598
2599         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
2600         (asm_file_start): Remove.
2601         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
2602         free_bb_for_insn around code that modifies insns before
2603         restarting df analysis.
2604
2605 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2606
2607         PR target/49541
2608         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
2609         (LINK_SPEC): ... here.
2610
2611 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
2612
2613         * haifa-sched.c (struct sched_block_state): New.
2614         (schedule_block): Move some local variables into such a structure.
2615
2616 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2617
2618         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
2619         * config/i386/t-crtpc: Remove.
2620         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2621         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
2622         tmake_file.
2623         (x86_64-*-darwin*): Likewise.
2624         (i[34567]86-*-linux*): Likewise.
2625         (x86_64-*-linux*): Likewise.
2626
2627         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
2628         Handle -mpc32, -mpc64, -mpc80.
2629
2630 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2631
2632         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
2633         * config/alpha/t-crtfm: Remove.
2634         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
2635         * config/i386/t-crtfm: Remove.
2636         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
2637         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
2638         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
2639         * config/sparc/t-crtfm: Remove.
2640
2641         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
2642         (alpha*-*-freebsd*): Likewise.
2643         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
2644         (x86_64-*-darwin*): Likewise.
2645         (i[34567]86-*-linux*): Likewise.
2646         (x86_64-*-linux*): Likewise.
2647         (x86_64-*-mingw*): Likewise.
2648         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
2649         (ia64*-*-freebsd*): Likewise.
2650         (ia64*-*-linux*): Likewise.
2651         (mips64*-*-linux*): Likewise.
2652         (mips*-*-linux*): Likewise.
2653         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
2654         (sparc64-*-linux*): Likewise.
2655         (sparc64-*-freebsd*): Likewise.
2656
2657 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2658
2659         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
2660         * config/darwin-crt3.c: Move to ../libgcc/config.
2661         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2662         ($(T)crt3$(objext)): Remove.
2663         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
2664         ($(T)crt2$(objext)): Remove.
2665         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
2666         (powerpc64-*-darwin*): Likewise.
2667
2668 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
2669
2670         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
2671
2672         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
2673         (addsi_1_zext): This.
2674
2675 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
2676
2677         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
2678         * doc/tm.texi: Regenerate.
2679         * target.def (mergeable_rodata_prefix): New defhookpod.
2680         * varasm.c (mergeable_string_section, mergeable_constant_section):
2681         Use it. Allocate name with alloca.
2682
2683 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
2684
2685         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
2686
2687 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
2688
2689         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
2690         overlap check.
2691
2692 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
2693
2694         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
2695         (count_type_elements): Delete.
2696         (complete_ctor_at_level_p): Declare.
2697         * expr.c (flexible_array_member_p): New function, split out from...
2698         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
2699         parameter with for_ctor_p.  When for_ctor_p is true, return the
2700         number of elements that should appear in the top-level constructor,
2701         otherwise return an estimate of the number of scalars.
2702         (categorize_ctor_elements): Replace p_must_clear with p_complete.
2703         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
2704         (complete_ctor_at_level_p): New function, borrowing union logic
2705         from old categorize_ctor_elements_1.
2706         (mostly_zeros_p): Return true if the constructor is not complete.
2707         (all_zeros_p): Update call to categorize_ctor_elements.
2708         * gimplify.c (gimplify_init_constructor): Update call to
2709         categorize_ctor_elements.  Don't call count_type_elements.
2710         Unconditionally prevent clearing for variable-sized types,
2711         otherwise rely on categorize_ctor_elements to detect
2712         incomplete initializers.
2713
2714 2011-07-13  Richard Guenther  <rguenther@suse.de>
2715
2716         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
2717         the final type is integral.
2718
2719 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
2720
2721         * sched-int.h (struct _dep): Add member cost.
2722         (DEP_COST, UNKNOWN_DEP_COST): New macros.
2723         * sched-deps.c (init_dep_1): Initialize DEP_COST.
2724         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
2725         (sched_change_pattern): Reset it for dependent insns.
2726
2727 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2728
2729         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
2730         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
2731         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
2732         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
2733         (CRT0_S, MCRT0_S): Remove.
2734         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
2735         Remove.
2736         (s-crt0): Remove.
2737         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
2738
2739 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2740
2741         * cse.c (insert_with_costs): Put semi-colon after empty loop body
2742         on the next line.
2743         * emit-rtl.c (push_to_sequence): Likewise.
2744         * haifa-sched.c (max_issue): Likewise.
2745         * matrix-reorg.c (add_allocation_site): Likewise.
2746         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
2747         * reload.c (alternative_allows_const_pool_ref): Likewise.
2748         * sched-rgn.c (rgn_add_block): Likewise.
2749         (rgn_fix_recovery_cfg): Likewise.
2750         * tree.c (attribute_list_contained): Likewise.
2751
2752 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
2753
2754         * config/i386/i386.c: Tidy processor feature bitmasks.
2755         (m_P4_NOCONA): New.
2756
2757 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
2758
2759         PR rtl-opt/49474
2760         * cprop.c (find_implicit_sets): Correct the condition.
2761
2762 2011-07-12  Richard Henderson  <rth@redhat.com>
2763
2764         PR target/49713
2765         * dwarf2out.h (dwarf_frame_regnum): Remove.
2766         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
2767         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
2768         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
2769         (execute_dwarf2_frame): Initialize them.
2770         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
2771         users of the macros with the variables.
2772         (expand_builtin_dwarf_sp_column): Revert last change.
2773         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
2774         result of DWARF_FRAME_REGNUM into a local variable.
2775
2776 2011-07-12  Richard Henderson  <rth@redhat.com>
2777
2778         PR target/49714
2779         * config/i386/i386.c (x86_output_mi_thunk): Use
2780         machopic_indirect_call_target instead of machopic_indirection_name
2781         directly.
2782
2783 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
2784             Eric Botcazou  <ebotcazou@adacore.com>
2785
2786         * prefix.h: Wrap up in extern "C" block.
2787
2788 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
2789
2790         AMD bdver2 Enablement
2791         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
2792         (case ${target}): Add bdver2.
2793         * config/i386/driver-i386.c (host_detect_local_cpu): Let
2794         -march=native recognize bdver2 processors.
2795         * config/i386/i386-c.c (ix86_target_macros_internal): Add
2796         bdver2 def_and_undef
2797         * config/i386/i386.c (struct processor_costs bdver2_cost): New
2798         bdver2 cost table.
2799         (m_BDVER2): New definition.
2800         (m_AMD_MULTIPLE): Includes m_BDVER2.
2801         (initial_ix86_tune_features): Add bdver2 tuning.
2802         (processor_target_table): Add bdver2 entry.
2803         (static const char *const cpu_names): Add bdver2 entry.
2804         (ix86_option_override_internal): Add bdver2 instruction sets.
2805         (ix86_issue_rate): Add bdver2.
2806         (ix86_adjust_cost): Add bdver2.
2807         (has_dispatch): Add bdver2.
2808         * config/i386/i386.h (TARGET_BDVER2): New definition.
2809         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
2810         (enum processor_type): Add PROCESSOR_BDVER2.
2811         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
2812         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
2813         description.
2814
2815 2011-07-12  Richard Henderson  <rth@redhat.com>
2816
2817         PR target/49714
2818         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
2819         destination address in memory on some paths.
2820
2821 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
2822
2823         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
2824         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
2825         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
2826         * function.c (locate_and_pad_parm): Take it into account.
2827         * target.def (function_arg_round_boundary): New hook.
2828         * targhooks.c (default_function_arg_round_boundary): New function.
2829         * targhooks.h (default_function_arg_round_boundary): Declare.
2830         * doc/tm.texi: Regenerate.
2831
2832 2011-07-12  Richard Guenther  <rguenther@suse.de>
2833
2834         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
2835         Do not perform no-op changes.
2836
2837 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
2838
2839         * config/arm/predicates.md (neon_struct_operand): Make a normal
2840         predicate.
2841         (neon_struct_or_register_operand): New predicate.
2842         * config/arm/neon.md (movmisalign<mode>): Replace predicates
2843         with neon_struct_or_register_operand.
2844         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
2845         neon_struct_operand instead of memory_operand.
2846
2847 2011-07-12  Martin Jambor  <mjambor@suse.cz>
2848
2849         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
2850         * cgraph.c (cgraph_get_node_or_alias): Removed.
2851         (change_decl_assembler_name): Changed all calls to
2852         cgraph_get_node_or_alias to a call to cgraph_get_node.
2853         (cgraph_make_decl_local): Likewise.
2854         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
2855         * varasm.c (default_binds_local_p_1): Likewise.
2856         (decl_binds_to_current_def_p): Likewise.
2857
2858 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
2859
2860         PR tree-optimization/49712
2861         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
2862
2863 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
2864
2865         * genautomata.c (add_arc): Return void.  All callers changed.
2866         (make_automaton): Remove dead code.
2867
2868 2011-07-11  Richard Henderson  <rth@redhat.com>
2869
2870         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
2871         (DW_FRAME_POINTER_REGNUM): New.
2872         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
2873         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
2874         (dwf_regno): New.
2875         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
2876         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
2877         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
2878         Use it.
2879         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
2880         * dwarf2out.h (dwarf_frame_regnum): New.
2881         (struct cfa_loc): Document the domain of the reg member.
2882
2883 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
2884
2885         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
2886         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
2887
2888 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
2889
2890         PR debug/49676
2891         * dwarf2out.c (int_shift_loc_descriptor): New function.
2892         (int_loc_descriptor): If shorter, emit i as
2893         (i >> shift), shift, DW_OP_shl for suitable shift value.
2894         Similarly, try to optimize large negative values using
2895         DW_OP_neg of a positive value if shorter.
2896         (size_of_int_shift_loc_descriptor): New function.
2897         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
2898         changes.
2899         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
2900         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
2901         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
2902         is shorter.
2903         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
2904         addend as added DW_OP_plus if it is shorter.
2905
2906 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2907
2908         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
2909         (DTORS_SECTION_ASM_OP): Define.
2910
2911 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2912
2913         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
2914         * config/t-dfprules: Move to ../libgcc/config.
2915         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2916         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
2917         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
2918         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
2919         Likewise.
2920         (i[34567]86-*-cygwin*): Likewise.
2921         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
2922         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
2923         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
2924         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
2925         D64PBIT_FUNCS, D128PBIT_FUNCS.
2926
2927 2011-07-11  Richard Guenther  <rguenther@suse.de>
2928
2929         * tree-vrp.c (simplify_conversion_using_ranges): Manually
2930         translate the source value-range through the conversion chain.
2931
2932 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
2933
2934         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
2935
2936 2011-07-11  Arthur Loiret  <aloiret@debian.org>
2937
2938         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
2939         a bi-arch compiler defaulting to 31-bit. In this case:
2940         (tmake_file): Add s390/t-linux64.
2941         * doc/install.texi: Add s390-linux to the list of targets supporting
2942         --enable-targets=all.
2943
2944 2011-07-11  Arthur Loiret  <aloiret@debian.org>
2945             Matthias Klose <doko@debian.org>
2946
2947         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
2948         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
2949         (tm_file): Add mips/linux64.h.
2950         (tmake_file): Add mips/t-linux64.
2951         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
2952         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
2953         instead of hardcoded mabi=n32.
2954         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
2955         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
2956         convention.
2957
2958 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2959
2960         * passes.c (init_optimization_passes): Add invariant motion pass
2961         after induction variable optimization.
2962
2963 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
2964
2965         PR target/39633
2966         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
2967         offsets 1..5 set cc0 in a usable way.
2968
2969 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
2970
2971         * tree.h (call_expr_arg): Remove.
2972         (call_expr_argp): Likewise.
2973
2974 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
2975
2976         * config/sparc/sparc.md (save_register_window_1): Rename to...
2977         (window_save): ...this.
2978         * config/sparc/sparc.c (emit_save_register_window): Rename to...
2979         (emit_window_save): ...this.
2980         (sparc_expand_prologue): Adjust to above renaming.
2981
2982 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
2983
2984         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
2985         of movabs for x32.
2986
2987 2011-07-10  Richard Henderson  <rth@redhat.com>
2988
2989         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
2990         run final, instead of emitting text directly.
2991
2992 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
2993
2994         * config/i386/i386.c (ix86_option_override_internal): Turn on
2995         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
2996         small PIC models for TARGET_X32.
2997
2998 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
2999
3000         PR target/49684
3001         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
3002         $(LIBGCC2_CFLAGS).
3003
3004         PR bootstrap/49680
3005         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
3006         stray notes and debug insns by using prev_nonnote_nondebug_insn
3007         instead of PREV_INSN.
3008
3009 2011-07-09  Richard Henderson  <rth@redhat.com>
3010
3011         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
3012         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
3013         * dwarf2out.c: ... here.
3014         (output_all_cfis): Remove.
3015         (dwarf2out_switch_text_section): Use output_cfis directly.
3016         (size_of_locs): Export.
3017         (output_loc_sequence, output_loc_sequence_raw): Export.
3018         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
3019         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
3020         output_cfa_loc_raw): Move to ...
3021         * dwarfcfi.c: ... here.
3022         * dwarf2out.h: Update decls.
3023
3024 2011-07-09  Richard Henderson  <rth@redhat.com>
3025
3026         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
3027         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
3028         * dwarf2cfi.c: ... here.
3029         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
3030         (DWARF_ROUND, DWARF_CIE_ID): Remove.
3031         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
3032         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
3033         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
3034
3035 2011-07-09  Richard Henderson  <rth@redhat.com>
3036
3037         * dwarf2cfi.c (cie_return_save): New.
3038         (queue_reg_save): Use compare_reg_or_pc.
3039         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
3040         (dwarf2out_frame_debug_expr): Likewise.
3041         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
3042         (initial_return_save): Likewise.
3043         (execute_dwarf2_frame): Save and restore initial return save from
3044         the cie to the fde.
3045         * config/mips/mips.c (mips_frame_set): Remove special case for
3046         DWARF_FRAME_RETURN_COLUMN.
3047
3048 2011-07-09  Richard Henderson  <rth@redhat.com>
3049
3050         * dwarf2cfi.c (lookup_cfa): Remove.
3051         (execute_dwarf2_frame): Assert queues are empty on entry.
3052         Setup initial cfa directly, not via lookup_cfa.
3053         Don't clear args_size state here.
3054
3055 2011-07-09  Richard Henderson  <rth@redhat.com>
3056
3057         * dwarf2cfi.c (add_cfi_vec): New.
3058         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
3059         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
3060         (execute_dwarf2_frame): Set add_cfi_vec.
3061
3062 2011-07-09  Richard Henderson  <rth@redhat.com>
3063
3064         * defaults.h (ASM_COMMENT_START): Move here...
3065         * dwarf2asm.c: ... from here.
3066         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
3067         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
3068         * varasm.c: Likewise.
3069
3070 2011-07-09  Richard Henderson  <rth@redhat.com>
3071
3072         PR debug/49686
3073         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
3074         (create_cfi_notes): ... do it here instead.
3075
3076 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
3077
3078         PR debug/49676
3079         * dwarf2out.c (size_of_int_loc_descriptor): New function.
3080         (address_of_int_loc_descriptor): Use it.
3081         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
3082
3083 2011-07-09  Richard Henderson  <rth@redhat.com>
3084
3085         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
3086         (prologue, epilogue): New.
3087         (return, *rts): New.
3088         (blockage, setd, seti): New.
3089         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
3090         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
3091         (pdp11_saved_regno): New.
3092         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
3093         generate rtl instead of text.
3094         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
3095         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
3096         * config/pdp11/pdp11-protos.h: Update.
3097
3098 2011-07-09  Richard Henderson  <rth@redhat.com>
3099
3100         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
3101         try to insert an rtl prologue here.
3102         (rs6000_output_function_epilogue): Similarly.
3103         * config/rs6000/rs6000.md (prologue): Emit a barrier to
3104         satisfy !TARGET_SCHED_PROLOG.
3105         (epilogue, sibcall_epilogue): Likewise.
3106
3107 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
3108
3109         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
3110         (FP_REG_P): Delete.
3111         (IN_OR_GLOBAL_P): Likewise.
3112
3113 2011-07-08  Jason Merrill  <jason@redhat.com>
3114
3115         PR c++/45437
3116         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
3117         compound assignment.
3118
3119         * cgraph.c (cgraph_add_to_same_comdat_group): New.
3120         * cgraph.h: Declare it.
3121         * ipa.c (function_and_variable_visibility): Make sure thunks
3122         have the right visibility.
3123
3124 2011-07-08  Richard Henderson  <rth@redhat.com>
3125
3126         PR bootstrap/49680
3127         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
3128         any tablejump vector.
3129
3130         PR bootstrap/49680
3131         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
3132         end of the prologue.
3133
3134 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
3135
3136         PR target/49621
3137         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
3138         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
3139         * config/rs6000/vector.md (vector_select_<mode>,
3140         vector_select_<mode>_uns): Change second operand of NE to
3141         CONST0_RTX (<MODE>mode) instead of const0_rtx.
3142         * config/rs6000/altivec.md (*altivec_vsel<mode>,
3143         *altivec_vsel<mode>_uns): Expect second operand of NE to be
3144         zero_constant of the corresponding vector mode.
3145         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
3146         Likewise.
3147
3148 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
3149
3150         * graphite-dependences.c (build_alias_set_powerset): Remove
3151         continue from loop, add one more assert.
3152
3153 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
3154
3155         PR target/46779
3156         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
3157         In particular, allow 8-bit values in r28 and r29.
3158         (avr_hard_regno_scratch_ok): Disallow any register that might be
3159         part of the frame pointer.
3160         (avr_hard_regno_rename_ok): Same.
3161         (avr_legitimate_address_p): Don't allow SUBREGs.
3162
3163 2011-07-08  Julian Brown  <julian@codesourcery.com>
3164
3165         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
3166         big-endian mode.
3167         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
3168         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
3169         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
3170         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
3171         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
3172         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
3173         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
3174         registers in big-endian mode.
3175
3176 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
3177
3178         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
3179         in terms of another.
3180         (write_attr_value): Write a cast if necessary.
3181
3182         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
3183         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
3184         (REG_WORDS_BIG_ENDIAN): Document.
3185         * doc/tm.texi: Regenerate.
3186         * reload.c (operands_match_p): Take it into account.
3187         (reload_adjust_reg_for_mode): Likewise.
3188         * rtlanal.c (subreg_get_info): Likewise.
3189
3190 2011-07-08  Richard Guenther  <rguenther@suse.de>
3191
3192         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
3193         folding.
3194
3195 2011-07-08  Kai Tietz  <ktietz@redhat.com>
3196
3197         * fold-const.c (fold_truth_andor): Factored out truth_andor
3198         label from fold_binary as function.
3199         (fold_binary_loc): Replace truth_andor lable
3200         by function fold_truth_andor.
3201
3202 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
3203
3204         PR middle-end/49519
3205         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
3206         check if address is stored in register. If so - give up.
3207         (check_sibcall_argument_overlap_1): Do not perform check of
3208         overlapping when it is call to address.
3209
3210 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
3211
3212         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
3213         of magic '31'.
3214
3215 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
3216
3217         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
3218         GET_MODE_BITSIZE where appropriate.
3219         (widen_leading, expand_parity, expand_ctz, expand_ffs,
3220         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
3221         expand_float, expand_fix): Likewise.
3222         * expr.c (convert_move, convert_modes, expand_expr_real_2,
3223         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
3224         * stor-layout.c (get_mode_bounds): Likewise.
3225         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
3226         Likewise.
3227         * convert.c (convert_to_integer): Likewise.
3228         * expmed.c (expand_shift_1): Likewise.
3229
3230         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
3231         a bitsize.
3232
3233         * optabs.c (expand_binop): Tighten conditions for doubleword
3234         expansions.
3235         (widen_bswap): Assert that mode bitsize and precision are the same.
3236         * stor-layout.c (get_best_mode): Skip modes that have lower
3237         precision than bitsize.
3238         * recog.c (simplify_while_replacing): Assert that bitsize and
3239         precision are the same.
3240
3241 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3242
3243         * Makefile.in (LIBGCOV): Remove.
3244         (libgcc.mvars): Remove LIBGCOV.
3245         * libgov.c: Move to ../libgcc.
3246
3247 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3248
3249         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
3250
3251 2011-07-08  Martin Jambor  <mjambor@suse.cz>
3252
3253         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
3254         is too big for total scalarization.
3255
3256 2011-07-07  Richard Henderson  <rth@redhat.com>
3257
3258         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
3259         (DBX_DEBUGGING_INFO): Undef.
3260
3261 2011-07-07  Richard Henderson  <rth@redhat.com>
3262
3263         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
3264         Handle some opcodes specially for debugging.
3265         * print-rtl.c: Include dwarf2out.h
3266         (print_rtx): Handle NOTE_INSN_CFI.
3267         * Makefile.in (print-rtl.o): Update.
3268
3269 2011-07-07  Richard Henderson  <rth@redhat.com>
3270
3271         * tree-pass.h (pass_dwarf2_frame): Declare.
3272         * passes.c (init_optimization_passes): Add it.
3273         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
3274         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
3275         make static, do not call add_cfis_to_fde.
3276         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
3277         dwarf2out_frame_init): Merge into...
3278         (execute_dwarf2_frame): ... here.  New function.
3279         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
3280         saved_do_cfi_asm to a tri-state variable.
3281         (gate_dwarf2_frame, pass_dwarf2_frame): New.
3282         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
3283         if it has yet to be done.  Don't call dwarf2cfi_function_init.
3284         * dwarf2out.h, debug.h: Update decls.
3285         * final.c (final_start_function): Don't call
3286         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
3287         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
3288         * toplev.c (lang_dependent_init): Likewise.
3289
3290 2011-07-07  Richard Henderson  <rth@redhat.com>
3291
3292         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
3293         FDE_TABLE_INCREMENT): Replace with...
3294         (fde_vec): ... this, a new vector.
3295         (current_fde): Remove.  Replace all users with cfun->fde.
3296         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
3297         (size_of_aranges, dwarf2out_finish): Likewise.
3298         (dwarf2out_alloc_current_fde): Break out from ...
3299         (dwarf2out_begin_prologue): ... here.
3300         (dwarf2out_frame_init): Remove.
3301         * dwarf2cfi.c: Update all users of current_fde.
3302         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
3303         * dwarf2out.h: Update decls.
3304         (dw_fde_node): Add fde_index member.
3305         * function.h (struct function): Add fde member.
3306
3307 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3308             Richard Henderson  <rth@redhat.com>
3309
3310         * dwarf2cfi.c (add_cfi): Remove.
3311         (dwarf2out_cfi_label): Remove force argument.  Only generate the
3312         label name.
3313         (add_fde_cfi): Simplify the different code paths.
3314         (add_cie_cfi): New.
3315         (old_cfa, old_cfa_remember): New.
3316         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
3317         (last_reg_save_label): Remove.
3318         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
3319         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3320         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3321         dwarf2out_frame_debug_cfa_expression,
3322         dwarf2out_frame_debug_cfa_restore,
3323         dwarf2out_frame_debug_cfa_window_save,
3324         dwarf2out_frame_debug_expr): Remove label parameter.
3325         (cfi_label_required_p, add_cfis_to_fde): New.
3326         (dwarf2out_frame_debug_after_prologue): New.
3327         (dwarf2cfi_frame_init): Initialize old_cfa.
3328         (dwarf2out_frame_debug_restore_state): Likewise.
3329         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
3330         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
3331         * final.c (final_start_function): Call
3332         dwarf2out_frame_debug_after_prologue.
3333
3334 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3335             Richard Henderson  <rth@redhat.com>
3336
3337         * dwarf2cfi.c (cfi_insn): New.
3338         (dwarf2out_cfi_label): Don't emit cfi label here.
3339         (add_fde_cfi): Create a NOTE_INSN_CFI.
3340         (dwarf2out_frame_debug): Setup cfi_insn.
3341         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
3342         (dwarf2out_cfi_begin_epilogue): Make static.
3343         (dwarf2out_frame_debug_restore_state): Make static.
3344         * dwarf2out.c (output_cfi_directive): Make static.
3345         (dwarf2out_emit_cfi): New.
3346         * dwarf2out.h: Update.
3347         * final.c (final): Remove CFI notes.
3348         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
3349         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
3350         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
3351         * insn-notes.def (NOTE_INSN_CFI): New.
3352         (NOTE_INSN_CFI_LABEL): New.
3353         * rtl.h (union rtunion_def): Add rt_cfi member.
3354         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
3355
3356 2011-07-07  Richard Henderson  <rth@redhat.com>
3357
3358         * dwarf2cfi.c: New file.
3359         * Makefile.in (OBJS): Add it.
3360         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
3361         * gengtype.c (open_base_files): Include dwarf2out.h.
3362         * coretypes.h (enum var_init_status): Move from ...
3363         * rtl.h: ... here.
3364         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
3365         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
3366         expand_builtin_dwarf_sp_column, init_return_column_size,
3367         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
3368         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
3369         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
3370         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
3371         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
3372         compute_barrier_args_size, dwarf2out_args_size,
3373         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
3374         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
3375         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
3376         queue_reg_save, dwarf2out_flush_queued_reg_saves,
3377         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
3378         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3379         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3380         dwarf2out_frame_debug_cfa_expression,
3381         dwarf2out_frame_debug_cfa_restore,
3382         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
3383         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
3384         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
3385         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
3386         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
3387         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
3388         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
3389         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
3390         dw_loc_descr_node): Move to dwarf2out.h.
3391         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
3392         mem_loc_descriptor): Export.
3393         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
3394         (dwarf2out_frame_init): Extract CIE generation code to
3395         dwarf2cfi_frame_init.
3396
3397 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
3398
3399         PR target/49660
3400         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
3401         MASK_V8PLUS, remove commented out flag and reorder.
3402
3403 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
3404
3405         PR c/49644
3406         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
3407         one non-complex and one complex argument, call c_save_expr on both
3408         operands.
3409
3410 2011-07-07  Martin Jambor  <mjambor@suse.cz>
3411
3412         PR middle-end/49495
3413         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
3414         (verify_cgraph_node): Some functinality moved to
3415         verify_edge_corresponds_to_fndecl, call it.
3416
3417 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3418
3419         * config.gcc (*local*): Remove.
3420         * doc/install-old.texi: Don't mention local configurations.
3421
3422 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
3423
3424         PR debug/49522
3425         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
3426         referencing debug insns that have been reset.
3427         (dead_debug_insert_before): Don't assert reg is non-NULL,
3428         instead return immediately if it is NULL.
3429
3430 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3431
3432         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
3433
3434 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3435
3436         * hw-doloop.c: New file.
3437         * hw-doloop.h: New file.
3438         * Makefile.in (OBJS): Add hw-doloop.o.
3439         (hw-doloop.o): New rule.
3440         ($(obj_out_file)): Add hw-doloop.h dependency.
3441         * config/bfin/bfin.c: Include "hw-doloop.h".
3442         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
3443         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
3444         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
3445         type changed to hwloop_info.  Return bool, true if the loop was
3446         successfully optimized.  Remove code that was moved to
3447         hw-doloop.c, and adjust other parts.
3448         (hwloop_fail): New static function, containing parts that used
3449         to be in bfin_optimize_loop.
3450         (bfin_discover_loop, bfin_discover_loops, free_loops,
3451         bfin_reorder_loops): Remove.
3452         (hwloop_pattern_reg): New static function.
3453         (bfin_doloop_hooks): New variable.
3454         (bfin_reorg_loops): Remove most code, call reorg_loops.
3455         * config/bfin/bfin.md (doloop_end splitter): Also enable if
3456         loop counter is a memory_operand.
3457
3458 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
3459
3460         * config.gcc: Support --with-multilib-list for x86 Linux targets.
3461
3462         * configure.ac: Mention x86-64 for --with-multilib-list.
3463         * configure: Regenerated.
3464
3465         * config/i386/gnu-user64.h (SPEC_64): Support x32.
3466         (SPEC_32): Likewise.
3467         (ASM_SPEC): Likewise.
3468         (LINK_SPEC): Likewise.
3469         (TARGET_THREAD_SSP_OFFSET): Likewise.
3470         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
3471         (SPEC_X32): New.
3472
3473         * config/i386/i386.h (TARGET_X32): New.
3474         (TARGET_LP64): New.
3475         (LONG_TYPE_SIZE): Likewise.
3476         (POINTER_SIZE): Likewise.
3477         (POINTERS_EXTEND_UNSIGNED): Likewise.
3478         (OPT_ARCH64): Support x32.
3479         (OPT_ARCH32): Likewise.
3480
3481         * config/i386/i386.opt (mx32): New.
3482
3483         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
3484         (GLIBC_DYNAMIC_LINKERX32): Likewise.
3485         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
3486         (GLIBC_DYNAMIC_LINKERX32): Likewise.
3487
3488         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
3489         (BIONIC_DYNAMIC_LINKERX32): Likewise.
3490         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
3491
3492         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
3493
3494         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
3495
3496         * doc/invoke.texi: Document -mx32.
3497
3498 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
3499
3500         * doc/invoke.texi (mwords-little-endian): Deprecate.
3501         * config/arm/arm.opt (mwords-little-endian): Likewise.
3502         * config/arm/arm.c (arm_option_override): Warn about the deprecation
3503         of -mwords-little-endian.
3504
3505 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
3506
3507         * reload1.c (choose_reload_regs): Use mode sizes to check whether
3508         an old reload register completely defines the required value.
3509
3510 2011-07-07  Richard Guenther  <rguenther@suse.de>
3511
3512         * fold-const.c (fold_unary_loc): Do not strip sign-changes
3513         for NEGATE_EXPR.
3514
3515 2011-07-07  Richard Guenther  <rguenther@suse.de>
3516
3517         * tree-vrp.c (simplify_conversion_using_ranges): New function.
3518         (simplify_stmt_using_ranges): Call it.
3519
3520 2011-07-07  Kai Tietz  <ktietz@redhat.com>
3521
3522         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
3523         (lookup_logical_inverted_value): Likewise.
3524         (simplify_bitwise_binary_1): Likewise.
3525         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
3526
3527 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3528
3529         * gcc.c (%[Spec]): Don't document.
3530         (struct spec_list): Update comment.
3531         (do_spec_1): Don't handle %[Spec].
3532         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
3533
3534 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3535
3536         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
3537         default based on TARGET_ASM_NAMED_SECTION.
3538         * common/common-target.def (have_named_sections): Default to true.
3539         * common/config/default-common.c: Don't include tm.h.
3540         * common/config/picochip/picochip-common.c
3541         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
3542         * common/config/m32c/m32c-common.c: Remove.
3543         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
3544         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3545         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3546         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3547         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3548         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3549         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3550
3551 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
3552
3553         PR middle-end/49640
3554         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
3555         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
3556
3557 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3558
3559         PR libmudflap/49550
3560         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
3561
3562 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3563
3564         PR target/39150
3565         * configure.ac (gcc_cv_as_hidden): Also accept
3566         x86_64-*-solaris2.1[0-9]*.
3567         (gcc_cv_as_cfi_directive): Likewise.
3568         (gcc_cv_as_comdat_group_group): Likewise.
3569         (set_have_as_tls): Likewise.
3570         * configure: Regenerate.
3571         * config.gcc (i[34567]86-*-solaris2*): Also handle
3572         x86_64-*-solaris2.1[0-9]*.
3573         * config.host (i[34567]86-*-solaris2*): Likewise.
3574         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
3575         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
3576         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
3577         (TARGET_LD_EMULATION): Use it.
3578         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
3579         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
3580         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
3581         (ASM_CPU64_DEFAULT_SPEC): Define.
3582         (ASM_CPU_SPEC): Use %(asm_cpu_default).
3583         (ASM_SPEC): Redefine.
3584         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
3585         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
3586         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
3587         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
3588         configuration.
3589         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
3590
3591 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3592
3593         * config/sol2.h (ASM_SPEC): Split into ...
3594         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
3595         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
3596         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
3597         (ASM_SPEC): Use ASM_SPEC_BASE.
3598         * config/sparc/sol2.h (ASM_SPEC): Redefine.
3599
3600 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
3601
3602         * config/avr/avr.md (*reload_insi): Change predicate #1 to
3603         const_int_operand.  Ditto for peep2 producing this insn.
3604         Add argument to output_reload_insisf call.
3605         (*movsi,*movsf): Add argument to output_movsisf call.
3606         (*reload_insf): New insn and new peep2 to produce it.
3607         * config/avr/avr-protos.h (output_movsisf): Change prototype.
3608         (output_reload_insisf): Change prototype.
3609         * config/avr/avr.c (avr_asm_len): New function.
3610         (output_reload_insisf): Rewrite.
3611         (output_movsisf): Change prototype.  output_reload_insisf for
3612         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
3613         (adjust_insn_length): Add argument to output_movsisf and
3614         output_reload_insisf call.
3615
3616 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3617
3618         * emit-rtl.c (paradoxical_subreg_p): New function.
3619         * rtl.h (paradoxical_subreg_p): Declare.
3620         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
3621         apply_distributive_law, simplify_comparison, simplify_set): Use it.
3622         * cse.c (record_jump_cond, cse_insn): Likewise.
3623         * expr.c (force_operand): Likewise.
3624         * rtlanal.c (num_sign_bit_copies1): Likewise.
3625         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
3626         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
3627         (push_reload): Use precision to check for paradoxical subregs.
3628         * expmed.c (extract_bit_field_1): Likewise.
3629
3630         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
3631         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
3632         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
3633         simplify_set, simplify_logical, expand_compound_operation,
3634         make_extraction, force_to_mode, if_then_else_cond, extended_count,
3635         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
3636         record_value_for_reg): Likewise.
3637         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
3638         * simplify-rtx. c (simplify_unary_operation_1,
3639         simplify_binary_operation_1, simplify_const_relational_operation):
3640         Likewise.
3641
3642         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
3643         instead of GET_MODE_BITSIZE where appropriate.
3644         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
3645         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
3646         init_num_sign_bit_copies_in_rep): Likewise.
3647         * cse.c (fold_rtx, cse_insn): Likewise.
3648         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
3649         * simplify-rtx.c (simplify_unary_operation_1,
3650         simplify_const_unary_operation, simplify_binary_operation_1,
3651         simplify_const_binary_operation, simplify_ternary_operation,
3652         simplify_const_relational_operation, simplify_subreg): Likewise.
3653         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
3654         simplify_if_then_else, simplify_set, expand_compound_operation,
3655         expand_field_assignment, make_extraction, if_then_else_cond,
3656         make_compound_operation, force_to_mode, make_field_assignment,
3657         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
3658         extended_count, try_widen_shift_mode, simplify_shift_const_1,
3659         simplify_comparison, record_promoted_value, simplify_compare_const,
3660         record_dead_and_set_regs_1): Likewise.
3661
3662         Revert:
3663         * simplify-rtx.c (simplify_const_binary_operation): Use the
3664         shift_truncation_mask hook instead of performing modulo by width.
3665         Compare against mode precision, not bitsize.
3666         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
3667         Use shift_truncation_mask instead of constructing the value manually.
3668
3669 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3670
3671         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
3672         declaration.
3673         (rs6000_save_toc_in_prologue_p): Ditto.
3674
3675         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
3676         up the static chain (r11) during indirect function calls.
3677         (-msave-toc-indirect): New undocumented debug switch.
3678
3679         * config/rs6000/rs6000.c (struct machine_function): Add
3680         save_toc_in_prologue field to note whether the prologue needs to
3681         save the TOC value in the reserved stack location.
3682         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
3683         to save the TOC in the prologue, do so.
3684         (rs6000_trampoline_init): Don't allow creating AIX style
3685         trampolines if -mno-r11 is in effect.
3686         (rs6000_call_indirect_aix): New function to create AIX style
3687         indirect calls, adding support for -mno-r11 to suppress loading
3688         the static chain, and saving the TOC in the prologue instead of
3689         the call body.
3690         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
3691         TOC in the prologue.
3692
3693         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
3694         register numbers.
3695         (TOC_REGNUM): Ditto.
3696         (STATIC_CHAIN_REGNUM): Ditto.
3697         (ARG_POINTER_REGNUM): Ditto.
3698         (SFP_REGNO): Delete, unused.
3699         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
3700         function descriptor offsets.
3701         (TOC_SAVE_OFFSET_64BIT): Ditto.
3702         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
3703         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
3704         (AIX_FUNC_DESC_SC_32BIT): Ditto.
3705         (AIX_FUNC_DESC_SC_64BIT): Ditto.
3706         (ptrload): New mode attribute for the appropriate load of a pointer.
3707         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
3708         (call_indirect_aix64): Ditto.
3709         (call_value_indirect_aix32): Ditto.
3710         (call_value_indirect_aix64): Ditto.
3711         (call_indirect_nonlocal_aix32_internal): Ditto.
3712         (call_indirect_nonlocal_aix32): Ditto.
3713         (call_indirect_nonlocal_aix64_internal): Ditto.
3714         (call_indirect_nonlocal_aix64): Ditto.
3715         (call): Rewrite AIX indirect function calls.  Add support for
3716         eliminating the static chain, and for moving the save of the TOC
3717         to the function prologue.
3718         (call_value): Ditto.
3719         (call_indirect_aix<ptrsize>): Ditto.
3720         (call_indirect_aix<ptrsize>_internal): Ditto.
3721         (call_indirect_aix<ptrsize>_internal2): Ditto.
3722         (call_indirect_aix<ptrsize>_nor11): Ditto.
3723         (call_value_indirect_aix<ptrsize>): Ditto.
3724         (call_value_indirect_aix<ptrsize>_internal): Ditto.
3725         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3726         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3727         (call_nonlocal_aix32): Relocate in the rs6000.md file.
3728         (call_nonlocal_aix64): Ditto.
3729
3730         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
3731         -mno-r11 documentation.
3732
3733 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
3734
3735         PR other/49658
3736         * doc/extend.texi (Compound Literals): Fix typo.
3737
3738 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
3739
3740         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
3741
3742 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
3743
3744         * configure.ac (plugin-version.h): Generate
3745         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
3746         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
3747         macros.
3748
3749         * configure: Regenerate.
3750
3751         * doc/plugins.texi (Building GCC plugins): Mention
3752         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
3753
3754 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
3755
3756         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
3757         * combine.c (make_extraction, gen_lowpart_or_truncate,
3758         apply_distributive_law, simplify_comparison,
3759         reg_truncated_to_mode, record_truncated_value): Use it.
3760         * cse.c (notreg_cost): Likewise.
3761         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
3762         * expr.c (convert_move, convert_modes): Likewise.
3763         * optabs.c (expand_binop, expand_unop): Likewise.
3764         * postreload.c (move2add_last_label): Likewise.
3765         * regmove.c (optimize_reg_copy_3): Likewise.
3766         * rtlhooks.c (gen_lowpart_general): Likewise.
3767         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3768
3769 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
3770
3771         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
3772
3773 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
3774
3775         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
3776         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
3777         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
3778         (simplify_const_unary_operation, simplify_binary_operation_1,
3779         simplify_const_binary_operation, simplify_const_relational_operation):
3780         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
3781         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
3782         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
3783         simplify_shift_const_1, simplify_comparison): Likewise.
3784         * expr.c (convert_modes): Likewise.
3785         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
3786         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
3787         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
3788
3789         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
3790
3791 2011-07-06  Richard Guenther  <rguenther@suse.de>
3792
3793         PR tree-optimization/49645
3794         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
3795         register variables.
3796         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
3797         in type qualification here ...
3798         (copy_reference_ops_from_ref): ... not here.
3799         (vn_reference_lookup_3): ... or here.
3800         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
3801         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
3802
3803 2011-07-06  Ian Lance Taylor  <iant@google.com>
3804
3805         * doc/install.texi (Configuration): It's
3806         --enable-gnu-indirect-function, not --enable-indirect-function.
3807
3808 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
3809
3810         * simplify-rtx.c (simplify_const_binary_operation): Use the
3811         shift_truncation_mask hook instead of performing modulo by width.
3812         Compare against mode precision, not bitsize.
3813         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
3814         Use shift_truncation_mask instead of constructing the value manually.
3815
3816 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
3817
3818         PR middle-end/47383
3819         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
3820         address computation and convert to address_mode if needed.
3821
3822 2011-07-06  Richard Guenther  <rguenther@suse.de>
3823
3824         * tree.c (build_common_tree_nodes_2): Merge with
3825         build_common_tree_nodes.
3826         * tree.h (build_common_tree_nodes): Adjust prototype.
3827         (build_common_tree_nodes_2): Remove.
3828         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
3829         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
3830
3831 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
3832
3833         PR tree-optimization/49618
3834         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
3835         t recurse on the decl.
3836         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
3837         return true if expr isn't known to be defined in current
3838         TU or some other LTO partition.
3839
3840 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
3841
3842         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
3843         override CASE_VALUES_THRESHOLD.
3844
3845         * stmt.c (toplevel): Include params.h.
3846         (case_values_threshold): Use the --param case-values-threshold
3847         value if non-zero, otherwise use machine dependent value.
3848         (expand_case): Use case_values_threshold.
3849
3850         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
3851
3852         * doc/invoke.texi (--param case-values-threshold): Document.
3853
3854 2011-07-05  Richard Henderson  <rth@redhat.com>
3855
3856         * dwarf2out.c (dwarf2out_cfi_label): Make static.
3857         (dwarf2out_flush_queued_reg_saves): Make static.
3858         (dwarf2out_reg_save): Remove.
3859         (dwarf2out_return_save): Remove.
3860         (dwarf2out_return_reg): Remove.
3861         (dwarf2out_reg_save_reg): Remove.
3862         (dwarf2out_def_cfa): Merge into ...
3863         (dwarf2out_frame_init): ... here.
3864         * dwarf2out.h, tree.h: Remove declarations as necessary.
3865
3866 2011-07-05  Richard Henderson  <rth@redhat.com>
3867
3868         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
3869         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3870         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
3871         the alloc insn.
3872
3873         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
3874         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
3875         (process_epilogue): Don't call dwarf2out_def_cfa.
3876
3877         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
3878         indicate the return address save.
3879         (process_cfa_register): Likewise.
3880
3881         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
3882         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
3883
3884         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
3885         for ar.pfs save at alloc insn.
3886
3887 2011-07-05  Richard Henderson  <rth@redhat.com>
3888
3889         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
3890         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3891         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
3892         stack pointer save.
3893         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
3894         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
3895         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
3896         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
3897
3898 2011-07-05  Richard Henderson  <rth@redhat.com>
3899
3900         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
3901         VUNSPEC_* constants here instead of via define_constants.
3902         (VUNSPEC_PEM): New constant.
3903         (procedure_entry_mask): New insn.
3904         (prologue): New expander.
3905         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
3906         (vax_expand_prologue): Rename from vax_output_function_prologue;
3907         emit rtl instead of text.
3908         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
3909         (print_operand): Add 'x' prefix.
3910
3911 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
3912
3913         PR middle-end/47715
3914         * calls.c (precompute_register_parameters): Promote the function
3915         argument before checking non-legitimate constant.
3916
3917 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
3918
3919         PR tree-optimization/47654
3920         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
3921         (lst_do_strip_mine_loop): Return an int.
3922         (lst_do_strip_mine): Same.
3923         (scop_do_strip_mine): Same.
3924         (scop_do_block): Loop blocking should strip-mine at least two loops.
3925         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
3926         (scop_do_interchange): Same.
3927         * graphite-poly.h (scop_do_interchange): Update declaration.
3928         (scop_do_strip_mine): Same.
3929
3930 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
3931
3932         * graphite-clast-to-gimple.c (precision_for_value): Removed.
3933         (precision_for_interval): Removed.
3934         (gcc_type_for_interval): Use mpz_sizeinbase.
3935
3936 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
3937
3938         * graphite-ppl.h (value_max): Correct computation of max.
3939
3940 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
3941
3942         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
3943
3944 2011-07-05  Richard Guenther  <rguenther@suse.de>
3945
3946         * c-decl.c (c_init_decl_processing): Defer building common
3947         tree nodes to c_common_nodes_and_builtins.
3948
3949 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
3950
3951         PR tree-optimization/49580
3952         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
3953         the loop's number of iterations.
3954         * tree-parloops.c (transform_to_exit_first_loop): Add the
3955         handling of the loop's number of iterations before the call
3956         to gimple_duplicate_sese_tail.
3957         Insert the stmt caclculating the new rhs of the loop's
3958         condition stmt to the preheader instead of iters_bb.
3959
3960 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
3961
3962         PR rtl-optimization/47449
3963         * fwprop.c (forward_propagate_subreg): Don't propagate hard
3964         register nor zero/sign extended hard register.
3965
3966 2011-07-05  Richard Guenther  <rguenther@suse.de>
3967
3968         PR tree-optimization/49518
3969         PR tree-optimization/49628
3970         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
3971         irrelevant and invariant data-references.
3972         (vect_analyze_data_ref_access): For invariant loads clear the
3973         group association.
3974
3975 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
3976
3977         PR rtl-optimization/49619
3978         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
3979         pass VOIDmode as op0_mode to recursive call, and return temp even
3980         when different from tor, just if it is not IOR of the original
3981         PLUS arguments.
3982
3983         PR rtl-optimization/49472
3984         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
3985         negating MULT, negate the second operand instead of first.
3986         (simplify_binary_operation_1) <case MULT>: If one operand is
3987         a NEG and the other is MULT, don't attempt to optimize by negation
3988         of the MULT operand if it only moves the NEG operation around.
3989
3990         PR debug/49602
3991         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
3992         get_current_def return value if it can't be trusted to be
3993         the current value of the variable in the current bb.
3994
3995 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
3996
3997         PR target/49600
3998         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
3999         general register to memory for !TARGET_INTER_UNIT_MOVES.
4000
4001 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
4002
4003         PR target/44643
4004         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
4005         instead of TREE_READONLY.
4006
4007 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
4008
4009         * doc/extend.texi (AVR Built-in Functions): Update documentation
4010         of __builtin_avr_fmul*.
4011         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
4012         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
4013         * config/avr/avr.md (fmul): Rename to fmul_insn.
4014         (fmuls): Rename to fmuls_insn.
4015         (fmulsu): Rename to fmulsu_insn.
4016         (fmul,fmuls,fmulsu): New expander.
4017         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
4018         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
4019         * config/avr/libgcc.S (__fmul): New function.
4020         (__fmuls): New function.
4021         (__fmulsu,__fmulsu_exit): New function.
4022
4023 2011-07-04  Richard Guenther  <rguenther@suse.de>
4024
4025         PR tree-optimization/49615
4026         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
4027         basic-block index check.
4028
4029 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
4030
4031         * longlong.h (count_leading_zeros, count_trailing_zeros,
4032         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
4033         resp. 64.
4034
4035 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
4036
4037         PR tree-optimization/49610
4038         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
4039         a basic block.
4040
4041 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
4042             Olivier Hainque  <hainque@adacore.com>
4043             Nicolas Setton  <setton@adacore.com>
4044
4045         * tree.h (TYPE_ARTIFICIAL): New flag.
4046         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
4047         the DIE of the type if it is artificial.
4048         (gen_array_type_die): Likewise.
4049         (gen_enumeration_type_die): Likewise.
4050         (gen_struct_or_union_type_die): Likewise.
4051         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
4052         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
4053
4054 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
4055
4056         * tree-object-size.c (pass_through_call): Handle
4057         BUILT_IN_ASSUME_ALIGNED.
4058
4059 2011-07-01  Martin Jambor  <mjambor@suse.cz>
4060
4061         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
4062
4063 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
4064
4065         PR middle-end/48016
4066         * explow.c (update_nonlocal_goto_save_area): Use proper mode
4067         for stack save area.
4068         * function.c (expand_function_start): Likewise.
4069
4070 2011-07-01  Richard Guenther  <rguenther@suse.de>
4071
4072         PR middle-end/49596
4073         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
4074         may have unknown refs.
4075
4076 2011-07-01  Kai Tietz  <ktietz@redhat.com>
4077
4078         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
4079
4080 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4081
4082         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
4083         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
4084         (Specific, mips-sgi-irix6): Likewise.
4085
4086 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4087
4088         PR libmudflap/49549
4089         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
4090
4091 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
4092
4093         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
4094         [idx]= and [idx1 ... idx2]= before initializers if needed for
4095         array initializers.
4096
4097 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
4098
4099         * config.gcc (score-*-elf): Remove score7.o.
4100         * config/score/t-score-elf: Likewise.
4101         * config/score/score.c: Merge score7 to score.c and
4102         remove forwarding functions.
4103         * config/score/score7.c: Deleted.
4104         * config/score/score7.h: Deleted.
4105
4106 2011-07-01  Richard Guenther  <rguenther@suse.de>
4107
4108         PR tree-optimization/49603
4109         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
4110
4111 2011-06-30  Martin Jambor  <mjambor@suse.cz>
4112
4113         * tree-sra.c (struct access): Rename total_scalarization to
4114         grp_total_scalarization
4115         (completely_scalarize_var): New function.
4116         (sort_and_splice_var_accesses): Set total_scalarization in the
4117         representative access.
4118         (analyze_access_subtree): Propagate total scalarization accross the
4119         tree, no holes in totally scalarized trees, simplify coverage
4120         computation.
4121         (analyze_all_variable_accesses): Call completely_scalarize_var instead
4122         of completely_scalarize_record.
4123
4124 2011-06-30  Richard Henderson  <rth@redhat.com>
4125
4126         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
4127         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
4128         * config/i386/i386.c: Don't include dwarf2out.h.
4129         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
4130         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
4131         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
4132         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
4133         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
4134
4135 2011-06-30  Richard Henderson  <rth@redhat.com>
4136
4137         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
4138         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4139         * final.c (final_scan_insn): Look for it, and invoke
4140         dwarf2out_frame_debug before the insn if found.
4141
4142 2011-06-30  Richard Henderson  <rth@redhat.com>
4143
4144         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
4145         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
4146
4147 2011-06-30  Richard Henderson  <rth@redhat.com>
4148
4149         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
4150         Define a vector of this type.
4151         (regs_saved_in_regs): Use a VEC.
4152         (num_regs_saved_in_regs): Remove.
4153         (compare_reg_or_pc): New.
4154         (record_reg_saved_in_reg): Split out from...
4155         (dwarf2out_flush_queued_reg_saves): ... here.
4156         (clobbers_queued_reg_save): Update for VEC.
4157         (reg_saved_in): Likewise.
4158         (dwarf2out_frame_debug_init): Likewise.
4159         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
4160         (dwarf2out_frame_debug_cfa_register): Likewise.
4161
4162 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
4163
4164         PR tree-optimization/49572
4165         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
4166         type of the RHS instead of that of the LHS for the expression type.
4167
4168 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
4169
4170         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
4171         unconditionally.
4172
4173 2011-06-30  Richard Guenther  <rguenther@suse.de>
4174
4175         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
4176         * tree-ssa-structalias.c (create_variable_info_for): Do not
4177         add initial constraints for non-var-decls.  Properly handle
4178         globals in other ltrans partitions.
4179         (intra_create_variable_infos): Manually create constraints for
4180         the fake no-alias parameter.
4181         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
4182         and assert there are no clones.
4183
4184 2011-06-30  Richard Guenther  <rguenther@suse.de>
4185
4186         PR tree-optimization/46787
4187         * tree-data-ref.c (dr_address_invariant_p): Remove.
4188         (find_data_references_in_stmt): Invariant accesses are ok now.
4189         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
4190         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
4191         invariant loads.
4192
4193 2011-06-30  Martin Jambor  <mjambor@suse.cz>
4194
4195         PR tree-optimization/49094
4196         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
4197         (build_accesses_from_assign): Use it.
4198
4199 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
4200
4201         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
4202         handling of BUILT_IN_ASSUME_ALIGNED.
4203
4204         PR debug/49364
4205         * dwarf2out.c (output_abbrev_section): Don't return early
4206         if abbrev_die_table_in_use is 1.
4207         (dwarf2out_finish): Instead don't call output_abbrev_section
4208         nor emit abbrev_section_label in that case.
4209
4210 2011-06-30  Nick Clifton  <nickc@redhat.com>
4211
4212         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
4213         for the V850E.
4214
4215 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
4216
4217         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
4218         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
4219
4220 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
4221
4222         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
4223         both pattern and original statements if necessary.
4224         (vect_transform_loop): Likewise.
4225         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
4226         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
4227         Mark the pattern statement only if the original statement doesn't
4228         have its own uses.
4229         (process_use): Call vect_mark_relevant with additional parameter.
4230         (vect_mark_stmts_to_be_vectorized): Likewise.
4231         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
4232         (vect_analyze_stmt): Handle both pattern and original statements
4233         if necessary.
4234         (vect_transform_stmt): Don't store vectorized pattern statement
4235         in the original statement.
4236         (vect_is_simple_use_1): Use related pattern statement only if the
4237         original statement is irrelevant.
4238         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
4239
4240 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
4241
4242         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
4243         option.
4244         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
4245         entry.
4246         (TARGET_AVX128_OPTIMAL): New definition.
4247         * config/i386/i386.c (initial_ix86_tune_features): Initialize
4248         X86_TUNE_AVX128_OPTIMAL entry.
4249         (ix86_option_override_internal): Enable the generation
4250         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
4251         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
4252         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
4253
4254 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
4255
4256         PR tree-optimization/49539
4257         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
4258         names by means of stmt_references_abnormal_ssa_name.
4259         (associate_plusminus): Call can_propagate_from before propagating
4260         from definition statements.
4261         (ssa_forward_propagate_and_combine): Remove superfluous newline.
4262
4263 2011-06-29  Richard Guenther  <rguenther@suse.de>
4264
4265         * doc/invoke.texi: Document -scev dump modifier.
4266         * tree-pass.h (TDF_SCEV): New dump flag.
4267         * tree-dump.c (dump_option_value_in): Add scev.
4268         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
4269         * tree-scalar-evolution.c: Likewise.
4270
4271 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
4272
4273         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
4274         (cxa_type_match): Correct declaration.
4275         (__gnu_unwind_pr_common): Reconstruct additional indirection
4276         when __cxa_type_match returns succeeded_with_ptr_to_base.
4277
4278 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4279
4280         PR rtl-optimization/49114
4281         * reload.c (struct replacement): Remove SUBREG_LOC member.
4282         (push_reload): Do not set it.
4283         (push_replacement): Likewise.
4284         (subst_reload): Remove dead code.
4285         (copy_replacements): Remove assertion.
4286         (copy_replacements_1): Do not handle SUBREG_LOC.
4287         (move_replacements): Likewise.
4288         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
4289         Detect subregs via recursive descent instead of via SUBREG_LOC.
4290
4291 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
4292
4293         * config/avr/avr.c (avr_encode_section_info): Dispatch to
4294         default_encode_section_info.
4295
4296 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
4297
4298         PR tree-optimization/49545
4299         * builtins.c (get_object_alignment_1): Update function comment.
4300         Do not use DECL_ALIGN for functions, but test
4301         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
4302         * fold-const.c (get_pointer_modulus_and_residue): Don't check
4303         for functions here.
4304         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
4305
4306 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
4307
4308         PR debug/49567
4309         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
4310         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
4311
4312 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
4313
4314         PR target/34734
4315         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
4316         about uninitialized data attributed 'progmem' from here...
4317         (avr_encode_section_info): ...to this new function.
4318         (TARGET_ENCODE_SECTION_INFO): New define.
4319         (avr_section_type_flags): For data in ".progmem.data", remove
4320         section flag SECTION_WRITE.
4321
4322 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
4323
4324         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
4325         _xmulhisi3_exit.
4326         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
4327         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
4328         (__umulhisi3): Ditto.
4329         * config/avr/avr.md (mulhisi3): New insn expender.
4330         (umulhisi3): New insn expender.
4331         (*mulhisi3_call): New insn.
4332         (*umulhisi3_call): New insn.
4333
4334 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
4335
4336         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
4337
4338 2011-06-28  Richard Henderson  <rth@redhat.com>
4339
4340         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
4341         all code and arguments that handled pushes.  Update all callers.
4342
4343 2011-06-28  Richard Henderson  <rth@redhat.com>
4344
4345         * config/arm/arm.c (arm_output_function_prologue): Don't call
4346         thumb1_output_function_prologue.
4347         (arm_expand_prologue): Avoid dead store.
4348         (number_of_first_bit_set): Use ctz_hwi.
4349         (thumb1_emit_multi_reg_push): New.
4350         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
4351         to emit the entire prologue as rtl.
4352         (thumb1_output_interwork): Split out from
4353         thumb1_output_function_prologue.
4354         (thumb1_output_function_prologue): Remove.
4355         (arm_attr_length_push_multi): Handle thumb1.
4356         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
4357         (prologue_thumb1_interwork): New.
4358         (*push_multi): Allow thumb1; use push_mult_memory_operand.
4359         * config/arm/predicates.md (push_mult_memory_operand): New.
4360
4361 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
4362
4363         * config/sparc/sync.md (*stbar): Delete.
4364         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
4365
4366 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
4367
4368         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
4369
4370 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4371
4372         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
4373         (TARGET_64BIT_DEFAULT): Define.
4374         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
4375         of tm_file.
4376         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
4377
4378 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
4379
4380         * common.opt (in_lto_p): New Variable entry.
4381         * flags.h (in_lto_p): Move to common.opt.
4382         * gcc.c: Include params.h.
4383         (set_option_handlers): Also use common_handle_option and
4384         target_handle_option.
4385         (main): Call global_init_params, finish_params and init_options_struct.
4386         * opts.c (debug_type_names): Move from toplev.c.
4387         (print_filtered_help): Access quiet_flag through opts pointer.
4388         (common_handle_option): Return early in the driver for some options.
4389         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
4390         opts pointer.
4391         * toplev.c (in_lto_p): Move to common.opt.
4392         (debug_type_names): Move to opts.c.
4393         * Makefile.in (OBJS): Remove opts.o.
4394         (OBJS-libcommon-target): Add opts.o.
4395         (gcc.o): Update dependencies.
4396
4397 2011-06-28  Kai Tietz  <ktietz@redhat.com>
4398
4399         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
4400
4401 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4402
4403         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
4404         with '=' constraint modifier.
4405         (*divdf3_vfp): Likewise.
4406         ("*mulsf3_vfp"): Likewise.
4407         ("*muldf3_vfp"): Likewise.
4408         ("*mulsf3negsf_vfp"): Likewise.
4409         ("*muldf3negdf_vfp"): Likewise.
4410
4411 2011-06-28  Nick Clifton  <nickc@redhat.com>
4412
4413         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
4414         relaxation when performing an incremental link.
4415
4416 2011-06-28  Kai Tietz  <ktietz@redhat.com>
4417
4418         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
4419         within BB from last to first.
4420
4421 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
4422
4423         * genattr-common.c: New.  Based on genattr.c.
4424         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
4425         (MOSTLYCLEANFILES): Add insn-attr-common.h.
4426         (opts.o): Update dependencies.
4427         (.PRECIOUS): Add insn-attr-common.h.
4428         (simple_rtl_generated_h): Add insn-attr-common.h.
4429         (build/genattr-common.o): New.
4430         (genprogrtl): Add attr-common.
4431         * genattr.c (main): Include insn-attr-common.h.  Don't generate
4432         definitions of DELAY_SLOTS or INSN_SCHEDULING.
4433         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
4434
4435 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
4436
4437         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
4438         avr-*-* and avr-*-rtems* targets.
4439
4440         * config/avr/elf.h: New file.
4441         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
4442         (TARGET_ASM_SELECT_SECTION): Define.
4443         (INIT_SECTION_ASM_OP): Undefine.
4444         (FINI_SECTION_ASM_OP): Undefine.
4445         (READONLY_DATA_SECTION_ASM_OP): Undefine.
4446         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
4447         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
4448         * config/avr/avr.h:
4449         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
4450         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
4451         (MAX_OFILE_ALIGNMENT): Move to elf.h.
4452         (STRING_LIMIT): Move to elf.h.
4453         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
4454         (ASM_DECLARE_OBJECT_NAME): Remove.
4455         (ESCAPES): Remove.
4456         (ASM_OUTPUT_SKIP): Remove.
4457         (DWARF2_DEBUGGING_INFO): Remove.
4458         (OBJECT_FORMAT_ELF): Remove.
4459         (USER_LABEL_PREFIX): Remove.
4460         (ASM_OUTPUT_EXTERNAL): Remove.
4461         (ASM_OUTPUT_ASCII): Remove.
4462         (TYPE_ASM_OP): Remove.
4463         (SIZE_ASM_OP): Remove.
4464         (WEAK_ASM_OP): Remove.
4465         (STRING_ASM_OP): Remove.
4466         (SET_ASM_OP): Remove.
4467         (ASM_WEAKEN_LABEL): Remove.
4468         (TYPE_OPERAND_FMT): Remove.
4469         (ASM_DECLARE_FUNCTION_SIZE): Remove.
4470         (ASM_FINISH_DECLARE_OBJECT): Remove.
4471         (NO_DOLLAR_IN_LABEL): Remove.
4472         (ASM_GENERATE_INTERNAL_LABEL): Remove.
4473         (ASM_OUTPUT_CASE_LABEL): Remove.
4474         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
4475         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
4476         (gas_output_ascii): Remove.
4477         (gas_output_limited_string): Remove.
4478         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
4479         * config/avr/avr-protos.h
4480         (gas_output_ascii): Remove prototye.
4481         (gas_output_limited_string): Remove prototype.
4482
4483 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
4484
4485         PR target/48637
4486         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
4487         asm operands.
4488
4489 2011-06-27  Jan Hubicka  <jh@suse.cz>
4490
4491         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
4492         node instead of references in node.
4493
4494 2011-06-27  Richard Henderson  <rth@redhat.com>
4495
4496         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
4497         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
4498         inside ifdef.
4499
4500 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
4501
4502         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
4503
4504         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
4505         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
4506         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
4507         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
4508         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
4509         (evaluate_stmt, execute_fold_all_builtins): Handle
4510         BUILT_IN_ASSUME_ALIGNED.
4511         * tree-ssa-dce.c (propagate_necessity): Likewise.
4512         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4513         call_may_clobber_ref_p_1): Likewise.
4514         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
4515         (expand_builtin_assume_aligned): New function.
4516         * doc/extend.texi (__builtin_assume_aligned): Document.
4517
4518         PR debug/49544
4519         * cselib.c (promote_debug_loc): If cselib_preserve_constants
4520         and l has two DEBUG_INSN owned locs instead of just one, adjust
4521         the second location's setting_insn too.
4522
4523 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4524
4525         PR libmudflap/38738
4526         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
4527
4528 2011-06-27  Nick Clifton  <nickc@redhat.com>
4529
4530         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
4531         bit position of highest bit set into a count of the high zero bits.
4532
4533 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
4534
4535         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
4536
4537 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
4538
4539         PR lto/48492
4540         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
4541         to a NULL parent.
4542
4543 2011-06-27  Richard Guenther  <rguenther@suse.de>
4544
4545         PR tree-optimization/49394
4546         * passes.c (execute_one_pass): Restore current_pass after
4547         applying IPA transforms.
4548
4549 2011-06-27  Kai Tietz  <ktietz@redhat.com>
4550
4551         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
4552         out of type precision after operation.
4553         (find_bswap): Take for limit value the integer auto-promotion
4554         into account.
4555
4556 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
4557
4558         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
4559         forward scan as well.
4560
4561 2011-06-27  Tristan Gingold  <gingold@adacore.com>
4562
4563         PR target/44241
4564         * config/vms/vms-protos.h: New file.
4565         * config/vms/vms-crtlmap.map: New file.
4566         * config/vms/vms.c: New file.
4567         * config/vms/make-crtlmap.awk: New file.
4568         * config/vms/vms-crtl.h: File removed.
4569         * config/vms/vms-crtl-64.h: File removed.
4570         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
4571         * config/alpha/vms64.h: Do not include vms-crtl-64.h
4572         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
4573         clear some builtins on VMS.  Calls vms_patch_builtins.
4574         (avms_asm_output_external): Remove.
4575         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
4576         (struct crtl_name_spec): Remove
4577         (DO_CTRL_NAMES): Remove.
4578         * config/ia64/vms.h (struct crtl_name_spec): Remove
4579         (DO_CTRL_NAMES): Remove.
4580         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
4581         clear some builtins on VMS.  Calls vms_patch_builtins.
4582         (ia64_asm_output_external): Remove DO_CRTL_NAME.
4583         * config/ia64/vms64.h: Do not include vms-crtl-64.h
4584         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
4585
4586 2011-06-27  Tristan Gingold  <gingold@adacore.com>
4587
4588         * config/alpha/alpha.c (alpha_end_function): Always generate .end
4589         directive on VMS.
4590
4591 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
4592
4593         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
4594         the function receives nonlocal gotos.
4595
4596 2011-06-27  Richard Guenther  <rguenther@suse.de>
4597
4598         PR tree-optimization/49536
4599         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
4600         For non-scalar inner types use a scalar type according to
4601         the scalar inner mode.
4602
4603 2011-06-27  Richard Guenther  <rguenther@suse.de>
4604
4605         PR tree-optimization/49365
4606         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
4607
4608 2011-06-27  Richard Guenther  <rguenther@suse.de>
4609
4610         PR tree-optimization/49169
4611         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
4612         the alignment of function decls.
4613
4614 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
4615
4616         PR target/47997
4617         * config/darwin.c (darwin_mergeable_string_section): Place string
4618         constants in '.cstring' rather than '.const' when CF/NSStrings are
4619         active.
4620
4621 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
4622
4623         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
4624         (emit_save_register_window): Likewise.
4625         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
4626         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
4627         Swap back %o7/%i7 in register naming.
4628
4629 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
4630
4631         PR driver/49371
4632         * config/darwin.c (darwin_override_options): Improve warning when
4633         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
4634         is given with fpie/fPIE.
4635         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
4636         * config/darwin9.h (PIE_SPEC): New.
4637
4638 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
4639
4640         * timevar.c (timevar_print): Increase width for display of timevar
4641         name.
4642
4643 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
4644
4645         PR c++/46400
4646         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
4647         instead of TYPE_CHAIN for chain_next for types.
4648
4649 2011-06-24  Richard Henderson  <rth@redhat.com>
4650
4651         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
4652         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
4653         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
4654         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
4655         (sparc_flat_expand_prologue): Emit individual instructions
4656         instead of one of the above.
4657
4658 2011-06-24  Easwaran Raman  <eraman@google.com>
4659
4660         PR rtl-optimization/49429
4661         PR target/49454
4662         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
4663         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
4664         used to copy y into x.
4665         * calls.c (initialize_argument_information): Mark
4666         an argument addressable if it is passed by invisible reference.
4667         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
4668         if it is passed by reference.
4669
4670 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
4671
4672         PR rtl-optimization/49504
4673         * rtlanal.c (nonzero_bits1): Properly handle addition or
4674         subtraction of a pointer in Pmode if pointers extend unsigned.
4675         (num_sign_bit_copies1): Likewise.
4676
4677 2011-06-24  Martin Jambor  <mjambor@suse.cz>
4678
4679         PR tree-optimizations/49516
4680         * tree-sra.c (sra_modify_assign): Choose the safe path for
4681         aggregate copies if we also did scalar replacements.
4682
4683 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4684
4685         PR target/49335
4686         * config/arm/predicates.md (add_operator): New.
4687         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
4688
4689 2011-06-24  Andi Kleen  <ak@linux.intel.com>
4690
4691         * tree-sra.c (type_internals_preclude_sra_p): Add msg
4692         parameter. Split up ifs and report reason in *msg.
4693         (reject): Add.
4694         (find_var_candiate): Add msg variable.
4695         Split up ifs and report reason to reject.
4696         (find_param_candidates): Add msg variable.
4697         Pass msg to type_internals_preclude_sra_p.
4698
4699 2011-06-23  Jeff Law  <law@redhat.com>
4700
4701         PR middle-end/48770
4702         * reload.h (reload): Change to return a bool.
4703         * ira.c (ira): If requested by reload, run a fast DCE pass after
4704         reload has completed.  Fix comment typo.
4705         * reload1.c (need_dce): New file scoped static.
4706         (reload): Set reload_completed here.  Return whether or not a DCE
4707         pass after reload is needed.
4708         (delete_dead_insn): Set need_dce as needed.
4709
4710         PR middle-end/49465
4711         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
4712         to detect threading through joiner block.  If there was already
4713         an edge to the new target, then do not change the PHI nodes.
4714
4715 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
4716
4717         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
4718         get_pointer_alignment to see if base isn't sufficiently aligned.
4719
4720 2011-06-23  Jan Hubicka  <jh@suse.cz>
4721
4722         PR tree-optimize/49373
4723         * tree-pass.h (all_late_ipa_passes): Declare.
4724         * cgraphunit.c (init_lowered_empty_function): Fix properties.
4725         (cgraph_optimize): Execute late passes; remove unreachable funcions
4726         after materialization.
4727         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
4728         LTOing.
4729         * passes.c (all_late_ipa_passes): Declare.
4730         (dump_passes, register_pass): Handle late ipa passes.
4731         (init_optimization_passes): Move ipa_pta to late passes; schedule
4732         fixup_cfg at beggining of all_passes.
4733         (apply_ipa_transforms): New function.
4734         (execute_one_pass): When doing simple ipa pass, apply all transforms.
4735
4736 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
4737
4738         * params.c: Include common/common-target.h.  Don't include tm.h.
4739         (lang_independent_params): Move from toplev.c.
4740         (global_init_params): New.
4741         * params.h (global_init_params): Declare.
4742         * target.def (default_params): Move to common-target.def.
4743         * toplev.c (lang_independent_options): Remove.
4744         (lang_independent_params): Move to params.c.
4745         (general_init): Use global_init_params.
4746         * common/common-target.def (option_default_params): Move from
4747         target.def.
4748         * common/config/ia64/ia64-common.c: Include params.h.
4749         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4750         from ia64.c.
4751         * common/config/rs6000/rs6000-common.c: Include params.h.
4752         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4753         from rs6000.c.
4754         * common/config/sh/sh-common.c: Include params.h.
4755         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4756         from sh.c.
4757         * common/config/spu/spu-common.c: Include params.h.
4758         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4759         from spu.c.
4760         * config/ia64/ia64.c (ia64_option_default_params,
4761         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
4762         * config/rs6000/rs6000.c (rs6000_option_default_params,
4763         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
4764         * config/sh/sh.c (sh_option_default_params,
4765         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
4766         * config/spu/spu.c (spu_option_default_params,
4767         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
4768         * Makefile.in (OBJS): Remove params.o.
4769         (OBJS-libcommon-target): Add params.o.
4770         (params.o, $(common_out_object_file)): Update dependencies.
4771         * doc/tm.texi: Regenerate.
4772
4773 2011-06-23  Alan Modra  <amodra@gmail.com>
4774
4775         PR bootstrap/49383
4776         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
4777         invocation for 2011-06-09 changes.
4778
4779 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
4780
4781         PR libgomp/49490
4782         * omp-low.c (expand_omp_for_static_nochunk): Only
4783         use n ceil/ nthreads size for the first n % nthreads threads in the
4784         team instead of all threads except for the last few ones which
4785         get less work or none at all.
4786
4787         PR debug/49496
4788         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
4789         uses.
4790
4791 2011-06-22  Richard Guenther  <rguenther@suse.de>
4792
4793         PR tree-optimization/49493
4794         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
4795         Refer to the alias target of variables.
4796         (associate_varinfo_to_alias_1): Remove.
4797         (ipa_pta_execute): Do not associate aliases with anything.
4798         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
4799         (cgraph_function_node): Likewise.
4800         (cgraph_function_or_thunk_node): Likewise.
4801         (varpool_variable_node): Likewise.
4802
4803 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
4804
4805         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
4806         * config.gcc (arm*-*-linux*): Default to gnu tls.
4807         (arm*-*-*): Add --with-tls option.
4808         (all_defaults): Add 'tls'.
4809
4810 2011-06-22  Richard Henderson  <rth@redhat.com>
4811
4812         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
4813         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4814         (dwarf2out_frame_debug_cfa_window_save): Rename from
4815         dwarf2out_window_save; make static.
4816         * tree.h (dwarf2out_window_save): Don't declare.
4817
4818         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
4819         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4820         (emit_save_register_window): Rename from gen_save_register_window;
4821         emit the insn and add REG_CFA_* notes.
4822         (sparc_expand_prologue): Update to match.
4823         * config/sparc/sparc.md (save_register_window_1): Simplify from
4824         save_register_window<P:mode>.
4825
4826 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
4827
4828         PR target/49497
4829         * config/i386/i386.md (*lea_general_2): Always allow SImode.
4830         (*lea_general_2_zext): Likewise.
4831         (imul to lea peepholes): Use const359_operand and check
4832         TARGET_PARTIAL_REG_STALL.
4833
4834         * config/i386/predicates.md (const359_operand): New.
4835
4836 2011-06-22  Michael Matz  <matz@suse.de>
4837
4838         * cgraphunit.c (assemble_thunk): Use correct return type.
4839
4840 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
4841             Dmitry Melnik  <dm@ispras.ru>
4842
4843         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
4844         (neon_output_shift_immediate): Ditto.
4845         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
4846         prototype.
4847         (neon_output_shift_immediate): Ditto.
4848         * config/arm/neon.md (vashl<mode>3): Modified constraint.
4849         (vashr<mode>3_imm): New insn pattern.
4850         (vlshr<mode>3_imm): Ditto.
4851         (vashr<mode>3): Modified constraint.
4852         (vlshr<mode>3): Ditto.
4853         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
4854         predicate.
4855         (imm_for_neon_rshift_operand): Ditto.
4856         (imm_lshift_or_reg_neon): Ditto.
4857         (imm_rshift_or_reg_neon): Ditto.
4858
4859         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
4860
4861 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
4862
4863         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
4864         builtin calls even if likelyvalue is not CONSTANT.
4865         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
4866         Return get_value_for_expr of first operand
4867         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
4868         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4869         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
4870         their non-checking counterparts.
4871         (call_may_clobber_ref_p_1): Likewise.
4872         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
4873         like their non-checking counterparts.
4874         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4875         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
4876         like their non-checking counterparts.
4877         (find_func_clobbers): Likewise.
4878         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
4879         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
4880
4881         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
4882         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
4883         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
4884         of base type reference as argument.
4885         (resolve_addr_in_expr): Likewise.  Fix keep computation.
4886         (convert_descriptor_to_signed): Renamed to...
4887         (convert_descriptor_to_mode): ... this.  For wider types convert to
4888         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
4889         (typed_binop): New function.
4890         (scompare_loc_descriptor, ucompare_loc_descriptor,
4891         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
4892         default to unsigned type instead of signed.
4893
4894         PR debug/47858
4895         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
4896         (gimple_build_debug_source_bind_stat): New prototype.
4897         (gimple_build_debug_source_bind): Define.
4898         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
4899         gimple_debug_source_bind_get_value,
4900         gimple_debug_source_bind_get_value_ptr,
4901         gimple_debug_source_bind_set_var,
4902         gimple_debug_source_bind_set_value): New inlines.
4903         * gimple.c (gimple_build_debug_source_bind_stat): New function.
4904         * gimple-pretty-print.c (dump_gimple_debug): Handle
4905         GIMPLE_DEBUG_SOURCE_BIND.
4906         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
4907         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4908         * tree-parloops.c (eliminate_local_variables,
4909         separate_decls_in_region): Likewise.
4910         (separate_decls_in_region_debug): Renamed from
4911         separate_decls_in_region_debug_bind.  Handle
4912         gimple_debug_source_bind_p.
4913         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
4914         prototypes.
4915         (DECL_HAS_DEBUG_ARGS_P): Define.
4916         (struct tree_function_decl): Add has_debug_args_flag field.
4917         * tree.c (debug_args_for_decl): New variable.
4918         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
4919         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
4920         (rewrite_debug_stmt_uses): New function.
4921         (rewrite_stmt): Use it to rewrite debug stmt uses.
4922         * rtl.def (DEBUG_PARAMETER_REF): New.
4923         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
4924         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
4925         DEBUG_PARAMETER_REF.
4926         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
4927         * print-rtl.c (print_rtx): Likewise.
4928         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
4929         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
4930         debug stmts in the first bb.
4931         * tree-inline.c (remap_ssa_name): If remapping default def
4932         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
4933         a source bind debug stmt.
4934         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
4935         (maybe_move_debug_stmts_to_successors): Likewise.
4936         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
4937         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
4938         debug args vector from old_decl to new_decl.
4939         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
4940         or modified parameters, add debug bind stmts before call
4941         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
4942         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
4943         on DECL_DEBUG_EXPRs from debug args vector.
4944         (expand_debug_source_expr): New function.
4945         (expand_debug_locations): Use it for source bind insns.
4946         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
4947         * var-tracking.c (prepare_call_arguments): Add debug args
4948         to call_arguments if any.
4949         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
4950         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
4951         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
4952         (get_ref_die_offset, parameter_ref_descriptor): New functions.
4953         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
4954         (gen_subprogram_die): Handle parameters identified by
4955         DEBUG_PARAMETER_REF.
4956
4957 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
4958
4959         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
4960         * doc/install.texi (Configuration): Document --with-tls.
4961         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
4962         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
4963         (arm_tls_descseq_addr): New.
4964         (legitimize_tls_address): Add tlsdesc support.
4965         (arm_cannot_copy_insn_p): Check for tlscall.
4966         (arm_emit_tls_decoration): Likewise.
4967         * config/arm/arm.h (TARGET_GNU2_TLS): New.
4968         (OPTION_DEFAULT_SPECS): Add with-tls support.
4969         * config/arm/arm.md (R1_REGNUM): Define.
4970         (tlscall): New.
4971         * config/arm/arm.opt (tls_type): New enumeration type and values.
4972         (mtls-dialect): New switch.
4973         * config/arm/arm-opts.h (enum tls_type): New.
4974
4975 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
4976
4977         * attribs.c (register_attribute): Added assert to check that all
4978         attribute specs are registered with a name that is not empty and
4979         does not start with '_'.
4980         (decl_attributes): Avoid the lookup of the "naked" attribute spec
4981         if the function has no attributes.
4982         * tree.c (is_attribute_with_length_p): Removed.
4983         (is_attribute_p): Removed.
4984         (private_is_attribute_p): New.
4985         (private_lookup_attribute): New.
4986         (lookup_attribute): Removed.
4987         (lookup_ident_attribute): New.
4988         (remove_attribute): Require the first argument to be in the form
4989         'text', not '__text__'.  Updated asserts.
4990         (merge_attributes): Use lookup_ident_attributes instead of
4991         lookup_attribute.
4992         (merge_dllimport_decl_attributes): Use remove_attribute.
4993         (attribute_list_contained): Likewise.
4994         (attribute_list_equal): Immediately return 1 if the arguments are
4995         identical pointers.
4996         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
4997         'int'.  Require the first argument to be in the form 'text', not
4998         '__text__'.  Require the second argument to be an identifier.
4999         (lookup_attribute): Made inline.  Require the first argument to be
5000         in the form 'text', not '__text__'.
5001         (private_is_attribute_p, private_lookup_attribute): New.
5002         Updated comments.
5003
5004 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
5005
5006         * builtins.c: Add sync_ or SYNC__ to builtin names.
5007         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
5008         * omp-low.c: Add sync_ or SYNC__ to builtin names.
5009
5010 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
5011
5012         PR target/33049
5013         * config/avr/avr.md (extzv): New expander.
5014         (*extzv): New insn.
5015         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
5016         * config/avr/constraints.md (C04): New constraint.
5017         * doc/md.texi (Machine Constraints): Document it.
5018
5019 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
5020
5021         PR middle-end/49489
5022         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
5023         unsignedp argument instead of 1 for clrsb_optab.
5024         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
5025         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
5026         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
5027         * optabs.c (widen_leading): Call widen_operand and expand_unop
5028         with 0 as unsignedp argument instead of 1 for clrsb_optab.
5029         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
5030
5031 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
5032
5033         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
5034
5035 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
5036
5037         * gensupport.c (add_define_attr): New static function.
5038         (is_predicable): Allow multi-alternative lists for the "predicable"
5039         attribute.
5040         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
5041         (process_one_cond_exec): Call alter_attrs_for_insn.
5042         * doc/md.texi (Defining Attributes): Mention some standard names.
5043         (Conditional Execution): Update documentation for "predicable".
5044
5045         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
5046         __builtin_clrsbll): Document.
5047         * doc/rtl.texi (clrsb): New entry.
5048         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
5049         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
5050         (expand_unop): Handle clrsb_optab.
5051         (init_optabs): Initialize it.
5052         * optabs.h (enum optab_index): New entry OTI_clrsb.
5053         (clrsb_optab): Define.
5054         * genopinit.c (optabs): Add an entry for it.
5055         * builtins.c (expand_builtin): Handle clrsb builtin functions.
5056         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
5057         BUILT_IN_CLRSBLL): New.
5058         * rtl.def (CLRSB): New code.
5059         * dwarf2out.c (mem_loc_descriptor): Handle it.
5060         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
5061         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
5062         and popcount.
5063         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
5064         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
5065         (__ctzDI2): Move declaration.
5066         * config/bfin/bfin.md (clrsbsi2): New expander.
5067         (signbitssi2): Use the CLRSB rtx.
5068         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
5069         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
5070
5071 2011-06-21  Richard Guenther  <rguenther@suse.de>
5072
5073         * ipa-inline-transform.c (inline_transform): Fix previous change.
5074
5075 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
5076
5077         PR tree-optimization/49478
5078         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
5079         with constant operand.
5080
5081 2011-06-21  Richard Guenther  <rguenther@suse.de>
5082
5083         * ipa-inline-transform.c (inline_transform): Fix typo.
5084
5085 2011-06-21  Richard Guenther  <rguenther@suse.de>
5086
5087         PR tree-optimization/49483
5088         * tree-vect-stmts.c (vectorizable_assignment): Also handle
5089         VIEW_CONVERT_EXPR conversions.
5090
5091 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
5092
5093         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
5094         * config/avr/avr-tables.opt: New file (generated).
5095         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
5096         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
5097         avr-mcus.def.
5098         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
5099         (avr_option_override): Don't process -mmcu= argument here.  Set
5100         avr_current_device using avr_mcu_index.
5101         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
5102         * config/avr/avr.opt (mmcu=): Use Enum.
5103         * config/avr/t-avr (avr-devices.o): Update dependencies.
5104         ($(srcdir)/config/avr/avr-tables.opt): New.
5105         * target.def (help): Remove.
5106         * doc/tm.texi.in (TARGET_HELP): Remove.
5107         * doc/tm.texi: Regenerate.
5108         * opts.c: Don't include target.h.
5109         (common_handle_option): Don't call targetm.help.
5110         * system.h (TARGET_HELP): Poison.
5111         * Makefile.in (opts.o): Update dependencies.
5112
5113 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5114
5115         * config/usegld.h: New file.
5116         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
5117         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
5118         (LIB_SPEC): Likewise.  Search /lib.
5119         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
5120         (RDYNAMIC_SPEC): Handle GNU ld.
5121         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
5122         Define.
5123         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
5124         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
5125         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
5126         (STACK_CHECK_STATIC_BUILTIN): Define.
5127         * config/sol2.opt (compat-bsd): Remove.
5128         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
5129         * config/sol2-bi.h: New file.
5130         * config/sol2-gld.h: Remove.
5131         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
5132         (NO_DBX_BNSYM_ENSYM): Remove.
5133         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
5134         (STACK_CHECK_STATIC_BUILTIN): Remove.
5135         Test USE_GLD instead of TARGET_GNU_LD.
5136         * config/i386/sol2-10.h: Rename to ...
5137         * config/i386/sol2-bi.h .. this.
5138         (SUBTARGET_EXTRA_SPECS): Redefine.
5139         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
5140         (MULTILIB_DEFAULTS): Remove.
5141         (DEFAULT_ARCH32_P): Define.
5142         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
5143         (ARCH64_SUBDIR): Define.
5144         Test USE_GLD instead of TARGET_GNU_LD.
5145         (I386_EMULATION): Rename to ...
5146         (ARCH32_EMULATION): ... this.
5147         (X86_64_EMULATION): Rename to ...
5148         (ARCH64_EMULATION): ... this.
5149         (TARGET_LD_EMULATION): Remove.
5150         (LINK_ARCH_SPEC): Remove.
5151         * config/i386/sol2-gas.h: Remove.
5152         * config/i386/t-sol2-10: Rename to ...
5153         * config/i386/t-sol2-64: ... this.
5154         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
5155         (AS_SPARC64_FLAG): Define.
5156         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
5157         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
5158         depending on TARGET_CPU_DEFAULT.
5159         (CPP_CPU_SPEC): Redefine.
5160         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
5161         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
5162         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
5163         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
5164         ASM_ARCH_DEFAULT_SPEC): Redefine.
5165         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
5166         LINK_ARCH_DEFAULT_SPEC.
5167         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
5168         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
5169         (ARCH64_SUBDIR): Define.
5170         (LINK_ARCH64_SPEC): Redefine.
5171         (CC1_SPEC): Redefine.
5172         (OPTION_DEFAULT_SPECS): Redefine.
5173         (MULTILIB_DEFAULTS): Define.
5174         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
5175         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
5176         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
5177         (NO_DBX_BNSYM_ENSYM): Remove.
5178         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
5179         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
5180         (TARGET_ASM_NAMED_SECTION): Likewise.
5181         (STACK_CHECK_STATIC_BUILTIN): Remove.
5182         * config/sparc/sol2-bi.h: Remove.
5183         * config/sparc/sol2-gas-bi.h: Remove.
5184         * config/sparc/sol2-gas.h: Remove.
5185         * config/sparc/sol2-gld-bi.h: Remove.
5186         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
5187         common parts ...
5188         (*-*-solaris2*): ... here.
5189
5190 2011-06-21  Christian Bruel  <christian.bruel@st.com>
5191
5192         PR other/43564
5193         * ipa-inline.c (can_inline_edge_p): Check
5194         !DECL_DISREGARD_INLINE_LIMITS.
5195
5196 2011-06-21  Christian Bruel  <christian.bruel@st.com>
5197
5198         PR middle-end/49139
5199         * cgraphunit.c (process_function_and_variable_attributes): warn when
5200         always_inline functions that are not inline.
5201         * ipa-inline-transform.c (inline_transform): Always call
5202         optimize_inline.
5203         * tree-inline.c (tree_inlinable_function_p): Use error instead
5204         of sorry.
5205         (expand_call_inline): Likewise.
5206
5207 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
5208
5209         * Makefile.in (dg_target_exps): Set.
5210         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
5211         instead of 7, try to divide it more evenly.
5212
5213 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
5214
5215         PR target/49089
5216         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
5217         (avx256_split_unaligned_store): New definition.
5218         (ix86_option_override_internal): Enable avx256 unaligned load/store
5219         splitting only when avx256_split_unaligned_load/store is set.
5220
5221 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
5222
5223         * regrename.c (scan_rtx_reg): Handle the case where we write to an
5224         open chain in a smaller mode without failing the entire block.
5225
5226 2011-06-21  Alan Modra  <amodra@gmail.com>
5227
5228         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
5229         CONST high part large-toc address.
5230         (rs6000_tls_referenced_p): Make static.
5231         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
5232
5233 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5234
5235         PR target/49385
5236         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
5237         one of the operands is a register.
5238
5239 2011-06-20  Kai Tietz  <ktietz@redhat.com>
5240
5241         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
5242         operations in combination with binary and.
5243
5244 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
5245
5246         * regrename.c (do_replace): Don't update notes.
5247
5248 2011-06-20  Alan Modra  <amodra@gmail.com>
5249
5250         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
5251         of toc-relative address in CONST.
5252         (rs6000_delegitimize_address): Recognize changed address.
5253         (rs6000_legitimize_reload_address): Likewise.
5254         (rs6000_emit_move): Don't force these constants to memory.
5255         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
5256         toc-relative address in CONST.
5257         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
5258         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
5259
5260 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
5261
5262         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
5263         (count_trailing_zeros): Likewise.
5264
5265 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
5266
5267         PR other/49325
5268         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
5269         .init_array can be used with .ctors on targets.
5270         * configure: Regenerated.
5271
5272 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
5273
5274         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
5275         if the element type is volatile.
5276
5277 2011-06-18  Jan Hubicka  <jh@suse.cz>
5278
5279         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
5280         extra name aliases.
5281         (lto_symtab_resolve_can_prevail_p): Likewise.
5282         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
5283         * cgraphbuild.c (record_reference): Remove extra body alias code.
5284         (mark_load): Likewise.
5285         (mark_store): Likewise.
5286         * cgraph.h (varpool_node): Remove extra_name filed;
5287         add alias_of and extraname_alias.
5288         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
5289         (varpool_alias_aliased_node): New inline function.
5290         (varpool_variable_node): New function.
5291         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
5292         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
5293         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
5294         (input_varpool_node): Likewise.
5295         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
5296         (varpool_externally_visible_p): Remove extra body alias code.
5297         (function_and_variable_visibility): Likewise.
5298         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
5299         (ipa_pta_execute): Use it.
5300         * varpool.c (varpool_remove_node): Remove extra name alias code.
5301         (varpool_mark_needed_node): Likewise.
5302         (varpool_analyze_pending_decls): Analyze aliases.
5303         (assemble_aliases): New functoin.
5304         (varpool_assemble_decl): Use it.
5305         (varpool_create_variable_alias): New function.
5306         (varpool_extra_name_alias): Rewrite.
5307         (varpool_for_node_and_aliases): New function.
5308
5309 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
5310
5311         PR target/49411
5312         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
5313         last_arg_constant and last argument doesn't match its predicate,
5314         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
5315         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
5316         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
5317         spelling of error message.
5318         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
5319         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
5320         const_0_to_255_operand instead of const_int_operand.
5321
5322         Revert:
5323         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
5324
5325         * config/i386/sse.md (blendbits): Remove mode attribute.
5326         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
5327         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
5328         Check integer value of operand 3 in insn constraint.
5329
5330 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
5331
5332         PR rtl-optimization/48542
5333         * reload.c (find_equiv_reg): Stop looking when finding a
5334         setjmp-type call.
5335         * reload1.c (reload_as_needed): Invalidate all reload
5336         registers when crossing a setjmp-type call.
5337
5338 2011-06-16  Jeff Law  <law@redhat.com>
5339
5340         * tree-ssa-threadupdate.c (struct redirection_data): New field
5341         intermediate_edge.
5342         (THREAD_TARGET2): Define.
5343         (redirection_data_eq): Also check that the intermediate edge is equal.
5344         (lookup_redirection_data): Drop useless argument.  Extract the
5345         outgoing_edge and intermediate edge from E.  Callers updated.
5346         (copy_phi_args, update_destination_phis): New functions.
5347         (fix_duplicate_block_edges): Likewise.
5348         (create_edge_and_update_destination_phis): Duplicate all the edges
5349         hung off e->aux.  Use copy_phi_args.
5350         (create_duplicates): Use fix_duplicate_block_edges.
5351         (fixup_template_block): Likewise.
5352         (redirect_edges): If necessary, redirect the joiner block's incoming
5353         edge to the duplicate of the joiner block.
5354         (thread_block): Don't muck up loops when threading through a joiner
5355         block.
5356         (thread_through_loop_header): Handle threading through a joiner block.
5357         (mark_threaded_blocks, register_jump_thread): Likewise.
5358         * tree-flow.h (register_jump_thread): Add new argument.  Callers
5359         updated.
5360         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
5361         (thread_across_edge): Handle threading through a joiner block.
5362
5363 2011-06-16  Martin Jambor  <mjambor@suse.cz>
5364
5365         PR tree-optimization/49343
5366         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
5367         calculate offset, provide 2nd operand for the new COMPONENT_REF.
5368
5369 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
5370
5371         * config/darwin-protos.h (machopic_select_rtx_section): Move to
5372         inside RTX_CODE ifdef.
5373
5374 2011-06-16  Tom de Vries  <tom@codesourcery.com>
5375
5376         PR target/45098
5377         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
5378         Disallow NULL pointer for pointer arithmetic.
5379
5380 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5381
5382         PR target/49398
5383         Revert.
5384         2011-06-10  Wei Guozhi  <carrot@google.com>
5385
5386         PR target/45335
5387         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5388         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5389         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5390         related peephole2.
5391         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5392         related peephole2.
5393         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5394         (arm_legitimate_ldrd_p): New prototype.
5395         (arm_output_ldrd): New prototype.
5396         * config/arm/arm.c (arm_check_ldrd_operands): New function.
5397         (arm_legitimate_ldrd_p): New function.
5398         (arm_output_ldrd): New function.
5399
5400 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
5401
5402         PR middle-end/46500
5403         * doc/tm.texi.in: Update Copyright date.
5404         * doc/tm.texi: Regenerate.
5405         * targhooks.c (default_setup_incoming_varargs): Replace
5406         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5407         (default_pretend_outgoing_varargs_named): Likewise.
5408         (hook_pass_by_reference_must_pass_in_stack): Likewise.
5409         (hook_callee_copies_named): Likewise.
5410         (default_function_arg_advance): Likewise.
5411         (default_function_arg): Likewise.
5412         (default_function_incoming_arg): Likewise.
5413         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5414         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5415         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5416         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5417         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5418         * targhooks.h (default_setup_incoming_varargs): Likewise.
5419         (default_pretend_outgoing_varargs_named): Likewise.
5420         (hook_pass_by_reference_must_pass_in_stack): Likewise.
5421         (hook_callee_copies_named): Likewise.
5422         (default_function_arg_advance): Likewise.
5423         (default_function_arg): Likewise.
5424         (default_function_incoming_arg): Likewise.
5425         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5426         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5427         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5428         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5429         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5430         * target.def (pass_by_reference): Likewise.
5431         (setup_incoming_varargs, strict_argument_naming): Likewise.
5432         (pretend_outgoing_varargs_named, callee_copies): Likewise.
5433         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
5434         (function_incoming_arg): Likewise.
5435         * target.h: Don't include "tm.h" .
5436         (cumulative_args_t): New typedef.
5437         [GCC_TM_H] (get_cumulative_args): New static inline function.
5438         [GCC_TM_H] (pack_cumulative_args): Likewise.
5439         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
5440         argument type with cumulative_args_t.
5441         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
5442         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
5443         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
5444         (frv_arg_partial_bytes, frv_function_arg): Likewise.
5445         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
5446         (frv_function_arg_1): Likewise.
5447         * config/s390/s390.c (s390_pass_by_reference): Likewise.
5448         (s390_function_arg_advance, s390_function_arg): Likewise.
5449         * config/m32c/m32c.c (m32c_function_arg): Likewise.
5450         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
5451         (m32c_strict_argument_naming): Likewise.
5452         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
5453         (spu_function_arg_advance): Likewise.
5454         (spu_setup_incoming_varargs): Likewise.  Make static.
5455         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
5456         Remove prototype.
5457         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
5458         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5459         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
5460         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
5461         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
5462         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
5463         (mep_pass_by_reference, mep_function_arg): Likewise.
5464         (mep_function_arg_advance): Likewise.
5465         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
5466         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
5467         (m32r_function_arg, m32r_function_arg_advance): Likewise.
5468         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
5469         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
5470         (ix86_function_arg, ix86_pass_by_reference): Likewise.
5471         (ix86_setup_incoming_varargs): Likewise.
5472         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
5473         (sh_strict_argument_naming): Likewise.
5474         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
5475         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
5476         (sh_function_arg_advance, sh_function_arg): Likewise.
5477         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
5478         (pdp11_function_arg_advance): Likewise.
5479         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
5480         Likewise.
5481         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
5482         * config/avr/avr.c (avr_function_arg): Likewise.
5483         (avr_function_arg_advance): Likewise.
5484         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
5485         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
5486         (xtensa_function_arg_1): Likewise.
5487         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
5488         Likewise.
5489         (xstormy16_function_arg): Likewise.
5490         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
5491         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
5492         (fr30_function_arg_advance): Likewise.
5493         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
5494         (lm32_function_arg, lm32_function_arg_advance): Likewise.
5495         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
5496         (moxie_function_arg, moxie_function_arg_advance): Likewise.
5497         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
5498         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
5499         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
5500         (cris_function_arg, cris_function_incoming_arg): Likewise.
5501         (cris_function_arg_advance, cris_function_arg_1): Likewise.
5502         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
5503         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
5504         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
5505         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
5506         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
5507         (mn10300_arg_partial_bytes): Likewise.
5508         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
5509         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
5510         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
5511         (ia64_function_arg_1): Likewise.
5512         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
5513         (m68k_function_arg): Likewise.
5514         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
5515         (rs6000_function_arg, setup_incoming_varargs): Likewise.
5516         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
5517         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
5518         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
5519         (picochip_arg_advance): Likewise.
5520         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
5521         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
5522         (mcore_function_arg_advance): Likewise.
5523         * config/score/score.c (score_pass_by_reference): Likewise.
5524         (score_function_arg_advance): Likewise.
5525         (score_arg_partial_bytes): Likewise.  Make static.
5526         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
5527         * config/arm/arm.c (arm_arg_partial_bytes): Replace
5528         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5529         (arm_function_arg, arm_function_arg_advance): Likewise.
5530         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
5531         * config/pa/pa.c (pa_pass_by_reference): Likewise.
5532         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
5533         (pa_function_arg): Likewise.
5534         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
5535         (mips_function_arg, mips_function_arg_advance): Likewise.
5536         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
5537         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
5538         * config/vax/vax.c (vax_function_arg): Likewise.
5539         (vax_function_arg_advance): Likewise.
5540         * config/h8300/h8300.c (h8300_function_arg): Likewise.
5541         (h8300_function_arg_advance): Likewise.
5542         * config/v850/v850.c (v850_pass_by_reference): Likewise.
5543         (v850_strict_argument_naming, v850_function_arg): Likewise.
5544         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
5545         (v850_setup_incoming_varargs): Likewise.
5546         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
5547         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
5548         (mmix_function_arg, mmix_pass_by_reference): Likewise.
5549         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
5550         with const void *.
5551         * config/bfin/bfin.c (setup_incoming_varargs): Replace
5552         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5553         (bfin_function_arg_advance, bfin_function_arg): Likewise.
5554         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
5555         * calls.c (emit_call_1): Change type of args_so_far to
5556         cumulative_args_t.  Changed all callers.
5557         (initialize_argument_information): Likewise.
5558         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
5559         * dse.c (get_call_args): Likewise.
5560         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
5561         * function.c (pass_by_reference, reference_callee_copied): Likewise.
5562         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
5563         New member args_so_far_v.  Changed all users.
5564         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
5565         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
5566         * config/mips/mips.c (mips_output_args_xfer): Likewise.
5567         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
5568         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5569         * config/microblaze/microblaze.c (microblaze_expand_prologue):
5570         Likewise.
5571         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
5572         m32r_pass_by_reference.
5573
5574 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
5575
5576         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
5577         argument to be a VEC of statements.
5578         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
5579         assert that pattern statements have to have their vector type set.
5580         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
5581         Change the first argument to be a VEC of statements.  Update
5582         documentation.
5583         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
5584         (vect_handle_widen_mult_by_const): New function.
5585         (vect_recog_widen_mult_pattern):  Change the first argument to be a
5586         VEC of statements.  Update documentation.  Check that the constant is
5587         INTEGER_CST.  Support multiplication by a constant that fits an
5588         intermediate type - call vect_handle_widen_mult_by_const.
5589         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
5590         call.  Handle additional pattern statements if necessary.
5591
5592 2011-06-16  Nick Clifton  <nickc@redhat.com>
5593
5594         PR target/49427
5595         * config.gcc: Set cpu_type to v850 for any V850 architecture.
5596         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
5597         md_file, extra_modes, out_file and extra_options are these are all
5598         deduced from cpu_type.
5599
5600 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
5601
5602         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
5603         truncation mask to 63.
5604
5605 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
5606
5607         PR target/49313
5608         PR target/29524
5609         * longlong.h: Add AVR support:
5610         (count_leading_zeros): New macro.
5611         (count_trailing_zeros): New macro.
5612         (COUNT_LEADING_ZEROS_0): New macro.
5613         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
5614         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
5615         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
5616         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
5617         (LIB2FUNCS_EXCLUDE): Add _clz.
5618         * config/avr/libgcc.S (XCALL): Move up in file.
5619         (XJMP): New C Macro.
5620         (DEFUN): New asm macro.
5621         (ENDF): New asm macro.
5622         (__ffssi2): New function.
5623         (__ffshi2): New function.
5624         (__loop_ffsqi2): New function.
5625         (__ctzsi2): New function.
5626         (__ctzhi2): New function.
5627         (__clzdi2): New function.
5628         (__clzsi2): New function.
5629         (__clzhi2): New function.
5630         (__paritydi2): New function.
5631         (__paritysi2): New function.
5632         (__parityhi2): New function.
5633         (__parityqi2): New function.
5634         (__popcounthi2): New function.
5635         (__popcountsi2): New function.
5636         (__popcountdi2): New function.
5637         (__popcountqi2): New function.
5638         (__bswapsi2): New function.
5639         (__bswapdi2): New function.
5640         (__ashldi3): New function.
5641         (__ashrdi3): New function.
5642         (__lshrdi3): New function.
5643         Fix suspicous lines.
5644
5645 2011-06-16  Richard Guenther  <rguenther@suse.de>
5646
5647         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
5648         the same as x != 0.
5649         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
5650         to (bool) X & 1.
5651         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
5652         equality compares against zero for the lower bit.
5653
5654 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
5655
5656         PR tree-optimization/49419
5657         * tree-vrp.c (execute_vrp): Call init_range_assertions
5658         before estimate_numbers_of_iterations, call
5659         free_number_of_iterations_estimates before calling
5660         remove_range_assertions.
5661
5662 2011-06-16  Revital Eres  <revital.eres@linaro.org>
5663
5664         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
5665         (struct partial_schedule): Add rows_length field.
5666         (verify_partial_schedule): Check rows_length.
5667         (ps_insert_empty_row): Handle rows_length.
5668         (create_partial_schedule): Likewise.
5669         (free_partial_schedule): Likewise.
5670         (reset_partial_schedule): Likewise.
5671         (create_ps_insn): Remove rest_count argument.
5672         (remove_node_from_ps): Update rows_length.
5673         (add_node_to_ps): Update rows_length and call create_ps_insn
5674         without passing row_rest_count.
5675         (rotate_partial_schedule): Update rows_length.
5676
5677 2011-06-16  Revital Eres  <revital.eres@linaro.org>
5678
5679         * ddg.c (add_intra_loop_mem_dep): New function.
5680         (build_intra_loop_deps): Call it.
5681
5682 2011-06-13  Jeff Law  <law@redhat.com>
5683
5684         * df-problems.c (df_lr_local_compute): Manually CSE
5685         PIC_OFFSET_TABLE_REGNUM.
5686         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
5687         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
5688
5689 2011-06-13  Jan Hubicka  <jh@suse.cz>
5690
5691         * cgraphunit.c (handle_alias_pairs): New function.
5692         (cgraph_finalize_compilation_unit): Use it.
5693         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
5694         as externally visible.
5695
5696 2011-06-15  Richard Guenther  <rguenther@suse.de>
5697
5698         * expr.c (expand_expr_real_2): Reduce all integral types to
5699         bitfield precision.
5700         (expand_expr_real_1): Likewise.
5701
5702 2011-06-15  Martin Jambor  <mjambor@suse.cz>
5703
5704         PR tree-optimization/48613
5705         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
5706         ipa_node_params_vector is NULL.
5707
5708 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
5709
5710         PR debug/49382
5711         * dwarf2out.c (dw_loc_list_node): Add force field.
5712         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
5713         location in the list, even if it is modified before first real insn.
5714         (output_loc_list): Emit empty ranges with force flag set.
5715         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
5716
5717 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
5718
5719         PR target/49349
5720         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
5721         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
5722         above a fence.  Update comments.
5723         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
5724         placed just above it.  Do not allow NULL place_to_insert.
5725
5726 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
5727
5728         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
5729         (slpeel_tree_peel_loop_to_edge): Don't call
5730         remove_dead_stmts_from_loop.
5731         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
5732         remove irrelevant pattern statements.  For irrelevant statements
5733         check if it is the last statement of a detected pattern, use
5734         corresponding pattern statement instead.
5735         (destroy_loop_vec_info): No need to remove pattern statements,
5736         only free stmt_vec_info.
5737         (vect_transform_loop): For irrelevant statements check if it is
5738         the last statement of a detected pattern, use corresponding
5739         pattern statement instead.
5740         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
5741         pattern statements.  Set basic block for the new statement.
5742         (vect_pattern_recog): Update documentation.
5743         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
5744         operands of pattern statements.
5745         (vectorizable_call): Fix printing.  In case of a pattern statement
5746         use the lhs of the original statement when creating a dummy
5747         statement to replace the original call.
5748         (vect_analyze_stmt): For irrelevant statements check if it is
5749         the last statement of a detected pattern, use corresponding
5750         pattern statement instead.
5751         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
5752         statements use gsi of the original statement.
5753
5754 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
5755
5756         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
5757         common/common-target-def.h.
5758         * target.def (default_target_flags, handle_option,
5759         supports_split_stack, optimization_table, init_struct,
5760         except_unwind_info, unwind_tables_default, have_named_sections):
5761         Move to common/common-target.def.
5762         * target.h (enum opt_levels, struct default_options): Move to
5763         common/common-target.h.
5764         * targhooks.c (default_except_unwind_info,
5765         dwarf2_except_unwind_info, sjlj_except_unwind_info,
5766         default_target_handle_option, empty_optimization_table): Move to
5767         common/common-targhooks.c.
5768         * targhooks.h (default_except_unwind_info,
5769         dwarf2_except_unwind_info, sjlj_except_unwind_info,
5770         default_target_handle_option, empty_optimization_table): Move to
5771         common/common-targhooks.h.
5772         * common/common-target-def.h: Include common/common-targhooks.h.
5773         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
5774         defined.
5775         * common/common-target.def (handle_option, option_init_struct,
5776         option_optimization_table, default_target_flags,
5777         except_unwind_info, supports_split_stack, unwind_tables_default,
5778         have_named_sections): Move from target.def.
5779         (HOOK_PREFIX): Undefine at end of file.
5780         * common/common-target.h: Include input.h.
5781         (enum opt_levels, struct default_options): Move from target.h.
5782         * common/common-targhooks.c, common/common-targhooks.h: New.
5783         * config.gcc (target_has_targetm_common): Default to yes.
5784         (moxie*): Set target_has_targetm_common=no.
5785         (hppa*-*-*): Don't set target_has_targetm_common=yes.
5786         * doc/tm.texi: Regenerate.
5787         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
5788         (C_TARGET_DEF_H): Add common/common-targhooks.h.
5789         (GCC_OBJS): Remove vec.o.
5790         (OBJS): Remove hooks.o and vec.o.
5791         (OBJS-libcommon-target): Add vec.o, hooks.o and
5792         common/common-targhooks.o.
5793         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
5794         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
5795         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
5796         cfglayout.o, $(out_object_file), $(common_out_object_file)):
5797         Update dependencies.
5798         (common/common-targhooks.o): New.
5799         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
5800         * common/config/pa/pa-common.c: Include more headers.  Take
5801         copyright dates from pa.c.
5802         (pa_option_optimization_table, pa_handle_option,
5803         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
5804         TARGET_HANDLE_OPTION): Move from pa.c.
5805         * common/config/alpha/alpha-common.c,
5806         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
5807         common/config/bfin/bfin-common.c,
5808         common/config/cris/cris-common.c,
5809         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
5810         common/config/h8300/h8300-common.c,
5811         common/config/i386/i386-common.c,
5812         common/config/ia64/ia64-common.c,
5813         common/config/iq2000/iq2000-common.c,
5814         common/config/lm32/lm32-common.c,
5815         common/config/m32c/m32c-common.c,
5816         common/config/m32r/m32r-common.c,
5817         common/config/m68k/m68k-common.c,
5818         common/config/mcore/mcore-common.c,
5819         common/config/mep/mep-common.c,
5820         common/config/microblaze/microblaze-common.c,
5821         common/config/mips/mips-common.c,
5822         common/config/mmix/mmix-common.c,
5823         common/config/mn10300/mn10300-common.c,
5824         common/config/pdp11/pdp11-common.c,
5825         common/config/picochip/picochip-common.c,
5826         common/config/rs6000/rs6000-common.c,
5827         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
5828         common/config/score/score-common.c, common/config/sh/sh-common.c,
5829         common/config/sparc/sparc-common.c,
5830         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
5831         common/config/vax/vax-common.c,
5832         common/config/xstormy16/xstormy16-common.c,
5833         common/config/xtensa/xtensa-common.c: New.
5834         * config/alpha/alpha.c: Include common/common-target.h.
5835         (alpha_option_optimization_table, alpha_handle_option,
5836         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5837         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
5838         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
5839         * config/arm/arm.c (arm_option_optimization_table,
5840         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5841         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
5842         arm-common.c.
5843         * config/avr/avr.c (avr_option_optimization_table,
5844         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5845         to avr-common.c.
5846         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
5847         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
5848         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
5849         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
5850         * config/cris/cris.c (cris_option_optimization_table,
5851         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5852         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
5853         cris-common.c.
5854         * config/fr30/fr30.c (fr30_option_optimization_table,
5855         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
5856         to fr30-common.c.
5857         * config/frv/frv.c (frv_option_optimization_table,
5858         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
5859         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
5860         * config/h8300/h8300.c (h8300_option_optimization_table,
5861         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5862         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
5863         * config/i386/i386-protos.h (ix86_handle_option): Declare.
5864         * config/i386/i386.c: Include common/common-target.h.
5865         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
5866         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
5867         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
5868         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
5869         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
5870         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
5871         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
5872         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
5873         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
5874         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
5875         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
5876         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
5877         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
5878         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
5879         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
5880         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
5881         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
5882         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
5883         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
5884         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
5885         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
5886         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
5887         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
5888         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
5889         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
5890         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
5891         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
5892         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
5893         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
5894         ix86_option_optimization_table, ix86_option_init_struct,
5895         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
5896         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5897         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
5898         i386-common.c.
5899         * config/i386/t-i386 (i386.o): Update dependencies.
5900         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
5901         * config/ia64/ia64.c (ia64_option_optimization_table,
5902         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5903         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5904         ia64_handle_option): Move to ia64-common.c.
5905         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
5906         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
5907         * config/lm32/lm32.c (lm32_option_optimization_table,
5908         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5909         to lm32-common.c.
5910         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
5911         m32c-common.c.
5912         * config/m32r/m32r.c (m32r_option_optimization_table,
5913         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5914         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5915         m32r_handle_option): Move to m32r-common.c.
5916         (m32r_memory_move_cost): Remove comment referring to
5917         TARGET_HANDLE_OPTION.
5918         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
5919         Move to m68k-common.c.
5920         * config/mcore/mcore.c (mcore_option_optimization_table,
5921         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5922         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
5923         * config/mep/mep.c (mep_option_optimization_table,
5924         mep_handle_option, TARGET_HANDLE_OPTION,
5925         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
5926         Move to mep-common.c.
5927         * config/microblaze/microblaze.c
5928         (microblaze_option_optimization_table,
5929         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5930         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
5931         * config/mips/mips.c (mips_handle_option,
5932         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5933         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
5934         mips-common.c.
5935         * config/mmix/mmix.c (mmix_option_optimization_table,
5936         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5937         Move to mmix-common.c.
5938         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5939         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
5940         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5941         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
5942         * config/pa/pa.c: Include common/common-target.h.
5943         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5944         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5945         pa_handle_option): Move to pa-common.c.
5946         (pa_option_override): Use targetm_common.except_unwind_info.
5947         (pa_asm_output_mi_thunk, pa_function_section): Use
5948         targetm_common.have_named_sections.
5949         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
5950         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5951         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5952         pdp11_handle_option, pdp11_option_init_struct): Move to
5953         pdp11-common.c.
5954         * config/picochip/picochip.c (picochip_option_optimization_table,
5955         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
5956         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
5957         * config/rs6000/rs6000.c: Include common/common-target.h.
5958         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
5959         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
5960         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
5961         rs6000_handle_option): Move to rs6000-common.c.
5962         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
5963         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
5964         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5965         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
5966         * config/s390/s390.c (processor_flags_table,
5967         s390_option_optimization_table, s390_option_init_struct,
5968         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
5969         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5970         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
5971         * config/s390/s390.h (processor_flags_table): Declare.
5972         * config/score/score.c (score_option_optimization_table,
5973         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5974         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
5975         score_handle_option): Move to score-common.c.
5976         * config/sh/sh.c (sh_option_optimization_table,
5977         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5978         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5979         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
5980         * config/sparc/sparc.c: Include common/common-target.h.
5981         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5982         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
5983         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
5984         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
5985         spu_option_init_struct): Move to spu-common.c.
5986         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
5987         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
5988         * config/v850/v850.c (small_memory_physical_max,
5989         v850_handle_memory_optionn v850_handle_option,
5990         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5991         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
5992         v850-common.c.
5993         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
5994         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
5995         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5996         Move to xtensa-common.c.
5997         * cfglayout.c: Include common/common-target.h.
5998         (fixup_reorder_chain): Use targetm_common.have_named_sections.
5999         * cfgrtl.c: Include common/common-target.h.
6000         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
6001         targetm_common.have_named_sections.
6002         * dbxout.c: Include common/common-target.h.
6003         (dbxout_function_end): Use targetm_common.have_named_sections.
6004         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
6005         targetm_common.except_unwind_info.
6006         * dwarf2out.c: Include common/common-target.h.
6007         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
6008         dwarf2out_begin_prologue, dwarf2out_frame_init,
6009         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
6010         targetm_common.except_unwind_info.
6011         * except.c: Include common/common-target.h.
6012         (init_eh, finish_eh_generation,
6013         output_one_function_exception_table): Use
6014         targetm_common.except_unwind_info.
6015         (switch_to_exception_section): Use targetm_common.have_named_sections.
6016         * explow.c: Include common/common-target.h.
6017         * expr.c: Include common/common-target.h.
6018         (build_personality_function): Use targetm_common.except_unwind_info.
6019         * function.c: Include common/common-target.h.
6020         (expand_function_end): Use targetm_common.except_unwind_info.
6021         * haifa-sched.c: Include common/common-target.h.
6022         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
6023         * lto-opts.c: Include common/common-target.h instead of target.h.
6024         (lto_reissue_options): Use targetm_common.handle_option.
6025         * opts.c: Include common/common-target.h.
6026         (target_handle_option): Use targetm_common.handle_option.
6027         (init_options_struct): Update comment referring to
6028         targetm.target_option.optimization.  Use
6029         targetm_common.default_target_flags,
6030         targetm_common.unwind_tables_default and
6031         targetm_common.option_init_struct.
6032         (default_options_optimization): Use
6033         targetm_common.option_optimization_table.
6034         (finish_options): Use targetm_common.except_unwind_info,
6035         targetm_common.unwind_tables_default,
6036         targetm_common.have_named_sections and
6037         targetm_common.supports_split_stack.
6038         * toplev.c: Include common/common-target.h.
6039         (process_options): Use targetm_common.have_named_sections.
6040         * tree-tailcall.c: Include common/common-target.h.
6041         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
6042         * tree.c: Include common/common-target.h.
6043         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
6044         * varasm.c: Include common/common-target.h.
6045         (resolve_unique_section, hot_function_section,
6046         default_function_section): Use targetm_common.have_named_sections.
6047
6048 2011-06-14  Easwaran Raman  <eraman@google.com>
6049
6050         PR rtl-optimization/44194
6051         * dse.c: Include tree-flow.h
6052         (insn_info): Add new field non_frame_wild_read.
6053         (group_info): Add new fields escaped_n and escaped_p.
6054         (kill_on_calls): New variable.
6055         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
6056         (dse_step0): Initialize kill_on_calls.
6057         (can_escape): New function.
6058         (set_usage_bits): Add additional parameter; record information
6059         about escaped locations.
6060         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
6061         (dse_step2_nospill): Set kill_on_calls based on
6062         group->escaped_n and group->escaped_n.
6063         (add_wild_read): Refactor into...
6064         (reset_active_stores): ... New function, and
6065         (free_read_records): ... New function.
6066         (add_non_frame_wild_read): New function.
6067         (scan_insn): Call add_non_frame_wild_read on non-const calls.
6068         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
6069         (dse_step5_nospill): Call scan_reads_nospill for instructions
6070         marked as non_frame_wild_read.
6071         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
6072
6073 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
6074
6075         * common/common-target-def.h, common/common-target.def,
6076         common/common-target.h, common/config/default-common.c,
6077         common/config/pa/pa-common.c: New files.
6078         * Makefile.in (common_out_file, common_out_object_file,
6079         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
6080         (OBJS-libcommon-target): Include $(common_out_object_file).
6081         (prefix.o): Update dependencies.
6082         ($(common_out_object_file), common/common-target-hooks-def.h,
6083         s-common-target-hooks-def-h): New.
6084         (s-tm-texi): Also check timestamp on common-target.def.
6085         (build/genhooks.o): Update dependencies.
6086         * config.gcc (common_out_file, target_has_targetm_common): Define.
6087         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
6088         TARGET_ALWAYS_STRIP_DOTDOT.
6089         * configure.ac (common_out_object_file): Define.
6090         (common_out_file, common_out_object_file): Substitute.
6091         (common): Create directory.
6092         * configure: Regenerate.
6093         * doc/tm.texi.in (targetm_common): Document.
6094         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
6095         * doc/tm.texi: Regenerate.
6096         * genhooks.c (hook_array): Also include common/common-target.def.
6097         * prefix.c (tm.h): Don't include.
6098         (common/common-target.h): Include.
6099         (ALWAYS_STRIP_DOTDOT): Don't define.
6100         (update_path): Use targetm_common.always_strip_dotdot instead of
6101         ALWAYS_STRIP_DOTDOT.
6102         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
6103
6104 2011-06-14  David Li  <davidxl@google.com>
6105
6106         * passes.c (execute_function_todo): Remove TODO_dump_func.
6107         (execute_one_pass): Remove TODO_dump_func.
6108         (execute_function_dump): New function.
6109         * tree-vrp.c: Remove TODO_dump_func.
6110         * regrename.c: Remove TODO_dump_func.
6111         * fwprop.c: Remove TODO_dump_func.
6112         * tree-into-ssa.c: Remove TODO_dump_func.
6113         * tree-complex.c: Remove TODO_dump_func.
6114         * tracer.c: Remove TODO_dump_func.
6115         * tree-loop-distribution.c: Remove TODO_dump_func.
6116         * postreload-gcse.c: Remove TODO_dump_func.
6117         * postreload.c: Remove TODO_dump_func.
6118         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
6119         * tree-tailcall.c: Remove TODO_dump_func.
6120         * ipa-cp.c: Remove TODO_dump_func.
6121         * final.c: Remove TODO_dump_func.
6122         * tree-emutls.c: Remove TODO_dump_func.
6123         * omp-low.c: Remove TODO_dump_func.
6124         * tree-ssa-dse.c: Remove TODO_dump_func.
6125         * tree-ssa-uncprop.c: Remove TODO_dump_func.
6126         * auto-inc-dec.c: Remove TODO_dump_func.
6127         * reorg.c: Remove TODO_dump_func.
6128         * tree-ssa-copyrename.c: Remove TODO_dump_func.
6129         * tree-ssa-ccp.c: Remove TODO_dump_func.
6130         * compare-elim.c: Remove TODO_dump_func.
6131         * mode-switching.c: Remove TODO_dump_func.
6132         * modulo-sched.c: Remove TODO_dump_func.
6133         * tree-call-cdce.c: Remove TODO_dump_func.
6134         * cse.c: Remove TODO_dump_func.
6135         * web.c: Remove TODO_dump_func.
6136         * tree-stdarg.c: Remove TODO_dump_func.
6137         * lto-streamer-out.c: Remove TODO_dump_func.
6138         * tree-ssa-math-opts.c: Remove TODO_dump_func.
6139         * tree-ssa-dom.c: Remove TODO_dump_func.
6140         * tree-nrv.c: Remove TODO_dump_func.
6141         * loop-init.c: Remove TODO_dump_func.
6142         * gimple-low.c: Remove TODO_dump_func.
6143         * ipa-inline.c: Remove TODO_dump_func.
6144         * tree-ssa-sink.c: Remove TODO_dump_func.
6145         * jump.c: Remove TODO_dump_func.
6146         * ifcvt.c: Remove TODO_dump_func.
6147         * tree-ssa-loop.c: Remove TODO_dump_func.
6148         * recog.c: Remove TODO_dump_func.
6149         * dse.c: Remove TODO_dump_func.
6150         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
6151         * matrix-reorg.c: Remove TODO_dump_func.
6152         * tree-eh.c: Remove TODO_dump_func.
6153         * regmove.c: Remove TODO_dump_func.
6154         * function.c: Remove TODO_dump_func.
6155         * tree-vectorizer.c: Remove TODO_dump_func.
6156         * ipa-split.c: Remove TODO_dump_func.
6157         * gcse.c: Remove TODO_dump_func.
6158         * tree-if-conv.c: Remove TODO_dump_func.
6159         * init-regs.c: Remove TODO_dump_func.
6160         * tree-ssa-phiopt.c: Remove TODO_dump_func.
6161         * implicit-zee.c: Remove TODO_dump_func.
6162         * lower-subreg.c: Remove TODO_dump_func.
6163         * bt-load.c: Remove TODO_dump_func.
6164         * tree-dfa.c: Remove TODO_dump_func.
6165         * except.c: Remove TODO_dump_func.
6166         * emit-rtl.c: Remove TODO_dump_func.
6167         * store-motion.c: Remove TODO_dump_func.
6168         * cfgexpand.c: Remove TODO_dump_func.
6169         * tree-cfgcleanup.c: Remove TODO_dump_func.
6170         * cfgcleanup.c: Remove TODO_dump_func.
6171         * tree-ssa-pre.c: Remove TODO_dump_func.
6172         * tree-sra.c: Remove TODO_dump_func.
6173         * tree-mudflap.c: Remove TODO_dump_func.
6174         * tree-ssa-copy.c: Remove TODO_dump_func.
6175         * cfglayout.c: Remove TODO_dump_func.
6176         * tree-ssa-forwprop.c: Remove TODO_dump_func.
6177         * tree-ssa-dce.c: Remove TODO_dump_func.
6178         * ira.c: Remove TODO_dump_func.
6179         * tree-ssa.c: Remove TODO_dump_func.
6180         * integrate.c: Remove TODO_dump_func.
6181         * tree-optimize.c: Remove TODO_dump_func.
6182         * tree-ssa-phiprop.c: Remove TODO_dump_func.
6183         * tree-object-size.c: Remove TODO_dump_func.
6184         * combine.c: Remove TODO_dump_func.
6185         * bb-reorder.c: Remove TODO_dump_func.
6186         * cprop.c: Remove TODO_dump_func.
6187         * var-tracking.c: Remove TODO_dump_func.
6188         * tree-profile.c: Remove TODO_dump_func.
6189         * tree-vect-generic.c: Remove TODO_dump_func.
6190         * reg-stack.c: Remove TODO_dump_func.
6191         * sched-rgn.c: Remove TODO_dump_func.
6192         * tree-ssa-structalias.c: Remove TODO_dump_func.
6193         * tree-switch-conversion.c: Remove TODO_dump_func.
6194         * tree-cfg.c: Remove TODO_dump_func.
6195         * tree-ssa-reassoc.c: Remove TODO_dump_func.
6196         * combine-stack-adj.c: Remove TODO_dump_func.
6197         * dce.c: Remove TODO_dump_func.
6198         * tree-ssanames.c: Remove TODO_dump_func.
6199         * regcprop.c: Remove TODO_dump_func.
6200
6201 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
6202
6203         PR middle-end/47364
6204         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
6205         and properly handle result not in Pmode.
6206
6207 2011-06-14  Robert Millan  <rmh@gnu.org>
6208
6209         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
6210         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
6211         `config/linux.h'.
6212
6213         * config/i386/kfreebsd-gnu64.h: New file.
6214         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
6215         with `i386/kfreebsd-gnu64.h'.
6216
6217         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
6218         (GNU_USER_LINK_EMULATION64): New macros.
6219         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
6220         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
6221         of hardcoding `elf_i386' and `elf_x86_64'.
6222
6223 2011-06-14  Nick Clifton  <nickc@redhat.com>
6224
6225         PR target/49403
6226         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
6227
6228         PR target/49402
6229         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
6230
6231 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
6232
6233         PR fortran/49103
6234         * tree.h (DECL_NONSHAREABLE): Define.
6235         (struct tree_decl_common): Change decl_common_unused to
6236         decl_nonshareable_flag.
6237         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
6238         Ignore vars with DECL_NONSHAREABLE bit set.
6239         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
6240         on stores to automatic aggregate vars.
6241
6242         PR rtl-optimization/49390
6243         Revert:
6244         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
6245
6246         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
6247         MEM_ALIAS_SET.
6248
6249 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
6250             Tom de Vries  <tom@codesourcery.com>
6251
6252         PR target/45098
6253         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
6254         Document changed semantics.
6255         (max_stmt_executions, max_stmt_executions_int): Declare.
6256         * tree-data-ref.c (estimated_loop_iterations)
6257         (estimated_loop_iterations_int): Move functions...
6258         * tree-ssa-loop-niter.c (estimated_loop_iterations)
6259         (estimated_loop_iterations_int): here.
6260         (record_estimate): Change nb_iterations_upper_bound and
6261         nb_iterations_estimate semantics.
6262         (max_stmt_executions, max_stmt_executions_int): New function.
6263         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
6264         (max_stmt_executions_tree): this.
6265         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
6266         estimated_loop_iterations_tree.
6267         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
6268         max_stmt_executions_int instead of estimated_loop_iterations_int.
6269         * predict.c (predict_loops): Idem.
6270         * tree-parloops.c (parallelize_loops): Idem.
6271         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
6272         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
6273         (init_omega_for_ddr_1): Idem.
6274         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
6275         (loop_prefetch_arrays): Idem
6276         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
6277         max_stmt_executions instead of estimated_loop_iterations.
6278         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
6279         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
6280         instead of nb_iterations_upper_bound.
6281
6282 2011-06-13  Jan Hubicka  <jh@suse.cz>
6283
6284         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
6285
6286 2011-06-14  Richard Henderson  <rth@redhat.com>
6287
6288         PR debug/48459
6289         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
6290         (based_loc_descr): Assert it's true.
6291         (compute_frame_pointer_to_fb_displacement): Set it, rather than
6292         aborting immediately.
6293
6294 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
6295             Mingfeng Wu  <mingfeng@faraday-tech.com>
6296
6297         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
6298
6299 2011-06-13  Jan Hubicka  <jh@suse.cz>
6300
6301         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
6302
6303 2011-06-13  Jan Hubicka  <jh@suse.cz>
6304
6305         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
6306         similarly to DECL_COMDAT.
6307         * cgraphunit.c (cgraph_analyze_function): Likewise.
6308         * ipa.c (function_and_variable_visibility): Likewise.
6309
6310 2011-06-13  Jan Hubicka  <jh@suse.cz>
6311
6312         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
6313         BINFO_VIRTUALS when streaming for ltrans unit.
6314
6315 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
6316
6317         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
6318         (movdi_internal64): Same.
6319
6320 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
6321
6322         PR target/44618
6323         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
6324         a set of similar patterns, where the MATCH_OPERAND for the function
6325         argument is replaced with individual references to hardware registers.
6326         (save_fpregs_<mode>): Ditto
6327         (restore_gpregs_<mode>): Ditto
6328         (return_and_restore_gpregs_<mode>): Ditto
6329         (return_and_restore_fpregs_<mode>): Ditto
6330         (return_and_restore_fpregs_aix_<mode>): Ditto
6331
6332 2011-06-13  Jan Hubicka  <jh@suse.cz>
6333
6334         * ipa-utils.c (postorder_stack): New structure.
6335         (ipa_reverse_postorder): Handle aliases.
6336
6337 2011-06-13  Jan Hubicka  <jh@suse.cz>
6338
6339         * ipa-inline.c (reset_edge_caches): Walk aliases.
6340         (update_caller_keys): Do not test inlinability of aliases.
6341         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
6342         (do_estimate_growth): Fix typo.
6343
6344 2011-06-13  Jan Hubicka  <jh@suse.cz>
6345
6346         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
6347         (can_remove_node_now_p): ... here; handle same comdat groups.
6348         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
6349         (inline_call): Update use of can_remove_node_now_p.
6350
6351 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6352
6353         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
6354         condition to disallow non-identical memory locations.
6355         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
6356         preference to bit manipulation instructions.
6357
6358 2011-06-13  Jan Hubicka  <jh@suse.cz>
6359
6360         * cgraph.c (cgraph_for_node_thunks_and_aliases,
6361         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
6362         (nonremovable_p): New function.
6363         (cgraph_can_remove_if_no_direct_calls_p): New function.
6364         (used_from_object_file_p): New functoin.
6365         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
6366         references from aliases.
6367         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
6368         * ipa-inline.c (check_caller_edge): New function.
6369         (want_inline_function_called_once_p): Use it; accept aliases called
6370         once, too.
6371         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
6372
6373 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6374
6375         PR target/48454
6376         * config/arm/neon.md (vec_pack_trunc): Set the lengths
6377         correctly for the case with Quad vectors.
6378
6379 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
6380            Ira Rosen  <ira.rosen@linaro.org>
6381
6382         PR tree-optimization/49352
6383         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
6384         all, make sure loop_use_stmt after the loop is a def stmt of a used
6385         SSA_NAME that is the only one defined inside of the loop.  Don't
6386         check for COND_EXPR and GIMPLE_BINARY_RHS.
6387         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
6388         check_reduction is true.
6389
6390 2011-06-11  Jan Hubicka  <jh@suse.cz>
6391
6392         PR middle-end/49373
6393         * ipa.c (cgraph_externally_visible_p): Check resolution info.
6394
6395 2011-06-11  Jan Hubicka  <jh@suse.cz>
6396
6397         PR middle-end/48836
6398         * ipa-inline-transform.c: Include tree-pass.h
6399         (inline_transform): Set TODO_update_ssa_only_virtuals.
6400         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
6401
6402 2011-06-11  Jan Hubicka  <jh@suse.cz>
6403
6404         PR middle-end/49378
6405         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
6406         aliases and thunks.
6407
6408 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
6409
6410         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
6411         Take number of iterations to peel into account for equally frequent
6412         misalignment values.
6413
6414 2011-06-11  Jan Hubicka  <jh@suse.cz>
6415
6416         * lto-streamer-out.c (produce_symtab): Stream out the newly
6417         represented aliases.
6418
6419 2011-06-11  Jan Hubicka  <jh@suse.cz>
6420
6421         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
6422         varying args.
6423         (ipa_update_after_lto_read): Likewise.
6424         (ipa_write_node_info): Do not sream call_with_var_arguments.
6425         (ipa_read_node_info): Likewise.
6426
6427 2011-06-11  Jan Hubicka  <jh@suse.cz>
6428
6429         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
6430
6431 2011-06-11  Jan Hubicka  <jh@suse.cz>
6432
6433         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
6434         (lto_symtab_resolve_can_prevail_p): Likewise.
6435         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
6436         * cgraph.c (same_body_aliases_done): New global var.
6437         (cgraph_same_body_alias_1): Rename to ...
6438         (cgraph_create_function_alias): ... this one; reorg to new
6439         representation.
6440         (cgraph_same_body_alias): Use cgraph_create_function_alias;
6441         record references when asked to.
6442         (cgraph_add_thunk): Fix formating.
6443         (cgraph_get_node): Kill same body alias code.
6444         (cgraph_node_for_asm): Likewise.
6445         (cgraph_remove_same_body_alias): Remove.
6446         (cgraph_remove_node): Kill same body alias code.
6447         (cgraph_mark_address_taken_node): Mark also the aliased function
6448         as having address taken.
6449         (dump_cgraph_node): Dump same body aliases.
6450         (cgraph_for_node_thunks_and_aliases): Update for new alias
6451         representation.
6452         (cgraph_for_node_and_aliases): Likewise.
6453         * cgraph.h (same_body): Kll pointer.
6454         (same_body_alias): Update comment.
6455         (same_body_aliases_done): Declare.
6456         (cgraph_remove_same_body_alias): Remove declaration.
6457         (cgraph_create_function_alias): Declare.
6458         (cgraph_process_same_body_aliases): Declare.
6459         (cgraph_function_with_gimple_body_p): Check for alias.
6460         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
6461         (cgraph_alias_aliased_node): New function.
6462         (cgraph_function_node): Update for new aliases.
6463         (cgraph_function_or_thunk_node): Likewise.
6464         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
6465         (inline_call): Remove dead aliases.
6466         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
6467         name hack for same body aliases.
6468         (clone_of_p): Look through aliases.
6469         (verify_cgraph_node): Verify aliases.
6470         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
6471         (cgraph_process_same_body_aliases): New function.
6472         (process_function_and_variable_attributes): Disable weakref warning on
6473         alias.
6474         (cgraph_analyze_functions): Handle aliases.
6475         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
6476         (assemble_thunks): Rename to ...
6477         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
6478         (cgraph_expand_function): Remove alias output code.
6479         (cgraph_output_in_order): Skip aliases.
6480         (cgraph_preserve_function_body_p): Aliases don't need preserving.
6481         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
6482         (ipa_record_reference): Do not assert on alias references.
6483         (ipa_ref_has_aliases_p): New function.
6484         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
6485         (ipa_ref_has_aliases_p): Declare.
6486         * lto-cgraph.c (lto_output_node): Handle aliases.
6487         (input_node): Likewise.
6488         * lto-streamer-out.c (lto_output): Skip aliases.
6489         (produce_symtab): Kill same_body_alias code.
6490         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
6491         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
6492         * ipa-inline.c (update_caller_keys): Walk aliases.
6493         (inline_small_functions): Fix thinko in previous patch.
6494         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
6495         (function_and_variable_visibility): Do not walk same body aliases.
6496         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
6497         (ipa_pta_execute): Use it.
6498
6499 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
6500
6501         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
6502         (*vec_dupv2df): Rename from vec_dupv2df.
6503         (vec_dupv2df): New expander.
6504
6505 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
6506
6507         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
6508
6509 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
6510
6511         * config/i386/i386.md: Use default value in "isa" attribute.
6512         * config/i386/sse.md: Ditto.
6513         * config/i386/mmx.md: Ditto.
6514
6515 2011-06-10  Wei Guozhi  <carrot@google.com>
6516
6517         PR target/45335
6518         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
6519         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
6520         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
6521         related peephole2.
6522         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
6523         related peephole2.
6524         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
6525         (arm_legitimate_ldrd_p): New prototype.
6526         (arm_output_ldrd): New prototype.
6527         * config/arm/arm.c (arm_check_ldrd_operands): New function.
6528         (arm_legitimate_ldrd_p): New function.
6529         (arm_output_ldrd): New function.
6530
6531 2011-06-10  David Li  <davidxl@google.com>
6532
6533         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6534         * passes.c (passr_eq): New function.
6535         (create_pass_tab): New function.
6536         (pass_traverse): New function.
6537         (dump_one_pass): New function.
6538         (dump_pass_list): New function.
6539         (dump_passes): New function.
6540
6541 2011-06-10  Jan Hubicka  <jh@suse.cz>
6542
6543         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
6544         setting the nothrow flag.
6545         * ipa-reference.c (propagate): Skip aliases.
6546         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
6547         (propagate_nothrow): Skip aliases; do not update cgraph.
6548         (local_pure_const): Do not update cgraph.
6549         * tree-profile.c (tree_profiling): Do fixup_cfg.
6550
6551 2011-06-10  Jan Hubicka  <jh@suse.cz>
6552
6553         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
6554         (cgraph_local_node_p): ... here; handle aliases.
6555         (has_addr_references_p): Break out from ...;
6556         (cgraph_remove_unreachable_nodes) ... here.
6557
6558 2011-06-10  Jan Hubicka  <jh@suse.cz>
6559
6560         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
6561         * common.opt (flag_inline_functions_called_once): Do not
6562         initialize to 1.
6563
6564 2011-06-10  Jan Hubicka  <jh@suse.cz>
6565
6566         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
6567         (ipcp_initialize_node_lattices): Do not deal with aliases;
6568         Do not try to propagate through thunks.
6569         (ipcp_change_tops_to_bottom): Do not deal with aliases.
6570
6571 2011-06-10  Jan Hubicka  <jh@suse.cz>
6572
6573         * ipa-prop.c (ipa_write_node_info): Stream jump functions
6574         for indirect calls.
6575         (ipa_read_node_info): Likewise.
6576
6577 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6578
6579         PR lto/49302
6580         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
6581         (build_and_insert_call): Likewise.
6582         (build_and_insert_ref): New.
6583         (gimple_expand_builtin_pow): Minor cleanup.
6584         (gimple_expand_builtin_cabs): New.
6585         (execute_cse_sincos): Add case for BUILT_IN_CABS.
6586
6587 2011-06-10  Jan Hubicka  <jh@suse.cz>
6588
6589         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
6590         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
6591         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
6592         (ipcp_propagate_stage): Skip aliases when propagating.
6593         (ipcp_need_redirect_p): Skip aliases.
6594         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
6595         collect_callers_of_node.
6596         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
6597         for aliases.
6598         (ipa_compute_jump_functions): Look through aliases.
6599
6600 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6601
6602         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
6603
6604 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
6605
6606         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
6607         Adjust comments.
6608         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
6609
6610 2011-06-10  Jan Hubicka  <jh@suse.cz>
6611
6612         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
6613         Update call of gimple_get_virt_method_for_binfo.
6614         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
6615         refuse_thunks parameter.
6616         (gimple_fold_call): Update.
6617         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
6618
6619 2011-06-10  Jan Hubicka  <jh@suse.cz>
6620
6621         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
6622         (not_all_callers_have_enough_arguments_p): ... this one; turn into
6623         worker for cgraph_for_node_and_aliases.
6624         (convert_callers_for_node): Break out from ...
6625         (convert_callers): ... here.
6626         (modify_function): Use collect_callers_of_node.
6627         (ipa_early_sra): Use cgraph_for_node_and_aliases.
6628
6629 2011-06-10  Richard Guenther  <rguenther@suse.de>
6630
6631         PR tree-optimization/49361
6632         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
6633         when not already in gimple form.
6634
6635 2011-06-10  Richard Guenther  <rguenther@suse.de>
6636
6637         PR bootstrap/49344
6638         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
6639         FOR_EACH_PHI_OR_STMT_USE.
6640
6641 2011-06-10  Jan Hubicka  <jh@suse.cz>
6642
6643         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
6644         (clone_inlined_nodes): ... here.
6645         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
6646         to real destination prior inlining.
6647         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
6648         can_early_inline_edge_p, want_early_inline_function_p,
6649         want_early_inline_function_p, want_inline_small_function_p,
6650         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
6651         edge_badness, update_all_callee_keys, lookup_recursive_calls,
6652         add_new_edges_to_heap, inline_small_functions, flatten_function,
6653         inline_always_inline_functions, early_inline_small_functions): Use
6654         cgraph_function_or_thunk_node.
6655         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
6656         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
6657         (do_estimate_edge_growth_1): Break out from ...
6658         (do_estimate_growth) ... here; walk aliases.
6659         (inline_generate_summary): Skip aliases.
6660
6661 2011-06-10  Richard Guenther  <rguenther@suse.de>
6662
6663         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
6664         forward when combining, visit inserted stmts when a stmt was changed.
6665
6666 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
6667
6668         * tree.h (error_operand_p): Add.
6669         * dbxout.c (dbxout_type_fields): Use the latter.
6670         * c-decl.c (add_stmt): Likewise.
6671         * gimplify.c (omp_add_variable, omp_notice_variable,
6672         gimplify_scan_omp_clauses): Likewise.
6673
6674 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
6675
6676         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
6677         when a value is actually passed in regs.
6678
6679 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
6680             Laurent Rougé  <laurent.rouge@menta.fr>
6681
6682         * doc/invoke.texi (SPARC options): Add -mflat.
6683         * config/sparc/sparc.opt: Likewise.
6684         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
6685         (sparc_flat_expand_prologue): Declare.
6686         (sparc_flat_expand_epilogue): Likewise.
6687         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
6688         (CPP_ENDIAN_SPEC): Replace with...
6689         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
6690         (CPP_SPEC): Adjust to above change.
6691         (EXTRA_SPECS): Likewise.
6692         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
6693         (INCOMING_REGNO): Likewise.
6694         (OUTGOING_REGNO): Likewise.
6695         (LOCAL_REGNO): Likewise.
6696         (SETUP_FRAME_ADDRESSES): Likewise.
6697         (FIXED_REGISTERS): Set 0 for %fp.
6698         (CALL_USED_REGISTERS): Likewise.
6699         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
6700         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
6701         (RETURN_ADDR_REGNUM): Define.
6702         (RETURN_ADDR_RTX): Use it.
6703         (INCOMING_RETURN_ADDR_REGNUM): Define.
6704         (INCOMING_RETURN_ADDR_RTX): Use it.
6705         (DWARF_FRAME_RETURN_COLUMN): Likewise.
6706         (EH_RETURN_REGNUM): Define.
6707         (EH_RETURN_STACKADJ_RTX): Use it.
6708         (EH_RETURN_HANDLER_RTX): Delete.
6709         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
6710         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
6711         Delete.
6712         (struct machine_function): Add frame_size, apparent_frame_size,
6713         frame_base_reg, frame_base_offset, n_global_fp_regs and
6714         save_local_in_regs_p fields.
6715         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
6716         sparc_frame_base_offset, sparc_n_global_fp_regs,
6717         sparc_save_local_in_regs_p): New macros.
6718         (sparc_option_override): Error out if -fcall-saved-REG is specified
6719         for Out registers.
6720         (eligible_for_restore_insn): Fix formatting.
6721         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
6722         (eligible_for_sibcall_delay): Likewise.
6723         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
6724         (sparc_legitimate_address_p): Adjust to above change.
6725         (save_global_or_fp_reg_p): New predicate.
6726         (return_addr_reg_needed_p): Likewise.
6727         (save_local_or_in_reg_p): Likewise.
6728         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
6729         (SORR_SAVE, SORR_RESTORE): Delete.
6730         (sorr_pred_t): New typedef.
6731         (sorr_act_t): New enum.
6732         (save_or_restore_regs): Rename to...
6733         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
6734         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
6735         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
6736         mechanism.  Add CFI information for double-word saves in 32-bit mode.
6737         (emit_adjust_base_to_offset): New function extracted from...
6738         (emit_save_or_restore_regs): ...this.  Rename the rest to...
6739         (emit_save_or_restore_regs_global_fp_regs): ...this.
6740         (emit_save_or_restore_regs_local_in_regs): New function.
6741         (gen_create_flat_frame_[123]): New functions.
6742         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
6743         (sparc_flat_expand_prologue): New function.
6744         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
6745         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
6746         (sparc_flat_expand_epilogue): New function.
6747         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
6748         (output_return): Likewise.
6749         (output_sibcall): Likewise.
6750         (sparc_output_mi_thunk): Likewise.
6751         (sparc_frame_pointer_required): Likewise.
6752         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
6753         function optimization.
6754         * config/sparc/sparc.md (flat): New attribute.
6755         (prologue): Add TARGET_FLAT handling.
6756         (save_register_window): Disable if TARGET_FLAT.
6757         (create_flat_frame_[123]): New patterns.
6758         (epilogue): Add TARGET_FLAT handling.
6759         (sibcall_epilogue): Likewise.
6760         (eh_return): New expander.
6761         (eh_return_internal): New insn and splitter.
6762         (return_internal): Add TARGET_FLAT handling.
6763         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
6764         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
6765         (nonlocal_goto): Add TARGET_FLAT handling.
6766         * config/sparc/t-elf: Add -mflat multilib.
6767         * config/sparc/t-leon: Likewise.
6768
6769 2011-06-10  Jan Hubicka  <jh@suse.cz>
6770
6771         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
6772         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
6773         (self_recursive_p): Use cgraph_function_node.
6774         (propagate_pure_const): Likewise.
6775         (propagate_nothrow): Likewise.
6776         * ipa-reference.c (ipa_reference_get_not_read_global): Use
6777         cgraph_function_node.
6778         (propagate_bits): Likewise.
6779         (propagate): Likewise.
6780
6781 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6782             Richard Earnshaw  <rearnsha@arm.com>
6783
6784         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
6785         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
6786         (*thumb2_movdi_vfp): Delete.
6787         (*arm_movdi_vfp_cortexa8): Delete.
6788         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
6789         (*movdi_vfp_cortexa8): Likewise.
6790
6791 2011-06-10  Richard Guenther  <rguenther@suse.de>
6792
6793         * stor-layout.c (initialize_sizetypes): Give names to all
6794         sizetype kinds.
6795
6796 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
6797
6798         PR tree-optimization/49318
6799         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
6800         irrelevant pattern statements.
6801
6802 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
6803
6804         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
6805
6806         PR bootstrap/49354
6807         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
6808         to last assignment.
6809
6810 2011-06-09  Jan Hubicka  <jh@suse.cz>
6811
6812         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
6813         do not recompute reachable flag.
6814         (cgraph_finalize_function, cgraph_analyze_functions): Set
6815         redefined_extern_inline here.
6816
6817 2011-06-09  Jan Hubicka  <jh@suse.cz>
6818
6819         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
6820         (cgraph_only_called_directly_p): ... this one; bring offline.
6821         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
6822         varpool_used_from_object_file_p): Drop names from the declaratoin.
6823         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
6824         collect_callers_of_node): New.
6825         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
6826         (cgraph_edge_recursive_p): Use cgraph_function_node.
6827         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
6828         (cgraph_node_cannot_be_local_p_1): Break out from ...
6829         (cgraph_node_can_be_local_p): ... here; walk aliases.
6830         (cgraph_for_node_thunks_and_aliases): New function.
6831         (cgraph_for_node_and_aliases): New function.
6832         (cgraph_make_node_local_1): Break out from ...
6833         (cgraph_make_node_local) ... here; use
6834         cgraph_for_node_thunks_and_aliases.
6835         (cgraph_set_nothrow_flag_1): Break out from ...
6836         (cgraph_set_nothrow_flag) ... here;
6837         use cgraph_for_node_thunks_and_aliases.
6838         (cgraph_set_const_flag_1): Break out from ...
6839         (cgraph_set_const_flag) ... here;
6840         use cgraph_for_node_thunks_and_aliases.
6841         (cgraph_set_pure_flag_1): Break out from ...
6842         (cgraph_set_pure_flag) ... here;
6843         use cgraph_for_node_thunks_and_aliases.
6844         (cgraph_propagate_frequency_1): Break out from ...
6845         (cgraph_propagate_frequency) ... here; use
6846         cgraph_for_node_thunks_and_aliases.
6847         (cgraph_used_from_object_file_p): Do not care about aliases.
6848         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
6849         New functions.
6850         (collect_callers_of_node_1, collect_callers_of_node): New functions.
6851
6852 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
6853
6854         PR rtl-optimization/49154
6855         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
6856         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
6857         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
6858         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
6859         * config/cris/cris.h (cris_register_move_cost): Remove
6860         !TARGET_V32 code.  Tweak comments.
6861
6862 2011-06-09  Jan Hubicka  <jh@suse.cz>
6863
6864         * cgraphbuild.c (record_eh_tables): Mark personality function as having
6865         address taken.
6866
6867 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
6868
6869         PR rtl-optimization/49154
6870         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
6871         is a matching slot in the hashtable, assign it to classes_ptr.
6872
6873         PR rtl-optimization/49154
6874         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
6875         register classes.
6876         * doc/tm.texi: Regenerate.
6877
6878 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
6879
6880         PR target/49307
6881         * config/sh/sh.md (UNSPEC_CHKADD): New.
6882         (chk_guard_add): New define_insn_and_split.
6883         (symGOT_load): Use chk_guard_add instead of blockage.
6884
6885 2011-06-09  Kai Tietz  <ktietz@redhat.com>
6886
6887         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
6888
6889 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
6890
6891         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
6892
6893 2011-06-09  Wei Guozhi  <carrot@google.com>
6894
6895         PR target/46975
6896         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
6897         (peephole2 for conditional move): Generate 16 bit instructions.
6898
6899 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
6900
6901         * config/i386/i386.md (*movdi_internal_rex64): Merge
6902         alternatives 6 and 8.
6903
6904 2011-06-09  David Li  <davidxl@google.com>
6905
6906         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6907         * passes.c (passr_eq): New function.
6908         (create_pass_tab): New function.
6909         (pass_traverse): New function.
6910         (dump_one_pass): New function.
6911         (dump_pass_list): New function.
6912         (dump_passes): New function.
6913
6914 2011-06-09  David Li  <davidxl@google.com>
6915
6916         * tree-complex.c (tree_lower_complex): Gate cleanup.
6917         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
6918         (execute_optimize_stdarg): Ditto.
6919         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
6920         (execute_cleanup_eh_1): Ditto.
6921         (execute_cleanup_eh): Ditto.
6922         * gcse.c (gate_rtl_pre): Ditto.
6923         (execute_rtl_pre): Ditto.
6924         * except.c (finish_eh_generation): Ditto.
6925         (convert_to_eh_region_ranges): Ditto.
6926         * cprop.c (one_cprop_pass): Ditto.
6927
6928 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
6929
6930         PR target/48673
6931         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
6932         in all basic blocks.
6933
6934 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6935
6936         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
6937         (HAVE_ENABLE_EXECUTE_STACK): Define.
6938         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
6939         (HAVE_ENABLE_EXECUTE_STACK): Define.
6940         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
6941         (HAVE_ENABLE_EXECUTE_STACK): Define.
6942         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
6943         (ENABLE_EXECUTE_STACK): Remove.
6944         (HAVE_ENABLE_EXECUTE_STACK): Define.
6945         [IN_LIBGCC2]: Don't include <windows.h>.
6946         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6947         (HAVE_ENABLE_EXECUTE_STACK): Define.
6948         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
6949         (HAVE_ENABLE_EXECUTE_STACK): Define.
6950         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
6951         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
6952         (HAVE_ENABLE_EXECUTE_STACK): Define.
6953         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
6954         (HAVE_ENABLE_EXECUTE_STACK): Define.
6955         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
6956         (HAVE_ENABLE_EXECUTE_STACK): Define.
6957         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6958         (HAVE_ENABLE_EXECUTE_STACK): Define.
6959         * config/alpha/alpha.c (alpha_trampoline_init): Test
6960         HAVE_ENABLE_EXECUTE_STACK.
6961         * config/i386/i386.c (ix86_trampoline_init): Likewise.
6962         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
6963         (sparc64_initialize_trampoline): Likewise.
6964         * libgcc2.c [L_enable_execute_stack]: Remove.
6965         * system.h (ENABLE_EXECUTE_STACK): Poison.
6966         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
6967         * doc/tm.texi: Regenerate.
6968         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
6969
6970 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
6971
6972         PR middle-end/49308
6973         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
6974         variable.  After resetting and rescanning insn continue with previous
6975         statement.
6976
6977 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6978
6979         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
6980         (gcc_cv_ld_hidden): Likewise.
6981         * configure: Regenerate.
6982         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
6983         (ix86_stack_protect_fail): Mark unused.
6984         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
6985         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
6986         [TARGET_MACHO]: Don't define.
6987         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
6988         (TARGET_STACK_PROTECT_FAIL): Likewise.
6989         (rs6000_stack_protect_fail): Mark unused.
6990         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
6991         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
6992
6993 2011-06-08  Andi Kleen  <ak@linux.intel.com>
6994
6995         * varasm.c (get_section): Print location of other conflict
6996         for section conflicts.
6997
6998 2011-06-08  Andi Kleen  <ak@linux.intel.com>
6999
7000         * config/i386/driver-i386.c (host_detect_local_cpu):
7001         Add model 0x2d Intel CPU.
7002
7003 2011-06-08  Andi Kleen  <ak@linux.intel.com>
7004
7005         * reginfo.c (global_regs_decl): Add.
7006         (globalize_reg): Add decl parameter. Compute location.  Pass location
7007         to warnings and add inform. Store decl in global_regs_decl.
7008         * rtl.h (globalize_reg): Update prototype.
7009         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
7010
7011 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
7012
7013         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
7014
7015 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
7016
7017         PR target/49305
7018         * config/sh/predicates.md (general_movsrc_operand): Check
7019         mode for memory with indexed address for QI and HImode.
7020         (general_movdst_operand): Likewise.
7021
7022 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
7023
7024         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
7025
7026 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
7027
7028         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
7029         (num_ssa_operands): Likewise.
7030         (op_iter_init_phiuse): Forward-declare.
7031         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
7032
7033 2011-06-08  Nick Clifton  <nickc@redhat.com>
7034
7035         * doc/invoke.texi (ARM Options): Update description of
7036         -mthumb-interwork.
7037
7038 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
7039
7040         * config/i386/driver-i386.c (host_detect_local_cpu): Support
7041         unknown Intel family 0x6 CPUs.
7042
7043 2011-06-08  Martin Jambor  <mjambor@suse.cz>
7044
7045         * tree-sra.c (mark_rw_status): Removed.
7046         (analyze_access_subtree): New parameter parent instead of
7047         mark_read and mark_write, propagate from that.
7048
7049 2011-06-08  Julian Brown  <julian@codesourcery.com>
7050
7051         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
7052         for double-precision helper functions in hard-float mode if only
7053         single-precision arithmetic is supported in hardware.
7054
7055 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
7056
7057         PR rtl-optimization/49303
7058         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
7059         code_motion_path_driver returned 0 or 1.
7060         (sel_region_finish): Clear h_d_i_d.
7061
7062 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
7063
7064         * config/sh/sh.c (prepare_move_operands): Set pic register
7065         appropriately for global and local dynamic tls models even
7066         if flag_pic is unset.
7067
7068 2011-06-07  Jason Merrill  <jason@redhat.com>
7069
7070         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
7071
7072 2011-06-07  Xinliang David Li  <davidxl@google.com>
7073         * passes.c (enable_disable_pass): Handle assembler name.
7074         (is_pass_explicitly_enabled_or_disabled): Ditto.
7075
7076 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7077
7078         PR tree-optimization/48497
7079         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
7080
7081 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7082
7083         PR tree-optimization/46728
7084         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
7085         to use gimple_val_nonnegative_real_p.
7086         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
7087         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
7088
7089 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
7090
7091         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
7092
7093 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
7094
7095         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
7096         constant vectors.
7097
7098 2011-06-07  Richard Guenther  <rguenther@suse.de>
7099
7100         * stor-layout.c (initialize_sizetypes): Initialize all
7101         sizetypes based on target definitions.
7102         (set_sizetype): Remove.
7103         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
7104         * tree.h (set_sizetype): Remove.
7105
7106 2011-06-07  Nick Clifton  <nickc@redhat.com>
7107
7108         * config.gcc: Unify V850 architecture options and add support for
7109         newer V850 architectures.
7110         * config/v850/t-v850e: Delete.
7111
7112 2011-06-07  Richard Guenther  <rguenther@suse.de>
7113
7114         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
7115         Call set_sizetype from here.
7116
7117 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
7118
7119         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
7120         (*maddhisi4tb, *maddhisi4tt): New define_insns.
7121
7122 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
7123             Andrew Stubbs  <ams@codesourcery.com>
7124
7125         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
7126         multiplies.
7127         * doc/md.texi (Canonicalization of Instructions): Document widening
7128         multiply canonicalization.
7129
7130 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
7131
7132         PR gcov-profile/49299
7133         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
7134
7135 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
7136
7137         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
7138         a pointer.
7139         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
7140         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
7141         vect_recog_pow_pattern): Likewise.
7142         (vect_pattern_recog_1): Remove declaration.
7143         (widened_name_p): Remove declaration.  Add new argument to specify
7144         whether to check that both types are either signed or unsigned.
7145         (vect_recog_widen_mult_pattern): Update documentation.  Handle
7146         unsigned patterns and multiplication by constants.
7147         (vect_pattern_recog_1): Update vect_recog_func references.  Use
7148         statement information from the statement returned from pattern
7149         detection functions.
7150         (vect_pattern_recog): Update vect_recog_func reference.
7151         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
7152         multiplication by a constant use the type of the other operand.
7153
7154 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
7155
7156         PR rtl-optimization/49145
7157         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
7158
7159 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
7160
7161         PR debug/49262
7162         * dwarf2out.c (native_encode_initializer): Decrement count in each
7163         iteration.
7164
7165         PR debug/49294
7166         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
7167         non-MODE_INT modes.
7168
7169         PR c++/49264
7170         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
7171         if stmt folded into nothing.
7172         * tree-inline.c (fold_marked_statements): If a builtin at the end of
7173         a bb folded into nothing, just update cgraph edges and move to next bb.
7174         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
7175         to be NULL.  Don't compute count and frequency if new_call is NULL.
7176
7177 2011-06-04  Diego Novillo  <dnovillo@google.com>
7178
7179         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
7180         (cgraph.o): Likewise.
7181         (cgraphunit.o): Likewise.
7182         * cgraphunit.c: Include lto-streamer.h
7183         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
7184         if LTO is enabled.
7185         * lto-streamer-in.c (unpack_value_fields): Call
7186         streamer_hooks.unpack_value_fields if set.
7187         (lto_materialize_tree): For unhandled nodes, first try to
7188         call lto_streamer_hooks.alloc_tree, if it exists.
7189         (lto_input_ts_decl_common_tree_pointers): Move reading of
7190         DECL_INITIAL to lto_streamer_read_tree.
7191         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
7192         (lto_streamer_read_tree): New.
7193         (lto_reader_init): Rename from lto_init_reader.
7194         Move initialization code to lto/lto.c.
7195         * lto-streamer-out.c (pack_value_fields): Call
7196         streamer_hooks.pack_value_fields if set.
7197         (lto_output_tree_ref): For tree nodes that are not normally indexable,
7198         call streamer_hooks.indexable_with_decls_p before giving up.
7199         (lto_output_ts_decl_common_tree_pointers): Move handling
7200         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
7201         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
7202         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
7203         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
7204         (lto_streamer_write_tree): New.
7205         (lto_output): Call lto_streamer_init directly.
7206         (lto_writer_init): Remove.
7207         * lto-streamer.c (streamer_hooks): New.
7208         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
7209         instead of lto_preload_common_nodes.
7210         (lto_is_streamable): Move from lto-streamer.h
7211         (lto_streamer_hooks_init): New.
7212         (streamer_hooks): New.
7213         (streamer_hooks_init): New.
7214         * lto-streamer.h (struct output_block): Forward declare.
7215         (struct lto_input_block): Likewise.
7216         (struct data_in): Likewise.
7217         (struct bitpack_d): Likewise.
7218         (struct streamer_hooks): Declare.
7219         (streamer_hooks): Declare.
7220         (lto_streamer_hooks_init): Declare.
7221         (lto_streamer_write_tree): Declare.
7222         (lto_streamer_read_tree): Declare.
7223         (streamer_hooks_init): Declare.
7224         (lto_is_streamable): Move to lto-streamer.c
7225
7226 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7227
7228         * longlong.h (smul_ppmm): The resulting register pair contains the
7229         higher order word first.
7230
7231 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7232
7233         PR tree-optimization/46728
7234         * builtins.c (powi_table): Remove.
7235         (powi_lookup_cost): Remove.
7236         (powi_cost): Remove.
7237         (expand_powi_1): Remove.
7238         (expand_powi): Remove.
7239         (expand_builtin_pow_root): Remove.
7240         (expand_builtin_pow): Remove.
7241         (expand_builtin_powi): Eliminate handling of constant exponent.
7242         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
7243
7244 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
7245
7246         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
7247
7248 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
7249
7250         * dce.c (reset_unmarked_insns_debug_uses): New.
7251         (delete_unmarked_insns): Skip debug insns.
7252         (prescan_insns_for_dce): Likewise.
7253         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
7254         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
7255         active reg can be found.
7256         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
7257         (convert_regs_1): Use it.
7258
7259 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
7260
7261         * tree-pretty-print.c (dump_function_header): Add flags.
7262         Don't dump decl_uid with nouid.
7263         * tree-pretty-print.h (dump_function_header): Adjust.
7264         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
7265         * passes.c (pass_init_dump_file): Pass dump_flags on.
7266         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
7267
7268 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
7269
7270         PR bootstrap/49270
7271         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
7272
7273 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
7274
7275         PR tree-optimization/49243
7276         * calls.c (setjmp_call_p): Also check if fndecl has the
7277         returns_twice attribute.
7278
7279 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7280
7281         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
7282         -ffast-math etc.
7283
7284 2011-06-06  Richard Henderson  <rth@redhat.com>
7285             Georg-Johann Lay  <avr@gjlay.de>
7286
7287         PR target/42210
7288         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
7289         New predicates.
7290         * config/avr/avr.md ("insv"): New insn expander.
7291         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
7292         "*insv.not.io", "*insv.reg"): New insns.
7293
7294 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
7295
7296         PR target/49285
7297         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
7298         to nonimmediate_operand from memory_operand for the operand that is to
7299         be forced to memory by the expander.  Lose the constraints.
7300
7301 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
7302
7303         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
7304         EH return when delayed branches are disabled.
7305
7306 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
7307
7308         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
7309         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
7310         calculation.
7311         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
7312         Simplify MODE_V1DF and MODE_V2SF handling.
7313         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
7314         Simplify MODE_SF handling.
7315
7316 2011-06-04  Jan Hubicka  <jh@suse.cz>
7317
7318         PR tree-optimization/48893
7319         PR tree-optimization/49091
7320         PR tree-optimization/49179
7321         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
7322         Bounds check.
7323
7324 2011-06-04  Jan Hubicka  <jh@suse.cz>
7325
7326         PR lto/48954
7327         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
7328         bitmaps.
7329
7330 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
7331
7332         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
7333
7334 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
7335
7336         PR target/49281
7337         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
7338         to be strictly smaller than 1 << shiftcount.
7339
7340 2011-06-04  Jan Hubicka  <jh@suse.cz>
7341
7342         PR tree-optimize/48929
7343         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
7344         of empty predicate.
7345
7346 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
7347
7348         PR debug/48333
7349         * calls.c (emit_call_1): Prefer the __builtin declaration of
7350         builtin functions.
7351
7352 2011-06-03   Diego Novillo  <dnovillo@google.com>
7353
7354         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
7355         (lto_input_tree_pointers): Likewise.
7356         * lto-streamer-out.c (pack_value_fields): Likewise.
7357         (lto_output_tree_pointers): Likewise.
7358         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
7359         and OPTIMIZATION_NODE.
7360
7361 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7362
7363         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
7364         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
7365         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
7366         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
7367         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
7368         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
7369         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
7370         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
7371         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
7372         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
7373         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
7374         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
7375         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
7376         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
7377         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
7378         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
7379         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
7380         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
7381         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
7382         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
7383         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
7384         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
7385         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
7386         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
7387         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
7388         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
7389         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
7390         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
7391         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
7392         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
7393         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
7394         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
7395         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
7396         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
7397         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
7398         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
7399         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
7400         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
7401         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
7402         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
7403         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
7404         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
7405         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
7406         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
7407         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
7408         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
7409         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
7410         * system.h (MD_UNWIND_SUPPORT): Poison.
7411         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
7412         * doc/tm.texi: Regenerate.
7413         * unwind-dw2.c: Include md-unwind-support.h instead of
7414         MD_UNWIND_SUPPORT.
7415         * config/ia64/unwind-ia64.c: Likewise.
7416         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7417
7418 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
7419
7420         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
7421
7422 2011-06-03  Richard Henderson  <rth@redhat.com>
7423             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7424
7425         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
7426         (sigill_hdlr): Correct insn, insn size.
7427         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
7428
7429 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7430
7431         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
7432         t-slibgcc-dummy.
7433         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
7434         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
7435         * config/mips/t-iris: Remove.
7436         * config/mips/t-irix6: New file.
7437         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
7438
7439 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7440
7441         * Makefile.in (LIB2ADDEHDEP): Remove.
7442         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
7443         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
7444         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
7445         * config/t-darwin (LIB2ADDEHDEP): Remove.
7446         * config/t-freebsd (LIB2ADDEHDEP): Remove.
7447         * config/t-linux (LIB2ADDEHDEP): Remove.
7448
7449 2011-06-03  Diego Novillo  <dnovillo@google.com>
7450
7451         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
7452         (lto_register_var_decl_in_symtab): Likewise.
7453         (lto_register_function_decl_in_symtab): Likewise.
7454         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
7455         logic to uniquify_nodes.
7456
7457 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7458
7459         * config/alpha/t-osf5: Remove.
7460         * config/alpha/t-osf-pthread: Remove.
7461         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
7462         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
7463
7464 2011-06-03  Julian Brown  <julian@codesourcery.com>
7465
7466         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
7467         (strongarm1110): Use strongarm tuning.
7468         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
7469         * config/arm/arm.c (arm_strongarm_tune): New.
7470         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7471         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
7472         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
7473         setting, using previous defaults or 1 for Cortex-A5.
7474         (arm_option_override): Set max_insns_skipped from current tuning.
7475
7476 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
7477
7478         * doc/install.texi (Options specification): Document --with-specs.
7479
7480 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7481
7482         * config/arm/neon.md (orndi3_neon): Actually split it.
7483
7484 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
7485
7486         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
7487         * var-tracking.c (reverse_op): Limite recurse depth to 5.
7488
7489 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
7490
7491         PR debug/47590
7492         * target.def (delay_sched2, delay_vartrack): New.
7493         * doc/tm.texi.in: Update.
7494         * doc/tm.texi: Rebuild.
7495         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
7496         * var-tracking.c (gate_handle_var_tracking): Likewise.
7497         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
7498         (bfin_flag_var_tracking): Drop.
7499         (output_file_start): Don't save and override flag_var_tracking.
7500         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
7501         (bfin_reorg): Test original variables.
7502         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7503         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
7504         (ia64_flag_var_tracking): Drop.
7505         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7506         (ia64_file_start): Don't save and override flag_var_tracking.
7507         (ia64_override_options_after_change): Ditto
7508         flag_schedule_insns_after_reload.
7509         (ia64_reorg): Test original variables.
7510         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
7511         (picochip_flag_var_tracking): Drop.
7512         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7513         (picochip_option_override): Don't save and override
7514         flag_schedule_insns_after_reload.
7515         (picochip_asm_file_start): Ditto flag_var_tracking.
7516         (picochip_reorg): Test original variables.
7517         * config/spu/spu.c (spu_flag_var_tracking): Drop.
7518         (TARGET_DELAY_VARTRACK): Define.
7519         (spu_var_tracking): New.
7520         (spu_machine_dependent_reorg): Call it.
7521         (asm_file_start): Don't save and override flag_var_tracking.
7522
7523 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
7524
7525         PR target/49163
7526         * config/sh/predicates.md (general_movsrc_operand): Return 0
7527         for memory and memory subreg of which address is an invalid
7528         indexed address for QI and HImode.
7529         (general_movdst_operand): Likewise.
7530
7531 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
7532
7533         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
7534         edges only, when there is a non-local label in the function.
7535         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
7536
7537 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
7538
7539         * config/i386/constraints.md (Y3): New register constraint.
7540         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
7541         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
7542         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
7543         *sse2_interleave_lowv2df.
7544
7545 2011-06-02  Julian Brown  <julian@codesourcery.com>
7546
7547         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
7548         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
7549         (arm_cortex_a5_tune): New.
7550
7551 2011-06-02  Julian Brown  <julian@codesourcery.com>
7552
7553         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
7554         * config/arm/arm.c (arm_default_branch_cost): New.
7555         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7556         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
7557         (arm_fa726_tune): Set branch_cost field using
7558         arm_default_branch_cost.
7559         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
7560         current_tune structure.
7561         * dojump.c (tm_p.h): Include file.
7562
7563 2011-06-02  Julian Brown  <julian@codesourcery.com>
7564
7565         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
7566         tuning.
7567         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
7568         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
7569         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
7570         field.
7571         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
7572         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
7573         (arm_fa726te_tune): Add prefer_constant_pool setting.
7574         (arm_v6t2_tune, arm_cortex_tune): New.
7575         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
7576         prefer_constant_pool setting.
7577
7578 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
7579
7580         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
7581         switch statement.
7582         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
7583         (*movdf_internal) <case 6,7,8>: Ditto.
7584
7585         * config/i386/constraints.md (Y4): New register constraint.
7586         * config/i386/sse.md (vec_set<mode>_0): Merge with
7587         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
7588         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
7589         *vec_extractv2di_1_sse.
7590         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
7591         and *vec_concatv2di_rex64_sse.
7592
7593 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
7594
7595         PR target/48807
7596         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
7597         of cgraph_local_info for null before attempting to use it.
7598
7599 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
7600
7601         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
7602         (current_function_dynamic_alloc_count): Delete.
7603         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
7604         (expand_builtin_nonlocal_goto): Remove obsolete comment.
7605         (expand_builtin_update_setjmp_buf): Remove dead code.
7606         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
7607         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
7608         support.
7609         * function.c (instantiate_virtual_regs): Likewise.
7610         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
7611         for a block with a single abnormal incoming edge.
7612         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
7613         (SETJMP_VIA_SAVE_AREA): Delete.
7614         * config/sparc/sparc-protos.h (load_got_register): Declare.
7615         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7616         (load_got_register): Make global.
7617         (sparc_frame_pointer_required): Add 'static'.
7618         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
7619         (sparc_builtin_setjmp_frame_value): New function.
7620         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
7621         (save_stack_nonlocal): New expander.
7622         (restore_stack_nonlocal): Likewise.
7623         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
7624         (nonlocal_goto_internal): New insn.
7625         (goto_handler_and_restore): Delete.
7626         (builtin_setjmp_setup): Likewise.
7627         (do_builtin_setjmp_setup): Likewise.
7628         (setjmp): Likewise.
7629         (builtin_setjmp_receiver): New expander.
7630
7631 2011-06-01  David Li  <davidxl@google.com>
7632
7633         PR middle-end/49261
7634         * tree-pretty-print.c (dump_function_header): Format cleanup.
7635
7636 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
7637
7638         PR target/49238
7639         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
7640         needed when original operands are used for msw_skip comparison.
7641
7642 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
7643
7644         PR debug/49250
7645         * var-tracking.c (add_uses, add_stores): Don't call
7646         cselib_subst_to_values on ENTRY_VALUE.
7647
7648 2011-06-01  Diego Novillo  <dnovillo@google.com>
7649
7650         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
7651         output_record_start with LTO_null instead of output_zero.
7652         (lto_output_ts_binfo_tree_pointers): Likewise.
7653         (lto_output_tree): Likewise.
7654         (output_eh_try_list): Likewise.
7655         (output_eh_region): Likewise.
7656         (output_eh_lp): Likewise.
7657         (output_eh_regions): Likewise.
7658         (output_bb): Likewise.
7659         (output_function): Likewise.
7660         (output_unreferenced_globals): Likewise.
7661         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
7662         instead of NUM_TREE_CODES.
7663         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
7664         (lto_output_int_in_range): Change << to >> when shifting VAL.
7665
7666 2011-06-01  Diego Novillo  <dnovillo@google.com>
7667
7668         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
7669         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
7670
7671 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
7672
7673         PR target/45074
7674         * optabs.h (valid_multiword_target_p): Declare.
7675         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
7676         doing multi-word operations.
7677         * optabs.c (expand_binop): Likewise.
7678         (expand_doubleword_bswap): Likewise.
7679         (expand_absneg_bit): Likewise.
7680         (expand_unop): Likewise.
7681         (expand_copysign_bit): Likewise.
7682         (multiword_target_p): New function.
7683
7684 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
7685
7686         PR rtl-optimization/48830
7687         PR rtl-optimization/48808
7688         PR rtl-optimization/48792
7689         * reload.c (push_reload): Check contains_reg_of_mode.
7690         * reload1.c (strip_paradoxical_subreg): New function.
7691         (gen_reload_chain_without_interm_reg_p): Use it to handle
7692         paradoxical subregs.
7693         (emit_output_reload_insns, gen_reload): Likewise.
7694
7695 2011-06-01  David Li  <davidxl@google.com>
7696
7697         * predict.c : Change pass name
7698         * ipa.c: Ditto.
7699         * dce.c: Ditto.
7700         * tree-profile.c: Ditto.
7701         * except.c: Ditto.
7702
7703 2011-06-01  David Li  <davidxl@google.com>
7704
7705         * tree-pretty-print.c (dump_function_header): New function.
7706         * final.c (rest_of_clean_state): Use header dumper.
7707         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
7708         * passes.c (pass_init_dump_file): Use header dumper.
7709
7710 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
7711
7712         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
7713         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
7714         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
7715         New functions.
7716         (mem_loc_descriptor): Use them.
7717
7718         * var-tracking.c (create_entry_value): New function.
7719         (vt_add_function_parameter): Use it.
7720
7721 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7722
7723         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
7724         Include <signal.h>, <ucontext.h>.
7725         (sigill_caught): Define.
7726         (sigill_hdlr): New function.
7727         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
7728         insns can be executed.
7729         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
7730         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
7731
7732 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7733
7734         * config/t-slibgcc-darwin: Move to ...
7735         * config/t-slibgcc-dummy: ... this.  Clarify comments.
7736         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
7737         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
7738         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
7739         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
7740         Remove i386/t-crtstuff from tmake_file.
7741         (i[34567]86-*-solaris2*): Remove t-svr4,
7742         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
7743         t-slibgcc-dummy.
7744         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
7745         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
7746         sparc/t-crtfm from tmake_file.
7747         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
7748         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
7749         Remove extra_parts.
7750         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
7751         * config/i386/t-nwld (SHLIB_LINK): Remove.
7752         * config/i386/t-rtems-i386: Rename to ...
7753         * config/i386/t-rtems: ... this.
7754         ($(T)crti.o, $(T)crtn.o): Remove.
7755         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
7756         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
7757         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
7758         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
7759         EXTRA_MULTILIB_PARTS): Remove.
7760         * config/sparc/t-sol2-64: Likewise.
7761         * config/sparc/t-sol2: Remove.
7762         * config/sparc/t-crtin: Remove.
7763         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
7764         * config/i386/gmon-sol2.c: Remove.
7765         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
7766         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
7767         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
7768         * config/i386/sol2-gc1.asm: Remove.
7769         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
7770         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
7771         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
7772         * config/t-slibgcc-sld: Remove.
7773
7774 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
7775
7776         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
7777         base_type_for_mode with op_mode instead of mode.
7778
7779 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
7780
7781         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
7782         Cortex-A15.
7783         * config/arm/arm-tune.md: Regenerate.
7784         * config/arm/arm-tables.opt: Regenerate.
7785         * config/arm/arm.c (FL_DIV): Rename...
7786         (FL_THUMB_DIV): ... to this.
7787         (FL_ARM_DIV): Define.
7788         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
7789         (arm_arch_hwdiv): Remove.
7790         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
7791         (arm_issue_rate): Add cortexr5.
7792         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
7793         __ARM_ARCH_EXT_IDIV__.
7794         (TARGET_IDIV): Define.
7795         (arm_arch_hwdiv): Remove.
7796         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
7797         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
7798         (divsi3, udivsi3): New patterns.
7799         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
7800         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
7801
7802 2011-06-01  Martin Jambor  <mjambor@suse.cz>
7803
7804         * ipa-utils.c (ipa_dfs_info): New field scc_no.
7805         * ipa-utils.c (searchc): Set scc_no.
7806
7807 2011-06-01  Martin Jambor  <mjambor@suse.cz>
7808
7809         * ipa-utils.c (searchc_env): New field allow_overwritable.
7810         (searchc): do not ignore edges to overwritable nodes if indicated
7811         by env->allow_overwritable.
7812         (ipa_reduced_postorder): Set env.allow_overwritable.
7813
7814 2011-06-01  Richard Guenther  <rguenther@suse.de>
7815
7816         * tree.c (free_lang_data): Do not reset boolean_type_node nor
7817         char_type_node.
7818         * lto-streamer.c (lto_record_common_node): Take node pointer,
7819         do not register types.
7820         (lto_preload_common_nodes): Explicitly skip preloading nodes
7821         that differ between frontends.
7822
7823 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
7824
7825         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
7826         NON_FLOAT_REGS.
7827
7828 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
7829
7830         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
7831         parameter value for dump. Dump cost on outermost call only.
7832         (rs6000_memory_move_cost): Dump cost on outermost call only.
7833
7834 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
7835
7836         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
7837         DW_OP_GNU_convert ops.
7838
7839         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
7840         cselib_preserve_constants.
7841         (cselib_lookup_1): If cselib_preserve_constants,
7842         a new VALUE is being created for REG and there is a VALUE for the
7843         same register in wider mode, add another loc with lowpart SUBREG of
7844         the wider VALUE.
7845         (cselib_subst_to_values): Handle ENTRY_VALUE.
7846         * var-tracking.c  (replace_expr_with_values): Return NULL for
7847         ENTRY_VALUE too.
7848         * dwarf2out.c (convert_descriptor_to_signed): New function.
7849         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
7850         instead of two shifts.
7851         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
7852         the right mode if needed.
7853         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
7854         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
7855         convert_descriptor_to_signed.
7856         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
7857         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
7858
7859         PR target/48688
7860         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
7861
7862 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
7863
7864         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
7865         of X87MODEI12 and SWI48x instead of SSEMODEI24.
7866         (SWI248x): New mode iterator, rename from X87MODEI.
7867         (X87MODEI): Remove mode iterator.
7868         (X87MODEI12): Ditto.
7869         (SSEMODEI24): Ditto.
7870
7871 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
7872
7873         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
7874         * doc/invoke.texi: Document max-vartrack-expr-depth.
7875         * var-tracking.c (EXPR_DEPTH): New.
7876         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
7877
7878 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
7879
7880         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
7881         * config/i386/sse.md: Add n to negated FMA pattern names.
7882
7883 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
7884
7885         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
7886
7887 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
7888
7889         * gengtype-state.c (read_state_params_structs): Initialize previous.
7890
7891 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
7892
7893         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
7894         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
7895
7896 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
7897
7898         * config/i386/i386.md (*movtf_internal): Avoid allocating general
7899         registers.  Penalize F*r->o alternative to prevent partial memory
7900         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
7901         CONST_DOUBLE immediates when optimizing function for size.  Do not move
7902         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
7903         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
7904         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
7905         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
7906         alternatives.
7907         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
7908
7909         (fp_register_operand splitters): Use fp_register_operand
7910         constraint.  Do not use FP_REG_P in insn condition.
7911         (any_fp_register_operand splitters): Use any_fp_register_operand
7912         constraint.  Do not use ANY_FP_REG_P in insn condition.
7913
7914 2011-05-31  Jan Hubicka  <jh@suse.cz>
7915
7916         * cgraph.h (cgraph_inline_failed_t): Give enum a name
7917         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
7918         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
7919         (lto_output_edge): Use output_enum and var_len_unsigned.
7920         (lto_output_varpool_node): Likewise.
7921         (input_overwrite_node): Do not take resolution parameter;
7922         extract it from a bitpack.
7923         (input_node): Do not read resolution; use input_enum and
7924         var_len_unsigned.
7925         (input_varpool_node): Likewise.
7926         (input_edge): Likewise.
7927         (input_cgraph_1): Likewise.
7928
7929 2011-05-31  Richard Guenther  <rguenther@suse.de>
7930
7931         * gimple.c (gimple_register_canonical_type): Do not register
7932         any types via gimple_register_type.
7933
7934 2011-05-31  Jan Hubicka  <jh@suse.cz>
7935
7936         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
7937         of thunks.
7938
7939 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
7940
7941         PR rtl-optimization/49235
7942         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
7943         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
7944
7945 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
7946
7947         PR tree-optimization/49093
7948         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
7949         data references.
7950
7951 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
7952
7953         PR debug/49047
7954         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
7955         for concrete functions containing the code of cloned functions.
7956
7957 2011-05-31  Richard Guenther  <rguenther@suse.de>
7958
7959         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
7960         to ...
7961         (forward_propagate_into_comparison_1): ... this.
7962         (forward_propagate_comparison): Rename to ...
7963         (forward_propagate_into_comparison): ... this.  Split out
7964         real forward propagation code to ...
7965         (forward_propagate_comparison): ... this.
7966         (forward_propagate_into_gimple_cond): Remove looping.
7967         (forward_propagate_into_cond): Likewise.
7968         (simplify_not_neg_expr): Return whether we have done something.
7969         (simplify_gimple_switch): Likewise.
7970         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
7971         (ssa_forward_propagate_and_combine): ... this.  Re-structure
7972         to do a forward forward-propagation walk on BBs and a backward
7973         stmt combining walk on BBs.  Consistently re-scan changed statements.
7974         (pass_forwprop): Adjust.
7975
7976 2011-05-30  Ian Lance Taylor  <iant@google.com>
7977
7978         * godump.c (go_format_type): Correct length of name added to
7979         obstack for anonymous field.
7980
7981 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
7982
7983         PR target/49186
7984         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
7985         part of the second operand is 0.
7986
7987 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
7988
7989         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
7990         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
7991         to memory for !TARGET_MEMORY_MISMATCH_STALL.
7992         (*movdf_internal_rex64): Do not penalize F->r alternative.
7993         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
7994         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
7995         when optimizing function for size.  Do not move CONST_DOUBLEs
7996         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
7997         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
7998         SUBREGs.  Do not check for MEM_P operands in the insn condition,
7999         check for ANY_FP_REGNO_P instead.
8000         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
8001         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
8002         function for speed.
8003         * config/i386/i386.c (ix86_option_override_internal): Do not
8004         set TARGET_INTEGER_DFMODE_MOVES here.
8005
8006 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
8007
8008         PR target/49168
8009         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
8010
8011 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
8012
8013         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
8014         DW_TAG_rvalue_reference_type even for
8015         -gdwarf-4 -fno-debug-types-section.
8016
8017 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8018
8019         PR tree-optimization/46728
8020         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
8021         (build_and_insert_binop): New.
8022         (gimple_expand_builtin_pow): Reorder args for
8023         build_and_insert_call; use build_and_insert_binop; add more
8024         optimizations for fractional exponents.
8025
8026 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
8027
8028         PR bootstrap/49190
8029
8030         Revert:
8031         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
8032
8033         * tree.h (struct tree_identifier): Inherit from tree_typed, not
8034         tree_common.
8035         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
8036         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
8037         TS_BASE instead of TS_COMMON.
8038         * varasm.c (assemble_name): Remove assert.
8039
8040 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
8041
8042         * config.gcc: Keep obselete list sorted.
8043
8044 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
8045             Eric Botcazou  <ebotcazou@adacore.com>
8046
8047         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
8048         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
8049         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
8050         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
8051         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
8052
8053 2011-05-30  Richard Guenther  <rguenther@suse.de>
8054
8055         * gimple.c (gimple_types_compatible_p_1): Compare record
8056         and union type members properly.
8057
8058 2011-05-30  Richard Guenther  <rguenther@suse.de>
8059
8060         PR tree-optimization/49210
8061         * ipa-split.c (split_function): Care for the case where the call
8062         result is not trivially convertible to the result holding variable.
8063
8064 2011-05-30  Richard Guenther  <rguenther@suse.de>
8065
8066         PR tree-optimization/49218
8067         * tree-vrp.c (adjust_range_with_scev): Properly check whether
8068         overflow occured.
8069
8070 2011-05-30  Richard Guenther  <rguenther@suse.de>
8071
8072         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
8073         New function split out from ...
8074         (forward_propagate_into_gimple_cond): ... here.  Adjust.
8075         (forward_propagate_into_cond): Likewise.
8076         (forward_propagate_comparison): Also propagate into
8077         comparisons on assignment RHS.  Change return value to
8078         behave similar to forward_propagate_into_cond.
8079         (tree_ssa_forward_propagate_single_use_vars): Handle
8080         strict-overflow warnings properly for forward_propagate_comparison.
8081
8082 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8083
8084         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
8085         from plugin linker.
8086         * configure: Regenerate.
8087
8088 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
8089
8090         PR tree-optimization/49199
8091         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
8092         non-reduction operands are either defined in the loop or by induction.
8093
8094 2011-05-29  Xinliang David Li  <davidxl@google.com>
8095
8096         * opts-global.c (handle_common_deferred_options): Handle new options.
8097         * passes.c (register_one_dump_file): Call register_pass_name.
8098         (execute_one_pass): Check explicit enable/disable flag.
8099         (passr_hash): New function.
8100         (passr_eq): Ditto.
8101         (register_pass_name): Ditto.
8102         (get_pass_by_name): Ditto.
8103         (pass_hash): Ditto.
8104         (pass_eq): Ditto.
8105         (enable_pass): Ditto.
8106         (disable_pass): Ditto.
8107         (is_pass_explicitly_enabled_or_disabled): Ditto.
8108
8109 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
8110
8111         * config/i386/i386.md (*movoi_internal_avx): Use
8112         standard_sse_constant_opcode for alternative 0.
8113         (*movti_internal_sse): Ditto.
8114         (*movti_internal_rex64): Use standard_sse_constant_opcode for
8115         alternative 2.
8116         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
8117         sselog1 type moves.
8118         (*movsi_internal): Ditto.
8119         (*movdi_internal): Ditto.  Add ssecvt type moves.
8120
8121 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
8122
8123         PR target/48830
8124         * rtlanal.c (simplify_subreg_regno): Adjust comment.
8125
8126 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
8127
8128         PR rtl-optimization/49095
8129         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
8130         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
8131
8132 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
8133
8134         PR target/43995
8135         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
8136         recurse_p argument.  Only follow register copies if it is set,
8137         and prevent mips_find_pic_call_symbol from recursing.
8138         (mips_find_pic_call_symbol): Add a recurse_p argument.
8139         Pass it to mips_pic_call_symbol_from_set.
8140         (mips_annotate_pic_calls): Update accordingly.
8141
8142 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
8143
8144         * emit-rtl.c (try_split): Use a loop to search for
8145         NOTE_INSN_CALL_ARG_LOCATIONs.
8146
8147 2011-05-29  Richard Guenther  <rguenther@suse.de>
8148
8149         PR tree-optimization/49217
8150         * ipa-pure-const.c (propagate_pure_const): Fix typos.
8151
8152 2011-05-28  Jan Hubicka  <jh@suse.cz>
8153
8154         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
8155         length.
8156         (string_slot_free): Remove
8157         (create_output_block): Initialize obstack.
8158         (destroy_output_block): Free obstack.
8159         (lto_string_index): Add PERSISTENT parameter; do not duplicate
8160         the string unless it needs to be added into the hash.
8161         (lto_output_string_with_length): Add persistent attribute;
8162         handle NULL strings.
8163         (lto_output_string): Add PERSISTENT parameter.
8164         (output_string_cst, output_identifier): Simplify.
8165         (lto_output_location_bitpack): Update.
8166         (lto_output_builtin_tree): Update.
8167         * lto-streamer.h (struct output_block): Add obstack.
8168         (lto_output_string, lto_output_string_with_length): Remove
8169         declarations; functions are static now.
8170
8171 2011-05-28  Jan Hubicka  <jh@suse.cz>
8172
8173         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
8174         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
8175         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
8176         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
8177         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
8178         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
8179         unpack_ts_decl_with_vis_value_fields,
8180         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
8181         lto_get_builtin_tree): Use enum and variable length i/o.
8182         * basic-block.h (profile_status_d): Add PROFILE_LAST.
8183         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
8184         New functions.
8185         (bp_pack_enum, bp_unpack_enum): New macros.
8186
8187 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
8188
8189         * genrecog.c: Remove redundant forward declarations.
8190
8191 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
8192
8193         * config.gcc: Deprecate mips*-*-openbsd*.
8194
8195 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
8196
8197         PR bootstrap/49195
8198         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
8199         for match_op_dup.
8200
8201 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
8202
8203         PR middle-end/48981
8204         * gengtype.c (vec_prefix_type): New function.
8205         (note_def_vec): Use vec_prefix_type and change the length
8206         attribute to be based on the prefix.
8207         * vec.c: Include coretypes.h before vec.h.
8208         (struct vec_prefix): Remove.
8209         (vec_gc_p_reserve): Change the offsetof to sizeof.
8210         (vec_gc_p_reserve_exact): Likewise.
8211         (vec_heap_p_reserve): Likewise.
8212         (vec_heap_p_reserve_exact): Likewise.
8213         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
8214         (vec_stack_p_reserve): Change the offsetof to sizeof.
8215         (vec_stack_p_reserve_exact): Likewise.
8216         * vec.h (struct vec_prefix): New struct definition.
8217         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
8218         (VEC_T_GTY(T,B)): Likewise.
8219         (DEF_VEC_FUNC_P(T)): Use prefix field.
8220         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
8221         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
8222
8223 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8224
8225         PR tree-optimization/46728
8226         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
8227         (powi_as_mults): Add gimple_set_location.
8228         (build_and_insert_call): New.
8229         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
8230         0.5, 0.25, 0.75, 1./3., or 1./6.
8231
8232 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
8233
8234         * doc/contrib.texi: Update copyright years.
8235         (Contributors): Add Zdenek Sojka.
8236
8237 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
8238
8239         * c-decl.c (c_push_function_context): Copy the current statement
8240         list stack.
8241         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
8242         (finish_struct): Call building_stmt_list_p instead of checking
8243         cur_stmt_list.
8244         * c-parser.c (c_parser_postfix_expression): Likewise.
8245         * c-typeck.c (c_end_compound_stmt): Likewise.
8246         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
8247         * tree-iterator.c (stmt_list_cache): Change to a VEC.
8248         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
8249         (free_stmt_list): Likewise.
8250         * tree.h (struct tree_statement_list): Include typed_tree instead
8251         of tree_common.
8252         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
8253         as TS_TYPED instead of TS_COMMON.
8254
8255 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8256             Uros Bizjak  <ubizjak@gmail.com>
8257
8258         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
8259         (HAVE_AS_IX86_TLSGDPTL): Define.
8260         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
8261         (HAVE_AS_IX86_TLSLDMPLT): Define.
8262         * configure: Regenerate.
8263         * config.in: Regenerate.
8264         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
8265         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
8266         TARGET_SUN_TLS, use @tlsgdplt or @plt.
8267         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
8268         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
8269         @tlsldmplt or @plt.
8270         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
8271
8272 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
8273
8274         * sched-int.h (struct _haifa_deps_insn_data): New members cond
8275         and reverse_cond.
8276         (INSN_COND, INSN_REVERSE_COND): New macros.
8277         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
8278         once.
8279         (sched_get_condition_with_rev): Cache the results, and look them up
8280         if possible.
8281         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
8282         are clobbered by the current insn.
8283         * target.def (exposed_pipline): New sched data hook.
8284         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
8285         * doc/tm.texi: Regenerate.
8286
8287 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8288
8289         PR tree-optimization/49170
8290         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
8291         sincos or cexp.
8292
8293 2011-05-27  Richard Guenther  <rguenther@suse.de>
8294
8295         PR middle-end/49189
8296         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
8297         of comparisons.
8298
8299 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
8300
8301         * haifa-sched.c (sched_scan_info): Remove.
8302         (schedule_block): Call sched_extend_luids rather than sched_init_luids
8303         with NULL args.
8304         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
8305         Remove functions.
8306         (sched_scan): Remove.
8307         (sched_extend_luids): Renamed from luids_extend_insn and no longer
8308         static.  All callers changed.
8309         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
8310         static.  All callers changed.
8311         (sched_init_luids): Remove all arguments except the first.  All
8312         callers changed.  Don't use sched_scan.
8313         (haifa_init_h_i_d): Likewise.
8314         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
8315         manually rather than using sched_init_luids.  Likewise with
8316         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
8317         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
8318         rather than sched_init_luids with NULL args.
8319         * sel-sched-ir.c (new_insns): Remove variable.
8320         (sched_scan): New static function, previously in haifa-sched.c.  Remove
8321         all arguments but the first two; all callers changed.
8322         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
8323         rather than sched_init_luids.
8324         (sel_init_bbs): Remove second argument.  All callers changed.
8325         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
8326         with NULL arguments.
8327         (create_insn_rtx_from_pattern): Likewise.
8328         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
8329         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
8330         (sched_init_insn_luid, sched_extend_luids): Declare.
8331         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
8332         declarations.
8333
8334 2011-05-27  Richard Guenther  <rguenther@suse.de>
8335
8336         PR middle-end/49177
8337         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
8338         A CMP B ? (T) true : (T) false for non-integral types T again.
8339
8340 2011-05-27  Jan Hubicka  <jh@suse.cz>
8341
8342         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
8343         so 0 means NULL string.
8344         (lto_output_string_with_length): ... here.
8345         (lto_output_string, output_string_cst, output_identifier): Update
8346         handling of NULL strings.
8347         (lto_output_location_bitpack): New function.
8348         (lto_output_location): Use it.
8349         (lto_output_tree_ref): Use output_record_start.
8350         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
8351         len values.
8352         * lto-streamer-in.c (string_for_index): Break out from ...; offset
8353         values by 1.
8354         (input_string_internal): ... here;
8355         (input_string_cst, input_identifier, lto_input_string): Update handling
8356         of NULL strings.
8357         (lto_input_location_bitpack): New function
8358         (lto_input_location): Use it.
8359         (unpack_ts_type_common_value_fields): Pack align & alias in var len
8360         values.
8361         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
8362         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
8363         (bp_pack_value): Sanity check the value range.
8364         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
8365         New functions.
8366         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
8367         New functions.
8368
8369 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
8370
8371         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
8372         call_arg_location instructions down the floor.
8373
8374 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
8375
8376         PR rtl-optimization/49154
8377         * ira.c (setup_pressure_classes): Process class without sublcasses
8378         as a candidate for pressure classes.
8379
8380 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
8381
8382         PR rtl-optimization/48575
8383         * genrecog.c (position_type): New enum.
8384         (position): New structure.
8385         (decision): Use position structure instead of a string.
8386         (root_pos, peep2_insn_pos_list): New variables.
8387         (next_position, compare_positions): New functions.
8388         (new_decision): Use position structures instead of strings.
8389         (maybe_both_true): Likewise.
8390         (change_state): Likewise.
8391         (write_tree): Likewise.
8392         (make_insn_sequence): Likewise.
8393
8394 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
8395
8396         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
8397         TS_BASE instead of TS_COMMON.
8398         (find_decls_types_r): Check for TS_TYPED structure before looking at
8399         TREE_TYPE.
8400         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
8401         Add chain field.
8402         (BLOCK_CHAIN): Use new chain field.
8403
8404 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
8405
8406         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
8407         moves expensive on Power7 also.
8408
8409 2011-05-26  Richard Guenther  <rguenther@suse.de>
8410
8411         * fold-const.c (fold_unary_loc): Remove bogus code.
8412
8413 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
8414
8415         * tree.h (struct tree_identifier): Inherit from tree_typed, not
8416         tree_common.
8417         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
8418         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
8419         TS_BASE instead of TS_COMMON.
8420         * varasm.c (assemble_name): Remove assert.
8421
8422 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
8423
8424         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
8425         substituted first.
8426         * libgcc-std.ver: Delete file.
8427
8428 2011-05-26  Richard Guenther  <rguenther@suse.de>
8429
8430         PR tree-optimization/48702
8431         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
8432         only when we know the base address is within bounds.
8433         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
8434         assume the base address of TARGET_MEM_REFs is in bounds.
8435
8436 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8437
8438         PR target/49099
8439         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
8440         declaration in TARGET_SOLARIS.
8441
8442 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
8443
8444         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
8445         The instruction is then expanded explicitly.
8446         (supported_compare): Callable instruction.
8447         (compare): Likewise.
8448
8449 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
8450
8451         PR c++/49165
8452         * gimplify.c (shortcut_cond_r): Don't special case
8453         COND_EXPRs if they have void type on one of their arms.
8454
8455 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
8456
8457         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
8458         to reduce duplication, and to achieve a slightly more logical order
8459         of operations.
8460
8461 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
8462
8463         PR tree-optimization/49161
8464         * tree-vrp.c (struct case_info): New type.
8465         (compare_case_labels): Sort case_info structs instead of
8466         trees, and not primarily by CASE_LABEL uids but by
8467         label_for_block indexes.
8468         (find_switch_asserts): Put case labels into struct case_info
8469         array instead of TREE_VEC, adjust sorting, compare label_for_block
8470         values instead of CASE_LABELs.
8471
8472 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8473
8474         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
8475         ("orndi3_neon"): Likewise.
8476         ("bic<mode>3_neon"): Likewise.
8477
8478 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
8479
8480         PR tree-optimization/49038
8481         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
8482         Ensure at least one epilogue iteration if required by data
8483         accesses with gaps.
8484         * tree-vectorizer.h (struct _loop_vec_info): Add new field
8485         to mark loops that require peeling for gaps.
8486         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
8487         (vect_get_known_peeling_cost): Take peeling for gaps into
8488         account.
8489         (vect_transform_loop): Generate epilogue if required by data
8490         access with gaps.
8491         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
8492         loop as requiring an epilogue if there are gaps in the end of
8493         the strided group.
8494
8495 2011-05-25  Ian Lance Taylor  <iant@google.com>
8496
8497         * godump.c (go_format_type): Output the first field with a usable
8498         Go type, if any.
8499
8500 2011-05-25  Ian Lance Taylor  <iant@google.com>
8501
8502         * godump.c (go_format_type): Check for invalid type names, pointer
8503         target types, and struct field types.
8504
8505 2011-05-25  Jason Merrill  <jason@redhat.com>
8506
8507         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
8508
8509 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
8510
8511         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
8512
8513 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8514
8515         * config/i386/i386.md (*movqi_extv_1)): Put back
8516         "register_operand" check in "type" calculation.
8517         (*movqi_extzv_2): Likewise.
8518
8519 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8520
8521         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
8522
8523 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
8524
8525         PR bootstrap/49160
8526         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
8527         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
8528         __divxc3, __divtc3): Wrap definitions in #ifndef.
8529
8530 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8531
8532         PR target/49142
8533         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
8534         "register_operand" check and replace q_regs_operand with
8535         QIreg_operand in "type" calculation.
8536         (*movqi_extv_1): Likewise.
8537         (*movqi_extzv_2_rex64): Likewise.
8538         (*movqi_extzv_2): Likewise.
8539
8540         * config/i386/predicates.md (QIreg_operand): New.
8541
8542 2011-05-25  Richard Guenther  <rguenther@suse.de>
8543
8544         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
8545         type-based offset disambiguation, streamline MEM_REF and
8546         TARGET_MEM_REF handling.
8547
8548 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8549
8550         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
8551         (bdesc_special_args): Add pause intrinsic.
8552
8553         * config/i386/i386.md (UNSPEC_PAUSE): New.
8554         (pause): Likewise.
8555         (*pause): Likewise.
8556         * config/i386/ia32intrin.h (__pause): Likewise.
8557
8558         * doc/extend.texi (X86 Built-in Functions): Add documentation for
8559         pause intrinsic.
8560
8561 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8562
8563         PR tree-optimization/46728
8564         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
8565         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
8566
8567 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
8568
8569         * tree.h (struct tree_exp): Inherit from struct tree_typed.
8570         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
8571         instead of TS_COMMON.
8572
8573 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
8574
8575         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
8576         LIBGCC2_GNU_PREFIX is defined.
8577         (__N): New macro.
8578         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
8579         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
8580         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
8581         __clz_tab): Define using __N.
8582         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
8583         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
8584         * target.def (libfunc_gnu_prefix): New hook.
8585         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
8586         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
8587         * doc/tm.texi: Regenerate.
8588         * system.h (LIBGCC2_GNU_PREFIX): Poison.
8589         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
8590         account.
8591         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
8592         (init_optabs): Likewise for the bswap libfuncs.
8593         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
8594         and divide.
8595         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
8596         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
8597         * libgcc-std.ver: Remove.
8598         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
8599         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
8600         libgcc-std.ver.
8601         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8602         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
8603         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
8604         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
8605         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
8606         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8607         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8608         * config/fixed-bit.h (FIXED_OP): Define differently depending on
8609         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
8610         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
8611
8612 2011-05-25  Jan Hubicka  <jh@suse.cz>
8613
8614         * lto-streamer-out.c (output_record_start): Use lto_output_enum
8615         (lto_output_tree): Use output_record_start.
8616         * lto-streamer-in.c (input_record_start): Use lto_input_enum
8617         (lto_get_pickled_tree): Use input_record_start.
8618         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
8619         (lto_value_range_error): New function.
8620         * lto-streamer.h (lto_value_range_error): Declare.
8621         (lto_output_int_in_range, lto_input_int_in_range): New functions.
8622         (lto_output_enum, lto_input_enum): New macros.
8623
8624 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8625
8626         * common.opt (flag_stack_usage_info): New variable.
8627         (-Wstack-usage): New option.
8628         * doc/invoke.texi (Warning options): Document -Wstack-usage.
8629         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
8630         <OPT_fstack_usage>: Likewise.
8631         * toplev.c (output_stack_usage): Handle -Wstack-usage.
8632         * calls.c (expand_call): Test flag_stack_usage_info variable instead
8633         of flag_stack_usage.
8634         (emit_library_call_value_1): Likewise.
8635         * explow.c (allocate_dynamic_stack_space): Likewise.
8636         * function.c (instantiate_virtual_regs ): Likewise.
8637         (prepare_function_start): Likewise.
8638         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
8639         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
8640         * config/arm/arm.c (arm_expand_prologue): Likewise.
8641         (thumb1_expand_prologue): Likewise.
8642         * config/avr/avr.c (expand_prologue): Likewise.
8643         * config/i386/i386.c (ix86_expand_prologue): Likewise.
8644         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8645         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
8646         * config/mips/mips.c (mips_expand_prologue): Likewise.
8647         * config/pa/pa.c (hppa_expand_prologue): Likewise.
8648         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8649         * config/s390/s390.c (s390_emit_prologue): Likewise.
8650         * config/sh/sh.c (sh_expand_prologue): Likewise.
8651         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
8652         * config/spu/spu.c (spu_expand_prologue): Likewise.
8653
8654 2011-05-25  Richard Guenther  <rguenther@suse.de>
8655
8656         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
8657         (gimple_canonical_types_compatible_p): Likewise.
8658
8659 2011-05-25  Jan Hubicka  <jh@suse.cz>
8660
8661         PR middle-end/49062
8662         * ipa.c (function_and_variable_visibility): Only add to same
8663         comdat group list if DECL_ONE_ONLY.
8664
8665 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
8666
8667         PR rtl-optimization/49014
8668         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
8669
8670 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
8671
8672         PR target/49128
8673         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
8674
8675 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
8676
8677         PR rtl-optimization/48757
8678         * ira-build.c (loop_with_eh_edge_p): Rename to
8679         loop_with_complex_edge_p, check edges on complexity, make function
8680         conditional.
8681         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
8682         conditional.
8683
8684 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
8685
8686         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
8687         force flag_ira_share_save_slots to 0.
8688
8689 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
8690
8691         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
8692         (vt_initialize): Set PROLOGUE_BB unconditionally.
8693         Add block comment about CFA_BASE_RTX machinery.
8694         Reset FP_CFA_OFFSET to -1 on all invalid paths.
8695         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
8696
8697 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
8698
8699         PR objc/48187
8700         * c-parser.c (c_parser_objc_class_instance_variables): More robust
8701         parsing of syntax error in ObjC instance variable lists.  In
8702         particular, avoid an infinite loop if there is a stray ']'.
8703         Updated error message.
8704
8705 2011-05-24  Ian Lance Taylor  <iant@google.com>
8706
8707         * godump.c (go_define): Don't accept a string immediately after
8708         another operand.
8709
8710 2011-05-24  Ian Lance Taylor  <iant@google.com>
8711
8712         * godump.c (struct godump_container): Add invalid_hash field.
8713         (go_format_type): Return false if type is found in invalid_hash.
8714         (go_output_typedef): Add invalid type to invalid_hash.
8715         (go_finish): Create and delete invalid_hash.
8716
8717 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8718
8719         PR tree-optimization/46728
8720         * tree-ssa-math-opts.c (powi_table): New.
8721         (powi_lookup_cost): New.
8722         (powi_cost): New.
8723         (powi_as_mults_1): New.
8724         (powi_as_mults): New.
8725         (gimple_expand_builtin_powi): New.
8726         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
8727         (gate_cse_sincos): Remove sincos/cexp restriction.
8728
8729 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8730
8731         PR target/3746
8732         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
8733         mips-tdump native.
8734         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
8735         * mips-tdump.c: Likewise.
8736
8737 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
8738
8739         PR target/49128
8740         * config/i386/driver-i386.c (host_detect_local_cpu): Always
8741         add -mno-XXX.  Handle FMA.
8742
8743 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
8744
8745         PR rtl-optimization/48633
8746         * ira-build.c (loop_with_eh_edge_p): New function.
8747         (mark_loops_for_removal): Use it.
8748
8749 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
8750
8751         PR rtl-optimization/48971
8752         * ira.c (setup_pressure_classes): Don't check register move cost
8753         for classes with one registers.  Don't add pressure class if there
8754         is a pressure class with the same available hard registers.
8755         Check contains_reg_of_mode.  Fix a typo in collecting
8756         temp_hard_regset.  Ignore hard registers not belonging to a class.
8757
8758 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
8759
8760         PR target/49133
8761         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
8762
8763 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
8764             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8765
8766         PR gcov-profile/48845
8767         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
8768
8769 2011-05-24  Richard Guenther  <rguenther@suse.de>
8770
8771         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
8772         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
8773         (gimple_types_compatible_p_1): Adjust.
8774         (iterative_hash_canonical_type): Do not bother about complete vs.
8775         incomplete types.
8776         (gimple_canonical_types_compatible_p): Likewise.
8777
8778 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8779
8780         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
8781
8782 2011-05-24  Richard Guenther  <rguenther@suse.de>
8783
8784         PR bootstrap/49078
8785         * gimple.c (gimple_register_canonical_type): Revert
8786         previous change.
8787         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
8788         does not for a tree for the case where it matters.  Cache
8789         pointer-type alias-sets.
8790
8791 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
8792
8793         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
8794         (OBJS): Remove options.o, opts-common.o and prefix.o.
8795         (OBJS-libcommon-target): New.
8796         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
8797         (BACKEND): Include libcommon-target.a.
8798         (MOSTLYCLEANFILES): Include libcommon-target.a.
8799         (libcommon-target.a): New.
8800         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
8801         prefix.o.
8802
8803 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
8804
8805         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
8806         parts of output shared with the driver.
8807         * optc-gen.awk: Don't generate parts of output not shared with the
8808         driver.
8809         * opth-gen.awk: Remove GCC_DRIVER conditionals.
8810         * doc/options.texi (SourcerInclude): Mention options-save.c.
8811         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
8812         (OBJS): Add options-save.o.
8813         (options-save.c, options-save.o): New.
8814         (options.o): Update dependencies.
8815         (gcc-options.o): Remove.
8816         (mostlyclean): Remove options-save.c.
8817
8818 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
8819
8820         PR debug/49032
8821         * dbxout.c: Include cgraph.h.
8822         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
8823         and without value expr, return NULL if no varpool node exists for
8824         it or if it is not needed.
8825         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
8826
8827         PR c/49120
8828         * c-decl.c (start_decl): Convert expr to void_type_node.
8829
8830 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
8831
8832         PR rtl-optimization/48826
8833         * emit-rtl.c (try_split): When splitting a call that is followed
8834         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
8835
8836 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
8837
8838         * cfgexpand.c (expand_debug_expr): For unused non-addressable
8839         parameters passed in memory prefer using DECL_INCOMING_RTL over
8840         the pseudos it will be copied into.
8841
8842 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
8843
8844         PR target/47315
8845         * config/i386/i386.c (ix86_option_override_internal): Save the
8846         initial options after checking vzeroupper.
8847
8848 2011-05-23  David Li  <davidxl@google.com>
8849
8850         PR tree-optimization/48988
8851         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
8852         Initialize has_valid_pred for each pred chain.
8853
8854 2011-05-23  Richard Guenther  <rguenther@suse.de>
8855
8856         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
8857         (iterative_hash_gimple_type): Always hash type names.
8858
8859 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
8860
8861         * c-typeck.c (build_function_call_vec): Tweak call to
8862         check_function_arguments.
8863
8864 2011-05-23  Richard Guenther  <rguenther@suse.de>
8865
8866         PR tree-optimization/49115
8867         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
8868         is not necessarily carried out, do not claim it kills the ref.
8869         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
8870
8871 2011-05-23  Richard Guenther  <rguenther@suse.de>
8872
8873         PR middle-end/15419
8874         * builtins.c (fold_builtin_memory_op): Be less restrictive about
8875         what pointer types we accept for folding.
8876
8877 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8878
8879         * gthr-gnat.c: Remove.
8880         * gthr-gnat.h: Remove.
8881         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
8882         * config/t-freebsd (LIB2ADDEH): Likewise.
8883         * config/t-linux (LIB2ADDEH): Likewise.
8884         * config/t-sol2 (LIB2ADDEH): Likewise.
8885         * config/ia64/t-vms (LIB2ADDEH): Likewise.
8886         * configure.ac (target_thread_file): Remove gnat handling.
8887         * configure: Regenerate.
8888         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
8889
8890 2011-05-23  Tristan Gingold  <gingold@adacore.com>
8891             Eric Botcazou  <ebotcazou@adacore.com>
8892
8893         * gcov.c (create_file_names): If no object directory is specified,
8894         keep the directory of the file.
8895
8896 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8897
8898         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
8899         * configure: Regenerate.
8900
8901 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
8902
8903         PR middle-end/48973
8904         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
8905         failed and the comparison has a single bit signed type, use
8906         constm1_rtx instead of const1_rtx for true value.
8907         (do_store_flag): If ops->type is single bit signed type, disable
8908         signel bit test optimization and pass -1 instead of 1 as last
8909         parameter to emit_store_flag_force.
8910
8911 2011-05-23  Tom de Vries  <tom@codesourcery.com>
8912
8913         PR target/45098
8914         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
8915         function.
8916         (infer_loop_bounds_from_undefined): Use new function.
8917
8918 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
8919
8920         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
8921         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
8922         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
8923         and -O0 otherwise.
8924         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
8925
8926 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
8927
8928         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
8929         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
8930         returns true.
8931
8932 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
8933
8934         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
8935
8936 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
8937
8938         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
8939         UNSPEC_MOVE_PIC pattern.
8940
8941 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
8942
8943         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
8944         (sparc-*-rtems*): Likewise.
8945         (sparc64-*-elf*): Likewise.
8946         (sparc64-*-rtems*): Likewise.
8947         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
8948         * config/sparc/t-crtin: New file.
8949         * config/sparc/t-sol2 (crti.o): Delete rule.
8950         (crtn.o): Likewise.
8951         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
8952         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
8953         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
8954         (ENDFILE_SPEC): Add crtn.o.
8955
8956 2011-05-22  Tom de Vries  <tom@codesourcery.com>
8957
8958         PR middle-end/48689
8959         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
8960         CODE_CONTAINS_STRUCT (TS_COMMON).
8961
8962 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
8963
8964         PR middle-end/49029
8965         * expmed.c (extract_fixed_bit_field): Test whether target can be used
8966         only after deciding which mode to use.
8967
8968 2011-05-22  Tom de Vries  <tom@codesourcery.com>
8969
8970         PR target/45098
8971         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
8972         for call to get_shiftadd_cost.
8973
8974 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
8975
8976         PR target/49104
8977         * config/i386/cpuid.h (bit_MMXEXT): New define.
8978
8979 2011-05-22  Nick Clifton  <nickc@redhat.com>
8980
8981         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
8982         initialisation of non-existant args[2] element.  Use args[] array
8983         not arg[] array to pass arguments to build_function_type_list.
8984
8985 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
8986
8987         PR tree-optimization/49087
8988         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
8989
8990 2011-05-21  Jason Merrill  <jason@redhat.com>
8991
8992         PR c++/49092
8993         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
8994         static storage duration.
8995
8996 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
8997
8998         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
8999         frame pointer.
9000
9001 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
9002
9003         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
9004         false if there are call-saved registers here...
9005         (sparc_can_use_return_insn_p): ...but here instead.
9006         (save_or_restore_regs): Fix thinko.
9007         (sparc_expand_prologue): Use current_function_is_leaf.
9008         (sparc_frame_pointer_required): Likewise.
9009
9010 2011-05-21  Nick Clifton  <nickc@redhat.com>
9011
9012         PR target/49098
9013         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
9014
9015 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9016
9017         * gengtype.c (walk_type): Implemented "atomic" GTY option.
9018         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
9019
9020 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
9021
9022         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
9023         * optc-gen.awk: Move common code to opt-read.awk.
9024         * opth-gen.awk: Likewise.
9025         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
9026
9027 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
9028
9029         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
9030
9031 2011-05-20  Tom de Vries  <tom@codesourcery.com>
9032
9033         PR target/45098
9034         * tree-ssa-loop-ivopts.c: Include expmed.h.
9035         (get_shiftadd_cost): New function.
9036         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
9037
9038 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
9039
9040         PR bootstrap/49086
9041         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
9042         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
9043
9044 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
9045
9046         * Makefile.in: Update comment referring to $(OBJS-common).
9047
9048 2011-05-20  Ian Lance Taylor  <iant@google.com>
9049
9050         * godump.c (go_output_typedef): Put enum constants in the macro
9051         hash table to avoid duplicate Go const definitions.
9052
9053 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
9054
9055         * Makefile.in (LIBDEPS): Add libcommon.a.
9056         (LIBS): Likewise.
9057         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
9058         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
9059         pretty-print.o and version.o.
9060         (OBJS-libcommon): New.
9061         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
9062         (BACKEND): Add libcommon.a.
9063         (MOSTLYCLEANFILES): Likewise.
9064         (libcommon.a): New.
9065         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
9066         (cpp$(exeext)): Likewise.
9067         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
9068         pretty-print.o and input.o.
9069         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
9070         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
9071         (errors.o): Remove.
9072         (mips-tfile): Don't explicitly use version.o.
9073         (mips-tdump): Likewise.
9074         (gcov.o): Depend on $(DIAGNOSTIC_H).
9075         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
9076         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
9077         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
9078         * gcov-dump.c: Include intl.h and diagnostic.h.
9079         (main): Initialize diagnostics.
9080         * gcov.c: Include diagnostic.h.
9081         (fnotice): Remove.
9082         (main): Initialize diagnostics.
9083         * lto-wrapper.c: Include diagnostic.h.
9084         (main): Initialize diagnostics.
9085
9086 2011-05-20  Michael Matz  <matz@suse.de>
9087
9088         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
9089
9090 2011-05-20  Michael Matz  <matz@suse.de>
9091             Richard Guenther  <rguenther@suse.de>
9092
9093         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
9094         use lto_streamer_cache_append directly instead of returning a VEC.
9095         (preload_common_node): Remove.
9096         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
9097         track seen nodes.
9098         (lto_streamer_cache_create): Call lto_preload_common_nodes.
9099
9100 2011-05-20  Richard Guenther  <rguenther@suse.de>
9101
9102         PR tree-optimization/49079
9103         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
9104         MEM_REFs correctly for the trailing array access detection.
9105         Special case constants the same way as decls for overall size
9106         constraining.
9107
9108 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
9109
9110         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
9111         argument expansion.
9112
9113 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
9114
9115         PR tree-optimization/49073
9116         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
9117         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
9118         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
9119
9120 2011-05-20  Richard Guenther  <rguenther@suse.de>
9121
9122         PR middle-end/48849
9123         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
9124         of pointer types the same way the middle-end does.
9125
9126 2011-05-20  Richard Guenther  <rguenther@suse.de>
9127
9128         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
9129         or pointer-to chains.  Delay all fixup to uniquify_nodes.
9130
9131 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
9132
9133         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
9134         (fma4_fmaddsub): Likewise
9135
9136 2011-05-19  Jan Hubicka  <jh@suse.cz>
9137
9138         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
9139         (GIMPLE_TYPE_PAIR_SIZE): New macro.
9140         (type_pair_cache): New static var.
9141         (lookup_type_pair): Use fixed sized custom hash; make inline.
9142         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
9143         calls of lookup_type_pair.
9144         (print_gimple_types_stats): Remove cache stats.
9145         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
9146         and gtc_ob.
9147
9148 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
9149
9150         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
9151         when TARGET_RDRND is active.
9152         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
9153         Generate dummy SImode target register when target is NULL.
9154
9155 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
9156
9157         * config/arm/arm-fpus.def: New.
9158         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
9159         arm-fpus.def.
9160         * config/arm/arm-tables.opt: Regenerate.
9161         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
9162         (arm_option_override): Don't decode FPU name to string here.
9163         * config/arm/arm.opt (mfpu=): Use Enum.
9164         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
9165         Update dependencies.
9166
9167 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
9168
9169         * collect2.c: Include diagnostic.h.
9170         (fatal_perror, fatal, error, fancy_abort): Remove.
9171         (main): Set progname.  Call xmalloc_set_program_name and
9172         diagnostic_initialize.
9173         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
9174         scan_libraries, resolve_lib_name): Call fatal_error instead of
9175         fatal and fatal_perror.
9176         * collect2.h (error, fatal, fatal_perror): Don't declare.
9177         * tlink.c: Include diagnostic-core.h.
9178         (recompile_files): Call fatal_error instead of fatal_perror.
9179         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
9180         pretty-print.o and input.o.
9181         (collect2.o, tlink.o): Update dependencies.
9182
9183 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9184
9185         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
9186
9187 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9188
9189         PR target/40483
9190         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
9191         COMDAT group syntax, both SPARC and x86 variants.
9192         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
9193         * configure: Regenerate.
9194         * config/sol2.h (TARGET_SOLARIS): Define.
9195         (PUSHSECTION_FORMAT): Remove.
9196         (SECTION_NAME_FORMAT): Define.
9197         * config/sol2.c: Include hashtab.h.
9198         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
9199         expansion, using SECTION_NAME_FORMAT.
9200         (solaris_comdat_htab): New variable.
9201         (struct comdat_entry): Define.
9202         (comdat_hash): New function.
9203         (comdat_eq): New function.
9204         (solaris_elf_asm_comdat_section): New function.
9205         (solaris_define_comdat_signature): New function.
9206         (solaris_code_end): New function.
9207         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
9208         (solaris_code_end): Declare.
9209         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
9210         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
9211         solaris_code_end.
9212         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
9213         Remove ATTRIBUTE_UNUSED.
9214         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
9215         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
9216         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
9217         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
9218         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
9219         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
9220         (PUSHSECTION_FORMAT): Remove.
9221         (SECTION_NAME_FORMAT): Redefine.
9222
9223 2011-05-19  Kai Tietz  <ktietz@redhat.com>
9224
9225         * tree-cfg.c (verify_gimple_assign_binary): Barf on
9226         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
9227         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
9228
9229 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
9230             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9231
9232         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
9233
9234 2011-05-19  Richard Guenther  <rguenther@suse.de>
9235
9236         PR middle-end/48985
9237         * tree-object-size.c (addr_object_size): If the pointed-to
9238         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
9239
9240 2011-05-19  Richard Guenther  <rguenther@suse.de>
9241
9242         * gimple.c (gimple_types_compatible_p_1): Compare names of
9243         the types themselves.
9244         (iterative_hash_gimple_type): And hash them that way.
9245         (gimple_register_type_1): If we register a main variant properly
9246         initialize the leader to ourselves.
9247
9248 2011-05-19  Tom de Vries  <tom@codesourcery.com>
9249
9250         PR target/45098
9251         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
9252         get_loop_invariant_expr_id.
9253         (get_loop_invariant_expr_id): Use get_expr_id.
9254         (parm_decl_cost): New function.
9255         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
9256         Improve bound cost estimation.  Use different inv_expr_id for elim and
9257         express cases.
9258
9259 2011-05-19  Tom de Vries  <tom@codesourcery.com>
9260
9261         PR target/45098
9262         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
9263         cost_base.cost == 0.
9264
9265 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
9266
9267         PR target/49002
9268         * config/i386/sse.md
9269         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
9270         load cast.
9271
9272 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
9273
9274         PR tree-optimization/49039
9275         * tree-vrp.c (extract_range_from_binary_expr): For
9276         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
9277         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
9278
9279 2011-05-18  Tom de Vries  <tom@codesourcery.com>
9280
9281         PR target/45098
9282         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
9283
9284 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
9285
9286         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
9287         (*tls_global_dynamic_64): Ditto.
9288         (*tls_local_dynamic_base_32_gnu): Ditto.
9289         (*tls_local_dynamic_base_64): Ditto.
9290         (tls_initial_exec_64_sun): Ditto.
9291
9292 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
9293
9294         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
9295         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
9296         bf592-none.
9297         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
9298         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
9299         * config/bfin/bfin.c (bfin_cpus): Add bf592.
9300         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9301         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
9302         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
9303         * config/bfin/elf.h (LIB_SPEC): Add bf592.
9304
9305 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
9306
9307         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
9308         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
9309         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
9310         target_thread_pointer, arm_structure_size_boundary, struct
9311         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
9312         struct abi_name, arm_all_abis): Remove.
9313         (arm_option_override) Don't process most enumerated option values here.
9314         Don't process target_fpe_name here.  Work with integer not string for
9315         structure size boundary; use separate diagnostics for each case.
9316         * config/arm/arm.h (enum float_abi_type, enum
9317         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
9318         to arm-opts.h.
9319         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
9320         arm_structure_size_boundary): Remove.
9321         * config/arm/arm.opt (mabi=): Use Enum and Init.
9322         (arm_abi_type): New Enum and EnumValue entries.
9323         (mfloat-abi=): Use Enum and Init.
9324         (float_abi_type): New Enum and EnumValue entries.
9325         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
9326         (mfp16-format=): Use Enum and Init.
9327         (arm_fp16_format_type): New Enum and EnumValue entries.
9328         (mstructure-size-boundary=): Use UInteger and Init.
9329         (mtp=): Use Enum and Init.
9330         (arm_tp_type): New Enum and EnumValue entries.
9331
9332 2011-05-18  Richard Guenther  <rguenther@suse.de>
9333
9334         PR tree-optimization/49018
9335         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
9336         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
9337         gimple_has_side_effects.
9338
9339 2011-05-18  Richard Guenther  <rguenther@suse.de>
9340
9341         * gimple.c (gimple_register_type_1): New function, split out from ...
9342         (gimple_register_type): ... here.  Avoid infinite recursion.
9343
9344 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
9345
9346         PR tree-optimization/41881
9347         * tree-vectorizer.h (struct _loop_vec_info): Add new field
9348         reduction_chains along with a macro for its access.
9349         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
9350         (destroy_loop_vec_info): Free reduction chains.
9351         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
9352         (vect_is_slp_reduction): New function.
9353         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
9354         (vect_create_epilog_for_reduction): Support SLP reduction chains.
9355         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
9356         definition types for reduction chains.
9357         (vect_supported_load_permutation_p): Don't allow permutations for
9358         reduction chains.
9359         (vect_analyze_slp_instance): Support reduction chains.
9360         (vect_analyze_slp): Try to build SLP instance from reduction chains.
9361         (vect_get_constant_vectors):  Handle reduction chains.
9362         (vect_schedule_slp_instance): Mark the first statement of the
9363         reduction chain as reduction.
9364
9365 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
9366
9367         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
9368         names for group elements access.
9369         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
9370         reduction chains as well.  Remove data reference and interleaving
9371         related words from the fields names.
9372         * tree-vect-loop.c (vect_transform_loop): Use new names for group
9373         elements access.
9374         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
9375         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
9376         vect_update_interleaving_chain, vect_same_range_drs,
9377         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
9378         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
9379         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
9380         vect_analyze_group_access, vect_analyze_data_ref_access,
9381         vect_create_data_ref_ptr, vect_transform_strided_load,
9382         vect_record_strided_load_vectors): Likewise.
9383         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
9384         vect_model_load_cost, vectorizable_store, vectorizable_load,
9385         vect_remove_stores, new_stmt_vec_info): Likewise.
9386         * tree-vect-slp.c (vect_build_slp_tree,
9387         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
9388
9389 2011-05-18  Richard Guenther  <rguenther@suse.de>
9390
9391         PR middle-end/48989
9392         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
9393         operand verification.
9394         (verify_gimple_assign_binary): Likewise.
9395         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
9396         to non-1-precision BOOLEAN_TYPEs.
9397
9398 2011-05-18  Tom de Vries  <tom@codesourcery.com>
9399
9400         PR target/45098
9401         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
9402
9403 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
9404
9405         PR tree-optimization/49000
9406         * tree-ssa.c (execute_update_addresses_taken): Call
9407         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
9408         be rewritten and decl has been marked for renaming, reset
9409         the debug stmt.
9410
9411 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
9412
9413         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
9414         enum_opts_set when testing if attributes have set -mfpmath=.
9415
9416 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
9417
9418         * config/mips/mips.c (mips_handle_option): Remove unused variable.
9419
9420 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
9421
9422         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
9423         info->entry with 0
9424         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
9425         id.transform_lang_insert_block with NULL.
9426
9427 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
9428
9429         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
9430         (output_fp_compare): Change args 3 and 4 to bool.
9431         (ix86_expand_call): Change arg 6 to bool.
9432         (ix86_attr_length_immediate_default): Change arg 2 to bool.
9433         (ix86_attr_length_vex_default): Change arg 3 to bool.
9434         * config/i386/i386.md: Update all uses.
9435         * config/i386/i386.c: Ditto.
9436         (ix86_flags_dependent): Change return type to bool.
9437
9438 2011-05-17  Richard Guenther  <rguenther@suse.de>
9439
9440         * gimple.c (type_hash_pair_compare): Fix comparison.
9441
9442 2011-05-17  Richard Guenther  <rguenther@suse.de>
9443
9444         * gimple.c (iterative_hash_gimple_type): Simplify singleton
9445         case some more, fix final hash value of the non-singleton case.
9446
9447 2011-05-17  Richard Guenther  <rguenther@suse.de>
9448
9449         PR bootstrap/49013
9450         Revert
9451         2011-05-16  Richard Guenther  <rguenther@suse.de>
9452
9453         * gimple.c (gimple_types_compatible_p_1): Use names of the
9454         type itself, not its main variant.
9455         (iterative_hash_gimple_type): Likewise.
9456
9457 2011-05-17  Richard Guenther  <rguenther@suse.de>
9458
9459         * gimple.c (gimple_register_canonical_type): Use the main-variant
9460         leader for computing the canonical type.
9461
9462 2011-05-17  Nick Clifton  <nickc@redhat.com>
9463
9464         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
9465         moves.
9466
9467         * config/rx/rx.md: Add peephole to remove redundant extensions
9468         after loads.
9469         (bitset_in_memory): Use rx_restricted_mem_operand.
9470         (bitinvert_in_memory): Likewise.
9471         (bitclr_in_memory): Likewise.
9472
9473 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
9474             Nick Clifton  <nickc@redhat.com>
9475
9476         * config/rx/rx.md: Add peepholes to match a register move followed
9477         by a comparison of the moved register.  Replace these with an
9478         addition of zero that does both actions in one instruction.
9479
9480 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
9481
9482         PR target/48986
9483         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
9484         predicate to allow CONST_INT.
9485         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
9486
9487 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
9488
9489         * opts-common.c (opt_enum_arg_to_value): New.
9490         * opts.h (opt_enum_arg_to_value): Declare.
9491         * config/i386/i386.opt (fpmath): Remove.
9492         (mfpmath=): Use Enum, Init and Save.
9493         (fpmath_unit): New Enum and EnumValue entries.
9494         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
9495         name for function fpmath state.
9496         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
9497         * config/i386/i386.c: Include diagnostic.h.
9498         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
9499         (ix86_target_string): Take enum fpmath_unit value instead of string.
9500         (ix86_debug_options): Update call to ix86_target_string.
9501         (ix86_option_override_internal): Don't process fpmath strings here.
9502         (x86_function_specific_save, ix86_function_specific_restore):
9503         Don't handle fpmath state specially.
9504         (ix86_function_specific_print): Pass fpmath state to
9505         ix86_target_string instead of printing in this function.
9506         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
9507         Handle enum attributes.
9508         (IX86_ATTR_ENUM, ix86_opt_enum): New.
9509         (ix86_valid_target_attribute_tree): Update option_strings
9510         handling.  Handle fpmath as enum option.
9511         (ix86_can_inline_p): Update field names for function fpmath state.
9512         (ix86_expand_builtin): Update call to ix86_target_string.
9513         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
9514         (ix86_fpmath): Remove.
9515         * config/i386/t-i386 (i386.o): Update dependencies.
9516
9517 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
9518
9519         PR preprocessor/48677
9520         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
9521         from decoded_options[0], not from itself.
9522
9523 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
9524
9525         * config/i386/constraints.md (z): New constraint.
9526         * config/i386/i386.c (c): New mode attribute.
9527         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
9528         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
9529         constraint for operand 0.
9530         (*call_vzeroupper): Ditto.
9531         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
9532         (*call_rex64_ms_sysv_vzeroupper): Ditto.
9533         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
9534         Use "lzm" constraint for operand 0.
9535         (*call_pop_vzeroupper): Ditto.
9536         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
9537         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
9538         constraint for operand 0.
9539         (*sibcall_vzeroupper): Ditto.
9540         (*sibcall_rex64_ms_sysv): Ditto.
9541         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
9542         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
9543         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
9544         (*sibcall_pop_vzeroupper): Ditto.
9545         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
9546         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
9547         mode iterator.  Use "<c>zm" constraint for operand 1.
9548         (*call_value_vzeroupper): Ditto.
9549         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
9550         for operand 1.
9551         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
9552         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
9553         *call_value_pop_1.  Use "lzm" constraint for operand 1.
9554         (*call_value_pop_vzeroupper): Ditto.
9555         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
9556         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
9557         mode iterator.  Use "Uz" constraint for operand 1.
9558         (*sibcall_value_vzeroupper): Ditto.
9559         (*sibcall_value_rex64_ms_sysv): Ditto.
9560         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
9561         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
9562         constraint for operand 1.
9563         (*sibcall_value_pop_vzeroupper): Ditto.
9564         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
9565         and "z" constraint for operand 2.
9566         (*tls_global_dynamic_32_gnu): Ditto.
9567         (*tls_local_dynamic_base_32_gnu): Ditto.
9568         (*tls_local_dynamic_base_64): Ditto.
9569         (*tls_local_dynamic_32_once): Ditto.
9570         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
9571         Update all callers.
9572         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
9573
9574 2011-05-16  Richard Guenther  <rguenther@suse.de>
9575
9576         * gimple.c (gimple_types_compatible_p_1): Use names of the
9577         type itself, not its main variant.
9578         (iterative_hash_gimple_type): Likewise.
9579
9580 2011-05-16  Richard Guenther  <rguenther@suse.de>
9581
9582         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
9583         always visit pointer target and function result and argument types.
9584
9585 2011-05-16  Jason Merrill  <jason@redhat.com>
9586
9587         PR c++/48999
9588         * tree-inline.c (copy_statement_list): Put back recursion.
9589
9590 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
9591
9592         PR target/27663
9593         PR target/41076
9594         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
9595         * config/avr/avr.md ("*ior<mode>qi.byte0",
9596         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
9597
9598 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
9599
9600         PR target/45099
9601         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
9602         register is needed for a function argument.
9603
9604 2011-05-16  Richard Guenther  <rguenther@suse.de>
9605
9606         * gimple.c (struct type_hash_pair): New type.
9607         (type_hash_pair_compare): New function.
9608         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
9609
9610 2011-05-16  Revital Eres  <revital.eres@linaro.org>
9611
9612         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
9613
9614 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
9615
9616         * config/i386/i386.md (floating point move splitters): Fix
9617         usage of standard_80387_constant_p.
9618         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
9619
9620 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
9621
9622         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
9623
9624 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
9625
9626         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
9627         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
9628         (tree_ssa_lim_finalize): Likewise.
9629
9630 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
9631
9632         * config/i386/constraint.md (Yd, Yx): New register constraints.
9633         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
9634         Yd conditional register constraint.
9635         (*movtf_internal): Use standard_sse_constant_opcode.
9636         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
9637         Yx conditional register constraint.
9638         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
9639         Yd conditional register constraint.  Use standard_sse_constant_p to
9640         check for valid SSE constants and call standard_sse_constant_opcode to
9641         output SSE insn.
9642         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
9643         constants and call standard_sse_constant_opcode to output SSE insn.
9644         * config/i386/i386.c (ix86_option_ovverride_internal): Set
9645         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
9646         optimize_size is set.
9647         (standard_sse_constant_opcode): Output conditional AVX insn templates.
9648
9649 2011-05-14  Tobias Burnus  <burnus@net-b.de>
9650
9651         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
9652
9653 2011-05-13  Martin Jambor  <mjambor@suse.cz>
9654
9655         * ipa-prop.c (ipa_cst_from_jfunc): New function.
9656         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
9657         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
9658         (evaluate_conditions_for_ipcp_clone): Removed.
9659         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
9660         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
9661         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
9662
9663 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
9664
9665         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
9666         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
9667         lieu of MAY_HAVE_DEBUG_STMTS.
9668         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
9669         debug statements if !MAY_HAVE_DEBUG_STMTS.
9670
9671 2011-05-13  Martin Thuresson  <martint@google.com>
9672
9673         PR gcov-profile/47793
9674         * libgcov.c (gcov_exit): Support relative profile paths.
9675         * doc/invoke.texi (-fprofile-dir): Update for above change.
9676
9677 2011-05-13  Richard Guenther  <rguenther@suse.de>
9678
9679         * gimple.c (gimple_canonical_types_compatible_p): Do not use
9680         type-pair caching, do not compare hashes.
9681
9682 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
9683
9684         PR middle-end/48965
9685         * tree-cfg.c (edge_to_cases_cleanup): Return true.
9686         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
9687
9688 2011-05-13  Kai Tietz  <ktietz@redhat.com>
9689
9690         * gimplify.c (gimplify_expr): Make sure operand is boolified.
9691         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
9692         compatible type for TRUTH_NOT_EXPR.
9693
9694 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
9695
9696         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
9697         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
9698         can_create_pseudo_p ().
9699
9700 2011-05-13  Richard Guenther  <rguenther@suse.de>
9701
9702         PR lto/48978
9703         * gimple.c (iterative_hash_gimple_type): Revert change in
9704         pointer target and function result and argument hashing.
9705
9706 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
9707
9708         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
9709         (*movxf_internal_nointeger): Ditto.
9710         (*movdf_internal_rex64): Ditto.
9711         (*movdf_internal): Ditto.
9712         (*movdf_internal_nointeger): Ditto.
9713         (*movsf_internal): Ditto.
9714         (sincos splitters): Use can_create_pseudo ().
9715
9716 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
9717
9718         * config/i386/i386-opts.h: New.
9719         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
9720         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
9721         ix86_section_threshold): Remove.
9722         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
9723         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
9724         OPT_mbranch_cost_.
9725         (ix86_option_override_internal): Don't decode strings for options
9726         other than -march=, -mtune= and -mfpmath=.  Don't allow for
9727         __attribute__ uses in remaining diagnostics for options with
9728         string arguments.  Don't check for integer arguments being negative.
9729         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
9730         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
9731         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
9732         ix86_branch_cost, ix86_section_threshold): Remove.
9733         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
9734         HeaderInclude.
9735         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
9736         but not Var.
9737         (masm=): Use Enum and Init.
9738         (asm_dialect): New Enum and EnumValue entries.
9739         (mbranch-cost=): Use UInteger.
9740         (mlarge-data-threshold=): Use UInteger and Init.
9741         (mcmodel=): Use Enum and Init.
9742         (cmodel): New Enum and EnumValue entries.
9743         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
9744         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
9745         mregparm=): Use UInteger.
9746         (mstringop-strategy=): Use Enum and Init.
9747         (stringop_alg): New Enum and EnumValue entries.
9748         (mtls-dialect=): Use Enum and Init.
9749         (tls_dialect): New Enum and EnumValue entries.
9750         (mabi=): Use Enum and Init.
9751         (calling_abi): New Enum and EnumValue entries.
9752         (mveclibabi=): Use Enum and Init.
9753         (ix86_veclibabi): New Enum and EnumValue entries.
9754
9755 2011-05-13  Nick Clifton  <nickc@redhat.com>
9756
9757         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
9758         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
9759
9760 2011-05-13  Kai Tietz  <ktietz@redhat.com>
9761
9762         PR middle-end/48984
9763         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
9764         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
9765         (gimple_boolify): Check for cast for boolean_type_node instead for
9766         BOOLEAN_TYPE.
9767
9768 2011-05-13  Richard Guenther  <rguenther@suse.de>
9769
9770         PR tree-optimization/48172
9771         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
9772         multiplying by number of iterations for equal step.
9773         (vect_create_cond_for_alias_checks): Likewise.
9774
9775 2011-05-13  Andreas Schwab  <schwab@redhat.com>
9776
9777         * configure.ac: Use AS_HELP_STRING throughout.
9778         * configure: Regenerate.
9779
9780 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
9781
9782         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
9783         (ix86_emit_restore_regs_using_mov): Likewise.
9784         (ix86_emit_restore_sse_regs_using_mov): Likewise.
9785
9786 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
9787
9788         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
9789         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
9790         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
9791         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
9792         RTX_OK_FOR_OLO10_P): ...here.
9793         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
9794         SYMBOLIC_CONST.
9795
9796 2011-05-12  Kai Tietz  <ktietz@redhat.com>
9797
9798         * gimplify.c (gimple_boolify): Re-boolify expression
9799         arguments even if expression type is of kind BOOLEAN_TYPE.
9800         (gimplify_boolean_expr): Removed.
9801         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
9802         and XOR. Additional take care that we keep expression's type.
9803         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
9804         of TRUTH_AND|OR|XOR_EXPR.
9805
9806 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
9807
9808         PR tree-optimization/48975
9809         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
9810         on all bbs here and free and clear ifc_bbs at the end.
9811
9812 2011-05-12  Richard Guenther  <rguenther@suse.de>
9813
9814         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
9815         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
9816         until after simple checks.
9817         (gimple_types_compatible_p): Likewise.
9818         (iterative_hash_gimple_type): Always hash pointer targets
9819         and function return and argument types.
9820         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
9821         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
9822         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
9823         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
9824         completely in the simple compare section.
9825         (gimple_register_canonical_type): Query the cache again after
9826         registering.
9827
9828 2011-05-12  Richard Guenther  <rguenther@suse.de>
9829
9830         PR tree-optimization/48172
9831         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
9832         the number of iterations from the segment size calculation.
9833         (vect_create_cond_for_alias_checks): Adjust.
9834
9835 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
9836
9837         PR debug/48967
9838         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
9839         if validate_subreg fails.
9840
9841 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
9842
9843         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
9844         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
9845         early.
9846
9847 2011-05-12  DJ Delorie  <dj@redhat.com>
9848
9849         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
9850         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
9851         created builtin into rx_builtins array.
9852         (rx_builtin_decl): New function.
9853         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
9854
9855 2011-05-12  DJ Delorie  <dj@redhat.com>
9856             Nick Clifton  <nickc@redhat.com>
9857
9858         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
9859         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
9860         (rx_is_legitimate_address): Add pre-decrement and post-increment
9861         addressing in HImode and QImode.  Fix test for out of range
9862         REG+INT addressing.
9863         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
9864         (rx_align_for_label): Test label before extracting its usage count.
9865         (rx_adjust_insn_lengths): Fix selection of insn codes.
9866         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
9867
9868 2011-05-11  Jason Merrill  <jason@redhat.com>
9869
9870         * tree.c (type_hash_canon): Use struct tree_type_non_common.
9871
9872 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
9873
9874         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
9875         reindent the subsequent block.
9876
9877 2011-05-11  Satoru Takabayashi  <satorux@google.com>
9878             Paul Pluzhnikov  <ppluzhnikov@google.com>
9879
9880         * doc/install.texi (Configuration): Document --with-linker-hash-style.
9881         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
9882         * config.in: Add LINKER_HASH_STYLE.
9883         * configure.ac: Add --with-linker-hash-style.
9884         * configure: Regenerate.
9885
9886 2011-05-11  Richard Guenther  <rguenther@suse.de>
9887
9888         PR middle-end/48964
9889         * gimple.c (iterative_hash_canonical_type): Fix typo.
9890
9891 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
9892
9893         * config/i386/i386.c (legitimize_tls_address)
9894         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
9895         expanders directly for TARGET_GNU2_TLS.  Determine pic and
9896         __tls_get_addr symbol reference here.  Update call to
9897         gen_tls_global_dynamic_{32,64} for added arguments.
9898         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
9899         expanders directly for TARGET_GNU2_TLS.  Determine
9900         __tls_get_addr symbol reference here.  Update call to
9901         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
9902         unique UNSPEC REG_EQUIV to libcall block.
9903         (ix86_tls_get_addr): Declare static.
9904         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
9905         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
9906         Do not determine pic and __tls_get_addr symbol reference here. Do not
9907         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
9908         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
9909         (tls_global_dynamic_64): Add operand 2.  Do not determine
9910         __tls_get_addr symbol reference here.  Do not call
9911         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
9912         (tls_local_dynamic_base64): Ditto for operand 1.
9913
9914 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
9915
9916         * function.c (expand_function_start): Initialize stack_check_probe_note
9917         only if the generic stack checking mechanism is used.
9918
9919 2011-05-11  Richard Guenther  <rguenther@suse.de>
9920
9921         PR tree-optimization/15256
9922         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
9923         (A & B) | C, combine (A op CST1) op CST2.
9924         (tree_ssa_forward_propagate_single_use_vars): Only bother to
9925         visit assigns that have uses.
9926
9927 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
9928
9929         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
9930         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
9931         (unpack_ts_type_common_value_fields): ...this.  Update comment.
9932         (unpack_value_fields): Adjust for renaming.
9933         (lto_input_ts_type_tree_pointers): Split into...
9934         (lto_input_ts_type_common_tree_pointer): ...this and...
9935         (lto_input_ts_type_non_common_tree_pointers): ...this.
9936         (lto_input_tree_pointers): Adjust for above split.
9937         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
9938         (pack_ts_type_common_value_fields): ...this.  Update comment.
9939         (lto_output_ts_type_tree_pointers): Split into...
9940         (lto_output_ts_type_common_tree_pointers): ...this and...
9941         (lto_output_ts_type_non_common_tree_pointers): ...this.
9942         (lto_output_tree_pointers): Adjust for above split.
9943         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
9944         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
9945         * stor-layout.c (vector_type_mode): Adjust location of mode field.
9946         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
9947         Define.
9948         (struct tree_type): Split into...
9949         (struct tree_type_common: ...this and...
9950         (struct tree_type_with_lang_specific): ...this and...
9951         (struct tree_type_non_common): ...this.  Adjust accessor macros
9952         accordingly.
9953         (TYPE_VALUES_RAW): Define.
9954         (union tree_node): Update for above changes.
9955         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
9956         TS_TYPE_NON_COMMON.
9957         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
9958         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
9959         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
9960         * treestructu.def (TS_TYPE): Remove.
9961         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
9962         Define.
9963
9964 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
9965
9966         PR debug/48159
9967         * tree-ssa.c (reset_debug_uses): New function.
9968         * tree-flow.h (reset_debug_uses): New prototype.
9969         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
9970         * tree-loop-distribution.c (generate_loops_for_partition): Call
9971         reset_debug_uses on the stmts that will be removed.  Keep around
9972         all debug stmts, don't count them as bits in partition bitmap.
9973         (generate_builtin): Don't count debug stmts or labels as bits in
9974         partition bitmap.
9975
9976 2011-05-11  Richard Guenther  <rguenther@suse.de>
9977
9978         * gimple.c (gimple_type_hash_1): Merge with ...
9979         (gimple_type_hash): ... this.
9980         (gtc_visit): Remove mode parameter and simplify accordingly.
9981         (gimple_types_compatible_p_1): Likewise.
9982         (gimple_types_compatible_p): Likewise.
9983         (iterative_hash_gimple_type): Likewise.
9984         (visit): Likewise.
9985         (gimple_type_eq): Adjust.
9986
9987 2011-05-11  Revital Eres  <revital.eres@linaro.org>
9988
9989         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
9990         enters the branch create an anti edge in the opposite direction
9991         to prevent the creation of reg-moves.
9992         * modulo-sched.c: Adjust comment to reflect the fact we are
9993         scheduling closing branch.
9994         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
9995         (stage_count): New field in struct partial_schedule.
9996         (calculate_stage_count): New function.
9997         (normalize_sched_times): Rename to reset_sched_times and handle
9998         incrementing the sched time of the nodes by a constant value
9999         passed as parameter.
10000         (duplicate_insns_of_cycles): Skip closing branch.
10001         (sms_schedule_by_order): Schedule closing branch.
10002         (ps_insn_find_column): Handle closing branch.
10003         (sms_schedule): Call reset_sched_times and adjust the code to
10004         support scheduling of the closing branch.
10005         (ps_insert_empty_row): Update calls to normalize_sched_times
10006         and rotate_partial_schedule functions.
10007
10008 2011-05-11  Richard Guenther  <rguenther@suse.de>
10009
10010         PR middle-end/48953
10011         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
10012
10013 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
10014
10015         * opts.c (finish_options): Move warning settings from process_options.
10016         * toplev.c (process_options): Move warning settings to finish_options.
10017
10018 2011-05-11  Richard Guenther  <rguenther@suse.de>
10019
10020         PR tree-optimization/18041
10021         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
10022         (simplify_bitwise_binary): ... this.  Handle operand conversions
10023         by applying them to the result instead.
10024         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
10025
10026 2011-05-11  Richard Guenther  <rguenther@suse.de>
10027
10028         * gimple.c (gimple_canonical_types_compatible_p): Split out
10029         from gimple_types_compatible_p and friends.  Do not recurse
10030         to pointed-to types.
10031         (gimple_canonical_type_eq): Use it.
10032         (iterative_hash_canonical_type): Split out from
10033         iterative_hash_gimple_type and friends.  Do not recurse
10034         to pointed-to types.
10035         (gimple_canonical_type_hash): Use it, allocate the hash here.
10036
10037 2011-05-11  Revital Eres  <revital.eres@linaro.org>
10038
10039         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
10040         recognizing doloop.
10041
10042 2011-05-11  Revital Eres  <revital.eres@linaro.org>
10043
10044         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
10045         instead of PREV_INSN.
10046
10047 2011-05-11  Revital Eres  <revital.eres@linaro.org>
10048
10049         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
10050         * loop-doloop.c (doloop_condition_get): Likewise.
10051         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
10052         (doloop_end): New.
10053         * config/arm/arm.md (*addsi3_compare0): Remove "*".
10054
10055 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
10056
10057         * tree.def (CASE_LABEL_EXPR): Add an operand.
10058         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
10059
10060 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10061
10062         * c-decl.c (c_override_global_bindings_to_false): Remove.
10063         (global_bindings_p): Don't check
10064         c_override_global_bindings_to_false.
10065         * c-tree.h (c_override_global_bindings_to_false): Remove.
10066         * c-typeck.c (composite_type): Don't set
10067         c_override_global_bindings_to_false.
10068
10069 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
10070
10071         PR target/48857, 48495
10072         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
10073         (VSX_MODE): Ditto.
10074         (VSX_MOVE_MODE): Ditto.
10075         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
10076         VSX vector types.  Add V2DImode.
10077         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
10078         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
10079         (MODES_TIEABLE_P): Ditto.
10080
10081         * config/rs6000/rs6000.c (rs6000_emit_move): Use
10082         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
10083         VSX_VECTOR_MODE.
10084         (init_cumulative_args): Ditto.
10085         (rs6000_function_arg_boundary): Ditto.
10086         (rs6000_function_arg_advance_1): Ditto.
10087         (rs6000_function_arg): Ditto.
10088         (rs6000_function_ok_for_sibcall): Ditto.
10089         (emit_frame_save): Ditto.
10090         (rs6000_function_value): Ditto.
10091         (rs6000_libcall_value): Ditto.
10092
10093 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10094
10095         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
10096         i386/darwin-lib.h to $libgcc_tm_file.
10097         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
10098
10099 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10100
10101         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
10102
10103 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10104
10105         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
10106         * config/rs6000/rs6000-tables.opt: New file (generated).
10107         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
10108         rs6000/rs6000-tables.opt to extra_options.
10109         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
10110         * config/rs6000/rs6000.c (rs6000_select): Remove.
10111         (processor_target_table): Move contents to rs6000-cpus.def.
10112         (darwin_rs6000_override_options): Check
10113         global_options_set.x_rs6000_cpu_index instead of
10114         rs6000_select[1].string.
10115         (rs6000_option_override_internal): Likewise.
10116         (rs6000_handle_option): Don't assert that global structures are in
10117         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
10118         (rs6000_default_cpu): New variable.
10119         (rs6000_file_start): Set it instead of local default_cpu.  Check
10120         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
10121         global_options_set.x_rs6000_tune_index instead of rs6000_select.
10122         (rs6000_darwin_file_start): Check rs6000_default_cpu and
10123         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
10124         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
10125         rs6000_select): Remove.
10126         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
10127         Remove.
10128         (mcpu=, mtune=): Use Var, Init, Enum and Save.
10129         * config/rs6000/t-rs6000
10130         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
10131         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10132         global_options_set.x_rs6000_cpu_index instead of
10133         rs6000_select[1].string.
10134         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10135         global_options_set.x_rs6000_cpu_index instead of
10136         rs6000_select[1].string.
10137
10138 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10139
10140         * config.gcc (libgcc_tm_file): Define instead of including files
10141         from ../../libgcc/config/ in tm_file.
10142         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
10143         * configure: Regenerate.
10144         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
10145         libgcc_tm.h, cs-libgcc_tm.h): New.
10146         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
10147         (clean): Remove libgcc_tm.h.
10148         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
10149         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
10150         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
10151
10152 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
10153
10154         PR target/48896
10155         * config/avr/avr.c (avr_ret_register): Return unsigned int
10156         instead of int.
10157         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
10158         it to avr_libcall_value.
10159         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
10160         expand_expr.
10161         (avr_expand_binop_builtin): Ditto.
10162         (avr_expand_unop_builtin): Ditto.
10163
10164 2011-05-10  DJ Delorie  <dj@redhat.com>
10165
10166         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
10167         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
10168         * config/rx/rx.c (rx_align_for_label): Add label and
10169         uses_threshold parameters.  Do not align when the label is not
10170         used enough.
10171         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
10172
10173 2011-05-10  Richard Guenther  <rguenther@suse.de>
10174
10175         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
10176         a series of conversions and apply foldings similar to what
10177         fold-const does.
10178         (tree_ssa_forward_propagate_single_use_vars): Call it.
10179
10180 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
10181
10182         PR tree-optimization/48611
10183         PR tree-optimization/48794
10184         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
10185         referenced from RESX or EH_DISPATCH arguments.
10186
10187         PR debug/48928
10188         * dfp.c (decimal_to_decnumber): Handle conversion from
10189         dconst{1,2,m1,half}.
10190
10191 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10192
10193         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
10194         for !flag_prefer_avx128.
10195         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
10196
10197 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
10198
10199         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
10200         (fold_ternary_loc): Use expr_location_or.
10201
10202 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
10203
10204         PR debug/48853
10205         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
10206         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
10207         Pmode and mem_mode is not VOIDmode.
10208
10209 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
10210
10211         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
10212         TYPE_QUAL_RESTRICT): Convert to enum.
10213
10214 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10215
10216         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
10217         (const_pow2_1_to_8_operand): Ditto.
10218         (const_pow2_1_to_128_operand): Ditto.
10219         (const_pow2_1_to_32768_operand): Ditto.
10220         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
10221         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
10222         in insn constraint to check integer value of operand 3.
10223         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
10224
10225         (PINSR_MODE): New mode iterator.
10226         (sse2p4_1): New mode attribute.
10227         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
10228         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
10229         iterator.  Use const_int_operand instead of
10230         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
10231         exact_log2 in insn constraint to check integer value of operand 3.
10232
10233 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10234
10235         * config/i386/sse.md (blendbits): Remove mode attribute.
10236         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
10237         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
10238         Check integer value of operand 3 in insn constraint.
10239
10240 2011-05-09  Richard Guenther  <rguenther@suse.de>
10241
10242         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
10243         for diagnostics.
10244         (lto_symtab_merge): Likewise.  Do not register types here.
10245         (lto_symtab_merge_decls_2): Likewise.
10246         (lto_symtab_merge_decls_1): Likewise.
10247         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
10248         * gimple.c (enum gtc_mode): Declare.
10249         (gimple_types_compatible_p): Make static.
10250
10251 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10252
10253         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
10254         temporary register to match Pmode.
10255
10256 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10257
10258         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
10259         and *vec_concatv4si_1_avx.
10260
10261 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10262
10263         PR rtl-optimization/48927
10264         * ira-conflicts.c (commutative_constraint_p): Use
10265         recog_data.alternative_enabled_p to disable alternatives where
10266         "enabled" attribute is false.
10267         (get_dup_num): Ditto.
10268         * ira-lives.c (single_reg_class): Ditto.
10269         (ira_implicitly_set_insn_hard_regs): Ditto.
10270
10271 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
10272
10273         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
10274         (dataflow_set_preserve_mem_locs): Likewise.
10275
10276 2011-05-09  Philipp Thomas  <pth@suse.de>
10277
10278         * config/mep/mep.c (mep_validate_vliw): Syntax description
10279         should not be translated.
10280
10281 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
10282
10283         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
10284         * config/mips/mips-tables.opt: New file (generated).
10285         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
10286         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
10287         MIPS_ARCH_OPTION_NATIVE): Define.
10288         * config/mips/mips.c (mips_cpu_info_table): Move contents to
10289         mips-cpus.def.
10290         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
10291         mips_parse_cpu): Remove.
10292         (mips_cpu_info_from_opt, mips_default_arch): New.
10293         (mips_handle_option): Don't assert that global structures are in
10294         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
10295         (mips_option_override): Use new variables and functions to set
10296         state of these options.  Use strcmp to check for individual CPU names.
10297         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
10298         definition.
10299         * config/mips/mips.opt (march=): Use ToLower and Enum.
10300         (mips): Use ToLower, Enum and Var.
10301         (mtune=): Use ToLower and Enum.
10302         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
10303
10304 2011-05-08  Jan Hubicka  <jh@suse.cz>
10305
10306         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
10307         Arrange type pairs to be UID ordered.
10308         (gimple_lookup_type_leader): Make inline.
10309
10310 2011-05-09  Nick Clifton  <nickc@redhat.com>
10311
10312         PR target/48899
10313         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
10314         PROCESSOR_DEFAULT.
10315
10316         PR target/48897
10317         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
10318         variable 's'.
10319
10320 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
10321
10322         * combine.c (simplify_comparison): Abstract out parts into...
10323         (simplify_compare_const): ... new function.
10324         (try_combine): Generalize parallel arithmetic/compare combining
10325         to call simplify_compare_const() and CANONICALIZE_COMPARE().
10326
10327 2011-05-08  Jan Hubicka  <jh@suse.cz>
10328
10329         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
10330         (cgraph_create_virtual_clone): Call hooks once virtual clone
10331         is finished.
10332         * cgraph.h (cgraph_clone_node): Update prototype.
10333         * ipa-cp.c (ipcp_estimate_growth): Use
10334         estimate_ipcp_clone_size_and_time.
10335         * ipa-inline-transform.c (clone_inlined_nodes): Update.
10336         * lto-cgraph.c (input_node): Update.
10337         * ipa-inline.c (recursive_inlining): Update.
10338         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
10339         (evaluate_conditions_for_known_args): Break out from ...
10340         (evaluate_conditions_for_edge): ... here.
10341         (evaluate_conditions_for_ipcp_clone): New function.
10342         (inline_node_duplication_hook): Update clone summary based
10343         on parameter map.
10344         (estimate_callee_size_and_time): Rename to ...
10345         (estimate_node_size_and_time): take NODE instead of EDGE;
10346         take POSSIBLE_TRUTHS as argument.
10347         (estimate_callee_size_and_time): Update.
10348         (estimate_ipcp_clone_size_and_time): New function.
10349         (do_estimate_edge_time): Update.
10350
10351 2011-05-08  Richard Guenther  <rguenther@suse.de>
10352
10353         PR middle-end/48908
10354         PR middle-end/48905
10355         * expmed.c (expand_shift_1): Compute adjusted constant shift
10356         amount manually.
10357
10358 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
10359
10360         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
10361
10362 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
10363
10364         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
10365
10366 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
10367
10368         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
10369
10370 2011-05-07  Jan Hubicka  <jh@suse.cz>
10371
10372         * ipa-inline-transform.c (inline_call): Account when program size
10373         decreases.
10374         * ipa-inline.c (relative_time_benefit): New function.
10375         (edge_badness): Reorganize to be power 2 based; fix thinko when
10376         computing badness for negative growth; update comments to match
10377         reality; better dumps.
10378
10379 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
10380
10381         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
10382         type to bool and adjust comment.
10383         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
10384         (fold_mathfn_compare): Remove calls to global_bindings_p.
10385         (fold_inf_compare): Likewise.
10386         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
10387         * c-tree.h (global_bindings_p): Adjust prototype.
10388         * c-decl.c (global_bindings_p): Return bool and simplify.
10389
10390 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
10391
10392         PR tree-optimization/48837
10393         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
10394         when accumulator transformation is performed.
10395
10396 2011-05-06  Jan Hubicka  <jh@suse.cz>
10397
10398         * i386.h (ix86_tune_indices): Add
10399         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
10400         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
10401         * i386.c (initial_ix86_tune_features): Add
10402         X86_SOFTARE_PREFETCHING_BENEFICIAL.
10403         (software_prefetching_beneficial_p): Remove predicate.
10404         (ix86_option_override_internal): Use new macro.
10405
10406 2011-05-06  Jan Hubicka  <jh@suse.cz>
10407
10408         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
10409
10410 2011-05-06  Jan Hubicka  <jh@suse.cz>
10411
10412         * cgraph.c (cgraph_add_thunk): Create real function node instead
10413         of alias node; finalize it and mark needed/reachale; arrange visibility
10414         to be right and add it into the corresponding same comdat group list.
10415         (dump_cgraph_node): Dump thunks.
10416         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
10417         cgraph_function_with_gimple_body_p,
10418         cgraph_first_function_with_gimple_body,
10419         cgraph_next_function_with_gimple_body): New functions.
10420         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
10421         New macros.
10422         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
10423         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10424         * cgraphunit.c (cgraph_finalize_function): Only look into possible
10425         devirtualization when optimizing.
10426         (verify_cgraph_node): Verify thunks.
10427         (cgraph_analyze_function): Analyze thunks.
10428         (cgraph_mark_functions_to_output): Output thunks only in combination
10429         with function they are assigned to.
10430         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
10431         alias into normal node.
10432         (assemble_thunks): New functoin.
10433         (cgraph_expand_function): Use it.
10434         * lto-cgraph.c (lto_output_node): Stream thunks.
10435         (input_overwrite_node): Stream in thunks.
10436         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
10437         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
10438         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
10439         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
10440         (inline_analyze_function): Do not care about thunk jump functions.
10441         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
10442         * ipa-prop.c (ipa_prop_write_jump_functions): Use
10443         cgraph_function_with_gimple_body_p.
10444         * passes.c (do_per_function_toporder): Use
10445         cgraph_function_with_gimple_body_p.
10446         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10447         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
10448         (function_called_by_processed_nodes_p): Likewise.
10449
10450 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
10451
10452         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
10453         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
10454         entries.
10455         (mabi=): Replace with separate entries for mabi=altivec,
10456         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
10457         mabi=ieeelongdouble and mabi=ibmlongdouble.
10458         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
10459         check for -mabi=spe without SPE ABI support here.
10460         (rs6000_handle_option): Replace OPT_mabi_ handling with
10461         OPT_mabi_altivec and OPT_mabi_spe handling.
10462
10463 2011-05-06  Cary Coutant  <ccoutant@google.com>
10464
10465         * dwarf2out.c (contains_subprogram_definition): New function.
10466         (should_move_die_to_comdat): Call it.
10467
10468 2011-05-06  Jeff Law  <law@redhat.com>
10469
10470         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
10471         remove_ctrl_stmt_and_useless_edges.
10472         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
10473         (fixup_template_block, thread_single_edge): Likewise.
10474         (mark_threaded_blocks): Use THREAD_TARGET.
10475
10476 2011-05-06  Alan Modra  <amodra@gmail.com>
10477
10478         PR target/48900
10479         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
10480         const0_rtx as the arg to the dummy __tls_get_addr libcall.
10481
10482 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
10483
10484         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
10485         constraint modifier to "r".
10486
10487 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
10488
10489         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
10490         fall through for OPT_mcmodel_.
10491
10492 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10493
10494         * config/s390/s390.c (s390_asm_trampoline_template): Comment
10495         instruction sizes.
10496         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
10497
10498 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10499
10500         PR target/47930
10501         * config/arm/arm.opt (marm): Document it.
10502         (mthumb): Reject negative variant.
10503
10504 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
10505
10506         PR target/48898
10507         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
10508         Fix typo in "ccvt" variable name.
10509
10510 2011-05-06  Tristan Gingold  <gingold@adacore.com>
10511
10512         PR target/48895
10513         * config/vms/vms-ar.c (main): Remove cwd variable.
10514
10515 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
10516
10517         PR debug/48902
10518         * var-tracking.c (prepare_call_arguments): Move else before #endif.
10519
10520 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
10521
10522         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
10523         * gimplify.c (gimplify_switch_expr): Likewise.
10524         * omp-low.c (expand_omp_sections): Likewise.
10525         * tree-eh.c (lower_try_finally_switch): Likewise.
10526         (lower_eh_dispatch): Likewise.
10527         * tree.h (build_case_label): Declare.
10528         * tree.c (build_case_label): Define.
10529
10530 2011-05-05  Jason Merrill  <jason@redhat.com>
10531
10532         PR c++/40975
10533         * tree-inline.c (copy_tree_r): Use copy_statement_list.
10534         (copy_statement_list): Don't recurse.
10535         * stor-layout.c (copy_self_referential_tree_r): Don't allow
10536         STATEMENT_LIST.
10537
10538 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
10539
10540         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
10541         through from -mfpu= handling.
10542         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
10543
10544 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
10545
10546         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
10547         POST_MODIFY.
10548
10549 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
10550
10551         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
10552         for 11.31.
10553         (hppa[12]*-*-hpux11*): Ditto.
10554         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
10555         * config/ia64/hpux-unix2003.h: New.
10556         * config/pa/pa-hpux1131.opt: New.
10557         * config/pa/pa-hpux1131.h: New.
10558         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
10559         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
10560         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
10561
10562 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
10563
10564         PR debug/48853
10565         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
10566         instead of mode as 3rd argument to recursive call.
10567         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
10568         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
10569         VOIDmode.
10570         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
10571         don't give up if mode is Pmode and mem_mode is not VOIDmode.
10572         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
10573         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
10574
10575 2011-05-05  Julian Brown  <julian@codesourcery.com>
10576
10577         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
10578         parenthesis in D-register case.
10579
10580 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
10581
10582         * opt-functions.awk (var_type_struct): Handle Enum options.
10583         * optc-gen.awk: Don't check range of variables of character type.
10584         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
10585         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
10586         rs6000_sdata_name, rs6000_explicit_options): Remove.
10587         (rs6000_option_override_internal): Check for -malign-power here.
10588         Use global_options_set instead of rs6000_explicit_options.
10589         (rs6000_parse_fpu_option): Remove.
10590         (rs6000_handle_option): Access variables via opts and opts_set
10591         pointers.  Use error_at and warning_at.  Add fall-through
10592         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
10593         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
10594         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
10595         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
10596         here.  Don't use rs6000_parse_fpu_option.
10597         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
10598         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
10599         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
10600         (mrecip=): Use Var.
10601         (mspe): Use Var and Save.
10602         (mtraceback=): Use Enum and Var.
10603         (rs6000_traceback_type): New Enum and EnumValue entries.
10604         (mfloat-gprs=): Use Enum, Var and Save.
10605         (rs6000_float_gprs): New Enum and EnumValue entries.
10606         (mlong-double-): use Var and Save.
10607         (msched-costly-dep=, minsert-sched-nops=): Use Var.
10608         (malign-): Use Enum and Var.
10609         (rs6000_alignment_flags): New Enum and EnumValue entries.
10610         (mfpu=): Use Enum.
10611         (fpu_type_t): New Enum and EnumValue entries.
10612         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10613         global_options_set instead of rs6000_explicit_options.
10614         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10615         global_options_set instead of rs6000_explicit_options.
10616         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10617         global_options_set instead of rs6000_explicit_options.
10618         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10619         global_options_set instead of rs6000_explicit_options.
10620         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
10621         global_options_set instead of rs6000_explicit_options.
10622         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10623         global_options_set instead of rs6000_explicit_options.
10624         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
10625         definition.
10626         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10627         global_options_set instead of rs6000_explicit_options.
10628         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
10629         (rs6000_cmodel): New Enum and EnumValue entries.
10630         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10631         global_options_set instead of rs6000_explicit_options.
10632         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
10633         (mtls-size=): Use Enum and Var.
10634         (rs6000_tls_size): New Enum and EnumValue entries.
10635
10636 2011-05-05  Michael Matz  <matz@suse.de>
10637
10638         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
10639         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
10640         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
10641         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
10642         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
10643         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
10644         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
10645         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
10646         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
10647         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
10648         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
10649         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
10650         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
10651         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
10652         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
10653         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
10654
10655 2011-05-05  Richard Guenther  <rguenther@suse.de>
10656
10657         * expmed.c (expand_variable_shift): Rename to ...
10658         (expand_shift_1): ... this.  Take an expanded shift amount.
10659         For rotates recurse directly not building trees for the shift amount.
10660         (expand_variable_shift): Wrap around expand_shift_1.
10661         (expand_shift): Adjust.
10662
10663 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
10664
10665         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
10666
10667 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
10668
10669         * tree.h (get_pending_sizes): Remove prototype.
10670         (put_pending_size): Likewise.
10671         (put_pending_sizes): Likewise.
10672         * stor-layout.c (pending_sizes): Delete.
10673         (get_pending_sizes): Likewise.
10674         (put_pending_size): Likewise.
10675         (put_pending_sizes): Likewise.
10676         (variable_size): Do not call put_pending_size and tidy up.
10677         * function.h (struct function): Remove dont_save_pending_sizes_p.
10678         * lto-streamer-in.c (input_function): Do not stream it.
10679         * lto-streamer-out.c (output_function): Likewise.
10680         * tree-inline.c (initialize_cfun): Do not copy it.
10681         * c-decl.c (store_parm_decls): Do not set it.
10682         * omp-low.c (create_task_copyfn): Likewise.
10683         * tree-optimize.c (tree_rest_of_compilation): Likewise.
10684
10685 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
10686
10687         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
10688         conditions.
10689         (*movdf_internal): Ditto.
10690         (*movdf_internal_nointeger): Ditto.
10691         (*movsf_internal): Ditto.
10692
10693 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
10694
10695         * c-decl.c (finish_decl): Don't call get_pending_sizes.
10696         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
10697         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
10698         (c_variable_size): Remove.
10699         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
10700         call put_pending_sizes.
10701         (get_parm_info): Add parameter expr.  Use it to set
10702         arg_info->pending_sizes.
10703         (store_parm_decls): Use arg_info->pending_sizes instead or calling
10704         get_pending_sizes.
10705         * c-parser.c (c_parser_parms_declarator): Update call to
10706         c_parser_parms_list_declarator.
10707         (c_parser_parms_list_declarator): Take parameter expr.  Update
10708         call to push_parm_decl.  Update recursive call.  Don't call
10709         get_pending_sizes.  Update calls to get_parm_info.
10710         (c_parser_objc_method_definition): Update calls to
10711         c_parser_objc_method_decl and objc_start_method_definition.
10712         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
10713         (c_parser_objc_method_decl): Add parameter expr.  Update call to
10714         grokparm.
10715         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
10716         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
10717         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
10718
10719 2011-05-05  Michael Hope  <michael.hope@linaro.org>
10720
10721         PR pch/45979
10722         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
10723         __ARM_EABI__ hosts.
10724
10725 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10726
10727         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
10728         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
10729         (spu_output_mi_thunk): New function.
10730
10731 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10732
10733         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
10734         targetm.asm_out.print_operand.
10735         * config/sol2.c: Include target.h.
10736
10737 2011-05-04  Jan Hubicka  <jh@suse.cz>
10738
10739         * ipa-inline.c (reset_edge_caches): New function.
10740         (update_caller_keys): Add check_inlinablity_for; do not
10741         reset edge caches; remove now unnecesary loop.
10742         (update_callee_keys): Add comments; reset node_growth_cache of callee.
10743         (update_all_callee_keys): Likewise.
10744         (inline_small_functions): Sanity check cache; update code
10745         recomputing it.
10746
10747 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
10748
10749         PR rtl-optimization/47612
10750         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
10751         as the last insn of the sequence to be moved.
10752
10753 2011-05-04  Tobias Burnus  <burnus@net-b.de>
10754
10755         PR fortran/48864
10756         * doc/invoke.texi (Ofast): Document that it
10757         enables Fortran's -fno-protect-parens.
10758
10759 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
10760
10761         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
10762
10763 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
10764
10765         * stor-layout.c (variable_size): Do not issue errors.
10766
10767 2011-05-04  Richard Guenther  <rguenther@suse.de>
10768
10769         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
10770         for array-ref indices.
10771         (tree_coverage_counter_addr): Likewise.
10772         (build_fn_info_type): Use size_int for index types.
10773         (build_gcov_info): Likewise.
10774
10775 2011-05-04  Richard Guenther  <rguenther@suse.de>
10776
10777         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
10778         to build_int_cst.
10779         * c-typeck.c (really_start_incremental_init): Use bitsize_int
10780         for constructor indices.
10781         (push_init_level): Likewise.
10782
10783 2011-05-04  Richard Guenther  <rguenther@suse.de>
10784
10785         * explow.c (promote_mode): Move variable declarations before code.
10786
10787 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
10788
10789         * tree.h (build_function_type_array): Declare.
10790         (build_varargs_function_type_array): Declare.
10791         (build_function_type_vec, build_varargs_function_type_vec): Define.
10792         * tree.c (build_function_type_array_1): New function.
10793         (build_function_type_array): New function.
10794         (build_varargs_function_type_array): New function.
10795
10796 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
10797
10798         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
10799         before setting STMT_VINFO_TYPE.
10800
10801 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10802
10803         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
10804         instead of spu_pass_by_reference.
10805
10806 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10807
10808         * calls.c (emit_library_call_value_1): Invoke
10809         promote_function_mode hook on libcall arguments.
10810         * explow.c (promote_function_mode, promote_mode): Handle TYPE
10811         argument being NULL.
10812         * targhooks.c (default_promote_function_mode): Lisewise.
10813         * config/s390/s390.c (s390_promote_function_mode): Likewise.
10814         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
10815
10816         * doc/tm.texi: Document that TYPE argument might be NULL.
10817
10818 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
10819
10820         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
10821
10822 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
10823
10824         From Bernd Schmidt
10825         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
10826
10827 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10828
10829         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
10830         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
10831         Move ...
10832         * mips-tfile.c: ... here.
10833         Don't include coretypes.h, tm.h, filenames.h.
10834         (saber_stop): Remove definition and all calls.
10835         [__SABER__]: Remove.
10836         (__LINE__): Remove default.
10837         (Size_t, Ptrdiff_t): Remove definitions.
10838         Replace by size_t, ptrdiff_t.
10839         [!MIPS_DEBUGGING_INFO]: Remove.
10840         (SHASH_SIZE, THASH_SIZE): Remove defaults.
10841         (progname): Add const.
10842         (STATIC): Remove.
10843         Replace all uses by static.
10844         (ALIGN_SYMTABLE_OFFSET): Remove default.
10845         * mips-tdump.c: Don't include coretypes.h, tm.h.
10846         Remove !MIPS_IS_STAB guard.
10847         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
10848         $(TM_H), filenames.h dependencies.
10849         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
10850
10851 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
10852
10853         From Jie Zhang
10854         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
10855         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10856
10857 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
10858
10859         From Bernd Schmidt
10860         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
10861         account and save/restore RETS.
10862         (PROFILE_BEFORE_PROLOGUE): Define.
10863         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
10864         the push insn to use predecrement.
10865
10866 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
10867
10868         From Jie Zhang
10869         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
10870
10871 2011-05-04  Nick Clifton  <nickc@redhat.com>
10872
10873         * config/mn10300/mn10300.c: Include cfgloop.h.
10874         (DUMP): New macro.
10875         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
10876         Lcc or a FLcc insn into the instruction stream.
10877         (mn10300_block_contains_call): New function.  Returns true if the
10878         given basic block contains a CALL insn.
10879         (mn10300_loop_contains_call_insn): New function.  Returns true if
10880         the given loop contains a CALL insn.
10881         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
10882         to use the SETLB and Lcc or FLcc insns.
10883         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
10884         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
10885         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
10886         disable the SETLB optimization.
10887         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
10888         __SETLB__ or __NO_SETLB__.
10889         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
10890         (movsf_internal): Handle MDR register.
10891         (cmpsi): Make visible.
10892         (setlb): New pattern.
10893         (Lcc): New pattern.
10894         (FLcc): New pattern.
10895
10896 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
10897
10898         PR target/48860
10899         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
10900         for reg<->xmm moves.
10901         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
10902         (vec_concatv2di_rex64_sse): Ditto.
10903         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
10904         (*vec_extractv2di_1_rex64): Ditto.
10905
10906         Revert:
10907         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
10908
10909         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
10910         reg<->xmm moves.
10911         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
10912
10913 2011-05-04  Richard Guenther  <rguenther@suse.de>
10914
10915         * tree.h (int_const_binop): Remove notrunc argument.
10916         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
10917         create integer constants that are properly truncated.
10918         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
10919         (const_binop): Remove zero notrunc argument to int_const_binop.
10920         (size_binop_loc): Likewise.
10921         (fold_div_compare): Likewise.
10922         (maybe_canonicalize_comparison_1): Likewise.
10923         (fold_comparison): Likewise.
10924         (fold_binary_loc): Likewise.
10925         (multiple_of_p): Likewise.
10926         * expr.c (store_constructor): Likewise.
10927         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
10928         (maybe_fold_stmt_addition): Likewise.
10929         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
10930         * stor-layout.c (layout_type): Likewise.
10931         * tree-data-ref.c (tree_fold_divides_p): Likewise.
10932         * tree-sra.c (build_ref_for_offset): Likewise.
10933         (build_user_friendly_ref_for_offset): Likewise.
10934         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
10935         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
10936         * tree-ssa-loop-niter.c (inverse): Likewise.
10937         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10938         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
10939         * tree-switch-conversion.c (check_range): Likewise.
10940         (build_constructors): Likewise.
10941         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
10942         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
10943         (extract_range_from_assert): Likewise.
10944         (vrp_int_const_binop): Likewise.
10945         (extract_range_from_binary_expr): Likewise.
10946         (extract_range_from_unary_expr): Likewise.
10947         (check_array_ref): Likewise.
10948         (find_case_label_range): Likewise.
10949         (simplify_div_or_mod_using_ranges): Likewise.
10950         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
10951         comparing case labels for merging.
10952
10953 2011-05-03  Mark Wielaard  <mjw@redhat.com>
10954
10955         * dwarf2out.c (debug_str_hash_forced): Removed.
10956         (gen_label_for_indirect_string): Removed.
10957         (get_debug_string_label): Removed.
10958         (AT_string_form): Generate label directly.
10959         (output_indirect_string): Test indirect_string_node for
10960         DW_FORM_strp instead of checking label and refcount.
10961         (prune_indirect_string): Removed.
10962         (prune_unused_types): Don't check debug_str_hash_forced or
10963         call prune_indirect_string.
10964
10965 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
10966
10967         PR other/48093
10968         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
10969
10970 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
10971
10972         PR debug/47994
10973         PR debug/47919
10974         * combine.c (try_combine): Skip debug insns at m_split tests.
10975
10976 2011-04-26  Mark Wielaard  <mjw@redhat.com>
10977
10978         PR42288
10979         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
10980         when info_section_emitted.
10981
10982 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
10983
10984         * config/mips/mips-opts.h: New.
10985         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
10986         to mips-opts.h.
10987         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
10988         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
10989         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
10990         via opts pointer.
10991         * config/mips/mips.h (enum mips_code_readable_setting): Move to
10992         mips-opts.h.
10993         (mips_abi, mips_code_readable): Don't declare.
10994         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
10995         (mabi=): Use Enum and Var.
10996         (mips_abi): New Enum and EnumValue entries.
10997         (mcode-readable=): Use Enum and Var.
10998         (mips_code_readable_setting): New Enum and EnumValue entries.
10999         (mr10k-cache-barrier=): Use Enum and Var.
11000         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
11001
11002 2011-05-03  Jan Hubicka  <jh@suse.cz>
11003
11004         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
11005         replace hash by pointer map.
11006         (cgraph_node_set_element_def, cgraph_node_set_element,
11007         const_cgraph_node_set_element, varpool_node_set_element_def,
11008         varpool_node_set_element, const_varpool_node_set_element): Remove.
11009         (free_cgraph_node_set, free_varpool_node_set): New function.
11010         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
11011         * tree-emutls.c: Free varpool node set.
11012         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
11013         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
11014         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
11015         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
11016         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
11017         Move here from ipa.c; implement using pointer_map
11018         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
11019         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
11020         debug_cgraph_node_set, varpool_node_set_new,
11021         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
11022         dump_varpool_node_set, debug_varpool_node_set):
11023         Move to ipa-uitls.c.
11024         * passes.c (ipa_write_summaries): Update.
11025
11026 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11027
11028         From Mike Frysinger:
11029         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
11030         bf542/bf544/bf547/bf548/bf549.
11031
11032 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
11033
11034         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
11035
11036 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11037
11038         From Bernd Schmidt:
11039         * config/bfin/bfin.md (MOVCC): New mode_macro.
11040         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
11041         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
11042         comments from generated assembly.
11043
11044 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11045
11046         From Bernd Schmidt
11047         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
11048         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
11049         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
11050         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
11051         * config/bfin/lib1funcs.asm (___muldi3): New function.
11052
11053 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11054
11055         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
11056         build_function_type_list instead of build_function_type.
11057         Rearrange initialization of `args' to do so.
11058
11059 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11060
11061         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
11062         instead of build_function_type.
11063
11064 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11065
11066         * config/rs6000/rs6000.c (spe_init_builtins): Call
11067         build_function_type_list instead of build_function_type.
11068         (paired_init_builtins, altivec_init_builtins): Likewise.
11069         (builtin_function_type): Likewise.
11070
11071 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11072
11073         * config/sh/sh.c (sh_media_init_builtins): Call
11074         build_function_type_list instead of build_function_type.
11075
11076 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11077
11078         * config/sparc/sparc.c (sparc_file_end): Call
11079         build_function_type_list instead of build_function_type.
11080
11081 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11082
11083         * config/alpha/alpha.c (alpha_init_builtins): Call
11084         build_function_type_list instead of build_function_type.
11085
11086 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11087
11088         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
11089         build_function_type_list instead of build_function_type.
11090
11091 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11092
11093         * config/iq2000/i2000.c (iq2000_init_builtins): Call
11094         build_function_type_list instead of build_function_type.
11095         Delete `endlink' variable.
11096
11097 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11098
11099         * config/avr/avr.c (avr_init_builtins): Call
11100         build_function_type_list instead of build_function_type.
11101
11102 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11103
11104         * config/picochip/picochip.c (picochip_init_builtins): Call
11105         build_function_type_list instead of build_function_type.
11106         Delete `endlink' variable.
11107
11108 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11109
11110         * config/bfin/bfin.c (bfin_init_builtins): Call
11111         build_function_type_list instead of build_function_type.
11112
11113 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11114
11115         From Bernd Schmidt
11116         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
11117         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
11118
11119 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11120
11121         From Jie Zhang:
11122         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
11123         libbffastfp overrides libgcc when -mfast-fp.
11124
11125 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11126
11127         Originally from Bernd Schmidt
11128         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
11129         * config/bfin/bfin.c (override_options): Test it and error if
11130         TARGET_FDPIC.
11131
11132 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11133
11134         Originally From Bernd Schmidt
11135         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
11136         FD-PIC.
11137
11138 2011-05-03  Jeff Law  <law@redhat.com>
11139
11140         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
11141         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
11142         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
11143         than accessing AUX field directly.  Free the AUX field before
11144         clearing it.
11145         (thread_block, thread_through_loop_header): Likewise.
11146         (thread_single_edge, mark_threaded_blocks): Likewise.
11147         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
11148         (register_jump_thread): Do not attempt to thread to a NULL edge.
11149
11150 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
11151
11152         * function.c (init_function_start): Call decide_function_section.
11153         * varasm.c (decide_function_section): New function.
11154         (assemble_start_function): When not using
11155         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
11156         or first_function_block_is_cold.
11157         * rtl.h (decide_function_section): Declare.
11158
11159 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
11160             Jakub Jelinek  <jakub@redhat.com>
11161
11162         PR target/48774
11163         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
11164         only succeed if req_mode is the same as set_mode.
11165
11166 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
11167
11168         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
11169         * genemit.c (gen_exp): Handle RETURN.
11170         * emit-rtl.c (verify_rtx_sharing): Likewise.
11171         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
11172         * rtl.c (copy_rtx): RETURN is shared.
11173         * rtl.h (enum global_rtl_index): Add GR_RETURN.
11174         (ret_rtx): New.
11175         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
11176         * config/s390/s390.c (s390_emit_epilogue): Likewise.
11177         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
11178         * config/cris/cris.c (cris_expand_return): Likewise.
11179         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
11180         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
11181         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
11182         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
11183         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
11184         Likewise.
11185         * config/v850/v850.c (expand_epilogue): Likewise.
11186         * config/bfin/bfin.c (bfin_expand_call): Likewise.
11187         * config/arm/arm.md (epilogue): Likewise.
11188         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
11189         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
11190         variable to ret_reg.
11191
11192 2011-05-03  Richard Guenther  <rguenther@suse.de>
11193
11194         PR lto/48846
11195         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
11196         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
11197         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
11198
11199 2011-05-03  Richard Guenther  <rguenther@suse.de>
11200
11201         * c-decl.c (grokdeclarator): Instead of looking at
11202         TREE_OVERFLOW check if the constant fits in the index type.
11203
11204 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
11205
11206         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
11207         (vec_store_lanes<mode><mode>): Likewise.
11208
11209 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
11210
11211         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
11212         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
11213         convert_optab_index values.
11214         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
11215         * genopinit.c (optabs): Initialize the new optabs.
11216         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
11217         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
11218         (expand_STORE_LANES): New functions.
11219         * tree.h (build_array_type_nelts): Declare.
11220         * tree.c (build_array_type_nelts): New function.
11221         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
11222         (vect_model_load_cost): Likewise.
11223         (vect_store_lanes_supported, vect_load_lanes_supported)
11224         (vect_record_strided_load_vectors): Declare.
11225         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
11226         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
11227         (vect_transform_strided_load): Split out statement recording into...
11228         (vect_record_strided_load_vectors): ...this new function.
11229         * tree-vect-stmts.c (create_vector_array, read_vector_array)
11230         (write_vector_array, create_array_ref): New functions.
11231         (vect_model_store_cost): Add store_lanes_p argument.
11232         (vect_model_load_cost): Add load_lanes_p argument.
11233         (vectorizable_store): Try to use store-lanes functions for
11234         interleaved stores.
11235         (vectorizable_load): Likewise load-lanes and loads.
11236         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
11237         to vect_model_store_cost.
11238         (vect_build_slp_tree): Likewise vect_model_load_cost.
11239
11240 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
11241
11242         * hooks.h (hook_bool_mode_uhwi_false): Declare.
11243         * hooks.c (hook_bool_mode_uhwi_false): New function.
11244         * target.def (array_mode_supported_p): New hook.
11245         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
11246         * doc/tm.texi: Regenerate.
11247         * stor-layout.c (mode_for_array): New function.
11248         (layout_type): Use it.
11249         * config/arm/arm.c (arm_array_mode_supported_p): New function.
11250         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
11251
11252 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
11253
11254         PR target/48723
11255         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
11256         for -fstack-check if the size to allocate is negative.
11257
11258 2011-05-02  Lawrence Crowl  <crowl@google.com>
11259
11260         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
11261         (timevar_cond_start): New for starting a timer only when it is not
11262         already running.
11263         (timevar_cond_stop): New for stopping a timer when it was not already
11264         running.
11265
11266         * timevar.c (timevar_stop): Enable start/stop timers to start again.
11267         (timevar_cond_start): New as above.
11268         (timevar_cond_stop): New as above.
11269
11270         * timevar.def: Add start/stop timers for compiler phases,
11271         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
11272         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
11273         and TV_PHASE_FINALIZE.
11274         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
11275         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
11276         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
11277         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
11278         Make unused TV_OVERLOAD into a start/stop timer.
11279
11280         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
11281         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
11282         to indicate that they are start/stop timers.
11283
11284         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
11285         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
11286         Move initialization to do_compile.
11287         (do_compile): Add initialization from above.
11288         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
11289
11290         * c-decl.c (c_write_global_declarations): Add start/stop of
11291         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
11292
11293         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
11294         or TV_PARSE_INLINE, as appropriate.
11295         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
11296         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
11297
11298 2011-05-02  Jason Merrill  <jason@redhat.com>
11299
11300         PR c++/40975
11301         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
11302
11303 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
11304
11305         PR c/35445
11306         * c-decl.c (finish_decl): Only create a composite if the types are
11307         compatible.
11308
11309 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
11310
11311         * config/fr30/fr30-protos.h (Mmode): Don't define.
11312         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
11313         definition where used.
11314         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
11315         define.  Expand definitions where used.
11316         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
11317         Expand definitions where used.
11318         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
11319         rx_function_arg, rx_function_arg_advance,
11320         rx_function_arg_boundary): Expand definitions of those macros.
11321         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
11322         definition where used.
11323
11324 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
11325
11326         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
11327         reg<->xmm moves.
11328         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
11329         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
11330         with *movv2sf_internal_rex64_avx.
11331         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
11332         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
11333         Use %v prefix in insn mnemonic to handle TARGET_AVX.
11334         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
11335         "vex" in "prefix" attribute calculation.
11336         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
11337
11338 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
11339
11340         PR target/47951
11341         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
11342         inputs match the output.
11343
11344 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
11345
11346         PR target/47955
11347         * config/m68k/m68k.c (m68k_expand_prologue): Set
11348         current_function_static_stack_size.
11349
11350 2011-05-02   Jan Hubicka  <jh@suse.cz>
11351
11352         * lto-streamer.c (lto_streamer_cache_insert_1,
11353         lto_streamer_cache_lookup, lto_streamer_cache_create,
11354         lto_streamer_cache_delete): Use pointer map instead of hashtable.
11355         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
11356
11357 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
11358
11359         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
11360         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
11361         config/m68k/t-opts: New files.
11362         * config/m68k/m68k-tables.opt: New file (generated).
11363         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
11364         extra_options and m68k/t-opts to tmake_file.
11365         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
11366         (all_isas): Initialize using m68k-isas.def.
11367         (all_microarchs): Initialize using m68k-microarchs.def.
11368         (m68k_find_selection): Remove.
11369         (m68k_handle_option): Don't assert that global structures are in
11370         use.  Use error_at.  Access variables via opts pointer.  Don't
11371         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
11372         directly for -m68020-40 and -m68020-60.
11373         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
11374         m68k_tune_entry here.
11375         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
11376         to m68k-opts.h.
11377         (m68k_library_id_string): Remove declaration.
11378         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
11379         (m68k_library_id_string): New Variable.
11380         (march=, mcpu=, mtune=): Use Enum and Var.
11381
11382 2011-05-02  Richard Guenther  <rguenther@suse.de>
11383
11384         * varasm.c (output_constructor_regular_field): Compute zero-based
11385         index with double-ints.  Make sure to ICE instead of producing
11386         wrong code.
11387         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
11388         in asserts.  Properly use a signed type.
11389
11390 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
11391
11392         * config/i386/sse.md (V): New mode iterator.
11393         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
11394         TARGET_SSE2.
11395         (V_256): Rename from AVX256MODE.
11396         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
11397         condition to all users.
11398         (VF1): Ditto.
11399         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
11400         condition to all users.
11401         (VF_128): Make V4SF mode unconditional.
11402         (VF_256): Rename from AVX256MODEF2P.
11403         (VI4F_128): Rename from SSEMODE4S.
11404         (VI8F_128): Rename from SSEMODE2D.
11405         (VI4F_256): Rename from AVX256MODE8P.
11406         (VI8F_256): Rename from AVX256MODE4P.
11407         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
11408         (ssescalarmodesuffix): Remove SF and DF modes.
11409         (SSEMODE124): Remove.
11410         (SSEMODE1248): Ditto.
11411         (SSEMODEF2P): Ditto.
11412         (AVXMODEF2P): Ditto.
11413         (AVXMODEFDP): Ditto.
11414         (AVXMODEFSP): Ditto.
11415         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
11416         unconditional.
11417         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
11418         unconditional.
11419         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
11420         xop_pcmov_<mode>256.  Use V mode iterator.
11421
11422         Adjust RTX patterns globally for renamed mode attributes.
11423
11424 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11425
11426         * haifa-sched.c (sched_emit_insn): Emit insn before first
11427         non-scheduled insn.  Inform back-end about new insn.  Add
11428         new insn to scheduled_insns list.
11429
11430 2011-05-02  Richard Guenther  <rguenther@suse.de>
11431
11432         PR tree-optimization/48822
11433         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
11434         (process_scc): Indicate which iteration we start.
11435
11436 2011-05-02  Jan Hubicka  <jh@suse.cz>
11437
11438         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
11439         (lto_section_overrun): New.
11440         * lto-section-out.c (append_block): Rename to ...
11441         (lto_append_block): ... this one; export.
11442         (lto_output_1_stream): Move lto lto-streamer.h
11443         (lto_output_data_stream): Update.
11444         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
11445         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
11446         functions.
11447
11448 2011-05-02  Richard Guenther  <rguenther@suse.de>
11449
11450         * tree.c (tree_code_counts): New global array.
11451         (record_node_allocation_statistics): Count individual tree codes.
11452         (dump_tree_statistics): Dump individual code stats.
11453
11454 2011-05-01  Jan Hubicka  <jh@suse.cz>
11455
11456         * ipa-inline.c (caller_growth_limits): Fix thinko when
11457         looking for largest stack frame.
11458         * ipa-inline.h (dump_inline_summary): Declare.
11459         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
11460         on stack usage.
11461         (dump_inline_summary): Export.
11462         (debug_inline_summary): Declare as DEBUG_FUNCTION.
11463
11464 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
11465
11466         * reginfo.c (memory_move_cost): Change rclass argument type form
11467         'enum reg_class' to reg_class_t.
11468         * reload.h (memory_move_cost): Update prototype.
11469         * postreload.c reload_cse_simplify_set): Change type dclass var to
11470         reg_class_t.
11471         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
11472         Update prototype.
11473         (ira_allocate_and_set_costs): Change aclass argument type form
11474         'enum reg_class' to reg_class_t.
11475         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
11476         Change aclass argument type to reg_class_t.
11477         (update_conflict_hard_reg_costs): Change type aclass and pref vars
11478         to reg_class_t.
11479         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
11480         memory_move_cost call.
11481
11482         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
11483         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
11484         Change type tmp var to reg_class_t.
11485
11486 2011-04-30  Jan Hubicka  <jh@suse.cz>
11487
11488         * ipa-inline.c (can_inline_edge_p): Disregard limits when
11489         inlining into function with flatten attribute.
11490         (want_inline_small_function_p): Be more realistic about inlining
11491         cold calls where callee size grows.
11492
11493 2011-04-30  Jan Hubicka  <jh@suse.cz>
11494
11495         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
11496         flags.
11497
11498 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
11499
11500         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
11501         PRINT_OPERAND_PUNCT_VALID_P): Remove.
11502         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
11503         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
11504         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11505         (print_operand): Rename to...
11506         (sparc_print_operand): ...this. Make static. Adjust
11507         sparc_print_operand function call.
11508         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
11509         functions.
11510
11511 2011-04-30  Jan Hubicka  <jh@suse.cz>
11512
11513         PR middle-end/48752
11514         * ipa-inline.c (early_inliner): Disable when doing late
11515         addition of function.
11516
11517 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
11518
11519         * dwarf2out.c (get_address_mode): New inline.
11520         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
11521         if not dwarf_strict emit
11522         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
11523         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
11524         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
11525         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
11526         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
11527         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
11528         mem_loc_descriptor callers.
11529         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11530         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
11531         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
11532         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
11533         (base_types): New variable.
11534         (get_base_type_offset, calc_base_type_die_sizes,
11535         base_type_for_mode, mark_base_types, base_type_cmp,
11536         move_marked_base_types): New functions.
11537         (calc_die_sizes): Assert that die_offset is 0 or equal to
11538         next_die_offset.
11539         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
11540         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
11541         callers.  If not dwarf_strict, call mem_loc_descriptor even for
11542         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
11543         (gen_subprogram_die): Don't give up on call site parameters
11544         with non-integral or large integral modes.  Adjust
11545         mem_loc_descriptor callers.
11546         (prune_unused_types): Call prune_unused_types_mark on base_types
11547         vector entries.
11548         (resolve_addr): Call mark_base_types.
11549         (dwarf2out_finish): Call move_marked_base_types.
11550
11551         PR tree-optimization/48809
11552         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
11553         type.
11554         (gen_inbound_check): Don't compute index_expr - range_min in utype
11555         again, instead reuse SSA_NAME initialized in build_arrays.
11556         Remove two useless gsi_for_stmt calls.
11557
11558 2011-04-29  Jeff Law  <law@redhat.com>
11559
11560         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
11561
11562 2011-04-29  Martin Jambor  <mjambor@suse.cz>
11563
11564         * cgraph.h (cgraph_postorder): Remove declaration.
11565         * ipa-utils.h (ipa_free_postorder_info): Declare.
11566         (ipa_reverse_postorder): Likewise.
11567         * cgraphunit.c: Include ipa-utils.h.
11568         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
11569         * ipa-inline.c: Include ipa-utils.h.
11570         (ipa_inline): Update call to ipa_reverse_postorder.
11571         * ipa-pure-const.c (propagate_pure_const): Update call to
11572         ipa_reduced_postorder and ipa_print_order.  Call
11573         ipa_free_postorder_info to clean up.
11574         (propagate_nothrow): Likewise.
11575         * ipa-reference.c (propagate): Removed a useless call to
11576         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
11577         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
11578         * ipa.c: Include ipa-utils.h.
11579         (ipa_profile): Update call to ipa_reverse_postorder.
11580         (cgraph_postorder): Moved to...
11581         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
11582         (ipa_utils_print_order): Renamed to ipa_print_order.
11583         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
11584         comments.
11585         (ipa_free_postorder_info): New function.
11586         * passes.c: Include ipa-utils.h.
11587         (do_per_function_toporder): Update call to ipa_reverse_postorder.
11588         (ipa_write_summaries): Likewise.
11589         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
11590         (cgraphunit.o): Likewise.
11591         (ipa.o): Likewise.
11592         (ipa-inline.o): Likewise.
11593
11594 2011-04-29  Jan Hubicka  <jh@suse.cz>
11595
11596         * gcc.dg/tree-ssa/inline-10.c: New testcase.
11597         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
11598         * ipa-inline.h (clause_t): Turn into unsigned int.
11599         * ipa-inline-analysis.c (add_clause): Do more simplification.
11600         (and_predicates): Shortcut more cases.
11601         (predicates_equal_p): Move forward; check that clauses are properly
11602         ordered.
11603         (or_predicates): Shortcut more cases.
11604         (edge_execution_predicate): Rewrite as...
11605         (set_cond_stmt_execution_predicate): ... this function; handle
11606         __builtin_constant_p.
11607         (set_switch_stmt_execution_predicate): New .
11608         (compute_bb_predicates): New.
11609         (will_be_nonconstant_predicate): Update TODO.
11610         (estimate_function_body_sizes): Use compute_bb_predicates
11611         and free them later, always try to estimate if stmt is constant.
11612         (estimate_time_after_inlining, estimate_size_after_inlining):
11613         Gracefully handle optimized out edges.
11614         (read_predicate): Fix off by one error.
11615
11616 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11617
11618         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
11619
11620 2011-04-27  Xinliang David Li  <davidxl@google.com>
11621
11622         * tree-profile.c (init_ic_make_global_vars): Set
11623         tls attribute on ic vars.
11624         * coverage.c (coverage_end_function): Initialize
11625         function_list with zero.
11626
11627 2011-04-29  Richard Guenther  <rguenther@suse.de>
11628
11629         * builtins.c (fold_builtin_classify_type): Use integer_type_node
11630         for the type of the result.
11631         (fold_builtin_isascii): Likewise.
11632         (fold_builtin_toascii): Use integer_type_node where appropriate.
11633         (fold_builtin_logb): Likewise.
11634         (fold_builtin_frexp): Likewise.
11635         (fold_builtin_strstr): Likewise.
11636         (fold_builtin_strpbrk): Likewise.
11637         (fold_builtin_fputs): Likewise.
11638         (fold_builtin_sprintf): Likewise.
11639         (fold_builtin_snprintf): Likewise.
11640         (fold_builtin_printf): Likewise.
11641         (do_mpfr_remquo): Use a proper type for the assigned constant.
11642         (do_mpfr_lgamma_r): Likewise.
11643         * dwarf2out.c (resolve_one_addr): Use size_int.
11644         * except.c (init_eh): Likewise.
11645         (assign_filter_values): Use integer_type_node for filter values.
11646         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
11647         indices.
11648         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
11649         for EH region numbers.
11650         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
11651         for the shift amount.
11652
11653 2011-04-29  Richard Guenther  <rguenther@suse.de>
11654
11655         * expr.h (expand_shift): Rename to ...
11656         (expand_variable_shift): ... this.
11657         (expand_shift): Take a constant shift amount.
11658         * expmed.c (expand_shift): Rename to ...
11659         (expand_variable_shift): ... this.
11660         (expand_shift): New wrapper around expand_variable_shift.
11661         * expr.c (convert_move, emit_group_load_1, emit_group_store,
11662         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
11663         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
11664         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
11665         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
11666         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
11667         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
11668         emit_store_flag_1, emit_store_flag): Likewise.
11669         * builtins.c (expand_builtin_signbit): Likewise.
11670         * calls.c (load_register_parameters): Likewise.
11671         * function.c (assign_parm_setup_block): Likewise.
11672         * lower-subreg.c (resolve_shift_zext): Likewise.
11673         * optabs.c (widen_bswap, expand_abs_nojump,
11674         expand_one_cmpl_abs_nojump, expand_float): Likewise.
11675         * spu/spu.c (spu_expand_extv): Likewise.
11676         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
11677
11678 2011-04-29  Richard Guenther  <rguenther@suse.de>
11679
11680         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
11681         for the remapped region number.
11682         * predict.c (build_predict_expr): Use integer_type_node for the
11683         predict kind.
11684         * fold-const.c (fold_binary_loc): Use integer_type_node for
11685         the shift amount.  Use a proper type for the PLUS_EXPR operand.
11686
11687 2011-04-29  Michael Matz  <matz@suse.de>
11688
11689         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
11690         other trees that just builtins.
11691         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
11692
11693 2011-04-29  Richard Guenther  <rguenther@suse.de>
11694
11695         * tree-nested.c (get_trampoline_type): Use size_int.
11696         (get_nl_goto_field): Likewise.
11697         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
11698         for all indexes.
11699         (lower_eh_constructs_2): Likewise.
11700         (lower_resx): Likewise.
11701         (lower_eh_dispatch): Likewise.
11702         * tree-mudflap.c (mf_build_string): Use size_int.
11703         (mudflap_register_call): Use integer_type_node for the flag.
11704         (mudflap_enqueue_constant): Use size_int.
11705         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
11706         instead of rebuilding it.
11707
11708 2011-04-29  Richard Guenther  <rguenther@suse.de>
11709
11710         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
11711         Handle OBJ_TYPE_REF.
11712         (find_func_aliases_for_call): Use it more consistently.
11713
11714 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
11715
11716         * haifa-sched.c (last_nondebug_scheduled_insn): New.
11717         (rank_for_schedule): Use it.
11718         (schedule_block): Set it.
11719
11720 2011-04-28  David Li  <davidxl@google.com>
11721
11722         * tree.c (crc32_string): Use crc32_byte.
11723         (crc32_byte): New function.
11724         * tree.h (crc32_byte): New function.
11725         * gcov.c (read_graph_file): Handle new cfg_cksum.
11726         (read_count_file): Ditto.
11727         * profile.c (instrument_values): Ditto.
11728         (get_exec_counts): Ditto.
11729         (read_profile_edge_counts): Ditto.
11730         (compute_branch_probabilities): Ditto.
11731         (compute_value_histograms): Ditto.
11732         (branch_prob): Ditto.
11733         (end_branch_prob): Ditto.
11734         * coverage.c (read_counts_file): Ditto.
11735         (get_coverage_counts): Ditto.
11736         (tree_coverage_counter_addr): Ditto.
11737         (coverage_checksum_string): Ditto.
11738         (coverage_begin_output): Ditto.
11739         (coverage_end_function): Ditto.
11740         (build_fn_info_type): Ditto.
11741         (build_fn_info_value): Ditto.
11742         * libgcov.c (gcov_exit): Ditto.
11743         * gcov-dump.c (tag_function): Ditto.
11744         (compute_checksum): Remove.
11745
11746 2011-04-29  Alan Modra  <amodra@gmail.com>
11747
11748         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11749         unspec plus offset.  Tidy macho code.
11750
11751 2011-04-29  Martin Jambor  <mjambor@suse.cz>
11752
11753         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
11754         node instead of a decl.  Update all callers.
11755         * cgraph.h: Update declaration.
11756
11757 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
11758
11759         PR tree-optimization/48765
11760         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
11761         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
11762         to indicate if loop aware SLP is being used.  Scan the statements
11763         and update the vectorization factor according to the type of
11764         vectorization before statement analysis.
11765         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
11766         pass it to vect_analyze_loop_operations.
11767         (vectorizable_reduction): Set number of copies to 1 in case of pure
11768         SLP statement.
11769         * tree-vect-stmts.c (vectorizable_conversion,
11770         vectorizable_assignment, vectorizable_shift,
11771         vectorizable_operation, vectorizable_type_demotion,
11772         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
11773         Likewise.
11774         (vectorizable_condition): Move the check that it is not SLP
11775         vectorization before the number of copies check.
11776         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
11777         to vectorize the loop using SLP.
11778
11779 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
11780
11781         PR middle-end/48597
11782         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
11783         inline asm.
11784
11785 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
11786
11787         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
11788         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
11789         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
11790         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
11791         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
11792         linux*.h headers.
11793         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
11794         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11795         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11796         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11797         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11798         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
11799         REG_NAME.
11800         * config/i386/linux.h (REG_NAME): Don't define.
11801         * config/i386/linux64.h (REG_NAME): Don't define.
11802         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
11803         Undefine before defining.
11804
11805 2011-04-28  Jan Hubicka  <jh@suse.cz>
11806
11807         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
11808         nonconstant_names array.
11809         (estimate_function_body_sizes): Build nonconstant_names array; handle
11810         BUILT_IN_CONSTANT_P.
11811
11812 2011-04-28  Richard Guenther  <rguenther@suse.de>
11813
11814         PR bootstrap/48804
11815         Revert
11816         2011-04-28  Richard Guenther  <rguenther@suse.de>
11817
11818         * tree-ssa-structalias.c (solve_constraints): Build succ graph
11819         as late as possible.
11820
11821 2011-04-28  Richard Guenther  <rguenther@suse.de>
11822
11823         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
11824         (debug_constraint): Do it here.
11825         (dump_constraints): And here.
11826         (rewrite_constraints): And here.
11827         (dump_constraint_edge): Remove.
11828         (dump_constraint_graph): Rewrite to produce DOT output.
11829         (solve_constraints): Build succ graph as late as possible.
11830         Dump constraint graphs before and after solving.
11831
11832 2011-04-28  Richard Guenther  <rguenther@suse.de>
11833
11834         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11835         New function split out from ...
11836         (find_func_aliases): ... here.  Call it.
11837         (find_func_aliases_for_call): Likewise.
11838
11839 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11840
11841         * internal-fn.h (internal_fn_name_array): Declare.
11842         (internal_fn_flags_array): Likewise.
11843
11844 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
11845
11846         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
11847         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
11848         Move from sse.md.
11849         (ssemodefsuffix): Remove.
11850         (ssevecmodesuffix): New mode attribute.
11851         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
11852         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
11853         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
11854         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
11855         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
11856         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
11857         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
11858         ssemodesuffix mode attribute.
11859         (float splitters): Use ssevecmodesuffix mode attribute.
11860         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
11861         (sseinsmode): Rename from avxvecmode.
11862         (avxsizesuffix): Rename from avxmodesuffix.
11863         (sseintvecmode): Rename from avxpermvecmode.
11864         (ssedoublevecmode): Rename from ssedoublesizemode.
11865         (ssehalfvecmode): Rename from avxhalfvecmode.
11866         (ssescalarmode): Rename from avxscalarmode.
11867         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
11868         templates for ssemodesuffix mode attribute.
11869         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
11870         mode attribute.
11871
11872         Adjust RTX patterns globally for renamed mode attributes.
11873
11874 2011-04-27  Jan Hubcika  <jh@suse.cz>
11875
11876         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
11877         * ipa-inline-analysis.c: Include alloc-pool.h.
11878         (edge_predicate_pool): New.
11879         (trye_predicate_p): New function
11880         (false_predicate_p): New function.
11881         (add_clause): Sanity check that false clauses are "optimized";
11882         never add clauses to predicate that is already known to be false.
11883         (and_predicate): Use flase_predicate_p.
11884         (evaulate_predicate): Rename to ...
11885         (evaluate_predicate): ... this one; update all callers; assert
11886         that false is not listed among possible truths.
11887         (dump_predicate): Use true_predicate_p.
11888         (account_size_time): Use false_predicate_p.
11889         (evaulate_conditions_for_edge): Rename to ...
11890         (evaluate_conditions_for_edge) ... this one.
11891         (edge_set_predicate): New function.
11892         (inline_edge_duplication_hook): Duplicate edge predicates.
11893         (inline_edge_removal_hook): Free edge predicates.
11894         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
11895         (dump_inline_summary): Update.
11896         (estimate_function_body_sizes): Set edge predicates.
11897         (estimate_calls_size_and_time): Handle predicates.
11898         (estimate_callee_size_and_time): Update.
11899         (remap_predicate): Add toplev_predicate; update comment.
11900         (remap_edge_predicates): New function.
11901         (inline_merge_summary): Compute toplev predicate; update.
11902         (read_predicate): New function.
11903         (read_inline_edge_summary): Use it.
11904         (inline_read_section): Likewise.
11905         (write_predicate): New function.
11906         (write_inline_edge_summary): Use it.
11907         (inline_write_summary): Likewise.
11908         (inline_free_summary): Free alloc pool and edge summary vec.
11909
11910 2011-04-27  Richard Guenther  <rguenther@suse.de>
11911
11912         * tree-ssa-structalias.c (changed_count): Remove.
11913         (changed): Use a bitmap.
11914         (unify_nodes): Adjust.
11915         (do_sd_constraint): Likewise.
11916         (do_ds_constraint): Likewise.
11917         (do_complex_constraint): Likewise.
11918         (solve_graph): Likewise.
11919
11920 2011-04-27  Jan Hubicka  <jh@suse.cz>
11921
11922         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
11923
11924 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
11925
11926         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
11927         (avx_vperm2f128_*_operand): Ditto.
11928         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
11929         Use avx_vpermilp_parallel in insn condition.
11930         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
11931         Use avx_vperm2f128_parallel in insn condition.
11932
11933 2011-04-27  Richard Guenther  <rguenther@suse.de>
11934
11935         * Makefile.in (tree-ssa-structalias.o): Remove
11936         gt-tree-ssa-structalias.h dependency.
11937         (GTFILES): Remove tree-ssa-structalias.c.
11938         * tree.c (allocate_decl_uid): New function.
11939         (make_node_stat): Use it.
11940         (copy_node_stat): Likewise.
11941         * tree.h (allocate_decl_uid): Declare.
11942         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
11943         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
11944         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
11945         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
11946         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
11947         (struct heapvar_map): Likewise.
11948         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
11949         heapvar_insert): Likewise.
11950         (make_heapvar_for): Rename to ...
11951         (make_heapvar): ... this.  Simplify.
11952         (fake_var_decl_obstack): New global var.
11953         (build_fake_var_decl): New function.
11954         (make_constraint_from_heapvar): Adjust.
11955         (handle_lhs_call): Likewise.
11956         (create_function_info_for): Likewise.
11957         (intra_create_variable_infos): Likewise.
11958         (init_alias_vars): Allocate fake_var_decl_obstack.
11959         (init_alias_heapvars, delete_alias_heapvars): Remove.
11960         (compute_points_to_sets): Do not call init_alias_heapvars.
11961         (ipa_pta_execute): Likewise.
11962         (delete_points_to_sets): Free fake_var_decl_obstack.
11963
11964 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11965
11966         * config/spu/divmovti4.c (union qword_UTItype): New data type.
11967         (si_from_UTItype, si_to_UTItype): New functions.
11968         (__udivmodti4): Use them to implement type-punning.
11969         * config/spu/multi3.c (union qword_TItype): New data type.
11970         (si_from_TItype, si_to_TItype): New functions.
11971         (__multi3): Use them to implement type-punning.
11972
11973 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11974
11975         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
11976
11977 2011-04-27  Jan Hubicka  <jh@suse.cz>
11978
11979         * ipa-prop.c (function_insertion_hook_holder): New holder.
11980         (ipa_add_new_function): New function.
11981         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
11982         Register/deregister holder.
11983
11984 2011-04-27  Richard Guenther  <rguenther@suse.de>
11985
11986         PR tree-optimization/48772
11987         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
11988
11989 2011-04-27  Richard Guenther  <rguenther@suse.de>
11990
11991         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
11992         TARGET_MEM_REF handling.
11993
11994 2011-04-27  Nick Clifton  <nickc@redhat.com>
11995
11996         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
11997         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
11998         (REG_CLASS_NAMES): Likewise.
11999         (REG_CLASS_CONTENTS): Likewise.
12000         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
12001         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
12002         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
12003         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
12004         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
12005         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
12006         duplicate register classes.
12007         (frv_class_likely_spilled_p): Likewise.
12008         (frv_register_move_cost): Likewise.
12009
12010         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
12011         end of the regno_reg_class array.
12012
12013 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
12014
12015         PR c/48742
12016         * c-typeck.c (build_binary_op): Don't wrap arguments if
12017         int_operands is true.
12018
12019 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
12020
12021         PR target/48767
12022         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
12023         targetm.calls.must_pass_in_stack for void type.
12024
12025 2011-04-26  Jan Hubicka  <jh@suse.cz>
12026
12027         * cgraphbuild.c (build_cgraph_edges): Update call
12028         of cgraph_create_edge and cgraph_create_indirect_edge.
12029         * cgraph.c (cgraph_create_edge_including_clones,
12030         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
12031         cgraph_update_edges_for_call_stmt_node): Do not take nest
12032         argument; do not initialize call_stmt_size/time.
12033         (dump_cgraph_node): Do not dump nest.
12034         (cgraph_clone_edge): Do not take loop_nest argument;
12035         do not propagate it; do not clone call_stmt_size/time.
12036         (cgraph_clone_node): Likewise.
12037         (cgraph_create_virtual_clone): Update.
12038         * cgraph.h (struct cgraph_edge): Remove
12039         call_stmt_size/call_stmt_time/loop_nest.
12040         (cgraph_create_edge, cgraph_create_indirect_edge,
12041         cgraph_create_edge_including_clones, cgraph_clone_node): Update
12042         prototype.
12043         * tree-emutls.c (gen_emutls_addr): Update.
12044         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
12045         loop_nest; handle indirect calls, too.
12046         (clone_inlined_nodes): Do not care about updating inline summaries.
12047         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
12048         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
12049         stream call_stmt_size/call_stmt_time/loop_nest.
12050         * ipa-inline.c (edge_badness): Update.
12051         (ipa_inline): dump summaries after inlining.
12052         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
12053         New.
12054         (inline_edge_summary): New function.
12055         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
12056         (inline_edge_removal_hook): Handle edge summaries.
12057         (inline_edge_duplication_hook): New hook.
12058         (inline_summary_alloc): Alloc hooks.
12059         (initialize_growth_caches): Do not register removal hooks.
12060         (free_growth_caches); Do not free removal hook.
12061         (dump_inline_edge_summary): New function.
12062         (dump_inline_summary): Use it.
12063         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
12064         (inline_update_callee_summaries): New function.
12065         (inline_merge_summary): Use it.
12066         (do_estimate_edge_time, do_estimate_edge_growth): Update.
12067         (read_inline_edge_summary): New function.
12068         (inline_read_section): Use it.
12069         (write_inline_edge_summary): New function.
12070         (inline_write_summary): Use it.
12071         (inline_free_summary): Free edge new holders.
12072         * tree-inline.c (copy_bb): Update.
12073
12074 2011-04-26  Jason Merrill  <jason@redhat.com>
12075
12076         * tree-eh.c (lower_try_finally_switch): Create the label along with
12077         the CASE_LABEL_EXPR.
12078
12079 2011-04-26  David S. Miller  <davem@davemloft.net>
12080             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12081
12082         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
12083         * configure: Regenerate.
12084
12085 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
12086
12087         PR target/48258
12088         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
12089         reduction.
12090         (VEC_reduc): New code iterator and splitters for vector reduction.
12091         (VEC_reduc_name): Ditto.
12092         (VEC_reduc_rtx): Ditto.
12093         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
12094         (reduc_<VEC_reduc_name>_v4sf): Ditto.
12095
12096         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
12097         support for extracting SF on VSX.
12098
12099         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
12100         generating xscvspdp.
12101         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
12102         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
12103         double add, minimum, maximum vector reduction.
12104         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
12105         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
12106         optimize double vector reduction.
12107         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
12108
12109 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
12110
12111         * config/fr30/fr30.h (inhibit_libc): Don't define.
12112         * config/m32r/m32r-protos.h: Correct comment.
12113         * config/v850/v850.h (GHS_default_section_names,
12114         GHS_current_section_names): Use tree, not union tree_node *.
12115
12116 2011-04-26  Xinliang David Li  <davidxl@google.com>
12117
12118         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
12119         * c-family/c-opts.c (c_common_handle_option): Set
12120         warn_maybe_uninitialized.
12121         * opts.c (common_handle_option): Ditto.
12122         * common.opt:  New option.
12123         * tree-ssa.c (warn_uninit): Add one more parameter.
12124         (warn_uninitialized_var): Pass warning code.
12125         * tree-flow.h: Interface change.
12126
12127 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12128
12129         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
12130         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
12131         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
12132
12133 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12134
12135         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
12136         * config/mips/mips.opt (mmips-tfile): Remove.
12137
12138         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
12139         mips-tdump reference to ...
12140         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
12141         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
12142         reference by Tru64 UNIX.
12143
12144 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
12145
12146         PR debug/48768
12147         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
12148         is error_mark_node, set value to NULL.
12149
12150         PR tree-optimization/48734
12151         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
12152         if return value from maybe_fold_*_comparsions isn't something
12153         the code is prepared to handle.
12154
12155 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
12156
12157         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
12158         mode check.
12159         (ext_QIreg_nomode_operands): Remove.
12160         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
12161         (*andsi_1): Ditto.
12162         (*andhi_1): Ditto.
12163
12164 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
12165
12166         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
12167
12168 2011-04-26  Richard Guenther  <rguenther@suse.de>
12169
12170         * c-typeck.c (build_unary_op): Do not expand array-refs via
12171         pointer arithmetic.  Only adjust qualifiers for function types.
12172
12173 2011-04-26  Richard Guenther  <rguenther@suse.de>
12174
12175         PR middle-end/48694
12176         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
12177         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
12178         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
12179         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
12180
12181 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
12182
12183         * doc/extend.texi: Document __underlying_type.
12184
12185 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
12186
12187         * config/rs6000/titan.md (automata_option "progress"): Remove.
12188
12189 2011-04-25  Jeff Law  <law@redhat.com>
12190
12191         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
12192
12193 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
12194
12195         * system.h (ENUM_BITFIELD): Remove.
12196
12197 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
12198             Eric Botcazou  <ebotcazou@adacore.com>
12199
12200         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
12201         for STORE_FLAG_VALUE==-1 case.
12202
12203 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
12204
12205         PR target/43804
12206         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
12207         LEGITIMATE_PIC_OPERAND_P.
12208
12209 2011-04-24  Jan Hubicka  <jh@suse.cz>
12210
12211         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
12212         WPA hack.
12213         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
12214         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
12215         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
12216         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
12217         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
12218         Sanity check predicate length.
12219         (remap_predicate): Likewise; sanity check jump functions.
12220         (inline_read_section, inline_write_summary): Sanity check
12221         predicate length.
12222
12223 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
12224
12225         PR other/48748
12226         * doc/extend.texi (Type Traits): Document __is_standard_layout,
12227         __is_literal_type, and __is_trivial; update throughout about
12228         possibly cv-qualified void types.
12229
12230 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
12231
12232         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
12233         testsuite and make it version agnostic.
12234
12235 2011-04-22  Jan Hubicka  <jh@suse.cz>
12236
12237         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
12238
12239 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
12240
12241         PR c/48685
12242         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
12243         to VOID_TYPE even around MODIFY_EXPR.
12244
12245 2011-04-22  Mike Stump  <mikestump@comcast.net>
12246
12247         * gensupport.c (read_md_rtx): Fix typo in comment.
12248         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
12249         comment.
12250
12251 2011-04-22  Jan Hubicka  <jh@suse.cz>
12252
12253         * gengtype.c (open_base_files): Add ipa-inline.h include.
12254         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
12255         ipa-prop.c; update all uses.
12256         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
12257         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
12258         merge summary of inlined function into former caller.
12259         * ipa-inline.c (max_benefit): Remove.
12260         (edge_badness): Compensate for removal of benefits.
12261         (update_caller_keys): Use
12262         reset_node_growth_cache/reset_edge_growth_cache.
12263         (update_callee_keys): Likewise.
12264         (update_all_callee_keys): Likewise.
12265         (inline_small_functions): Do not collect max_benefit; do not reset
12266         estimated_growth; call free_growth_caches and initialize_growth_caches.
12267         * ipa-inline.h (struct condition, type clause_t, struct predicate,
12268         struct size_time_entry): New structures.
12269         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
12270         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
12271         and estimated_growth.
12272         (edge_growth_cache_entry): New structure.
12273         (node_growth_cache, edge_growth_cache): New global vars.
12274         (estimate_growth): Turn into inline.
12275         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
12276         initialize_growth_caches, free_growth_caches): Declare.
12277         (estimate_edge_growth): Rewrite.
12278         (estimate_edge_time): Implement as inline cache lookup.
12279         (reset_node_growth_cache, reset_edge_growth_cache): New inline
12280         functions.
12281         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
12282         (NUM_CONDITIONS): New constant.
12283         (predicate_conditions): New enum.
12284         (IS_NOT_CONSTANT): New constant.
12285         (edge_removal_hook_holder): New var.
12286         (node_growth_cache, edge_growth_cache): New global vars.
12287         (true_predicate, single_cond_predicate, false_predicate,
12288         not_inlined_predicate, add_condition, add_clause, and_predicates,
12289         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
12290         dump_clause, dump_predicate, account_size_time,
12291         evaulate_conditions_for_edge): New functions.
12292         (inline_summary_alloc): Move to heap.
12293         (inline_node_removal_hook): Clear condition and entry vectors.
12294         (inline_edge_removal_hook): New function.
12295         (initialize_growth_caches, free_growth_caches): New function.
12296         (dump_inline_summary): Update.
12297         (edge_execution_predicate): New function.
12298         (will_be_nonconstant_predicate): New function.
12299         (estimate_function_body_sizes): Compute BB and constantness predicates.
12300         (compute_inline_parameters): Do not clear estimated_growth.
12301         (estimate_edge_size_and_time): New function.
12302         (estimate_calls_size_and_time): New function.
12303         (estimate_callee_size_and_time): New function.
12304         (remap_predicate): New function.
12305         (inline_merge_summary): New function.
12306         (do_estimate_edge_time): New function based on...
12307         (estimate_edge_time): ... this one.
12308         (do_estimate_edge_growth): New function.
12309         (do_estimate_growth): New function based on....
12310         (estimate_growth): ... this one.
12311         (inline_analyze_function): Analyze after deciding on jump functions.
12312         (inline_read_section): New function.
12313         (inline_read_summary): Use it.
12314         (inline_write_summary): Write all the new data.
12315         * ipa-prop.c (ipa_get_param_decl_index): Export.
12316         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
12317         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
12318         Declare.
12319         (ipa_get_lattice): Move here from ipa-cp.c
12320         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
12321         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
12322         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
12323         cgraph_edge_inlinable_p): Remove.
12324         * cgraphunit.c: Include ipainline.h
12325         (cgraph_process_new_functions): Update call of
12326         compute_inline_parameters.
12327
12328 2011-04-22  Richard Guenther  <rguenther@suse.de>
12329
12330         * tree.c (build_int_cst): Properly create canonicalized integer
12331         constants.
12332         (build_int_cst_type): Remove scary comments.
12333
12334 2011-04-22  Xinliang David Li  <davidxl@google.com>
12335
12336         * toplev.c (process_options): Enable -Werror=coverage-mismatch
12337         by default when -Wno-error is not specified.
12338         * opts-global.c (decode_options): Remove call to
12339         control_warning_options.
12340
12341 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
12342
12343         PR tree-optimization/48717
12344         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
12345         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
12346
12347 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
12348
12349         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
12350         definition where used.
12351
12352 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
12353
12354         PR c/48716
12355         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
12356         TREE_STATIC variables declared inside of some OpenMP construct.
12357
12358 2011-04-22  Martin Jambor  <mjambor@suse.cz>
12359
12360         PR middle-end/48585
12361         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
12362
12363 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
12364
12365         PR c/36750
12366         * c-typeck.c (pop_init_level): Do not warn about initializing
12367         with ` = {0}'.
12368
12369 2011-04-22  Alan Modra  <amodra@gmail.com>
12370
12371         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
12372         when returning call_cookie.
12373         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
12374         pointers, to functions with no more vector args than the current
12375         function, and some non-local calls for ABI_V4.
12376         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
12377         sibcall_nonlocal_aix64): Combine to ..
12378         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
12379         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
12380         (sibcall_value_nonlocal_aix<mode>): ..likewise.
12381         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
12382         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
12383         operand.
12384         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
12385         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
12386         sibcall_value_symbolic_64): Delete.
12387
12388 2011-04-21  Xinliang David Li  <davidxl@google.com>
12389
12390         * cgraph.h: Remove pid.
12391         * cgraph.c: Remove pid.
12392         * value-prof.c (init_node_map): New function.
12393         (del_node_map): New function.
12394         (find_func_by_funcdef_no): New function.
12395         (gimple_ic_transform): Call new function.
12396         * cgraphunit.c (cgraph_finalize_function): Remove pid.
12397         * function.c (get_last_funcdef_no): New function.
12398         * function.h (get_last_funcdef_no): New function.
12399         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
12400         to libgcov function.
12401         (tree-profiling): Call node map init and delete function.
12402
12403 2011-04-21  Ian Lance Taylor  <iant@google.com>
12404
12405         * godump.c (go_format_type): Use exported Go name for anonymous
12406         field name.
12407
12408 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12409
12410         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
12411         Call builtin_function_type_list instead of builtin_function_type.
12412         (UNARY, BINARY, TRINARY, QUAD): Likewise.
12413
12414 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12415
12416         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
12417         build_function_type_list instead of build_function_type.
12418         Delete variable `endlink'.
12419
12420 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12421
12422         * config/s390/s390.c (s390_init_builtins): Call
12423         build_function_type_list instead of build_function_type.
12424
12425 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12426
12427         * config/ia64/ia64.c (ia64_init_builtins): Call
12428         build_function_type_list instead of builtin_function_type.
12429
12430 2011-04-21  Easwaran Raman  <eraman@google.com>
12431
12432         * cfgexpand.c (stack_var): Remove OFFSET...
12433         (add_stack_var): ...and its reference here...
12434         (expand_stack_vars): ...and here.
12435         (stack_var_cmp): Sort by descending order of size.
12436         (partition_stack_vars): Change heuristic.
12437         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
12438         (dump_stack_var_partition): Add newline after each partition.
12439
12440 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
12441             Jeff Law  <law@redhat.com>
12442
12443         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
12444         * gengtype.c (matching_file_name_substitute): Likewise.
12445
12446 2011-04-21  Richard Guenther  <rguenther@suse.de>
12447
12448         PR lto/48703
12449         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
12450
12451 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
12452
12453         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
12454
12455 2011-04-21  Richard Guenther  <rguenther@suse.de>
12456
12457         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
12458         file name.
12459
12460 2011-04-21  Richard Guenther  <rguenther@suse.de>
12461
12462         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
12463         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
12464         Use DECL_P, not SSA_VAR_P.
12465         (ptr_derefs_may_alias_p): Likewise.
12466         (ptr_deref_may_alias_ref_p_1): Likewise.
12467         (decl_refs_may_alias_p): Likewise.
12468         (refs_may_alias_p_1): Likewise.
12469         (ref_maybe_used_by_call_p_1): Likewise.
12470         (call_may_clobber_ref_p_1): Likewise.
12471         (indirect_ref_may_alias_decl_p): Assume indirect refrences
12472         are either MEM_REF or TARGET_MEM_REF.
12473         (indirect_refs_may_alias_p): Likewise.
12474         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
12475         for MEM_EXPR of indirect calls.
12476
12477 2011-04-21  Tristan Gingold  <gingold@adacore.com>
12478
12479         * vmsdbgout.c (write_srccorr): Compute file length from the string.
12480         (dst_file_info_struct): Remove flen field.
12481         (lookup_filename): Remove code that set flen field.
12482
12483 2011-04-21  Tristan Gingold  <gingold@adacore.com>
12484
12485         * config/ia64/ia64.c (ia64_start_function): Add a guard.
12486
12487 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
12488
12489         PR target/48708
12490         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
12491         vec_extract and vec_concat for non-SSE4_1 targets.
12492
12493 2011-04-21  Richard Guenther  <rguenther@suse.de>
12494
12495         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
12496         return statements.
12497
12498 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
12499
12500         * config/i386/cygming.h (union tree_node, TREE): Don't define or
12501         undefine.
12502         (FILE): Don't undefine.
12503
12504 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
12505
12506         * config/alpha/alpha.c (struct machine_function): Use rtx, not
12507         struct rtx_def *.
12508         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
12509         struct rtx_def *.
12510         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
12511         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
12512         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
12513         rtx_def *.
12514         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
12515         definitions where used.
12516         * config/microblaze/microblaze.h (struct microblaze_args): Use
12517         rtx, not struct rtx_def *.
12518         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
12519         rtx_def *.
12520         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
12521         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
12522         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
12523         not struct rtx_def *.
12524         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
12525         struct rtx_def *.
12526         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
12527         rtx_def *.
12528         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
12529
12530 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
12531
12532         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
12533         operand_equal_p to compare DR_BASE_ADDRESSes.
12534         (vect_check_interleaving): Likewise.
12535
12536 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
12537
12538         PR target/46329
12539         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
12540         for all Neon struct constants.
12541
12542 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
12543
12544         * target.def (legitimate_constant_p): New hook.
12545         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
12546         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
12547         * doc/tm.texi: Regenerate.
12548         * hooks.h (hook_bool_mode_rtx_true): Declare.
12549         * hooks.c (hook_bool_mode_rtx_true): Define.
12550         * system.h (LEGITIMATE_CONSTANT_P): Poison.
12551         * calls.c (precompute_register_parameters): Replace uses of
12552         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
12553         (emit_library_call_value_1): Likewise.
12554         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
12555         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
12556         * ira-costs.c (scan_one_insn): Likewise.
12557         * recog.c (general_operand, immediate_operand): Likewise.
12558         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
12559         * reload1.c (init_eliminable_invariants): Likewise.
12560
12561         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
12562         mode argument.
12563         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
12564         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
12565         argument.
12566         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12567         * config/alpha/predicates.md (input_operand): Update call to
12568         alpha_legitimate_constant_p.
12569
12570         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
12571         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
12572         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
12573         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12574         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
12575         (arm_legitimate_constant_p): New functions.
12576         (arm_cannot_force_const_mem): Make static.
12577
12578         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
12579
12580         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
12581         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
12582         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
12583         instead of bfin_legitimate_constant_p.
12584         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
12585         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12586
12587         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
12588
12589         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
12590
12591         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
12592         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
12593         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12594         (frv_legitimate_constant_p): Make static.  Add a mode argument.
12595
12596         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
12597         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
12598         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
12599
12600         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
12601         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
12602         * config/i386/i386.c (legitimate_constant_p): Rename to...
12603         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
12604         argument.
12605         (ix86_cannot_force_const_mem): Update accordingly.
12606         (ix86_legitimate_address_p): Likewise.
12607         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12608         * config/i386/i386.md: Update commentary.
12609
12610         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
12611         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
12612         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12613         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
12614
12615         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
12616
12617         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
12618         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
12619         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12620         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
12621
12622         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
12623         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
12624         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
12625
12626         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
12627         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12628         (m32r_legitimate_constant_p): New function.
12629
12630         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
12631         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
12632         LEGITIMATE_CONSTANT_P.
12633         (LEGITIMATE_CONSTANT_P): Delete.
12634         * config/m68k/m68k.c (m68k_expand_prologue): Call
12635         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
12636         (m68k_legitimate_constant_p): New function.
12637         * config/m68k/m68k.md: Update comments.
12638
12639         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
12640         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12641         (mcore_legitimate_constant_p): New function.
12642
12643         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
12644         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
12645         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
12646         Add a mode argument.
12647         (mep_legitimate_address): Update accordingly.
12648         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12649
12650         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
12651         Delete.
12652         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
12653         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
12654         static.  Check OP's mode for VOIDmode.
12655         (microblaze_legitimate_constant_p): New function.
12656         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12657
12658         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
12659         * config/mips/mips.c (mips_legitimate_constant_p): New function.
12660         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
12661         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12662         * config/mips/predicates.md: Update comments.
12663
12664         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
12665         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
12666         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12667         (mmix_legitimate_constant_p): Make static, return a bool, and take
12668         a mode argument.
12669         (mmix_print_operand_address): Update accordingly.
12670
12671         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
12672         Delete.
12673         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
12674         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
12675         static.  Add a mode argument.
12676         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12677
12678         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
12679
12680         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
12681         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12682         (pa_legitimate_constant_p): New function.
12683
12684         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
12685
12686         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
12687         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12688         (pdp11_legitimate_constant_p): New function.
12689
12690         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
12691         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12692         (rs6000_legitimate_constant_p): New function.
12693
12694         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
12695         (rx_legitimate_constant_p): ...this.
12696         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
12697         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
12698         (rx_legitimate_constant_p): ...this.
12699         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12700         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
12701
12702         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
12703         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
12704         * config/s390/s390.c (legitimate_constant_p): Rename to...
12705         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
12706         and add a mode argument.
12707         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12708
12709         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
12710
12711         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
12712         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12713         (sh_legitimate_constant_p): New function.
12714
12715         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
12716         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
12717         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12718         (legitimate_constant_p): Rename to...
12719         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
12720         argument.
12721         (constant_address_p): Update accordingly.
12722
12723         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
12724         argument and return a bool.
12725         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
12726         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12727         (spu_legitimate_constant_p): Add a mode argument and return a bool.
12728         (spu_rtx_costs): Update accordingly.
12729         * config/spu/predicates.md (vec_imm_operand): Likewise.
12730
12731         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
12732
12733         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
12734         * config/v850/v850.c (v850_legitimate_constant_p): New function.
12735         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12736
12737         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
12738         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
12739         * config/vax/vax.c (legitimate_constant_p): Likewise.
12740
12741         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
12742         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12743         (xtensa_legitimate_constant_p): New function.
12744
12745 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
12746
12747         * target.def (cannot_force_const_mem): Add a mode argument.
12748         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
12749         * doc/tm.texi: Regenerate.
12750         * hooks.h (hook_bool_mode_rtx_false): Declare.
12751         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
12752         (hook_bool_mode_const_rtx_true): Likewise.
12753         (hook_bool_mode_rtx_false): New function.
12754         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
12755         to be non-VOID.  Update call to cannot_force_const_mem.
12756         (find_reloads): Update accordingly.
12757         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
12758         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
12759         argument.
12760         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
12761         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
12762         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
12763         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
12764         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
12765         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
12766         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
12767         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12768         (m68k_cannot_force_const_mem): ...this new function.
12769         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
12770         argument.
12771         (mips_const_insns, mips_legitimize_const_move): Update calls.
12772         (mips_secondary_reload_class): Likewise.
12773         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12774         (pa_cannot_force_const_mem): ...this new function.
12775         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
12776         (rs6000_cannot_force_const_mem): ...this new function.
12777         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
12778         argument.
12779         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
12780         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
12781         to...
12782         (xtensa_cannot_force_const_mem): ...this new function.
12783
12784 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
12785
12786         * config/mips/mips.c (mips16_build_function_stub): Call
12787         build_function_type_list instead of build_function_type.
12788         (mips16_build_call_stub): Likewise.
12789
12790 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
12791
12792         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
12793         instead of build_function_type.
12794
12795 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
12796
12797         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
12798         instead of build_function_type.
12799
12800 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
12801
12802         PR target/48678
12803         * config/i386/i386.md (insv): Change operand 0 constraint to
12804         "register_operand".  Change operand 1 and 2 constraint to
12805         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
12806         * config/i386/sse.md (sse4_1_pinsrb): Export.
12807         (sse2_pinsrw): Ditto.
12808         (sse4_1_pinsrd): Ditto.
12809         (sse4_1_pinsrq): Ditto.
12810         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
12811         * config/i386/i386.c (ix86_expand_pinsr): New.
12812
12813 2011-04-20  Easwaran Raman  <eraman@google.com>
12814
12815         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
12816         containing union type only with -fstrict-aliasing.
12817
12818 2011-04-20  Jim Meyering  <meyering@redhat.com>
12819
12820         Remove useless if-before-free tests.
12821         * calls.c (expand_call, save_area): Likewise.
12822         * cfgcleanup.c (try_forward_edges): Likewise.
12823         * collect2.c (collect_execute): Likewise.
12824         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
12825         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
12826         * coverage.c (coverage_checksum_string): Likewise.
12827         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
12828         * cselib.c (cselib_init): Likewise.
12829         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
12830         (df_set_clean_cfg): Likewise.
12831         * function.c (free_after_compilation): Likewise.
12832         * gcc.c (do_spec_1, main): Likewise.
12833         * gcov.c (create_file_names): Likewise.
12834         * gensupport.c (identify_predicable_attribute): Likewise.
12835         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
12836         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
12837         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
12838         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
12839         * ipa-pure-const.c (local_pure_const): Likewise.
12840         * ipa-reference.c (propagate): Likewise.
12841         * ira-costs.c (free_ira_costs): Likewise.
12842         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
12843         * matrix-reorg.c (mat_free): Likewise.
12844         * prefix.c (get_key_value): Likewise.
12845         * profile.c (compute_value_histograms): Likewise.
12846         * reload1.c (free_reg_equiv): Likewise.
12847         * sched-deps.c (free_deps): Likewise.
12848         * sel-sched-ir.c (fence_clear): Likewise.
12849         * sese.c (set_rename, if_region_set_false_region): Likewise.
12850         * tree-data-ref.c (free_rdg): Likewise.
12851         * tree-eh.c (lower_try_finally): Likewise.
12852         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
12853         * tree-ssa-live.c (delete_var_map): Likewise.
12854         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
12855         * tree-ssa-pre.c (phi_trans_add): Likewise.
12856
12857 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
12858
12859         PR tree-optimization/48611
12860         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
12861         beyond ERT_MUST_NOT_THROW region.
12862
12863 2011-04-20  Catherine Moore  <clm@codesourcery.com>
12864
12865         * config/mips/mips.opt (mfix-24k): New.
12866         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
12867         * config/mips/mips.md (length): Increase by 4 for stores if
12868         fixing 24K errata.
12869         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
12870         all noreorder if fixing 24K errata.
12871         * doc/invoke.texi: Document mfix-24k.
12872
12873 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
12874
12875         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
12876         quad-word modes, reduce to 9-bit index range when above 1016 limit.
12877
12878 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
12879
12880         * config/arm/arm.c (arm_gen_constant): Move movw support ....
12881         (const_ok_for_op): ... to here.
12882
12883 2011-04-20  Kai Tietz  <ktietz@redhat.com>
12884
12885         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
12886         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
12887
12888 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
12889
12890         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
12891
12892 2011-04-20  Richard Guenther  <rguenther@suse.de>
12893
12894         PR tree-optimization/47892
12895         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
12896         are if-convertible.
12897
12898 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
12899
12900         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
12901
12902 2011-04-20  Tristan Gingold  <gingold@adacore.com>
12903
12904         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
12905
12906 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
12907
12908         PR target/18145
12909
12910         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
12911         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
12912         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
12913         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
12914         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
12915
12916         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
12917         New prototype.
12918
12919         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
12920         (avr_asm_named_section, avr_asm_output_aligned_common,
12921         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
12922         New functions to update...
12923         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
12924         (avr_asm_init_sections): Overwrite section callbacks for
12925         data_section, bss_section.
12926         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
12927         from here to...
12928         (avr_file_end): ...here.
12929
12930 2011-04-20  Richard Guenther  <rguenther@suse.de>
12931
12932         PR middle-end/48695
12933         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
12934         objects and types here.  Adjust for their offset before comparing.
12935
12936 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
12937
12938         * tree-vect-stmts.c (vectorizable_store): Only chain one related
12939         statement per copy.
12940
12941 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
12942
12943         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
12944         (GIMPLE_H): Include $(INTERNAL_FN_H).
12945         (OBJS-common): Add internal-fn.o.
12946         (internal-fn.o): New rule.
12947         * internal-fn.def: New file.
12948         * internal-fn.h: Likewise.
12949         * internal-fn.c: Likewise.
12950         * gimple.h: Include internal-fn.h.
12951         (GF_CALL_INTERNAL): New gf_mask.
12952         (gimple_statement_call): Put fntype into a union with a new
12953         internal_fn field.
12954         (gimple_build_call_internal): Declare.
12955         (gimple_build_call_internal_vec): Likewise.
12956         (gimple_call_same_target_p): Likewise.
12957         (gimple_call_internal_p): New function.
12958         (gimple_call_internal_fn): Likewise.
12959         (gimple_call_fntype): Return null for internal calls.
12960         (gimple_call_set_fntype): Assert that the function is not internal.
12961         (gimple_call_set_fn): Likewise.
12962         (gimple_call_set_fndecl): Likewise.
12963         (gimple_call_set_internal_fn): New function.
12964         (gimple_call_addr_fndecl): Handle null functions.
12965         (gimple_call_return_type): Likewise null types.
12966         * gimple.c (gimple_build_call_internal_1): New function.
12967         (gimple_build_call_internal): Likewise.
12968         (gimple_build_call_internal_vec): Likewise.
12969         (gimple_call_same_target_p): Likewise.
12970         (gimple_call_flags): Handle calls to internal functions.
12971         (gimple_call_fnspec): New function.
12972         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
12973         (gimple_has_side_effects): Handle null functions.
12974         (gimple_rhs_has_side_effects): Likewise.
12975         (gimple_call_copy_skip_args): Handle calls to internal functions.
12976         * cfgexpand.c (expand_call_stmt): Likewise.
12977         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
12978         * gimple-fold.c (gimple_fold_call): Handle null functions.
12979         (gimple_fold_stmt_to_constant_1): Don't fold
12980         calls to internal functions.
12981         * gimple-low.c (gimple_check_call_args): Handle calls to internal
12982         functions.
12983         * gimple-pretty-print.c (dump_gimple_call): Likewise.
12984         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
12985         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
12986         (do_warn_unused_result): Likewise.
12987         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
12988         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
12989         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
12990         the target of a call.
12991         (initialize_hash_element): Update accordingly.
12992         (hashable_expr_equal_p): Use gimple_call_same_target_p.
12993         (iterative_hash_hashable_expr): Handle calls to internal functions.
12994         (print_expr_hash_elt): Likewise.
12995         * tree-ssa-pre.c (can_value_number_call): Likewise.
12996         (eliminate): Handle null functions.
12997         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
12998         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
12999         (find_func_aliases): Likewise.
13000         * value-prof.c (gimple_ic_transform): Likewise.
13001         (gimple_indirect_call_to_profile): Likewise.
13002         * lto-streamer-in.c (input_gimple_stmt): Likewise.
13003         * lto-streamer-out.c (output_gimple_stmt): Likewise.
13004
13005 2011-04-19  Jan Hubicka  <jh@suse.cz>
13006
13007         * ipa-inline-transform.c (save_inline_function_body): Add comments.
13008         * ipa-inline.c (inline_small_functions): Compute summaries first,
13009         populate heap later.
13010
13011 2011-04-19  Jan Hubicka  <jh@suse.cz>
13012
13013         * cgraph.h (save_inline_function_body): Remove.
13014         * ipa-inline-transform.c: New file, broke out of...
13015         * ipa-inline.c: ... this one; Update toplevel comment.
13016         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
13017         make global.
13018         (update_noncloned_frequencies): Move to ipa-inline-transform.c
13019         (cgraph_mark_inline_edge): Rename to inline_call; move to
13020         ipa-inline-transform.c.
13021         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
13022         move to ipa-inline-transform.c
13023         (recursive_inlining, inline_small_functions, flatten_function,
13024         ipa_inline, inline_always_inline_functions,
13025         early_inline_small_functions): Update.
13026         (inline_transform): Move to ipa-inline-transform.c.
13027         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
13028         Declare.
13029         * Makefile.in (ipa-inline-transform.o): New file.
13030         * cgraphunit.c (save_inline_function_body): Move to
13031         ipa-inline-transform.c
13032
13033 2011-04-19  DJ Delorie  <dj@redhat.com>
13034
13035         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
13036         registers if we already know there aren't any.
13037         (m32c_emit_epilogue): Don't emit a barrier here.
13038         (m32c_emit_eh_epilogue): Likewise.
13039         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
13040         operands at expand time.
13041         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
13042         int" wchar type.
13043         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
13044         duplicates.  Provide aliases instead.
13045         * config/m32c/prologue.md (eh_return): Emit a barrier here.
13046         (eh_epilogue): Add a "(return)" here as a hint to other parts of
13047         the compiler.
13048
13049 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
13050
13051         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
13052         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
13053         (general_or_i64_p, sparc_register_move_cost): New function.
13054
13055 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13056
13057         * doc/install.texi (Configuration, --enable-threads): Remove mach.
13058         Add lynx, mipssde.  Sort table.
13059
13060 2011-04-19  Xinliang David Li  <davidxl@google.com>
13061
13062         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
13063         not negative.
13064
13065 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
13066
13067         PR target/48678
13068         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
13069         is a SUBREG with non-MODE_INT mode inside of it.
13070
13071 2011-04-19  Martin Jambor  <mjambor@suse.cz>
13072
13073         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
13074         also according to actual contants.
13075         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
13076         (gimple_fold_call): Use it.
13077         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
13078
13079 2011-04-19  Martin Jambor  <mjambor@suse.cz>
13080
13081         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
13082         non-pointer assignments.
13083
13084 2011-04-19  Martin Jambor  <mjambor@suse.cz>
13085
13086         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
13087         account anc_offset and otr_type from the indirect edge info.
13088         * ipa-prop.c (get_ancestor_addr_info): New function.
13089         (compute_complex_ancestor_jump_func): Assignment analysis moved to
13090         get_ancestor_addr_info, call it.
13091         (ipa_note_param_call): Do not initialize information about polymorphic
13092         calls, return the indirect call graph edge.  Remove the last
13093         parameter, adjust all callers.
13094         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
13095         parameters.  Initialize polymorphic information in the indirect edge.
13096
13097 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
13098
13099         PR lto/48148
13100         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
13101         the types if they have different enumeration identifiers.
13102
13103 2011-04-19  Jan Hubicka  <jh@suse.cz>
13104
13105         * cgraph.h (cgraph_optimize_for_size_p): Declare.
13106         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
13107         * predict.c (cgraph_optimize_for_size_p): Break out from ...
13108         (optimize_function_for_size_p) ... here.
13109
13110 2011-04-19  Richard Guenther  <rguenther@suse.de>
13111
13112         PR lto/48207
13113         * tree.c (free_lang_data): Do not reset the decl-assembler-name
13114         langhook.
13115
13116 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
13117
13118         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
13119         if DECL_NO_INLINE_WARNING_P is set on the function.
13120
13121 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
13122
13123         PR fortran/47976
13124         * reload1.c (inc_for_reload): Return void. All callers changed.
13125         (emit_input_reload_insns): Don't try to delete previous output
13126         reloads to a register, or record spill_reg_store for autoincs.
13127
13128 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
13129
13130         * gengtype.h: Updated copyright year.
13131         (struct input_file_st): Add inpisplugin field.
13132         (type_fileloc): New function.
13133         * gengtype.c
13134         (write_typed_struct_alloc_def): Add gcc_assert.
13135         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
13136         (write_typed_alloc_defns): Don't output for plugin files.
13137         (input_file_by_name): Clear inpisplugin field.
13138         (main): Set inpisplugin field for plugin files.
13139
13140 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
13141
13142         * gengtype-state.c (string_eq): New.
13143         (read_state): Use string_eq instead of strcmp when creating the
13144         state_ident_tab.
13145
13146 2011-04-19  Wei Guozhi  <carrot@google.com>
13147
13148         PR target/47855
13149         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
13150         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
13151         linkage.
13152         * config/arm/constraints.md (Uu): New constraint.
13153         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
13154
13155 2011-04-19  Tristan Gingold  <gingold@adacore.com>
13156
13157         * config.gcc (-*-*-*vms): Added.
13158         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
13159         definitions moved.
13160         * config/vms/vms-ld.c: New file.
13161         * config/vms/vms-ar.c: New file.
13162         * config/vms/t-vmsnative: New file.
13163
13164 2011-04-18  Xinliang David Li  <davidxl@google.com>
13165
13166         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
13167
13168 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
13169
13170         PR middle-end/48661
13171         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
13172         if TREE_TYPE (v) is non-NULL.
13173
13174         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
13175         gimple_get_virt_mehtod_for_binfo.
13176         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
13177         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
13178         callers.
13179         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
13180
13181 2011-04-18  Michael Matz  <matz@suse.de>
13182             Steve Ellcey  <sje@cup.hp.com>
13183
13184         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
13185         use its mode as source mode if it isn't VOIDmode.
13186
13187 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
13188
13189         * doc/passes.texi: Fill crossref nodes.
13190
13191 2011-04-18  Jim Meyering  <meyering@redhat.com>
13192
13193         Fix doubled-word typos in comments and strings
13194         * config/alpha/vms-unwind.h: s/for for/for/
13195         * config/arm/unwind-arm.h: Likewise.
13196         * config/microblaze/microblaze.c: Likewise.
13197         * config/sh/constraints.md: s/in in/in/
13198         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
13199
13200 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
13201
13202         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
13203         (AVX_FLOAT_MODE_P): Ditto.
13204         (AVX128_VEC_FLOAT_MODE_P): Ditto.
13205         (AVX256_VEC_FLOAT_MODE_P): Ditto.
13206         (AVX_VEC_FLOAT_MODE_P): Ditto.
13207         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
13208         (UNSPEC_MASKSTORE): Ditto.
13209         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
13210         Merge from <sse>_movmsk<ssemodesuffix> and
13211         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
13212         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
13213         iterator.
13214         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
13215         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
13216         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
13217
13218 2011-04-18  Jan Hubicka  <jh@suse.cz>
13219
13220         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
13221
13222         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
13223         (want_inline_function_called_once_p): Break out the logic from
13224         ipa_inline.
13225         (edge_badness): Ensure that profile is not misupdated.
13226         (lookup_recursive_calls): Prioritize by call frequencies.
13227         (inline_small_functions): Move program size estimates here;
13228         actually process whole queue even when unit growth has been
13229         met. (to properly compute inline_failed reasons and for the
13230         case unit size decrease.) Revisit comments on recursive inlining.
13231         (ipa_inline): Remove unit summary code; first inline hot calls
13232         of functions called once, cold calls next.
13233         (order, nnodes): Remove unused variables.
13234         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
13235         (GTFILES): Remove ipa-inline.c
13236         * sel-sched.c (fill_insns): Silence uninitialized var warning.
13237
13238 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
13239
13240         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
13241
13242 2011-04-18  Jie Zhang  <jie@codesourcery.com>
13243             Richard Earnshaw  <rearnsha@arm.com>
13244
13245         * arm.c (neon_builtin_type_bits): Remove.
13246         (typedef enum neon_builtin_mode): New.
13247         (T_MAX): Don't define.
13248         (typedef enum neon_builtin_datum): Remove bits, codes[],
13249         num_vars and base_fcode.  Add mode, code and fcode.
13250         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
13251         VAR10): Change accordingly.
13252         (neon_builtin_data[]): Change accordingly
13253         (arm_init_neon_builtins): Change accordingly.
13254         (neon_builtin_compare): Remove.
13255         (locate_neon_builtin_icode): Remove.
13256         (arm_expand_neon_builtin): Change accordingly.
13257
13258         * arm.h (enum arm_builtins): Move to ...
13259         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
13260
13261         * arm.c (arm_builtin_decl): Declare.
13262         (TARGET_BUILTIN_DECL): Define.
13263         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
13264         (arm_builtin_decls[]): New.
13265         (arm_init_neon_builtins): Store builtin declarations in
13266         arm_builtin_decls[].
13267         (arm_init_tls_builtins): Likewise.
13268         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
13269         (arm_builtin_decl): New.
13270
13271 2011-04-18  Richard Guenther  <rguenther@suse.de>
13272
13273         * tree.c (upper_bound_in_type): Build properly canonicalized
13274         INTEGER_CSTs.
13275         (lower_bound_in_type): Likewise.
13276
13277 2011-04-18  Richard Guenther  <rguenther@suse.de>
13278
13279         * gimple.h (gimple_call_addr_fndecl): New function.
13280         (gimple_call_fndecl): Use it.
13281         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
13282         for direct calls.
13283         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
13284         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
13285
13286 2011-04-18  Richard Guenther  <rguenther@suse.de>
13287
13288         PR middle-end/48650
13289         * tree.c (build_string): STRING_CST is now derived from tree_typed.
13290
13291 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
13292
13293         PR lto/48492
13294         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
13295         DECL_IN_CONSTANT_POOL without RTL.
13296
13297 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
13298             Ira Rosen  <ira.rosen@linaro.org>
13299
13300         PR target/48252
13301         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
13302         to match neon_vzip/vuzp/vtrn_internal.
13303         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
13304         outputs explicitly dependent on both inputs.
13305         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
13306
13307 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
13308
13309         PR tree-optimization/48616
13310         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
13311         whether the shift is by scalar or vector based on whether all SLP
13312         scalar stmts have the same rhs.
13313
13314 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
13315
13316         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
13317         memory operands.
13318
13319 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
13320
13321         PR target/43700
13322         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
13323         registers.
13324
13325 2011-04-17  Jan Hubicka  <jh@suse.cz>
13326
13327         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
13328         * cgrpahunit.c (cgraph_finalize_function): Do not set
13329         finalized_by_frontend.
13330         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13331         finalized_by_frontend.
13332
13333 2011-04-17  Jan Hubicka  <jh@suse.cz>
13334
13335         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
13336         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
13337         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
13338         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
13339         method.
13340         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
13341         gimple-fold.c
13342         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
13343
13344 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
13345
13346         PR lto/48538
13347         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
13348         is non-null before accessing it.
13349         (input_cgraph): Remove trailing spaces.
13350
13351 2011-04-17  Revital Eres  <revital.eres@linaro.org>
13352
13353         * params.def (sms-min-sc): New param flag.
13354         * modulo-sched.c (sms_schedule): Use it.
13355         * doc/invoke.texi (sms-min-sc): Document it.
13356
13357 2011-04-17  Jan Hubicka  <jh@suse.cz>
13358
13359         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
13360         present, also set gimple_call_set_cannot_inline.
13361         * ipa-inline.c: Update toplevel comment.
13362         (MAX_TIME): Remove.
13363         (cgraph_clone_inlined_nodes): Fix linebreaks.
13364         (cgraph_check_inline_limits): Restructure to ...
13365         (caller_growth_limits): ... this one; be more tolerant
13366         on growth in nested inline chains; add explanatory comment;
13367         fix stack accounting thinko introduced by previous patch.
13368         (cgraph_default_inline_p): Remove.
13369         (report_inline_failed_reason): New function.
13370         (can_inline_edge_p): New function.
13371         (can_early_inline_edge_p): New function.
13372         (leaf_node_p): Move upwards in file.
13373         (want_early_inline_function_p): New function.
13374         (want_inline_small_function_p): New function.
13375         (want_inline_self_recursive_call_p): New function.
13376         (cgraph_edge_badness): Rename to ...
13377         (edge_badness) ... this one; fix linebreaks.
13378         (update_edge_key): Update call of edge_baddness; add
13379         detailed dump about queue updates.
13380         (update_caller_keys): Use can_inline_edge_p and
13381         want_inline_small_function_p.
13382         (cgraph_decide_recursive_inlining): Rename to...
13383         (recursive_inlining): Use can_inline_edge_p and
13384         want_inline_self_recursive_call_p; simplify and remove no longer
13385         valid FIXME.
13386         (cgraph_set_inline_failed): Remove.
13387         (add_new_edges_to_heap): Use can_inline_edge_p and
13388         want_inline_small_function_p.
13389         (cgraph_decide_inlining_of_small_functions): Rename to ...
13390         (inline_small_functions): ... this one; cleanup; use
13391         can/want predicates; cleanup debug ouput; work edges till fibheap
13392         is exhausted and do not stop once unit growth is reached; remove
13393         later loop processing remaining edges.
13394         (cgraph_flatten): Rename to ...
13395         (flatten_function): ... this one; use can_inline_edge_p
13396         and can_early_inline_edge_p predicates.
13397         (cgraph_decide_inlining): Rename to ...
13398         (ipa_inline): ... this one; remove unreachable nodes before
13399         inlining functions called once; simplify the pass.
13400         (cgraph_perform_always_inlining): Rename to ...
13401         (inline_always_inline_functions): ... this one; use
13402         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
13403         (cgraph_decide_inlining_incrementally): Rename to ...
13404         (early_inline_small_functions): ... this one; simplify
13405         using new predicates; cleanup; make dumps prettier.
13406         (cgraph_early_inlining): Rename to ...
13407         (early_inliner): newer inline regular functions into always-inlines;
13408         fix updating of call stmt summaries.
13409         (pass_early_inline): Update for new names.
13410         (inline_transform): Fix formating.
13411         (gate_cgraph_decide_inlining): Rename to ...
13412         (pass_ipa_inline): ... this one.
13413         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
13414         * ipa-inline-analysis.c (dump_inline_summary): Update.
13415         (compute_inline_parameters): Do not compute disregard_inline_limits;
13416         look for mismatching arguments.
13417         (estimate_growth): Fix handlig of non-trivial self recursion.
13418         (inline_read_summary): Do not read info->disregard_inline_limits.
13419         (inline_write_summary): Do not write info->disregard_inline_limits.
13420         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
13421         and move all checks into can_inline_edge_p predicate; re-enable code
13422         comparing optimization levels.
13423         (expand_call_inline): Do not test inline_forbidden_into_p.
13424         * Makefile.in (ipa-inline.o): Update arguments.
13425
13426 2011-04-17  Revital Eres  <revital.eres@linaro.org>
13427
13428         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
13429
13430 2011-04-17  Revital Eres  <revital.eres@linaro.org>
13431
13432         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
13433
13434 2011-04-17  Michael Matz  <matz@suse.de>
13435
13436         PR tree-optimization/48622
13437         PR lto/48645
13438         * ipa-inline-analysis.c (inline_read_summary): Read size/time
13439         in same order as they're written.
13440
13441 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13442
13443         * config/pa/predicates.md: Reorganize and simplify predicates.
13444         Eliminate duplicate code checks.
13445         (arith_operand): Rename to arith14_operand
13446         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
13447         * config/pa/pa.md: Use renamed operands.
13448         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
13449         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
13450         arith11_operand, adddi3_operand, indexed_memory_operand,
13451         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
13452         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
13453         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
13454         move_dest_operand, move_src_operand, prefetch_cc_operand,
13455         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
13456         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
13457         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
13458         div_operand, int5_operand, movb_comparison_operator,
13459         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
13460         arith_double_operand, ireg_operand, lhs_lshift_operand,
13461         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
13462         integer_store_memory_operand): Likewise.
13463         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
13464         (integer_store_memory_operand, read_only_operand,
13465         function_label_operand, borx_reg_operand,
13466         non_hard_reg_operand): Likewise.
13467         (eq_neq_comparison_operator): Delete unused operator.
13468         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
13469         function_label_operand.
13470         (emit_move_sequence): Likewise.
13471
13472 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
13473
13474         * config/i386/sse.md (sseunpackmode): New mode attribute.
13475         (ssepackmode): Ditto.
13476         (vec_pack_trunc_<mode>): Macroize expander from
13477         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
13478         (vec_unpacks_lo_<mode>): Macroize expander from
13479         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13480         (vec_unpacks_hi_<mode>): Macroize expander from
13481         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13482         (vec_unpacku_lo_<mode>): Macroize expander from
13483         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13484         (vec_unpacku_hi_<mode>): Macroize expander from
13485         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13486         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
13487         ix86_expand_sse4_unpack.
13488         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
13489
13490 2011-04-16  Jan Hubicka  <jh@suse.cz>
13491
13492         * cgraphbuild.c: Include ipa-inline.h.
13493         (reset_inline_failed): Use initialize_inline_failed.
13494         * cgraph.c: Include ipa-inline.h.
13495         (cgraph_create_node_1): Do not initialize estimated_growth.
13496         (initialize_inline_failed): More to ipa-inline-analysis.c
13497         (dump_cgraph_node): Do not dump inline flags.
13498         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
13499         and disregard_inline_limits flags.
13500         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
13501         time, size, estimated_growth.
13502         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
13503         Update.
13504         * cgraphunit.c (cgraph_decide_is_function_needed): Use
13505         DECL_DISREGARD_INLINE_LIMITS.
13506         (cgraph_analyze_function): Do not initialize
13507         node->local.disregard_inline_limits.
13508         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13509         inlinable, versionable and disregard_inline_limits.
13510         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
13511         cgraph_check_inline_limits, cgraph_default_inline_p,
13512         cgraph_edge_badness, update_caller_keys, update_callee_keys,
13513         add_new_edges_to_heap): Update.
13514         (cgraph_decide_inlining_of_small_function): Update; set
13515         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
13516         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
13517         cgraph_decide_inlining_incrementally): Update.
13518         * ipa-inline.h (inline_summary): Add inlinable, versionable,
13519         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
13520         time, size and estimated_growth parameters.
13521         (estimate_edge_growth): Update.
13522         (initialize_inline_failed): Declare.
13523         * ipa-split.c: Include ipa-inline.h
13524         (execute_split_functions): Update.
13525         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
13526         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
13527         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
13528         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
13529         estimated_growth to INT_MIN.
13530         (inline_node_duplication_hook): Likewise.
13531         (dump_inline_summary): Dump new fields.
13532         (compute_inline_parameters): Update.
13533         (estimate_edge_time, estimate_time_after_inlining,
13534         estimate_size_after_inlining, estimate_growth, inline_read_summary,
13535         inline_write_summary):
13536         (initialize_inline_failed): Move here from cgraph.c.
13537         * tree-sra.c: Include ipa-inline.h.
13538         (ipa_sra_preliminary_function_checks): Update.
13539         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
13540         ipa-inline.h.
13541
13542 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
13543
13544         * config/i386/sse.md (V16): New mode iterator.
13545         (VI1, VI8): Ditto.
13546         (AVXMODEQI, AVXMODEDI): Remove.
13547         (sse2, sse3): New mode attribute.
13548         (mov<mode>): Use V16 mode iterator.
13549         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
13550         (push<mode>1): Use V16 mode iterator.
13551         (movmisalign<mode>): Ditto.
13552         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13553         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
13554         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13555         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
13556         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
13557         avx_movdqu<avxmodesuffix>.
13558         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
13559         *avx_movdqu<avxmodesuffix>.
13560         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
13561         avx_lddqu<avxmodesuffix>.
13562         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
13563         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
13564         avx_movnt<AVXMODEDI:mode>.
13565         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
13566         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
13567
13568 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
13569
13570         PR target/48629
13571         * haifa-sched.c (prune_ready_list, schedule_block): Use
13572         sched_pressure_p rather than flag_sched_pressure.
13573
13574 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
13575
13576         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13577         cgraph_get_node instead of cgraph_get_create_node.
13578
13579 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
13580
13581         * cfgexpand.c (expand_debug_expr): Use
13582         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
13583
13584 2011-04-15  Michael Matz  <matz@suse.de>
13585
13586         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
13587         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
13588         * function.c (gimplify_parameters): Ditto.
13589         * gimplify.c (gimplify_vla_decl): Ditto.
13590
13591         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
13592         (gimple_call_set_alloca_for_var): New inline function.
13593         (gimple_call_alloca_for_var_p): Ditto.
13594         * gimple.c (gimple_build_call_from_tree): Remember
13595         CALL_ALLOCA_FOR_VAR_P state.
13596         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
13597
13598         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
13599         calls if they were for VLA objects.
13600
13601 2011-04-15  Martin Jambor  <mjambor@suse.cz>
13602
13603         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
13604         of ADR_EXPRs.
13605
13606 2011-04-15  Martin Jambor  <mjambor@suse.cz>
13607
13608         PR middle-end/48601
13609         * tree-emutls.c (lower_emutls_function_body): Call
13610         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
13611         result is non-NULL.
13612
13613 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
13614
13615         * c-decl.c (detect_field_duplicates): Call
13616         objc_detect_field_duplicates instead of objc_get_interface_ivars.
13617
13618 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
13619
13620         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
13621         * gimple.c (gimple_asm_clobbers_memory_p): Define.
13622         * ipa-pure-const.c (check_stmt): Call it.
13623         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
13624
13625 2011-04-15  Richard Guenther  <rguenther@suse.de>
13626
13627         PR tree-optimization/48290
13628         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
13629         Properly decide inhibiting propagation based on the valueized
13630         operand.  Do loop-closed SSA form preserving here ...
13631         (init_copy_prop): ... not here.
13632
13633 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
13634
13635         PR target/48612
13636         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
13637         (*ieee_smax<mode>3): Likewise.
13638
13639 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13640
13641         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
13642         Replace match_operand with match_dup for the third operand in
13643         these expanders.
13644
13645 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
13646
13647         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
13648         to track processing of conditionals.  Update all callers.
13649         (try_combine, simplify_if_then_else): Update.
13650
13651 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
13652
13653         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
13654         -fsched-pressure.
13655
13656 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
13657
13658         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
13659         instead of match_operand for operand 3.
13660
13661 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
13662
13663         * recog.h (insn_operand_data): Add an "allows_mem" field.
13664         * genoutput.c (output_operand_data): Initialize it.
13665         * optabs.c (maybe_legitimize_operand_same_code): New function.
13666         (maybe_legitimize_operand): Use it when matching the original
13667         op->value.
13668
13669 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13670
13671         * gimplify.c: Fix issues in comments throughout.
13672         (voidify_wrapper_expr): Fix long line.
13673         (build_stack_save_restore): Likewise.
13674         (gimplify_loop_expr): Likewise.
13675         (gimplify_compound_lval): Likewise.
13676         (gimplify_init_ctor_eval): Likewise.
13677         (gimplify_modify_expr_rhs): Likewise.
13678         (omp_notice_threadprivate_variable): Likewise.
13679
13680 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13681
13682         * cfgexpand.c (expand_call_stmt): Convert the function type to the
13683         original one if this is not a builtin function.
13684
13685 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
13686
13687         PR target/48605
13688         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
13689         offset it as needed based on top 2 bits in operands[3], change
13690         MEM mode to SFmode and mask those 2 bits away from operands[3].
13691
13692 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
13693
13694         * c-parser.c (c_parser_objc_protocol_definition): Updated for
13695         change from objc_declare_protocols() to objc_declare_protocol().
13696
13697 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
13698
13699         * config/i386/sse.md (sse4_1): New mode attribute.
13700         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
13701         avx_blend<ssemodesuffix><avxmodesuffix> and
13702         sse4_1_blend<ssemodesuffix> using VF mode iterator.
13703         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
13704         avx_blendv<ssemodesuffix><avxmodesuffix> and
13705         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
13706         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
13707         avx_dp<ssemodesuffix><avxmodesuffix> and
13708         sse4_1_dp<ssemodesuffix> using VF mode iterator.
13709         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
13710         (sse4_1_packusdw): Merge with *avx_packusdw.
13711         (sse4_1_pblendvb): Merge with *avx_pblendvb.
13712         (sse4_1_pblendw): Merge with *avx_pblendw.
13713         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
13714         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
13715         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
13716         VF mode iterator.
13717         (sse4_1_round<ssescalarmodesuffix>): Merge with
13718         *avx_round<ssescalarmodesuffix>.
13719         (aesenc): Merge with *avx_aesenc.
13720         (aesenclast): Merge with *avx_aesenclast.
13721         (aesdec): Merge with *avx_aesdec.
13722         (aesdeclast): Merge with *avx_aesdeclast.
13723         (pclmulqdq): Merge with *pclmulqdq.
13724         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
13725         New predicate.
13726         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
13727
13728 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
13729
13730         PR middle-end/48608
13731         * cfgexpand.c (get_decl_align_unit): Renamed to ...
13732         (align_local_variable): This.  Update DECL_ALIGN.
13733         (add_stack_var): Updated.
13734         (expand_one_stack_var): Likewise.
13735
13736 2011-04-14  Richard Guenther  <rguenther@suse.de>
13737
13738         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
13739         Remove.
13740         (dse_initialize_block_local_data, dse_leave_block,
13741         record_voperand_set, get_stmt_uid): Likewise.
13742         (dse_possible_dead_store_p): Allow any kind of killing stmt.
13743         (dse_optimize_stmt): Remove voperand set handling code.
13744         Simplify and improve to handle any kind of killing stmt.
13745         (dse_record_phi): Remove.
13746         (dse_enter_block): Simplify.
13747         (tree_ssa_dse): Likewise.
13748         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
13749
13750 2011-04-14  Jan Hubicka  <jh@suse.cz>
13751
13752         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
13753         * cgraph.h (struct inline_summary): Move to ipa-inline.h
13754         (cgraph_local_info): Remove inline_summary.
13755         * ipa-cp.c: Include ipa-inline.h.
13756         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
13757         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
13758         accesor.
13759         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
13760         (input_overwrite_node): Do not set inline summary.
13761         (input_node): Do not stream inline summary.
13762         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
13763         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
13764         growth; we do not have inline parameters computed for that anyway.
13765         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
13766         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
13767         (inline_summary_t): New type and VECtor.
13768         (debug_inline_summary, dump_inline_summaries): Declare.
13769         (inline_summary): Use VOCtor.
13770         (estimate_edge_growth): Kill hack computing call stmt size directly.
13771         * lto-section-in.c (lto_section_name): Add inline section.
13772         * ipa-inline-analysis.c: Include lto-streamer.h
13773         (node_removal_hook_holder, node_duplication_hook_holder): New holders
13774         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
13775         (inline_summary_vec): Define.
13776         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
13777         dump_inline_summaries): New functions.
13778         (estimate_function_body_sizes): Properly compute size/time of outgoing
13779         calls.
13780         (compute_inline_parameters): Alloc inline_summary; do not compute
13781         size/time of incomming calls.
13782         (estimate_edge_time): Avoid missing time summary hack.
13783         (inline_read_summary): Read inline summary info.
13784         (inline_write_summary): Write inline summary info.
13785         (inline_free_summary): Free all hooks and inline summary vector.
13786         * lto-streamer.h: Add LTO_section_inline_summary section.
13787         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
13788         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
13789
13790 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
13791
13792         * tree-vectorizer.h (vect_strided_store_supported): Add a
13793         HOST_WIDE_INT argument.
13794         (vect_strided_load_supported): Likewise.
13795         (vect_permute_store_chain): Return void.
13796         (vect_transform_strided_load): Likewise.
13797         (vect_permute_load_chain): Delete.
13798         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
13799         count argument.  Check that the count is a power of two.
13800         (vect_strided_load_supported): Likewise.
13801         (vect_permute_store_chain): Return void.  Update after above changes.
13802         Assert that the access is supported.
13803         (vect_permute_load_chain): Likewise.
13804         (vect_transform_strided_load): Return void.
13805         * tree-vect-stmts.c (vectorizable_store): Update calls after
13806         above interface changes.
13807         (vectorizable_load): Likewise.
13808         (vect_analyze_stmt): Don't check for strided powers of two here.
13809
13810 2011-04-14  Richard Guenther  <rguenther@suse.de>
13811
13812         PR tree-optimization/48590
13813         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
13814         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13815         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
13816         BUILT_IN_STACK_SAVE.
13817         * tree-ssa-dce.c (propagate_necessity): Handle
13818         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13819
13820 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
13821
13822         * c-parser.c (c_parser_objc_class_declaration): Updated call to
13823         objc_declare_class.
13824
13825 2011-04-14  Richard Guenther  <rguenther@suse.de>
13826
13827         * tree.h (get_object_alignment_1): Declare.
13828         * builtins.c (get_object_alignment_1): Split out worker from ...
13829         (get_object_alignment): ... here.
13830         * fold-const.c (get_pointer_modulus_and_residue): Use
13831         get_object_alignment_1.
13832
13833 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
13834
13835         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
13836         type parameter.
13837         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
13838         parameter.  Generalise code to handle arrays as well as vectors.
13839         (vect_setup_realignment): Update accordingly.
13840         * tree-vect-stmts.c (vectorizable_store): Likewise.
13841         (vectorizable_load): Likewise.
13842
13843 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
13844
13845         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
13846         within the per-copy loop.
13847
13848 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
13849
13850         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
13851         in the dump file.
13852
13853 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
13854
13855         * doc/options.texi (Negative): Explicitly mention that the
13856         Negative chain must be circular.
13857
13858 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
13859
13860         * function.h (block_chainon): Declare.
13861         * function.c (block_chainon): Define.
13862
13863 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
13864             Eric Weddington  <eric.weddington@atmel.com>
13865             Georg-Johann Lay  <avr@gjlay.de>
13866
13867         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
13868         New Includes
13869         (avr_init_builtins, avr_expand_builtin,
13870         avr_expand_delay_cycles, avr_expand_unop_builtin,
13871         avr_expand_binop_builtin ): New functions.
13872         (avr_builtin_id): New enum
13873         (struct avr_builtin_description): New struct
13874         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
13875         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
13876
13877         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
13878         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
13879         UNSPECV_DELAY_CYCLES): new enumeration values
13880         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
13881         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
13882         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
13883         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
13884         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
13885         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
13886         "fmulsu"): New insns
13887
13888         * config/avr/avr-c.c: fix line endings
13889         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
13890         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
13891         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
13892         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
13893         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
13894
13895         * doc/extend.texi (AVR Built-in Functions): New node
13896         (Target Builtins): Add documentation of AVR
13897         built-in functions.
13898
13899 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
13900
13901         PR target/44643
13902         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
13903         alone. Error if non-const data has attribute progmem.
13904
13905 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
13906
13907         * tree.h (struct tree_constructor): Include tree_typed instead of
13908         tree_common.
13909         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
13910         TS_TYPED instead of TS_COMMON.
13911
13912 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
13913
13914         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
13915         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
13916         (sse2_psadbw): Merge with *avx_psadbw.
13917         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
13918         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
13919         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
13920         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
13921         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
13922         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
13923         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
13924         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
13925         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
13926         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
13927         (ssse3_palignrti): Merge with *avx_palignrti.
13928
13929 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
13930
13931         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
13932         * tree-ssanames.c (fini_ssanames): VEC_free it.
13933         (make_ssa_name_fn): Update for VECness of free_ssanames.
13934         (release_ssa_name, release_dead_ssa_names): Likewise.
13935         * tree.h (struct tree_ssa_name): Include tree_typed instead of
13936         tree_common.
13937         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
13938         TS_TYPED instead of TS_COMMON.
13939
13940 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
13941
13942         * postreload-gcse.c (gcse_after_reload_main): Add calls to
13943         statistics_counter_event.
13944         * tree-ssa-copyrename.c (stats): Define.
13945         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
13946         statistics_counter_event.
13947         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
13948         (bswap_stats, widen_mul_stats): Define.
13949         (insert_reciprocals): Increment rdivs_inserted.
13950         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
13951         rfuncs_inserted.  Add calls to statistics_counter_event.
13952         (execute_cse_sincos_1): Increment inserted.
13953         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
13954         statistics_counter_event.
13955         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
13956         of bswap_stats.  Add calls to statistics_counter_event.
13957         (convert_mult_to_widen): Increment widen_mults_inserted.
13958         (convert_plusminus_to_widen): Increment maccs_inserted.
13959         (convert_mult_to_fma): Increment fmas_inserted.
13960         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
13961         calls to statistics_counter_event.
13962
13963 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
13964
13965         PR rtl-optimization/48455
13966         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
13967         `temp_costs->mem_cost'.
13968
13969 2011-04-13  Jan Hubicka  <jh@suse.cz>
13970
13971         * ipa-inline.h: New file.
13972         * ipa-inline-analysis.c: New file. Broken out of ...
13973         * ipa-inline.c: ... this file; update toplevel comment;
13974         include ipa-inline.h
13975         (inline_summary): Move to ipa-inline.h
13976         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
13977         ipa-inline-analysis.c.
13978         (cgraph_estimate_time_after_inlining): Rename to
13979         estiamte_time_after_inlining; move to ipa-inline-analysis.c
13980         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
13981         to estimate_edge_growth.
13982         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
13983         rename to estimate_size_after_inlining.
13984         (cgraph_mark_inline_edge): Update for new naming convention.
13985         (cgraph_check_inline_limits): Likewise.
13986         (cgraph_edge_badness): Likewise.
13987         (cgraph_decide_recursive_inlining): Likewise.
13988         (cgraph_decide_inlining_of_small_functions): Likewise.
13989         (cgraph_decide_inlining_incrementally): Likewise.
13990         (cgraph_estimate_growth): Rename to estimate_growth; move to
13991         ipa-inline-analysis.c.
13992         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
13993         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
13994         (compute_inline_parameters): Likewise.
13995         (compute_inline_parameters_for_current): Likewise.
13996         (pass_inline_parameters): Likewise.
13997         (inline_indirect_intraprocedural_analysis): Likewise.
13998         (analyze_function): Rename to inline_analyze_function; likewise.
13999         (add_new_function): Move to ipa-inline-analysis.c.
14000         (inline_generate_summary): Likewise.
14001         (inline_read_summary): Likewise.
14002         (inline_write_summary): Likewise.
14003         * Makefile.in (ipa-inline-analysis.c): New file.
14004
14005 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14006
14007         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
14008         * configure: Regenerate.
14009
14010 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
14011
14012         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
14013         instead of tree_common.
14014         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
14015         Likewise.
14016         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
14017         TS_TYPED rather than TS_COMMON.
14018         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
14019
14020 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
14021
14022         PR target/45263
14023         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
14024         r20 around calls of __tablejump_elpm__
14025
14026 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
14027
14028         PR middle-end/48591
14029         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
14030         NULL.
14031         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
14032
14033 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
14034
14035         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
14036         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
14037         (cfi_vec): New typedef.
14038         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
14039         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
14040         (cie_cfi_vec): New static variable.
14041         (cie_cfi_head): Delete.
14042         (add_cfi): Accept a cfi_vec * as first argument. All callers and
14043         declaration changed. Use vector rather than list operations.
14044         (new_cfi): Don't initialize the dw_cfi_next field.
14045         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
14046         rather than list operations.
14047         (lookup_cfa): Use vector rather than list operations.
14048         (output_cfis): New argument upto. Accept a cfi_vec rather than
14049         a dw_cfi_ref list head as argument. All callers changed.
14050         Iterate over the vector using upto as a maximum index.
14051         (output_all_cfis): New static function.
14052         (output_fde): Use vector rather than list operations. Use the
14053         new upto argument for output_cfis rather than manipulating a
14054         list.
14055         (dwarf2out_begin_prologue): Change initializations to match
14056         new struct members.
14057         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
14058         from the vector length rather than searching for the end of a list.
14059         Use output_all_cfis.
14060         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
14061
14062 2011-04-13  Nick Clifton  <nickc@redhat.com>
14063
14064         * config/rx/rx.md (movmemsi): Do not use this pattern when
14065         volatile pointers are involved.
14066
14067 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
14068
14069         * config/i386/sse.md (pinsrbits): Remove.
14070         (sse2_packsswb): Merge with *avx_packsswb.
14071         (sse2_packssdw): Merge with *avx_packssdw.
14072         (sse2_packuswb): Merge with *avx_packuswb.
14073         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
14074         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
14075         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
14076         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
14077         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
14078         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
14079         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
14080         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
14081         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
14082         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
14083         (sse2_loadld): Merge with *avx_loadld.
14084         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
14085         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
14086         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
14087         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
14088         (vec_concatv2di): Merge with *vec_concatv2di_avx.
14089
14090 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
14091
14092         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
14093         calling TREE_CHAIN.
14094         * print-tree.c (print_node): Likewise.
14095         * tree-inline.c (copy_tree_r): Likewise.
14096         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
14097         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
14098         instead of TS_COMMON.
14099         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
14100         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
14101         (copy_node_stat): Zero TREE_CHAIN only if necessary.
14102         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
14103         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
14104         ...and these...
14105         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
14106         * tree.h: ...here.
14107         (TREE_CHAIN): Check for a TS_COMMON structure.
14108         (TREE_TYPE): Check for a TS_TYPED structure.
14109
14110 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
14111
14112         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
14113         cgraph_get_create_node instead of cgraph_node.
14114
14115 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14116
14117         * c-parser.c (c_parser_initelt): Updated call to
14118         objc_build_message_expr.
14119         (c_parser_postfix_expression): Likewise.
14120
14121 2011-04-12  Kai Tietz  <ktietz@redhat.com>
14122
14123         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
14124         MASK_MS_BITFIELD_LAYOUT bit.
14125
14126 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
14127
14128         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
14129         assert it is always true.
14130         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
14131         moves.
14132
14133 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14134
14135         * c-parser.c (c_lex_one_token): Rewritten conditional used when
14136         compiling Objective-C to be more efficient.
14137
14138 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
14139
14140         * opts-common.c (decode_cmdline_options_to_array): Remove variable
14141         argv_copied.
14142
14143 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
14144
14145         * recog.h, genoutput.c, optabs.c: Revert last patch.
14146
14147 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14148
14149         PR target/48090
14150         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
14151
14152 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
14153
14154         * recog.h (insn_operand_data): Add an "allows_mem" field.
14155         * genoutput.c (output_operand_data): Initialize it.
14156         * optabs.c (maybe_legitimize_operand_same_code): New function.
14157         (maybe_legitimize_operand): Use it when matching the original
14158         op->value.
14159
14160 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
14161
14162         * genpreds.c (process_define_predicate): Move most processing
14163         to gensupport.c.  Continue to validate the expression.
14164         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
14165         (process_define_predicate): Move processing to gensupport.c.
14166         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
14167         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
14168         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
14169         argument.
14170         (valid_predicate_name_p): New function, split out from old
14171         genpreds.c:process_define_predicate.
14172         (process_define_predicate): New function, combining code from
14173         old genpreds.c and genrecog.c functions.
14174         (process_rtx): Call it for DEFINE_PREDICATE and
14175         DEFINE_SPECIAL_PREDICATE.
14176
14177 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
14178
14179         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
14180         size of a '%A' memory reference.
14181         (T_DREG, T_QREG): New neon_builtin_type_bits.
14182         (arm_init_neon_builtins): Assert that the load and store operands
14183         are neon_struct_operands.
14184         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
14185         (NEON_ARG_MEMORY): New builtin_arg.
14186         (neon_dereference_pointer): New function.
14187         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
14188         Handle NEON_ARG_MEMORY.
14189         (arm_expand_neon_builtin): Update after above interface changes.
14190         Use NEON_ARG_MEMORY for loads and stores.
14191         * config/arm/predicates.md (neon_struct_operand): New predicate.
14192         * config/arm/iterators.md (V_two_elem): Tweak formatting.
14193         (V_three_elem): Use BLKmode for accesses that have no associated mode.
14194         (V_four_elem): Tweak formatting.
14195         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
14196         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
14197         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
14198         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
14199         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
14200         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
14201         (neon_vst4<mode>): Replace pointer operand with a memory operand.
14202         Use %A in the output template.
14203         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
14204         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
14205         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
14206         the width of the memory access.  Remove post-increment.
14207         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
14208
14209 2011-04-12  Nick Clifton  <nickc@redhat.com>
14210
14211         * config/v850/v850.c (expand_prologue): Do not use the CALLT
14212         instruction for interrupt handlers if the target is the basic V850
14213         architecture.
14214         (expand_epilogue): Likewise.
14215
14216 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
14217
14218         PR rtl-optimization/48549
14219         * combine.c (propagate_for_debug): Also stop after BB_END of
14220         this_basic_block.  Process LAST and just stop processing after it.
14221         (combine_instructions): If last_combined_insn has been deleted,
14222         set last_combined_insn to its PREV_INSN.
14223
14224 2011-04-12  Richard Guenther  <rguenther@suse.de>
14225
14226         PR tree-optimization/46076
14227         * gimple.h (struct gimple_statement_call): Add fntype field.
14228         (gimple_call_fntype): Adjust.
14229         (gimple_call_set_fntype): New function.
14230         * gimple.c (gimple_build_call_1): Set the call function type.
14231         * gimplify.c (gimplify_call_expr): Preserve the function
14232         type the frontend used for the call.
14233         (gimplify_modify_expr): Likewise.
14234         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
14235         function type.
14236         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
14237         function type.
14238         * tree-ssa.c (useless_type_conversion_p): Function pointer
14239         conversions are useless.
14240
14241 2011-04-12  Martin Jambor  <mjambor@suse.cz>
14242
14243         * cgraph.h (cgraph_node): Remove function declaration.
14244         (cgraph_create_node): Declare.
14245         (cgraph_get_create_node): Likewise.
14246         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
14247         Updated all callers.
14248         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
14249         the decl does not already exist.  Call cgraph_get_create_node instead
14250         of cgraph_node.
14251         (cgraph_get_create_node): New function.
14252         (cgraph_same_body_alias): Update comment.
14253         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
14254         assert it does not return NULL.
14255         (cgraph_update_edges_for_call_stmt): Likewise.
14256         (cgraph_clone_edge): Likewise.
14257         (cgraph_create_virtual_clone): Likewise.
14258         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
14259         instead of cgraph_node.
14260         (cgraph_add_new_function): Call cgraph_create_node or
14261         cgraph_get_create_node instead of cgraph_node.
14262         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
14263         instead of cgraph_node.
14264         (record_eh_tables): Likewise.
14265         (mark_address): Likewise.
14266         (mark_load): Likewise.
14267         (build_cgraph_edges): Call cgraph_get_create_node instead
14268         of cgraph_node.
14269         (rebuild_cgraph_edges): Likewise.
14270         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
14271         instead of cgraph_node.
14272         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
14273         cgraph_node.
14274         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
14275         cgraph_create_node instead of cgraph_node.
14276         * c-decl.c (finish_function): Call cgraph_get_create_node instead
14277         of cgraph_node.
14278         * lto-cgraph.c (input_node): Likewise.
14279         * lto-streamer-in.c (input_function): Likewise.
14280         * varasm.c (mark_decl_referenced): Likewise.
14281         (assemble_alias): Likewise.
14282
14283 2011-04-12  Martin Jambor  <mjambor@suse.cz>
14284
14285         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
14286         instead of cgraph_node and assert it does not return NULL.
14287         * lto-streamer-in.c (lto_read_body): Likewise.
14288         * omp-low.c (new_omp_context): Likewise.
14289         (create_task_copyfn): Likewise.
14290         * tree-emutls.c (lower_emutls_function_body): Likewise.
14291         * matrix-reorg.c (transform_allocation_sites): Likewise.
14292
14293 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
14294
14295         PR c/48552
14296         * c-typeck.c (build_asm_expr): Error out on attempts to use
14297         void type outputs or inputs for constraints that allow reg or
14298         don't allow memory.
14299
14300 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
14301             Richard Earnshaw  <rearnsha@arm.com>
14302
14303         PR target/48250
14304         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
14305         to use sign-magnitude offsets. Reject unsupported unaligned
14306         cases. Add detailed description in comments.
14307         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
14308         condition from TARGET_32BIT to TARGET_ARM.
14309
14310 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
14311
14312         * tree.h (struct typed_tree): New.
14313         (struct tree_common): Include it instead of tree_base.
14314         (TREE_TYPE): Update for new location of type field.
14315         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
14316         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
14317         (union tree_node): Add typed field.
14318         * treestruct.def (TS_TYPED): New.
14319         * lto-streamer.c (check_handled_ts_structures): Handle it.
14320         * tree.c (MARK_TS_TYPED): New macro.
14321         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
14322
14323 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
14324
14325         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
14326         (force_nonfallthru): Do not alter the loop nest if no basic block
14327         was created.
14328
14329 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
14330
14331         * config/i386/sse.md (VI): New mode iterator.
14332         (SSEMODEI): Remove.
14333         (AVX256MODEI): Ditto.
14334         (AVXMODEF4P): Ditto.
14335         (avxvecpsmode): Ditto.
14336         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
14337         (sse2_andnot<mode>3): New expander.
14338         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
14339         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
14340         (<any_logic:code><mode>3): Use VI mode iterator.
14341         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
14342         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
14343         (*andnottf3): Handle AVX three-operand constraints.
14344         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
14345
14346 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14347             Robert Millan  <rmh@gnu.org>
14348
14349         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
14350         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
14351         GNU_USER_DYNAMIC_LINKER64): Define.
14352         (REG_NAME): Don't undefine.
14353         (MD_UNWIND_SUPPORT): Undefine.
14354         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
14355         (REG_NAME): Don't undefine.
14356         (MD_UNWIND_SUPPORT): Undefine.
14357         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
14358
14359 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14360
14361         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
14362         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
14363
14364 2011-04-11  Xinliang David Li  <davidxl@google.com>
14365
14366         * value-profile.c (check_ic_target): New function.
14367         (gimple_ic_transform): Sanity check indirect call target.
14368         * gimple-low.c (gimple_check_call_args): Interface change.
14369         (gimple_check_call_matching_types): New function.
14370         * tree-inline.c (tree_can_inline_p): Call new function.
14371
14372 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
14373
14374         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
14375         tree-pretty-print.h & realmpfr.h.
14376
14377 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
14378
14379         PR middle-end/48464
14380         * ira.c (setup_pressure_classes): Fix typo in loop condition.
14381         (setup_allocno_and_important_classes): Ditto.
14382
14383 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14384
14385         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
14386         GNU_USER_DYNAMIC_LINKER.
14387         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
14388         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14389         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
14390         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14391         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14392         GNU_USER_TARGET_OS_CPP_BUILTINS.
14393         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
14394         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14395         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14396         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14397         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
14398         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14399         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14400         GNU_USER_TARGET_OS_CPP_BUILTINS.
14401         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14402         GNU_USER_DYNAMIC_LINKER.
14403         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14404         GNU_USER_TARGET_OS_CPP_BUILTINS.
14405         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
14406         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14407         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
14408         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14409         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
14410         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
14411         GNU_USER_DYNAMIC_LINKER64): Remove.
14412         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
14413         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14414         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14415         GNU_USER_DYNAMIC_LINKER.
14416         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14417         GNU_USER_TARGET_OS_CPP_BUILTINS.
14418         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14419         GNU_USER_TARGET_OS_CPP_BUILTINS.
14420         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
14421         to GNU_USER_TARGET_OS_CPP_BUILTINS.
14422         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14423         GNU_USER_TARGET_OS_CPP_BUILTINS.
14424         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
14425         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
14426         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14427         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
14428         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14429         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14430         GNU_USER_DYNAMIC_LINKER.
14431         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14432         GNU_USER_TARGET_OS_CPP_BUILTINS.
14433         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
14434         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14435         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14436         GNU_USER_DYNAMIC_LINKER.
14437         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14438         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14439         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
14440         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14441         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14442         GNU_USER_DYNAMIC_LINKER.
14443         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
14444         GNU_USER_DYNAMIC_LINKERN32.
14445         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
14446         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
14447         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
14448         GNU_USER_DYNAMIC_LINKER32.
14449         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
14450         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14451         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14452         GNU_USER_DYNAMIC_LINKER.
14453         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14454         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14455         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
14456         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14457         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14458         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
14459         GNU_USER_DYNAMIC_LINKER32.
14460         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14461         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
14462         GNU_USER_DYNAMIC_LINKER.
14463         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
14464         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14465         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14466         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
14467         GNU_USER_DYNAMIC_LINKER64.
14468         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
14469         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14470         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14471         GNU_USER_DYNAMIC_LINKER.
14472         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
14473         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14474         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14475         GNU_USER_DYNAMIC_LINKER.
14476         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
14477         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14478         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14479         GNU_USER_DYNAMIC_LINKER32.
14480         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14481         GNU_USER_DYNAMIC_LINKER64.
14482         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14483         GNU_USER_DYNAMIC_LINKER64.
14484         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
14485         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14486         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
14487         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14488         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14489
14490 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14491
14492         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
14493         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
14494         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
14495         GNU_USER_DYNAMIC_LINKER.
14496         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14497         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
14498         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
14499         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
14500         GNU_USER_DYNAMIC_LINKER64.
14501         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14502         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
14503         GNU_USER_LINK_EMULATION.
14504         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
14505         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
14506         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
14507         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
14508         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
14509         CPP_SPEC, CC1_SPEC): Remove.
14510         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
14511         (GNU_USER_DYNAMIC_LINKER): Define.
14512         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
14513         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
14514         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
14515         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
14516         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
14517         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
14518         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14519         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
14520         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
14521         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
14522         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
14523         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
14524         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
14525         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
14526         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
14527         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14528         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14529         GNU_USER_DYNAMIC_LINKER.
14530         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14531         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
14532         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14533         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
14534         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14535         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
14536         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
14537         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
14538         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
14539         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
14540
14541 2011-04-11  Kai Tietz  <ktietz@redhat.com>
14542
14543         PR target/9601
14544         PR target/11772
14545         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
14546         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
14547         comment.
14548         (ix86_is_msabi_thiscall): Removed.
14549         (ix86_is_type_thiscall): Likewise.
14550         (ix86_get_callcvt): New function.
14551         (ix86_comp_type_attributes): Simplify check.
14552         (ix86_function_regparm): Use ix86_get_callcvt for calling
14553         convention attribute checks.
14554         (ix86_return_pops_args): Likewise.
14555         (ix86_static_chain): Likewise.
14556         (x86_this_parameter): Likewise.
14557         (x86_output_mi_thunk): Likewise.
14558         (ix86_function_type_abi): Optimize check for types without attributes.
14559         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
14560         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
14561         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
14562         by flag-values.
14563         (IX86_BASE_CALLCVT): Helper macro.
14564         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
14565         Use ix86_get_callcvt for calling convention attribute checks and avoid
14566         symbol-decoration for stdcall in TARGET_RTD case.
14567         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
14568         Likewise.
14569         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
14570         for declaration.
14571
14572 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
14573
14574         * config/i386/sse.md (VI_128): New mode iterator.
14575         (VI12_128): Rename from SSEMODE12.
14576         (VI14_128): Rename from SSEMODE14.
14577         (VI124_128): New mode iterator.
14578         (VI24_128): Rename from SSEMODE248.
14579         (VI248_128): Rename from SSEMODE248.
14580         (SSEMODE124C8): Remove.
14581         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14582         (*sse2_<plusminus_insn><mode>3): Merge with
14583         *avx_<plusminus_insn><mode>3.
14584         (*mulv8hi3): Merge with *avx_mulv8hi3.
14585         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
14586         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
14587         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
14588         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
14589         (ashr<mode>3): Merge with *avx_ashr<mode>3.
14590         (lshr<mode>3): Merge with *avx_lshr<mode>3.
14591         (ashl<mode>3): Merge with *avx_ashl<mode>3.
14592         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
14593         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
14594         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14595         (*<smaxmin:code>v8hi3): Ditto.
14596         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
14597         (*<smaxmin:code>v16qi3): Ditto.
14598         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
14599         (*sse2_eq<mode>3): Ditto.
14600         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
14601         (*sse2_gt<mode>3): Ditto.
14602         (vcondv2di): Split out of vcond<mode>.
14603         (vconduv2di): Split out of vcondu<mode>.
14604
14605 2011-04-11  Richard Guenther  <rguenther@suse.de>
14606
14607         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
14608         before calling tree_low_cst.
14609
14610 2011-04-11  Richard Guenther  <rguenther@suse.de>
14611
14612         * stor-layout.c (layout_type): Compute all array index size operations
14613         in the original type.
14614         (initialize_sizetypes): Add comment.
14615         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
14616
14617 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14618
14619         * common.opt (Tbss=, Tdata=, Ttext=): New options.
14620
14621 2011-04-11  Martin Jambor  <mjambor@suse.cz>
14622
14623         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
14624         of cgraph_node, handle NULL return value.
14625         (cgraph_global_info): Likewise.
14626         (cgraph_rtl_info): Likewise.
14627         * tree-inline.c (estimate_num_insns): Likewise.
14628         * gimplify.c (unshare_body): Likewise.
14629         (unvisit_body): Likewise.
14630         (gimplify_body): Likewise.
14631         * predict.c (optimize_function_for_size_p): Likewise.
14632         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
14633         (call_may_clobber_ref_p_1): Likewise.
14634         * varasm.c (function_section_1): Likewise.
14635         (assemble_start_function): Likewise.
14636
14637 2011-04-11  Martin Jambor  <mjambor@suse.cz>
14638
14639         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
14640         of cgraph_node.
14641         * final.c (rest_of_clean_state): Likewise.
14642         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
14643         * passes.c (pass_init_dump_file): Likewise.
14644         (execute_all_ipa_transforms): Likewise.
14645         (function_called_by_processed_nodes_p): Likewise.
14646         * predict.c (maybe_hot_frequency_p): Likewise.
14647         (probably_never_executed_bb_p): Likewise.
14648         (compute_function_frequency): Likewise.
14649         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
14650         (unnest_nesting_tree_1): Likewise.
14651         (lower_nested_functions): Likewise.
14652         * tree-optimize.c (execute_fixup_cfg): Likewise.
14653         (tree_rest_of_compilation): Likewise.
14654         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
14655         * tree-sra.c (ipa_early_sra): Likewise.
14656         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
14657         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
14658         * ipa.c (record_cdtor_fn): Likewise.
14659         * ipa-inline.c (cgraph_early_inlining): Likewise.
14660         (compute_inline_parameters_for_current): Likewise.
14661         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
14662         * ipa-pure-const.c (local_pure_const): Likewise.
14663         * ipa-split.c (split_function): Likewise.
14664         (execute_split_functions): Likewise.
14665         * cgraphbuild.c (build_cgraph_edges): Likewise.
14666         (rebuild_cgraph_edges): Likewise.
14667         (cgraph_rebuild_references): Likewise.
14668         (remove_cgraph_callee_edges): Likewise.
14669         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
14670         (verify_cgraph_node): Likewise.
14671         (cgraph_analyze_functions): Likewise.
14672         (cgraph_preserve_function_body_p): Likewise.
14673         (save_inline_function_body): Likewise.
14674         (save_inline_function_body): Likewise.
14675         * tree-inline.c (copy_bb): Likewise.
14676         (optimize_inline_calls): Likewise.
14677
14678 2011-04-11  Martin Jambor  <mjambor@suse.cz>
14679
14680         PR tree-optimization/48195
14681         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
14682         ipa_check_create_edge_args.
14683         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
14684         ipa_check_create_edge_args.
14685         * ipa-inline.c (inline_generate_summary): Do not call
14686         ipa_check_create_node_params and ipa_check_create_edge_args.
14687         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
14688         ipa_check_create_edge_args.
14689
14690 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
14691
14692         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
14693         instead of loop.
14694         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
14695         * function.c (record_hard_reg_sets): Likewise.
14696         * ira.c (compute_regs_asm_clobbered): Likewise.
14697         * sched-deps.c (sched_analyze_1): Likewise.
14698         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
14699
14700 2011-04-09  Xinliang David Li  <davidxl@google.com>
14701
14702         PR tree-optimization/PR48484
14703         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
14704         has_valid_pred lazily
14705
14706 2011-04-09  Duncan Sands  <baldrick@free.fr>
14707
14708         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
14709
14710 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
14711
14712         * combine.c (combine_validate_cost): Adjust comments.  Set registered
14713         cost of I0 to zero at the end, if any.
14714
14715 2011-04-08  Xinliang David Li  <davidxl@google.com>
14716
14717         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
14718         to insane profile data.
14719
14720 2011-04-08  Xinliang David Li  <davidxl@google.com>
14721
14722         * ipa-cp.c (ipcp_update_profiling): Correct
14723          negative scale factor due to insane profile data.
14724
14725 2011-04-08  Xinliang David Li  <davidxl@google.com>
14726
14727         * final.c (dump_basic_block_info): New function.
14728         (final): Dump basic block.
14729         (final_scan_insn): Remove old dump.
14730
14731 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
14732
14733         PR target/47829
14734         * config.gcc (i386-*-freebsd): Disable unwind table generation for
14735         crtbegin/crtend.
14736
14737 2011-04-08  Michael Matz  <matz@suse.de>
14738
14739         PR middle-end/48389
14740         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
14741         functions.
14742         (rebuild_jump_labels): Call rebuild_jump_labels_1.
14743         * rtl.h (rebuild_jump_labels_chain): Declare.
14744         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
14745         insns inserted on edges.
14746
14747 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
14748
14749         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
14750         * config/arm/arm-arches.def: New.
14751         * config/arm/arm-opts.h: New.
14752         * config/arm/genopt.sh: New.
14753         * config/arm/arm-tables.opt: New (generated).
14754         * config/arm/arm.c (arm_handle_option, arm_target_help,
14755         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
14756         (all_architectures): Get most table contents from arm-arches.def.
14757         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
14758         arm_selected_tune here.
14759         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
14760         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
14761         (march=, mcpu=, mtune=): Use Enum and Var.
14762         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
14763         (arm.o): Update dependencies.
14764
14765 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
14766
14767         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
14768         of header_file.
14769         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
14770         (write_typed_alloc_defns): Likewise.
14771         (main): Calls write_typed_alloc_defns with output_header.
14772
14773 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
14774
14775         PR inline-asm/48435
14776         * ira-color.c (setup_profitable_hard_regs): Add comments.
14777         Don't take prohibited hard regs into account.
14778         (setup_conflict_profitable_regs): Rename to
14779         get_conflict_profitable_regs.
14780         (check_hard_reg_p): Check prohibited hard regs.
14781
14782 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
14783
14784         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
14785         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
14786         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
14787
14788 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14789
14790         PR target/48366
14791         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
14792         move from floating point to shift amount register.
14793         (emit_move_sequence): Remove secondary reload support for floating
14794         point to shift amount amount register copies.
14795         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
14796         amount register copies.
14797         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
14798         register, return false if mode isn't a scalar integer mode.
14799         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
14800
14801 2011-04-08  Richard Guenther  <rguenther@suse.de>
14802
14803         * gimple.c (gimple_call_flags): Remove kludge.
14804
14805 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
14806
14807         * sel-sched.c (sel_region_init): Move call to
14808         sel_setup_region_sched_flags after setup_current_loop_nest.
14809
14810 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
14811
14812         PR rtl-optimization/48272
14813         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
14814         init_insn_reg_pressure_info.  Adjust a caller.
14815         * sched-int.h (init_insn_reg_pressure_info): Declare.
14816         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
14817         when sched-pressure is enabled.
14818
14819 2011-04-08  Richard Guenther  <rguenther@suse.de>
14820
14821         * gimple.c (gimple_set_modified): Do not queue calls to
14822         MODIFIED_NORETURN_CALLS here ...
14823         * tree-ssa-operands.c (update_stmt_operands): ... but here.
14824
14825 2011-04-08  Richard Guenther  <rguenther@suse.de>
14826
14827         PR lto/48467
14828         * toplev.c (lang_dependent_init): Do not open asm_out_file
14829         in WPA mode, nor perform debug machinery initialization.
14830         (finalize): Do not unlink asm_out_file in WPA mode.
14831
14832 2011-04-08  Richard Guenther  <rguenther@suse.de>
14833
14834         * gimple.h (gimple_call_fntype): New function.
14835         (gimple_call_return_type): Use it.
14836         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
14837         * gimple-low.c (gimple_check_call_args): Likewise.
14838         * gimple.c (gimple_call_flags): Likewise.
14839         (gimple_call_arg_flags): Likewise.
14840         (gimple_call_return_flags): Likewise.
14841         * tree-cfg.c (verify_gimple_call): Likewise.
14842         (do_warn_unused_result): Likewise.
14843         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
14844         * value-prof.c (gimple_ic_transform): Fix fndecl check.
14845
14846 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
14847
14848         PR rtl-optimization/48235
14849         * sel-sched.c (code_motion_process_successors): Recompute the last
14850         insn in basic block if control flow changed.
14851         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
14852         Update condition for ilist_remove.
14853
14854 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
14855
14856         PR rtl-optimization/48302
14857         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
14858         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
14859         it to record added preheader blocks.
14860         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
14861         on to sel_add_loop_preheaders.
14862         (sel_region_init): Move call to setup_current_loop_nest after
14863         sel_init_bbs.
14864
14865 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
14866
14867         PR target/48273
14868         * cfgloop.h (loop_has_exit_edges): New helper.
14869         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
14870         non-clonable.
14871         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
14872         that have no exit edges.
14873
14874 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
14875
14876         PR rtl-optimization/48442
14877         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
14878         all callers.  Adjust assert.
14879
14880 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
14881
14882         PR tree-optimization/48377
14883         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
14884         is_packed to true even for types with smaller TYPE_ALIGN than
14885         TYPE_SIZE.
14886
14887 2011-04-08  Richard Guenther  <rguenther@suse.de>
14888
14889         PR bootstrap/48513
14890         * doc/tm.texi: Re-generate.
14891
14892 2011-04-08  Wei Guozhi  <carrot@google.com>
14893
14894         PR target/47855
14895         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
14896         * config/arm/arm.c (arm_attr_length_push_multi): New function.
14897         * config/arm/arm.md (*push_multi): Change the length computation to
14898         call a C function.
14899
14900 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
14901
14902         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
14903         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
14904         * doc/tm.texi: Regenerate.
14905         * system.h (ASM_OUTPUT_BSS): Poison.
14906         * varasm.c (asm_output_bss): Remove function.
14907         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
14908
14909         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
14910         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
14911         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
14912         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14913         Likewise.
14914         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14915         Likewise.
14916         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14917         Likewise.
14918         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
14919
14920 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
14921
14922         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
14923         EnumValue lines.
14924
14925 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
14926
14927         * config/m68k/m68k.c (m68k_handle_option): Don't handle
14928         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
14929         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
14930         OPT_mcpu32.
14931         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14932         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
14933         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
14934         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
14935         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
14936         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
14937         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
14938         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
14939         options.  Don't map other m68k options manually.  Don't handle
14940         old-style options as canonical.
14941         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
14942         * doc/install.texi (m68k-*-*): Document binutils version requirement.
14943
14944 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
14945
14946         * basic-block.h (force_nonfallthru): Move to...
14947         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
14948         (force_nonfallthru): ...here.
14949         * cfghooks.c (force_nonfallthru): New function.
14950         * cfgrtl.c (force_nonfallthru): Rename into...
14951         (rtl_force_nonfallthru): ...this.
14952         (commit_one_edge_insertion): Do not set AUX field.
14953         (commit_edge_insertions): Do not discover new basic blocks.
14954         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
14955         (cfg_layout_rtl_cfg_hooks): Likewise.
14956         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
14957         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
14958         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
14959
14960 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
14961
14962         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
14963         Remove macros.
14964
14965 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
14966
14967         * config/i386/sse.md: Update copyright year.
14968         (avxcvtvecmode): Remove.
14969         (sse_movhlps): Merge with *avx_movhlps.
14970         (sse_movlhps): Merge with *avx_movlhps.
14971         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
14972         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
14973         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
14974         (sse_loadhps): Merge with *avx_loadhps.
14975         (sse_storelps): Merge with *avx_storelps.
14976         (sse_loadlps): Merge with *avx_loadlps.
14977         (sse_movss): Merge with *avx_movss.
14978         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
14979         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
14980         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
14981         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
14982         (vec_set<mode>_0): Ditto.
14983         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
14984         (sse4_1_insertps): Merge with *avx_insertps.
14985         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
14986         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
14987         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
14988         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
14989         (sse2_storehpd): Merge with *avx_storehpd.
14990         (sse2_loadhpd): Merge with *avx_loadhpd.
14991         (sse2_loadlpd): Merge with *avx_loadlpd.
14992         (sse2_movsd): Merge with *avx_movsd.
14993         (*vec_concatv2df): Merge with *vec_concatv2df.
14994
14995 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
14996
14997         PR debug/48343
14998         * combine.c (combine_instructions): Add last_combined_insn,
14999         update it if insn is after it, pass it to all try_combine calls.
15000         (try_combine): Add last_combined_insn parameter, pass it instead of
15001         i3 to propagate_for_debug.
15002
15003 2011-04-07  Nick Clifton  <nickc@redhat.com>
15004
15005         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
15006         to handle MDR <-> data register transfers.
15007         (movhi_internal): Likewise.
15008
15009 2011-04-07  Alan Modra  <amodra@gmail.com>
15010
15011         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
15012         previous stack info.
15013
15014 2011-04-07  Tom de Vries  <tom@codesourcery.com>
15015
15016         PR target/43920
15017         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
15018         flow_find_cross_jump.  Swap variables to implement backward replacement.
15019         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
15020
15021 2011-04-07  Tom de Vries  <tom@codesourcery.com>
15022
15023         PR target/43920
15024         * cfgcleanup.c (walk_to_nondebug_insn): New function.
15025         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
15026         and bb2.
15027         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
15028         src1 or src2.  Redirect edges to the last basic block.  Update
15029         frequency and count on multiple basic blocks in case of fallthru.
15030
15031 2011-04-07  Tom de Vries  <tom@codesourcery.com>
15032
15033         PR target/43920
15034         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
15035         function.
15036         (old_insns_match_p): Change return type.  Replace return false/true
15037         with return dir_none/dir_both.  Use can_replace_by.
15038         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
15039         direction from dir_p.  Register replacement direction in dir, last_dir
15040         and afterlast_dir.  Handle new return type of old_insns_match_p using
15041         merge_dir.  Return replacement direction in dir_p.
15042         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
15043         return type of old_insns_match_p.
15044         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
15045         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
15046         flow_find_cross_jump.
15047         * basic-block.h (enum replace_direction): New type.
15048         (flow_find_cross_jump): Add parameter to declaration.
15049
15050 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
15051
15052         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
15053         (AVXMODEDCVTPS2DQ): Ditto.
15054         (VEC_FLOAT_MODE): Ditto.
15055         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
15056         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
15057         (<any_logic:code><mode>3): Use VF mode iterator.
15058         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
15059         Use VF mode iterator.
15060         (copysign<mode>3): Use VF mode iterator.
15061         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
15062         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
15063         (*<any_logic:code><MODEF:mode>3): Merge with
15064         *avx_<any_logic:code><MODEF:mode>3.
15065         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
15066         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
15067         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
15068         (avx_cvtdq2ps<avxmodesuffix>): Remove.
15069         (sse2_cvtdq2ps): Use %v modifier.
15070         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
15071         (avx_cvtps2dq<avxmodesuffix>): Remove.
15072         (sse2_cvtps2dq): Use %v modifier.
15073         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
15074         (avx_cvttps2dq<avxmodesuffix>): Remove.
15075         (sse2_cvttps2dq): Use %v modifier.
15076         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
15077         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
15078         (sse2_cvtsd2siq): Fix insn template.
15079         (sse2_cvtsd2siq_2): Ditto.
15080         (sse2_cvttsd2siq): Ditto.
15081         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
15082         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
15083
15084 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
15085
15086         * gcov-io.c: Use GCC Runtime Library Exception.
15087
15088 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
15089
15090         PR debug/48466
15091         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
15092         as base_reg whatever register reg has been eliminated to, instead
15093         of hardcoding STACK_POINTER_REGNUM.
15094
15095 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
15096
15097         * doc/tm.texi.in: Document C target hooks as separate from general
15098         target hooks.
15099         * doc/tm.texi: Regenerate.
15100         * genhooks.c (struct hook_desc): Add docname field.
15101         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
15102         docname field.
15103         (hook_array): Include c-target.def.
15104         (emit_documentation): Use docname field in output.
15105         (emit_init_macros): Take docname argument.  Only emit definitions
15106         for hooks matching docname.
15107         (main): Expect additional arguments in all cases.  Pass argument
15108         to emit_init_macros.
15109         * target.def: Move initial macro definitions and comments to
15110         target-hooks-macros.h.
15111         (gcc_targetcm): Move to c-family/c-target.def.
15112         * target.h (targetcm): Move declaration to c-family/c-target.h.
15113         * targhooks.c (default_handle_c_option): Move to
15114         c-family/c-opts.c.
15115         * targhooks.h (default_handle_c_option): Move declaration to
15116         c-family/c-common.h.
15117         * target-hooks-macros.h: New file.
15118         * config.gcc (target_has_targetcm): Define and use to add to
15119         c_target_objs and cxx_target_objs.
15120         * config/default-c.c: New file.
15121         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
15122         of target.h and target-def.h.
15123         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
15124         (darwin_objc_construct_string, darwin_cfstring_ref_p,
15125         darwin_check_cfstring_format_arg): Make static.
15126         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
15127         TARGET_STRING_OBJECT_REF_TYPE_P,
15128         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
15129         * config/darwin-protos.h (darwin_objc_construct_string,
15130         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
15131         declare.
15132         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
15133         TARGET_STRING_OBJECT_REF_TYPE_P,
15134         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
15135         * config/t-darwin (darwin-c.o): Update dependencies.
15136         * system.h (TARGET_HAS_TARGETCM): Poison.
15137         * Makefile.in (TARGET_H): Update.
15138         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
15139         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
15140         (default-c.o): New target.
15141         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
15142         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
15143         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
15144         c-target.def.
15145         (build/genhooks.o): Update dependencies.
15146
15147 2011-04-06  Richard Guenther  <rguenther@suse.de>
15148
15149         * ipa-inline.c (enum inlining_mode): Remove.
15150         (cgraph_flatten): Use some other token.
15151         (cgraph_edge_early_inlinable_p): New function, split out from ...
15152         (cgraph_perform_always_inlining): New function, split out from ...
15153         (cgraph_decide_inlining_incrementally): ... here.
15154         (cgraph_mark_inline_edge): Adjust.
15155         (cgraph_early_inlining): Re-structure.
15156         (pass_early_inline): Require SSA form.
15157
15158 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
15159             Julian Brown  <julian@codesourcery.com>
15160             Mark Shinwell  <shinwell@codesourcery.com>
15161
15162         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
15163         LO_REGS only for Thumb-1.
15164         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
15165         be used in short instructions when optimising for size on Thumb-2.
15166
15167 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
15168
15169         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
15170         associated with user returns to be preserved.
15171
15172 2011-04-06  Tristan Gingold  <gingold@adacore.com>
15173
15174         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
15175         symbol_queue_size, DBXOUT_DECR_NESTING,
15176         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
15177         if XCOFF_DEBUGGING_INFO.
15178
15179 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
15180
15181         * config/i386/i386.md (attribute isa): New.
15182         (attribute enabled): New.
15183         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
15184         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
15185         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
15186         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
15187         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
15188         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15189         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
15190         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
15191
15192         * config/i386/sse.md (VF): New mode iterator.
15193         (VF1): Ditto.
15194         (VF2): Ditto.
15195         (VF_128): Ditto.
15196         (SSEMODEF4): Remove.
15197         (attribute sse): Handle V8SF and V4DF modes.
15198         (<absneg:code><mode>2): Use VF mode iterator.
15199         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
15200         mode iterator.
15201         (<plusminus_insn><mode>3): Use VF mode iterator.
15202         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
15203         Use VF mode iterator.
15204         (<sse>_vm<plusminus_insn><mode>3): Merge with
15205         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
15206         (mul<mode>3): Use VF mode iterator.
15207         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
15208         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
15209         mode iterator.
15210         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
15211         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
15212         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
15213         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
15214         mode iterator.
15215         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
15216         Use VF1 mode iterator.
15217         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
15218         (sqrt<VF2:mode>2): New expander.
15219         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
15220         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
15221         and sqrtv2df2.  Use VF mode iterator.
15222         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
15223         mode iterator.
15224         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
15225         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
15226         Use VF1 mode iterator.
15227         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
15228         (<smaxmin:code><mode>3): Use VF mode iterator.
15229         (*<smaxmin:code><mode>3_finite): Merge with
15230         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
15231         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15232         (<sse>_vm<smaxmin:code><mode>2): Merge with
15233         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
15234         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
15235         mode iterator.
15236         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
15237         mode iterator.
15238         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
15239         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
15240         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
15241         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
15242         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
15243         VF mode iterator.
15244         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
15245         Use VF_128 mode iterator.
15246         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
15247         mode iterator.
15248         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
15249         VF_128 mode iterator.
15250         (vcond<mode>): Use VF mode iterator.
15251         * config/i386/predicates.md (sse_comparison_operator): Merge with
15252         avx_comparison_float_operator.  Do not declare as special_predicate.
15253         * config/i386/i386.c (struct builtin_description): Update for renamed
15254         compare patterns.
15255         (ix86_expand_args_builtin): Ditto.
15256         (ix86_expand_sse_compare_mask): Ditto.
15257
15258 2011-04-06  Richard Guenther  <rguenther@suse.de>
15259
15260         * tree-inline.c (estimate_num_insns): For calls simply account
15261         for all passed arguments and a used return value.
15262
15263 2011-04-06  Richard Guenther  <rguenther@suse.de>
15264
15265         PR tree-optimization/47663
15266         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
15267         call_stmt_time fields.
15268         (cgraph_edge_inlinable_p): Declare.
15269         (cgraph_edge_recursive_p): New inline function.
15270         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
15271         (cgraph_clone_edge): Copy it.
15272         * ipa-inline.c (cgraph_estimate_edge_time): New function.
15273         Account for call stmt time.
15274         (cgraph_estimate_time_after_inlining): Take edge argument.
15275         (cgraph_estimate_edge_growth): Account call stmt size.
15276         (cgraph_estimate_size_after_inlining): Take edge argument.
15277         (cgraph_mark_inline_edge): Adjust.
15278         (cgraph_check_inline_limits): Likewise.
15279         (cgraph_recursive_inlining_p): Remove.
15280         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
15281         (cgraph_decide_recursive_inlining): Take edge argument and
15282         adjust.
15283         (cgraph_decide_inlining_of_small_functions): Do not avoid
15284         diags for recursive inlining here.
15285         (cgraph_flatten): Adjust.
15286         (cgraph_decide_inlining_incrementally): Likewise.
15287         (estimate_function_body_sizes): Remove call cost handling.
15288         (compute_inline_parameters): Initialize caller edge call costs.
15289         (cgraph_estimate_edge_growth): New function.
15290         (cgraph_estimate_growth): Use it.
15291         (cgraph_edge_badness): Likewise.
15292         (cgraph_check_inline_limits): Take an edge argument.
15293         (cgraph_decide_inlining_of_small_functions): Adjust.
15294         (cgraph_decide_inlining): Likewise.
15295         * tree-inline.c (estimate_num_insns): Only account for call
15296         return value if it is used.
15297         (expand_call_inline): Avoid diagnostics on recursive inline
15298         functions here.
15299         * lto-cgraph.c (lto_output_edge): Output edge call costs.
15300         (input_edge): Input edge call costs.
15301
15302 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15303
15304         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
15305
15306 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
15307
15308         * doc/invoke.texi (Spec Files): Fix typo.
15309
15310 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
15311
15312         * profile.c (branch_prob): Move declaration of local variable.  Remove
15313         obsolete ??? comment.  Expand the location explicitly instead of using
15314         the LOCATION_FILE and LOCATION_LINE macros.
15315
15316 2011-04-06  Wei Guozhi  <carrot@google.com>
15317
15318         PR target/47855
15319         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
15320         (arm_cond_branch): Likewise.
15321         (arm_cond_branch_reversed): Likewise.
15322         (arm_jump): Likewise.
15323         (push_multi): Likewise.
15324         * config/arm/constraints.md (Py): New constraint.
15325
15326 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15327
15328         PR bootstrap/48471
15329         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
15330         Move these...
15331         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
15332         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
15333         #ifdef DBX_DEBUGGING_INFO.
15334
15335 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
15336
15337         PR bootstrap/48403
15338         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
15339         if old and new states differ.
15340
15341 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
15342
15343         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
15344         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
15345         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
15346         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
15347         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
15348         mcfv4e): Use Alias.
15349         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
15350         ColdFire options to -mcpu= options.
15351
15352 2011-04-05  Jeff Law  <law@redhat.com>
15353
15354         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
15355         check if BB is a successor of LOOP->header and return
15356         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
15357
15358 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
15359
15360         * cprop.c (struct reg_use): Remove.
15361         (reg_use_table): Make an array of RTX.
15362         (find_used_regs, constprop_register, local_cprop_pass,
15363         bypass_block): Simplify users of reg_use_table.
15364         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
15365         on one of the uses found by find_used_regs.
15366
15367 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15368
15369         PR bootstrap/48469
15370         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
15371         declaration.
15372
15373 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15374
15375         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
15376         as an rtx.
15377         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
15378
15379 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
15380
15381         PR middle-end/48441
15382         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
15383
15384 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15385
15386         * combine.c: Include obstack.h.
15387         (struct insn_link): Define.
15388         (uid_log_links): Adjust type.
15389         (FOR_EACH_LOG_LINK): New macro.
15390         (insn_link_obstack): Declare.
15391         (alloc_insn_link): Define.
15392         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
15393         type of link variables.
15394         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
15395         (try_combine, record_promoted_values, distribute_notes): Likewise.
15396         (distribute_links): Likewise.  Tweak prototype.
15397         (clear_log_links): Delete.
15398         (adjust_for_new_dest): Call alloc_insn_link.
15399         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
15400
15401 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15402
15403         * gcse.c (modify_mem_list): Convert to an array of VECs.
15404         (canon_modify_mem_list, compute_transp): Tweak formatting.
15405         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
15406         (load_killed_in_block_p): Likewise.
15407         (record_last_mem_set_info): Likewise.
15408         (clear_modify_mem_tables): Likewise.
15409
15410 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15411
15412         PR middle-end/48461
15413         * function.c (emit_use_return_register_into_block): Only define if
15414         HAVE_return.
15415
15416 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
15417
15418         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
15419
15420 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
15421
15422         * config/rx/rx-opts.h: New.
15423         * config/rx/rx.c (rx_cpu_type): Remove.
15424         (rx_handle_option): Don't assert that global structures are in
15425         use.  Access variables via opts pointer.  Defer most handling of
15426         OPT_mint_register_.  Use error_at.
15427         (rx_option_override): Handle deferred OPT_mint_register_ here.
15428         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
15429         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
15430         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
15431         (rx_cpu_types): New Enum and EnumValue entries.
15432         (mint-register=): Use Defer and use Var accordingly.
15433
15434 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15435
15436         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
15437         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
15438         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
15439         Move these...
15440         (debug_free_queue, debug_nesting, symbol_queue_index):
15441         ...and these...
15442         * dbxout.c: ...to here.  Make static.
15443
15444 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15445
15446         * gcse.c (modify_pair): Define.  Define a VEC of it.
15447         (canon_modify_mem_list): Convert to an array of VECs.
15448         (free_insn_expr_list_list): Delete.
15449         (clear_modify_mem_tables): Call VEC_free instead.
15450         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
15451         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
15452         (canon_list_insert, compute_transp): Likewise.
15453
15454 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15455
15456         PR target/43920
15457         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
15458         for size.
15459
15460 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15461
15462         PR target/43920
15463         * function.c (emit_use_return_register_into_block): New function.
15464         (thread_prologue_and_epilogue_insns): Use
15465         emit_use_return_register_into_block.
15466
15467 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15468
15469         PR target/43920
15470         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
15471         insn.
15472
15473 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15474
15475         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
15476
15477 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
15478
15479         * config/arm/arm.md (define_constants for unspec): Replace with
15480         define_c_enum.
15481         (define_constants for unspecv): Replace with define_c_enum.
15482         * config/arm/neon.md (define_constants for unspec): Replace with
15483         define_c_enum.
15484
15485 2011-04-04  Richard Henderson  <rth@redhat.com>
15486
15487         PR bootstrap/48400
15488         * dwarf2out.c (output_line_info): Always emit line info from
15489         at least one section.
15490         (dwarf2out_init): Create text_section_line_info here ...
15491         (set_cur_line_info_table): ... not here.
15492
15493 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
15494
15495         PR target/48380
15496         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
15497         not called.
15498
15499         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
15500
15501 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
15502
15503         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
15504         (expr_equiv_p): Remove.
15505         (insert_set_in_table): Look at <dest, src> pair instead of expr.
15506         (hash_scan_set): Update call to insert_set_in_table.
15507         (dump_hash_table): Dump <dest, src> pair.
15508         (lookup_set): Simplify.  Lookup <dest, src> pair.
15509         (compute_transp): Remove, fold heavily simplified code into...
15510         (compute_local_properties): ...here.  Expect COMP and TRANSP
15511         unconditionally.
15512         (find_avail_set): Take set directly from struct expr.
15513         (find_bypass-set): Likewise.
15514         (bypass_block): Likewise.
15515         (cprop_insn): Likewise.  Remove redundant INSN_P test.
15516
15517         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
15518         checks on form of COND from find_implicit_sets to here.
15519         (find_implicit_sets): Cleanup control flow. Split critical edges
15520         if it exposes implicit sets.  Allocate/resize implicit_sets as
15521         necessary.
15522         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
15523         changed something.  Run df_analyze after find_implicit_sets if any
15524         edges were split.  Do not allocate implicit_sets here.
15525
15526         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
15527         (gcse_obstack): Renamed to cprop_obstack.
15528         (GNEW, GNEWVEC, GNEWVAR): Remove.
15529         (gmalloc): Remove.
15530         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
15531         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
15532         (gcse_alloc): Likewise, and rename to cprop_alloc.
15533         (alloc_gcse_men, free_gcse_mem): Remove.
15534         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
15535         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
15536         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
15537
15538         * cprop.c (oprs_not_set_p): Remove.
15539         (mark_set, mark_clobber): Remove.
15540         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
15541         (reg_not_set_p): New function.
15542         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
15543         (cprop_insn): Likewise.
15544         (cprop_jump): Use FOR_EACH_EDGE.
15545
15546 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
15547
15548         PR bootstrap/48403
15549         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
15550         (rank_for_schedule): Use scheduled_insns vector instead of
15551         last_scheduled_insn.
15552         (ok_for_early_queue_removal): Likewise.
15553         (queue_to_ready): Search forward in nonscheduled_insns_begin if
15554         we have a dbg_cnt.
15555         (choose_ready): Likewise.
15556         (commit_schedule): Use VEC_iterate.
15557         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
15558         a dbg_cnt, use it and ensure the first insn is in the ready list.
15559         (haifa_sched_init): Allocate scheduled_insns.
15560         (sched_extend_ready_list): Don't allocate it; reserve space.
15561         (haifa_sched_finish): Free it.
15562
15563 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
15564
15565         * optc-gen.awk: Always remove type from Variable entry before
15566         recording in var_seen.
15567
15568 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
15569
15570         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
15571         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
15572         call to tidy_fallthru_edges.
15573
15574 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
15575
15576         * doc/options.texi (ToLower): Document.
15577         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
15578         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
15579         * opts.h (cl_option): Add cl_tolower field.
15580         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
15581         arguments with lowercase strings.
15582         * config/rx/rx.opt (mcpu=): Add ToLower.
15583         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
15584         argument.
15585
15586 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
15587
15588         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
15589
15590 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
15591
15592         * config/vax/vax.c: Include reload.h.
15593
15594 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
15595
15596         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
15597         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
15598         (sparc_preferred_reload_class): New function.
15599
15600 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
15601
15602         PR debug/48401
15603         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15604         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
15605
15606 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
15607
15608         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
15609         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
15610
15611 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
15612
15613         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
15614         (ASM_OUTPUT_ALIGNED_BSS): Define.
15615
15616 2011-04-03  Michael Matz  <matz@suse.de>
15617
15618         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
15619         and next_slot members.
15620         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
15621         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
15622         (lto_streamer_cache_append): Declare.
15623         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
15624         unsigned index, remove offset parameter, ensure that we append
15625         or update existing entries.
15626         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
15627         parameter, update next_slot for append.
15628         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
15629         parameter.
15630         (lto_streamer_cache_insert_at): Likewise.
15631         (lto_streamer_cache_append): New function.
15632         (lto_streamer_cache_lookup): Use unsigned index.
15633         (lto_streamer_cache_get): Likewise.
15634         (lto_record_common_node): Don't test tree_node_can_be_shared.
15635         (preload_common_node): Adjust call to lto_streamer_cache_insert.
15636         (lto_streamer_cache_delete): Don't free offsets member.
15637         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
15638         (lto_output_string_with_length): Use lto_output_data_stream.
15639         (lto_output_tree_header): Remove ix parameter, don't write it.
15640         (lto_output_builtin_tree): Likewise.
15641         (lto_write_tree): Adjust callers to above, don't track and write
15642         offset, write unsigned index.
15643         (output_unreferenced_globals): Don't emit all global vars.
15644         (write_global_references): Use unsigned indices.
15645         (lto_output_decl_state_refs): Likewise.
15646         (write_symbol): Likewise.
15647         * lto-streamer-in.c (lto_input_chain): Move earlier.
15648         (input_function): Use unsigned index.
15649         (input_alias_pairs): Don't read and then ignore all global vars.
15650         (lto_materialize_tree): Remove ix_p parameter, don't read index,
15651         don't pass it back, use lto_streamer_cache_append.
15652         (lto_register_var_decl_in_symtab): Use unsigned index.
15653         (lto_register_function_decl_in_symtab): Likewise.
15654         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
15655         index.
15656         (lto_get_builtin_tree): Don't read index, use
15657         lto_streamer_cache_append.
15658         (lto_read_tree): Adjust call to lto_materialize_tree.
15659
15660         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
15661         don't use function calls in arguments to MIN.
15662
15663         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
15664         twice.
15665
15666         * gimple.c (gimple_type_leader_entry): Mark deletable.
15667
15668 2011-04-03  Alan Modra  <amodra@gmail.com>
15669
15670         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
15671
15672 2011-04-03  Michael Matz  <matz@suse.de>
15673
15674         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
15675         an integer.
15676         * tree.h (tree_decl_non_common.vindex): Adjust comment.
15677
15678 2011-04-03  Michael Matz  <matz@suse.de>
15679
15680         * cgraphbuild.c (record_reference): Canonicalize constructor values.
15681         * gimple-fold.c (canonicalize_constructor_val): Accept being called
15682         without function context.
15683         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
15684         current_function_decl and cfun.
15685
15686 2011-04-03  Michael Matz  <matz@suse.de>
15687
15688         * tree.c (decl_init_priority_insert): Don't create entry for
15689         default priority.
15690         (decl_fini_priority_insert): Ditto.
15691         (fields_compatible_p, find_compatible_field): Remove.
15692         * tree.h (fields_compatible_p, find_compatible_field): Remove.
15693         * gimple.c (gimple_compare_field_offset): Adjust block comment.
15694
15695 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
15696
15697         * combine.c (try_combine): Remove useless local variable.
15698
15699 2011-04-03  Richard Guenther  <rguenther@suse.de>
15700             Ira Rosen  <ira.rosen@linaro.org>
15701
15702         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
15703         non-variable offsets and compare the remaining bases of the two
15704         accesses instead of looking for exact same data-ref.
15705
15706 2011-04-02  Kai Tietz  <ktietz@redhat.com>
15707
15708         PR target/48416
15709         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
15710
15711         * i386.c (ix86_is_msabi_thiscall): New helper function.
15712         (ix86_is_type_thiscall): New helper function.
15713         (ix86_comp_type_attributes): Handle thiscall for method-functions
15714         special.
15715         (init_cumulative_args): Likewise.
15716         (find_drap_reg): Likewise.
15717         (ix86_static_chain): Likewise.
15718         (x86_this_parameter): Likewise.
15719         (x86_output_mi_thunk): Likewise.
15720
15721 2011-04-01  Olivier Hainque  <hainque@adacore.com>
15722             Nicolas Setton  <setton@adacore.com>
15723             Eric Botcazou  <ebotcazou@adacore.com>
15724
15725         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
15726         (add_gnat_descriptive_type_attribute): New function.
15727         (gen_array_type_die): Call it.
15728         (gen_enumeration_type_die): Likewise.
15729         (gen_struct_or_union_type_die): Likewise.
15730         (modified_type_die): Likewise.
15731         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
15732         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
15733         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
15734
15735 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
15736
15737         PR bootstrap/48148
15738         * dwarf2out.c (resolve_addr): Don't call force_decl_die
15739         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
15740
15741         Revert:
15742         2011-03-17  Richard Guenther  <rguenther@suse.de>
15743
15744         PR bootstrap/48148
15745         * lto-cgraph.c (input_overwrite_node): Clear the abstract
15746         origin for decls in other ltrans units.
15747         (input_varpool_node): Likewise.
15748
15749 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
15750
15751         PR middle-end/48335
15752         * expr.c (expand_assignment): Handle all possibilities
15753         if TO_RTX is CONCAT.
15754         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
15755         (store_split_bit_field): If SUBREG_REG (op0) or
15756         op0 itself has smaller mode than word, return it
15757         for offset 0 and const0_rtx for out-of-bounds stores.
15758         If word is const0_rtx, skip it.
15759
15760 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
15761
15762         * config/h8300/h8300.c (print_operand_address): Rename to...
15763         (h8300_print_operand_address): ...this. Make static. Adjust comments.
15764         Call h8300_print_operand and h8300_print_operand_address instead of
15765         print_operand and print_operand_address. Declare.
15766         (print_operand): Renake to...
15767         (h8300_print_operand): ...this. Make static. Adjust comments.
15768         Call h8300_print_operand instead of print_operand. Declare.
15769         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
15770         (h8300_register_move_cost): Likewise.
15771         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
15772         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
15773         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
15774         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
15775         * config/h8300/h8300-protos.h (print_operand): Delete.
15776         (print_operand_address): Delete.
15777
15778 2011-04-01  Richard Henderson  <rth@redhat.com>
15779
15780         PR 48400
15781         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
15782         in strict mode before dwarf4.  Re-order tests to early out
15783         before switching sections.
15784
15785 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
15786
15787         * config/h8300/constraints.md: New file.
15788         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
15789         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
15790         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
15791         * config/h8300/predicates.md (bit_operand): Likewise.
15792         (incdec_operand): Use satisfies_constraint_M and
15793         satisfies_constraint_O.  Don't use C code block.
15794         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
15795         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
15796         (compute_mov_length): Use satisfies_constraint_G.
15797         (fix_bit_operand): Use satisfies_constraint_U.
15798         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
15799         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
15800         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
15801         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
15802         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
15803         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
15804         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15805         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
15806         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
15807         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
15808         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
15809         (EXTRA_MEMORY_CONSTRAINT): Delete.
15810
15811 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
15812             Michael Meissner  <meissner@linux.vnet.ibm.com>
15813
15814         PR target/48262
15815         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
15816         operands, as per the specifications.
15817
15818         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
15819         (vec_extract_evenv4sf): Ditto.
15820         (vec_extract_evenv8hi): Ditto.
15821         (vec_extract_evenv16qi): Ditto.
15822         (vec_extract_oddv4si): Ditto.
15823
15824 2011-03-31  Mark Wielaard  <mjw@redhat.com>
15825
15826         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
15827         high_pc attribute if the CU has no associated code. Only output
15828         DW_AT_entry_pc for CU if not generating strict dwarf and
15829         dwarf_version < 4.
15830
15831 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
15832
15833         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
15834         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
15835         out of ...
15836         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
15837         * final.c (final_start_function): Call the new function rather
15838         than using a NULL argument for dwarf2out_frame_debug.
15839
15840         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
15841         that contains the prologue.
15842
15843         * haifa-sched.c (queue_insn): New arg REASON.  All callers
15844         changed.  Print it in debugging output.
15845
15846         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
15847
15848         * sched-ebb.c (begin_schedule_ready): Remove second argument.
15849         Split most of the code into...
15850         (begin_move_insn): ... here.  New function.
15851         (ebb_sched_info): Add a pointer to it.
15852         * haifa-sched.c (scheduled_insns): New static variable.
15853         (sched_extend_ready_list): Allocate it.
15854         (schedule_block): Use it to record the order of scheduled insns.
15855         Perform RTL changes to move insns only after all scheduling
15856         decisions have been made.
15857         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
15858         begin_move_insn field.
15859         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
15860         * sched-int.h (struct haifa_sched_info): Remove second argument
15861         from begin_schedule_ready hook.  Add new member begin_move_insn.
15862         * sched-rgn.c (begin_schedule_ready): Remove second argument.
15863         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
15864
15865         * haifa-sched.c (prune_ready_list): New function, broken out of
15866         schedule_block.
15867         (schedule_block): Use it.
15868
15869 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15870
15871         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
15872
15873 2011-04-01  Kai Tietz  <ktietz@redhat.com>
15874
15875         * config.gcc (*-*-mingw*): Allow as option the
15876         posix threading model.
15877         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
15878         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
15879         definition.
15880         (CPP_SPEC): Add pthread/no-pthread handling.
15881         (LIB_SPEC): Likewise.
15882         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
15883         (LIB_SPEC): Likewise.
15884         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
15885         flag to pass -pthread option for shared libgcc build.
15886         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
15887         for shared libgcc build.
15888         * config/i386/t-mingw-pthread: New file.
15889         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
15890         New define to enable use of library pthread by default.
15891         * config/i386/mingw.opt (pthread): New driver option.
15892         (no-pthread): New driver option.
15893         * config/i386/cygming.opt: Make sure trailing empty line is retained.
15894         * config/i386/mingw-w64.opt: Likewise.
15895
15896 2011-04-01  Gary Funck  <gary@intrepid.com>
15897
15898         * c-decl.c (grokdeclarator): Fix formatting.
15899
15900 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
15901
15902         * expr.c (emit_block_move_via_movmem): Use n_generator_args
15903         instead of n_operands.
15904         (set_storage_via_setmem): Likewise.
15905         * optabs.c (maybe_gen_insn): Likewise.
15906         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
15907         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
15908         (mips_expand_builtin_direct): Likewise.
15909         * config/spu/spu.c (expand_builtin_args): Likewise.
15910
15911 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
15912
15913         * recog.h (insn_data_d): Add n_generator_args.
15914         * genoutput.c (data): Likewise.
15915         (output_insn_data): Print it.
15916         (max_opno, num_dups): Delete.
15917         (scan_operands): Just fill in "d->operand[...]".
15918         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
15919
15920 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
15921
15922         * gensupport.h (pattern_stats): New structure.
15923         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
15924         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
15925         (max_operand_1, max_operand_vec): Delete.
15926         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
15927
15928 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
15929
15930         * emit-rtl.c (emit_pattern_after_setloc): New function.
15931         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
15932         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
15933         (emit_pattern_after): New function.
15934         (emit_insn_after, emit_jump_insn_after): Call it.
15935         (emit_call_insn_after, emit_debug_insn_after): Likewise.
15936         (emit_pattern_before_setloc): New function.
15937         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
15938         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
15939         Likewise.
15940         (emit_pattern_before): New function.
15941         (emit_insn_before, emit_jump_insn_before): Call it.
15942         (emit_call_insn_before, emit_debug_insn_before): Likewise.
15943
15944 2011-03-31  Richard Henderson  <rth@redhat.com>
15945
15946         * dwarf2out.c (dw_separate_line_info_ref): Remove.
15947         (dw_separate_line_info_entry): Remove.
15948         (enum dw_line_info_opcode): New.
15949         (dw_line_info_entry): Use it.
15950         (dw_line_info_table, dw_line_info_table_p): New.
15951         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
15952         (line_info_table, line_info_label_num): Remove.
15953         (line_info_table_in_use): Remove.
15954         (separate_line_info_table): Remove.
15955         (separate_line_info_table_allocated): Remove.
15956         (separate_line_info_table_in_use): Remove.
15957         (LINE_INFO_TABLE_INCREMENT): Remove.
15958         (line_info_label_num): New.
15959         (cur_line_info_table): New.
15960         (text_section_line_info, cold_text_section_line_info): New.
15961         (separate_line_info): New.
15962         (SEPARATE_LINE_CODE_LABEL): Remove.
15963         (print_dwarf_line_table): Remove.
15964         (debug_dwarf): Don't dump it.
15965         (output_one_line_info_table): New.
15966         (output_line_info): Use it.
15967         (new_line_info_table): New.
15968         (set_cur_line_info_table): New.
15969         (dwarf2out_switch_text_section): Use it.
15970         (dwarf2out_begin_function): Likewise.
15971         (push_dw_line_info_entry): New.
15972         (dwarf2out_source_line): Rewrite for new line info tables.
15973         (dwarf2out_init): Remove dead initailizations.
15974
15975 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
15976
15977         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
15978         various flags.
15979         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
15980         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
15981         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
15982         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
15983         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
15984         * opt-functions.awk (flag_init, switch_bit_fields): New.
15985         (switch_flags): Don't handle flags moved to bit-fields.  Don't
15986         generate CL_MISSING_OK or CL_SAVE.
15987         * optc-gen.awk: Update to generate bit-field output as well as
15988         flags field.
15989         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
15990         bit-field instead of CL_REJECT_DRIVER flag.
15991         * opts-common.c (generate_canonical_option,
15992         decode_cmdline_option): Use bit-fields instead of CL_* flags.
15993         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
15994         instead of CL_REJECT_NEGATIVE flag.
15995         * toplev.c (print_switch_values): Use cl_report bit-field instead
15996         of CL_REPORT flag.
15997
15998 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
15999
16000         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
16001         a zero minimum index only if it is redundant.
16002
16003 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
16004
16005         PR rtl-optimization/48381
16006         * ira-color.c (assign_hard_reg): Use hard reg set intersection
16007         instead of ira_class_hard_reg_index for calculating conflicting
16008         hard registers.
16009
16010 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
16011
16012         * cprop.c: Clean up hash table building.
16013         (reg_avail_info): Remove.
16014         (oprs_available_p): Remove.
16015         (record_last_reg_set_info): Remove.
16016         (record_last_set_info): Remove.
16017         (reg_available_p): New function.
16018         (gcse_constant_p): Do not treat unfolded conditions as constants.
16019         (make_set_regs_unavailable): New function.
16020         (hash_scan_set): Simplify with new reg_available_p.
16021         (compute_hash_table_work): Traverse insns stream only once.
16022         Do not compute reg_avail_info. Traverse insns in reverse order.
16023         Record implicit sets after recording explicit sets from the block.
16024
16025 2011-03-31  Michael Matz  <matz@suse.de>
16026
16027         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
16028
16029 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
16030
16031         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
16032         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
16033         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16034         (h8300_mode_dependent_address_p): New function.
16035         (h8300_get_index): Make static.
16036
16037 2011-03-31  Jeff Law  <law@redhat.com>
16038
16039         * reload1.c (elimination_effects): Fix typo in recent change.
16040
16041         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
16042         typo potentially leading to null pointer dereference.
16043
16044         * caller-save.c (new_saved_hard_reg): Eliminate return value.
16045         (setup_save_areas): Corresponding changes to avoid useless
16046         assignments.
16047
16048         * jump.c (reversed_comparison_code_parts): Avoid successive return
16049         statements when REVERSE_CONDITION is defined.
16050
16051         * expr.c (expand_assignment): Avoid useless assignments.
16052         (expand_expr_real_1): Likewise.
16053         (expand_expr_real_2): Avoid useless statements.
16054
16055         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
16056
16057         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
16058
16059         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
16060         statements.
16061
16062         * stmt.c (expand_expr_stmt): Avoid useless assignment.
16063
16064 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
16065
16066         PR target/47109
16067         * doc/tm.texi.in (TARGET_VERSION): Remove.
16068         * doc/tm.texi: Regenerate.
16069         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
16070         * collect2.c (main): Don't use TARGET_VERSION.
16071         * mips-tdump.c (main): Don't use TARGET_VERSION.
16072         * mips-tfile.c (main): Don't use TARGET_VERSION.
16073         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
16074         * config/rs6000/vxworksae.h: Remove.
16075         * config/alpha/alpha.h (TARGET_VERSION): Remove.
16076         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
16077         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
16078         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
16079         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
16080         * config/arm/arm.h (TARGET_VERSION): Remove.
16081         * config/arm/coff.h (TARGET_VERSION): Remove.
16082         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
16083         * config/arm/elf.h (TARGET_VERSION): Remove.
16084         * config/arm/freebsd.h (TARGET_VERSION): Remove.
16085         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
16086         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
16087         * config/arm/pe.h (TARGET_VERSION): Remove.
16088         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
16089         * config/arm/semi.h (TARGET_VERSION): Remove.
16090         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
16091         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
16092         * config/arm/vxworks.h (TARGET_VERSION): Remove.
16093         * config/avr/avr.h (TARGET_VERSION): Remove.
16094         * config/bfin/bfin.h (TARGET_VERSION): Remove.
16095         * config/fr30/fr30.h (TARGET_VERSION): Remove.
16096         * config/frv/frv.h (TARGET_VERSION): Remove.
16097         * config/h8300/h8300.h (TARGET_VERSION): Remove.
16098         * config/i386/cygwin.h (TARGET_VERSION): Remove.
16099         * config/i386/darwin.h (TARGET_VERSION): Remove.
16100         * config/i386/darwin64.h (TARGET_VERSION): Remove.
16101         * config/i386/djgpp.h (TARGET_VERSION): Remove.
16102         * config/i386/freebsd.h (TARGET_VERSION): Remove.
16103         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
16104         * config/i386/gnu.h (TARGET_VERSION): Remove.
16105         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
16106         * config/i386/i386elf.h (TARGET_VERSION): Remove.
16107         * config/i386/linux.h (TARGET_VERSION): Remove.
16108         * config/i386/linux64.h (TARGET_VERSION): Remove.
16109         * config/i386/lynx.h (TARGET_VERSION): Remove.
16110         * config/i386/mingw32.h (TARGET_VERSION): Remove.
16111         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
16112         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
16113         * config/i386/netware.h (TARGET_VERSION): Remove.
16114         * config/i386/nto.h (TARGET_VERSION): Remove.
16115         * config/i386/openbsd.h (TARGET_VERSION): Remove.
16116         * config/i386/vxworks.h (TARGET_VERSION): Remove.
16117         * config/ia64/elf.h (TARGET_VERSION): Remove.
16118         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
16119         * config/ia64/hpux.h (TARGET_VERSION): Remove.
16120         * config/ia64/linux.h (TARGET_VERSION): Remove.
16121         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
16122         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
16123         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
16124         * config/lm32/lm32.h (TARGET_VERSION): Remove.
16125         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
16126         * config/m32c/m32c.h (TARGET_VERSION): Remove.
16127         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
16128         * config/m32r/m32r.h (TARGET_VERSION): Remove.
16129         * config/m68k/linux.h (TARGET_VERSION): Remove.
16130         * config/m68k/m68k.h (TARGET_VERSION): Remove.
16131         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
16132         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
16133         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
16134         * config/mep/mep.h (TARGET_VERSION): Remove.
16135         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
16136         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
16137         * config/mips/iris6.h (MACHINE_TYPE): Remove.
16138         * config/mips/linux.h (TARGET_VERSION): Remove.
16139         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
16140         * config/mips/vxworks.h (TARGET_VERSION): Remove.
16141         * config/mmix/mmix.h (TARGET_VERSION): Remove.
16142         * config/mn10300/linux.h (TARGET_VERSION): Remove.
16143         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
16144         * config/pa/pa.h (TARGET_VERSION): Remove.
16145         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
16146         * config/picochip/picochip.h (TARGET_VERSION): Remove.
16147         * config/rs6000/aix.h (TARGET_VERSION): Remove.
16148         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
16149         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
16150         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
16151         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
16152         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
16153         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
16154         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
16155         * config/rs6000/linux.h (TARGET_VERSION): Remove.
16156         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
16157         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
16158         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
16159         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
16160         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
16161         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
16162         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
16163         * config/s390/linux.h (TARGET_VERSION): Remove.
16164         * config/s390/s390.h (TARGET_VERSION): Remove.
16165         * config/s390/tpf.h (TARGET_VERSION): Remove.
16166         * config/score/score.h (TARGET_VERSION): Remove.
16167         * config/sh/linux.h (TARGET_VERSION): Remove.
16168         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
16169         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
16170         * config/sh/sh.h (TARGET_VERSION): Remove.
16171         * config/sh/sh64.h (TARGET_VERSION): Remove.
16172         * config/sh/superh.h (TARGET_VERSION): Remove.
16173         * config/sh/vxworks.h (TARGET_VERSION): Remove.
16174         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
16175         * config/sparc/linux.h (TARGET_VERSION): Remove.
16176         * config/sparc/linux64.h (TARGET_VERSION): Remove.
16177         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
16178         TARGET_NAME32, TARGET_NAME): Remove.
16179         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
16180         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
16181         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
16182         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
16183         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
16184         * config/spu/spu.h (TARGET_VERSION): Remove.
16185         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
16186         * config/v850/v850.h (TARGET_VERSION): Remove.
16187         * config/vax/linux.h (TARGET_VERSION): Remove.
16188         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
16189         * config/xtensa/elf.h (TARGET_VERSION): Remove.
16190         * config/xtensa/linux.h (TARGET_VERSION): Remove.
16191
16192 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
16193
16194         PR target/48142
16195         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
16196         frame-related from frame-unrelated adjustments to the stack pointer.
16197
16198 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
16199
16200         * common.opt (fdebug-types-section): Move earlier.
16201         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
16202
16203 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
16204
16205         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
16206         var.
16207
16208 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
16209
16210         * tree.h (CASE_CHAIN): Define.
16211         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
16212         (gimple_redirect_edge_and_branch): Likewise.
16213
16214 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
16215
16216         PR middle-end/48367
16217         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
16218         calculation.
16219
16220 2011-03-30  Jeff Law  <law@redhat.com>
16221
16222         * PR bootstrap/48371
16223         * reload1.c (reload): Fix botch in last change.
16224
16225         * reload.h (struct reload): Fix typo introduced in last change.
16226
16227 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
16228
16229         * config/arm/arm.opt (mhard-float, msoft-float): Mark
16230         Undocumented.  Remove help text.
16231         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
16232         -mhard-float.
16233
16234 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
16235
16236         * doc/options.texi (NegativeAlias): Document.
16237         (Alias): Mention NegativeAlias.
16238         * opt-functions.awk: Handle NegativeAlias.
16239         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
16240         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
16241         * opts.h (CL_NEGATIVE_ALIAS): Define.
16242         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
16243         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
16244         OPT_mspe_.
16245         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
16246         Alias entries.
16247         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
16248         mno-spe and mno-isel instead of mspe=no and -misel=no.
16249
16250 2011-03-29  Mark Wielaard  <mjw@redhat.com>
16251
16252         * common.opt (fdebug-types-section): New flag.
16253         * doc/invoke.texi: Document new -fno-debug-types-section flag.
16254         * dwarf2out.c (use_debug_types): New define.
16255         (struct die_struct): Mark die_id with GTY desc use_debug_types.
16256         (print_die): Guard output of type unit signatures using
16257         use_debug_types.
16258         (build_abbrev_table): Replace assert of dwarf_version >= 4
16259         with assert on use_debug_types.
16260         (size_of_die): Likewise.
16261         (unmark_dies): Likewise.
16262         (value_format): Decide AT_ref_external form on use_debug_types.
16263         (output_die): Replace dwarf_version version check guard with
16264         use_debug_types where appropriate.
16265         (modified_type_die): Likewise.
16266         (gen_reference_type_die): Likewise.
16267         (dwarf2out_start_source_file): Likewise.
16268         (dwarf2out_end_source_file): Likewise.
16269         (prune_unused_types_walk_attribs): Likewise.
16270         (dwarf2out_finish): Likewise.
16271
16272 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
16273
16274         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
16275
16276 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
16277
16278         PR rtl-optimization/48332
16279         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
16280         mode of input operand N and modeN to its actual mode.
16281
16282 2011-03-30  Jeff Law  <law@redhat.com>
16283
16284         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
16285         define accessor macro.
16286         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
16287         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
16288         (reg_equiv_init): Likewise.
16289         (reg_equivs_size): New variable.
16290         (reg_equiv_init_size): Remove.
16291         (allocate_initial_values): Move prototype to here from....
16292         * integrate.h (allocate_initial_values): Remove prototype.
16293         * integrate.c: Include reload.h.
16294         (allocate_initial_values): Corresponding changes.
16295         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
16296         (fix_reg_equiv_init, no_equiv): Corresponding changes.
16297         (update_equiv_regs): Corresponding changes.
16298         (ira): Corresponding changes.
16299         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
16300         (push_secondary_reload): Corresponding changes.
16301         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
16302         (make_memloc, find_reloads_address): Corresponding changes.
16303         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
16304         (find_reloads_address_1): Corresponding changes.
16305         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
16306         (refers_to_regno_for_reload_p): Corresponding changes.
16307         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
16308         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
16309         * reload1.c: Include ggc.h.
16310         (grow_reg_equivs): New function.
16311         (replace_pseudos_in, reload): Corresponding changes.
16312         (calculate_needs_all_insns, alter_regs): Corresponding changes.
16313         (eliminate_regs_1, elimination_effects): Corresponding changes.
16314         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
16315         (delete_output_reload): Likewise.
16316         * caller-save.c (mark_referenced_regs): Corresponding changes.
16317         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
16318         * frv/predicates.md (frv_load_operand): Corresponding changes.
16319         * microblaze/microblaze.c (double_memory_operand): Corresponding
16320         changes.
16321         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
16322         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
16323         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
16324         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
16325         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
16326         changes.
16327         * pa/pa.c (emit_move_sequence): Corresponding changes.
16328         * vax/vax.c (nonindexed_address_p): Corresponding changes.
16329
16330 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
16331
16332         PR target/47551
16333         * config/arm/arm.c (coproc_secondary_reload_class): Handle
16334         structure modes.  Don't check neon_vector_mem_operand for
16335         vector or structure modes.
16336
16337 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
16338             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16339
16340         PR target/43590
16341         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
16342         operand 1 and reshuffle the operands to match.
16343         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
16344
16345 2011-03-30  Christian Schüler  <cschueler@gmx.de>
16346
16347         PR driver/48208
16348         * config/c.opt (F): Added 'Driver' to -F option.
16349
16350         PR driver/48260
16351         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
16352           handler function.
16353         * config/darwin.opt: Added '-arch' option.
16354
16355 2011-03-30  Nick Clifton  <nickc@redhat.com>
16356
16357         * config/rx/rx.md: Add peepholes and patterns to combine
16358         extending loads and simple arithmetic instructions.
16359         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
16360         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
16361         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
16362         modes to use pre-decrement and post-increment addressing.
16363         (rx_is_restricted_memory_address): Add range checking of REG+INT
16364         addresses.
16365         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
16366         (rx_memory_move_cost): Adjust cost of stores.
16367         (rx_adjust_insn_length): New function.
16368
16369 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
16370
16371         PR c/48305
16372         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
16373         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
16374         matching arg00/arg01 types.
16375
16376 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
16377
16378         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
16379         last_location to UNKNOWN_LOCATION.
16380
16381 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
16382
16383         PR target/48349
16384         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
16385         FLOAT_SSE_REGS.
16386
16387 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
16388             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16389
16390         PR bootstrap/48337
16391         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
16392         Init(PROCESSOR_V7).
16393         (sparc_cpu): Likewise.
16394         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
16395         PROCESSOR_V7.
16396
16397 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
16398
16399         PR target/48336
16400         PR middle-end/48342
16401         PR rtl-optimization/48345
16402         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
16403         hard regs for given mode from profitable regs when doing secondary
16404         allocation.
16405
16406 2011-03-29  Jeff Law  <law@redhat.com>
16407
16408         PR bootstrap/48327
16409         * tree-ssa-threadupdate.c (struct redirection_data): Remove
16410         do_not_duplicate field.
16411         (lookup_redirection_data): Corresponding changes.
16412         (create_duplicates): Always create a template block.
16413         (redirect_edges): Remove code which reused the original block
16414         when it was going to become unreachable code.
16415         (thread_block): Don't set do_not_duplicate field.
16416
16417 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
16418
16419         * lto-opts.c (register_user_option_p, lto_register_user_option):
16420         Make type argument unsigned.
16421         * lto-streamer.h (lto_register_user_option): Make type argument
16422         unsigned.
16423         * opth-gen.awk: Make CL_* macros unsigned.
16424         * opts-common.c (find_opt): Make lang_mask argument unsigned.
16425         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
16426         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
16427         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
16428         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
16429         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
16430         (find_opt): Make lang_mask argument unsigned.
16431
16432 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
16433
16434         PR rtl-optimization/48331
16435         PR rtl-optimization/48334
16436         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
16437         for any used algorithm.
16438
16439 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
16440
16441         * ira-conflicts.c (build_object_conflicts): Add unused attribute
16442         to parent_max.
16443
16444 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
16445
16446         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
16447         (alpha_option_override): Don't set alpha_sr_alias_set.
16448         (emit_frame_store_1): Use gen_frame_mem rather than calling
16449         set_mem_alias_set.
16450         (alpha_expand_epilogue): Ditto.
16451
16452 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
16453
16454         PR tree-optimization/48290
16455         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
16456         vectorization, check that relevant phis in the basic block after
16457         the inner loop are really inner loop's exit phis.
16458
16459 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
16460
16461         PR debug/48190
16462         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
16463         (cached_dw_loc_list_def): New structure.
16464         (cached_dw_loc_list): New typedef.
16465         (cached_dw_loc_list_table): New variable.
16466         (cached_dw_loc_list_table_hash): New function.
16467         (cached_dw_loc_list_table_eq): Likewise.
16468         (add_location_or_const_value_attribute): Take a bool cache_p.
16469         Cache the list when the parameter is true.
16470         (gen_formal_parameter_die): Update caller.
16471         (gen_variable_die): Likewise.
16472         (dwarf2out_finish): Likewise.
16473         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
16474         while generating debug info for the decl.
16475         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
16476         (dwarf2out_init): Initialize cached_dw_loc_list_table.
16477         (resolve_addr): Cache the result of resolving a chain of
16478         location lists.
16479
16480 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
16481
16482         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
16483         conflict object hard regset nodes have intersecting hard reg sets.
16484
16485         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
16486         after regstat_init_n_sets_and_refs.
16487
16488         * ira.c: Add more comments at the top.
16489         (setup_stack_reg_pressure_class, setup_pressure_classes):
16490         Add comments how we compute the register pressure classes.
16491         (setup_allocno_and_important_classes): Add more comments.
16492         (setup_class_translate_array, reorder_important_classes)
16493         (setup_reg_class_relations): Add comments.
16494
16495         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
16496         start of the file.
16497
16498         * ira-color.c: Add 2011 to the Copyright line.
16499         (assign_hard_reg):  Add more comments.
16500         (improve_allocation): Ditto.
16501
16502         * ira-costs.c: Add 2011 to the Copyright line.
16503         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
16504         comments.
16505         (setup_regno_cost_classes_by_mode): Ditto.
16506
16507         Initial patches from ira-improv branch:
16508
16509         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
16510
16511         * ira-build.c (ira_create_object): Remove initialization of
16512         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
16513         (ira_create_allocno): Remove initialization of
16514         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
16515         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
16516         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16517         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
16518         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
16519         Initialize ALLOCNO_ADD_DATA.
16520         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
16521         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
16522         ALLOCNO_REG.
16523         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
16524         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
16525
16526         * ira.c (ira_reallocate): Remove.
16527         (setup_pressure_classes): Call
16528         ira_init_register_move_cost_if_necessary.  Use
16529         ira_register_move_cost instead of ira_get_register_move_cost.
16530         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
16531         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
16532
16533         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
16534         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16535         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
16536         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
16537         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
16538         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
16539         Fix formatting.
16540         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
16541         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
16542         (struct allocno_color_data): New.
16543         (allocno_color_data_t): New typedef.
16544         (allocno_color_data): New definition.
16545         (ALLOCNO_COLOR_DATA): New macro.
16546         (struct object_color_data): New.
16547         (object_color_data_t): New typedef.
16548         (object_color_data): New definition.
16549         (OBJECT_COLOR_DATA): New macro.
16550         (update_copy_costs, calculate_allocno_spill_cost): Call
16551         ira_init_register_move_cost_if_necessary.  Use
16552         ira_register_move_cost instead of ira_get_register_move_cost.
16553         (move_spill_restore, update_curr_costs): Ditto.
16554         (allocno_spill_priority): Make it inline.
16555         (color_pass): Allocate and free allocno_color_dat and object_color_data.
16556         (struct coalesce_data, coalesce_data_t): New.
16557         (allocno_coalesce_data): New definition.
16558         (ALLOCNO_COALESCE_DATA): New macro.
16559         (merge_allocnos, coalesced_allocno_conflict_p): Use
16560         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
16561         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
16562         (coalesce_allocnos): Ditto.
16563         (setup_coalesced_allocno_costs_and_nums): Ditto.
16564         (collect_spilled_coalesced_allocnos): Ditto.
16565         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
16566         (setup_slot_coalesced_allocno_live_ranges): Ditto.
16567         (coalesce_spill_slots): Ditto.
16568         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
16569         free allocno_coalesce_data.
16570
16571         * ira-conflicts.c: Fix formatting.
16572         (process_regs_for_copy): Call
16573         ira_init_register_move_cost_if_necessary.  Use
16574         ira_register_move_cost instead of ira_get_register_move_cost.
16575         (build_object_conflicts): Optimize.
16576
16577         * ira-costs.c (record_reg_classes): Optimize.  Call
16578         ira_init_register_move_cost_if_necessary.  Use
16579         ira_register_move_cost, ira_may_move_in_cost, and
16580         ira_may_move_out_cost instead of ira_get_register_move_cost and
16581         ira_get_may_move_cost.
16582         (record_address_regs): Ditto.
16583         (scan_one_insn): Optimize.
16584         (find_costs_and_classes): Optimize.
16585         (process_bb_node_for_hard_reg_moves): Call
16586         ira_init_register_move_cost_if_necessary.  Use
16587         ira_register_move_cost instead of ira_get_register_move_cost.
16588
16589         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
16590         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
16591         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
16592         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
16593         definitions.
16594         (ira_initiate_emit_data, ira_finish_emit_data)
16595         (create_new_allocno): New functions.
16596         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
16597         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
16598         Use ira_register_move_cost instead of ira_get_register_move_cost.
16599
16600         * ira-int.h: Fix some comments.
16601         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
16602         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
16603         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
16604         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
16605         add_data.
16606         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
16607         bitfield after mode.  Make hard_regno a short int.  Make
16608         hard_regno short.  Remove first_coalesced_allocno and
16609         next_coalesced_allocno.  Move mem_optimized_dest_p,
16610         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
16611         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
16612         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
16613         temp, colorable_p.  Add new member add_data.
16614         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
16615         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
16616         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
16617         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
16618         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
16619         (ALLOCNO_ADD_DATA): New macro.
16620         (ira_emit_data_t): New typedef.
16621         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
16622         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
16623         from struct ira_allocno.
16624         (ALLOCNO_EMIT_DATA): New macro.
16625         (ira_allocno_emit_data, allocno_emit_reg): New.
16626         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
16627         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
16628         (OBJECT_ADD_DATA): New macro.
16629         (ira_reallocate): Remove.
16630         (ira_initiate_emit_data, ira_finish_emit_data): New.
16631         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
16632         (ira_init_register_move_cost_if_necessary): New.
16633         (ira_object_conflict_iter_next): Merge into
16634         ira_object_conflict_iter_cond.
16635         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
16636
16637         * ira-live.c (process_single_reg_class_operands): Call
16638         ira_init_register_move_cost_if_necessary.  Use
16639         ira_register_move_cost instead of ira_get_register_move_cost.
16640
16641         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
16642
16643         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
16644
16645         * ira-costs.c: Fix formatting.
16646         (cost_classes, cost_classes_num): Remove.
16647         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
16648         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
16649         (cost_classes_del, cost_classes_htab): New.
16650         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
16651         (initiate_regno_cost_classes, setup_cost_classes): New.
16652         (setup_regno_cost_classes_by_aclass): New.
16653         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
16654         (record_reg_classes): Use regno_cost_classes instead of
16655         cost_classes.  Move checking opposite operand up.
16656         (record_address_regs): Use regno_cost_classes
16657         instead of cost_classes.
16658         (scan_one_insn): Ditto.  Use always general register.
16659         (print_allocno_costs): Use regno_cost_classes instead of
16660         cost_classes.
16661         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
16662         (find_costs_and_classes): Set up cost classes for each registers.
16663         Use also their mode for this.  Use regno_cost_classes instead of
16664         cost_classes.
16665         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
16666         cost_classes.
16667         (free_ira_costs, ira_init_costs): Don't use cost_classes.
16668         (ira_costs, ira_set_pseudo_classes): Call
16669         initiate_regno_cost_classes and finish_regno_cost_classes.
16670
16671         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
16672
16673         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
16674
16675         * target.def (ira_cover_classes): Remove.
16676
16677         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
16678
16679         * doc/tm.texi.in: Ditto.
16680
16681         * ira-conflicts.c: Remove mentioning cover classes from the file.
16682         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
16683         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
16684
16685         * targhooks.c (default_ira_cover_classes): Remove.
16686
16687         * targhooks.h (default_ira_cover_classes): Ditto.
16688
16689         * haifa-sched.c: Remove mentioning cover classes from the file.
16690         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
16691         ira_pressure_classes and ira_pressure_classes_num instead of
16692         ira_reg_class_cover_size and ira_reg_class_cover.  Use
16693         sched_regno_pressure_class instead of sched_regno_cover_class.
16694         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
16695         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16696
16697         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
16698         classes from the file.
16699         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
16700         (struct object_hard_regs, struct object_hard_regs_node): New.
16701         (struct ira_object): New members profitable_hard_regs,
16702         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
16703         (struct ira_allocno): Rename cover_class to aclass.  Rename
16704         cover_class_cost and updated_cover_class_cost to class_cost and
16705         updated_class_cost.  Remove splay_removed_p and
16706         left_conflict_size.  Add new members colorable_p.
16707         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
16708         (ALLOCNO_COLORABLE_P): New macro.
16709         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
16710         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
16711         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
16712         (OBJECT_...): Rename parameter C to O.
16713         (OBJECT_PROFITABLE_HARD_REGS): New macro.
16714         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
16715         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
16716         (struct target_ira_int): New members x_ira_max_memory_move_cost,
16717         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
16718         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
16719         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
16720         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
16721         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
16722         x_ira_reg_class_subunion.
16723         (ira_max_memory_move_cost, ira_max_register_move_cost)
16724         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
16725         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
16726         (ira_important_class_nums, ira_reg_class_superunion): New macros.
16727         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
16728         (ira_reg_class_union): Rename to ira_reg_class_subunion.
16729         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16730         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16731         (ira_tune_allocno_costs_and_cover_classes): Rename to
16732         ira_tune_allocno_costs.
16733         (ira_debug_hard_regs_forest): New.
16734         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
16735         (ira_object_conflict_iter_next): Fix comments.
16736         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
16737         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
16738         cover_class to aclass.
16739         (ira_allocate_and_accumulate_costs): Ditto.
16740         (ira_allocate_and_set_or_copy_costs): Ditto.
16741
16742         * opts.c (decode_options): Remove ira_cover_class check.
16743
16744         * ira-color.c: Remove mentioning cover classes from the file.  Use
16745         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
16746         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
16747         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
16748         (splay-tree.h): Remove include.
16749         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
16750         before copy_freq_compare_func.
16751         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
16752         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
16753         New definitions.
16754         (hard_regs_roots, hard_regs_node_vec): Ditto.
16755         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
16756         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
16757         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
16758         (create_new_object_hard_regs_node): Ditto.
16759         (add_new_object_hard_regs_node_to_forest): Ditto.
16760         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
16761         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
16762         Ditto.
16763         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
16764         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
16765         (remove_unused_object_hard_regs_nodes): Ditto.
16766         (enumerate_object_hard_regs_nodes): Ditto.
16767         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
16768         (object_hard_regs_subnode_t): Ditto.
16769         (struct object_hard_regs_subnode): Ditto.
16770         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
16771         (setup_object_hard_regs_subnode_index): Ditto.
16772         (get_object_hard_regs_subnodes_num): Ditto.
16773         (form_object_hard_regs_nodes_forest): Ditto.
16774         (finish_object_hard_regs_nodes_tree): Ditto.
16775         (finish_object_hard_regs_nodes_forest): Ditto.
16776         (allocnos_have_intersected_live_ranges_p): Rename to
16777         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
16778         (pseudos_have_intersected_live_ranges_p): Rename to
16779         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
16780         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
16781         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
16782         (update_copy_costs): Remove assert.  Skip cost update if the hard
16783         reg does not belong the class.
16784         (assign_hard_reg): Process only profitable hard regs.
16785         (uncolorable_allocnos_num): Make it scalar.
16786         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
16787         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
16788         and ira_reg_class_max_nregs.
16789         (bucket_allocno_compare_func): Check frequency first.
16790         (sort_bucket): Add compare function as a parameter.
16791         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
16792         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
16793         (push_allocno_to_stack): Rewrite for checking new allocno
16794         colorability.
16795         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
16796         (push_only_colorable): Pass new parameter to sort_bucket.
16797         (push_allocno_to_spill): Remove.
16798         (allocno_spill_priority_compare): Make it inline and rewrite.
16799         (splay_tree_allocate, splay_tree_free): Remove.
16800         (allocno_spill_sort_compare): New function.
16801         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
16802         build and use splay tree.  Choose first allocno in uncolorable
16803         allocno bucket to spill.  Remove setting spill cost.
16804         (all_conflicting_hard_regs): Remove.
16805         (setup_allocno_available_regs_num): Check only profitable hard
16806         regs.  Print info about hard regs nodes.
16807         (setup_allocno_left_conflicts_size): Remove.
16808         (put_allocno_into_bucket): Don't call
16809         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
16810         (improve_allocation): New.
16811         (color_allocnos): Call setup_profitable_hard_regs,
16812         form_object_hard_regs_nodes_forest, improve_allocation,
16813         finish_object_hard_regs_nodes_forest.  Setup spill cost.
16814         (print_loop_title): Use pressure classes.
16815         (color_allocnso): Ditto.
16816         (do_coloring): Remove allocation and freeing splay_tree_node_pool
16817         and allocnos_for_spilling.
16818         (ira_sort_regnos_for_alter_reg): Don't setup members
16819         {first,next}_coalesced_allocno.
16820         (color): Remove allocating and freeing removed_splay_allocno_vec.
16821         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
16822         prohibited_class_mode_regs.
16823
16824         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
16825         formatting.
16826         (update_allocno_pressure_excess_length): Use pressure classes.
16827         (inc_register_pressure, dec_register_pressure): Check for pressure
16828         class.
16829         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
16830         pressure class.  Use ira_reg_class_nregs instead of
16831         ira_reg_class_max_nregs.
16832         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
16833         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
16834         (single_reg_class): Use ira_reg_class_nregs instead of
16835         ira_reg_class_max_nregs.
16836         (process_bb_node_lives): Use pressure classes.
16837
16838         * ira-emit.c: Remove mentioning cover classes from the file.  Use
16839         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
16840         (change_loop): Use pressure classes.
16841         (modify_move_list): Call ira_set_allocno_class instead of
16842         ira_set_allocno_cover_class.
16843
16844         * ira-build.c: Remove mentioning cover classes from the file.  Use
16845         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
16846         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
16847         ALLOCNO_UPDATED_CLASS_COST instead of
16848         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
16849         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
16850         (ira_create_allocno): Remove initialization of
16851         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
16852         ALLOCNO_COLORABLE_P.
16853         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16854         Update conflict regs for the objects.
16855         (create_cap_allocno): Remove assert.  Don't propagate
16856         ALLOCNO_AVAILABLE_REGS_NUM.
16857         (ira_free_allocno_costs): New function.
16858         (finish_allocno): Change a part of code into call of
16859         ira_free_allocno_costs.
16860         (low_pressure_loop_node_p): Use pressure classes.
16861         (object_range_compare_func): Don't compare classes.
16862         (setup_min_max_conflict_allocno_ids): Ditto.
16863
16864         * loop-invariant.c: Remove mentioning cover classes from the file.
16865         Use ira_pressure_classes and ira_pressure_classes_num instead of
16866         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
16867         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
16868         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16869         Use reg_allocno_class instead of reg_cover_class.
16870         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
16871         STACK_REG_COVER_CLASS.
16872         (get_regno_cover_class): Rename to get_regno_pressure_class.
16873         (move_loop_invariants): Initialize and finalize regstat.
16874
16875         * ira.c: Remove mentioning cover classes from the file.  Add
16876         comments about coloring without cover classes.  Use ALLOCNO_CLASS
16877         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
16878         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
16879         setup_class_subset_and_memory_move_costs.
16880         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
16881         (setup_cover_and_important_classes): Rename to
16882         setup_allocno_and_important_classes.
16883         (setup_class_translate_array): New.
16884         (setup_class_translate): Call it for allocno and pressure classes.
16885         (cover_class_order): Rename to allocno_class_order.
16886         (comp_reg_classes_func): Use ira_allocno_class_translate instead
16887         of ira_class_translate.
16888         (reorder_important_classes): Set up ira_important_class_nums.
16889         (setup_reg_class_relations): Set up ira_reg_class_superunion.
16890         (print_class_cover): Rename to print_classes.  Add parameter.
16891         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16892         Print pressure classes too.
16893         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
16894         setup_reg_subclasses.
16895         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
16896         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16897         (setup_prohibited_class_mode_regs): Use
16898         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
16899         (clarify_prohibited_class_mode_regs): New function.
16900         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
16901         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
16902         (ira_init_once): Initialize them.
16903         (free_register_move_costs): Process them.
16904         (ira_init): Move calls of find_reg_classes and
16905         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
16906         Call clarify_prohibited_class_mode_regs.
16907         (ira_no_alloc_reg): Remove.
16908         (too_high_register_pressure_p): Use pressure classes.
16909
16910         * sched-deps.c: Remove mentioning cover classes from the file.
16911         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
16912         ira_pressure_classes and ira_pressure_classes_num instead of
16913         ira_reg_class_cover_size and ira_reg_class_cover.
16914         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
16915         sched_regno_pressure_class instead of sched_regno_cover_class.
16916         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
16917         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16918
16919         * ira.h: Add 2010 to Copyright.
16920         (ira_no_alloc_reg): Remove external.
16921         (struct target_ira): Rename x_ira_hard_regno_cover_class,
16922         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
16923         x_ira_class_translate to x_ira_hard_regno_allocno_class,
16924         x_ira_allocno_classes_num, x_ira_allocno_classes, and
16925         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
16926         x_ira_pressure_classes, x_ira_pressure_class_translate, and
16927         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
16928         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
16929         x_ira_no_alloc_regs.
16930         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
16931         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
16932         ira_allocno_classes_num and ira_allocno_classes.
16933         (ira_class_translate): Rename to ira_allocno_class_translate.
16934         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
16935         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
16936         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16937         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
16938         (ira_no_alloc_regs): New.
16939
16940         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
16941         classes from the file.  Use ALLOCNO_CLASS instead of
16942         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
16943         ALLOCNO_COVER_CLASS_COST.
16944         (regno_cover_class): Rename to regno_aclass.
16945         (record_reg_classes): Use ira_reg_class_subunion instead of
16946         ira_reg_class_union.
16947         (record_address_regs): Check overflow.
16948         (scan_one_insn): Ditto.
16949         (print_allocno_costs): Print total mem cost fore regional allocation.
16950         (print_pseudo_costs): Use REG_N_REFS.
16951         (find_costs_and_classes): Use classes intersected with them on the
16952         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
16953         ira_reg_class_union.  Use ira_allocno_class_translate and
16954         regno_aclass instead of ira_class_translate and regno_cover_class.
16955         Modify code for finding regno_aclass.  Setup preferred classes for
16956         the next pass.
16957         (setup_allocno_cover_class_and_costs): Rename to
16958         setup_allocno_class_and_costs.  Use regno_aclass instead of
16959         regno_cover_class.  Use ira_set_allocno_class instead of
16960         ira_set_allocno_cover_class.
16961         (init_costs, finish_costs): Use regno_aclass instead of
16962         regno_cover_class.
16963         (ira_costs): Use setup_allocno_class_and_costs instead of
16964         setup_allocno_cover_class_and_costs.
16965         (ira_tune_allocno_costs_and_cover_classes): Rename to
16966         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
16967         by processing objects.  Use ira_reg_class_max_nregs instead of
16968         ira_reg_class_nregs.
16969
16970         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
16971
16972         * sched-int.h: Remove mentioning cover classes from the file.
16973         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
16974
16975         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
16976         classes from the file.
16977         (struct reg_pref): Rename coverclass into allocnoclass.
16978         (reg_cover_class): Rename to reg_allocno_class.
16979
16980         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
16981
16982         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
16983
16984         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
16985
16986         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
16987
16988         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
16989
16990         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
16991
16992         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
16993
16994         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
16995
16996         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
16997
16998         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
16999
17000         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
17001         (i386_ira_cover_classes): Ditto.
17002
17003         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
17004
17005         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
17006
17007         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
17008
17009         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
17010
17011         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
17012
17013         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
17014
17015         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
17016         (mips_ira_cover_classes): Ditto.
17017
17018         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
17019
17020         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
17021
17022         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
17023
17024         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
17025
17026         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
17027
17028         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
17029         (IRA_COVER_CLASSES_VSX): Ditto.
17030
17031         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
17032         (rs6000_ira_cover_classes): Ditto.
17033
17034         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
17035
17036         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
17037
17038         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
17039
17040         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
17041
17042         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
17043
17044         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
17045
17046         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
17047
17048         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
17049
17050         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
17051
17052         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
17053
17054 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
17055
17056         PR debug/48253
17057         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
17058         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
17059         dw_fde_unlikely_section_end_label, cold_in_std_section,
17060         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
17061         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
17062         fields.
17063         (output_fde): Use dw_fde_second_{begin,end} if second is
17064         true, otherwise dw_fde_{begin,end}.
17065         (output_call_frame_info): Test dw_fde_second_begin != NULL
17066         instead of dw_fde_switched_sections.
17067         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
17068         fields, initialize new fields.  Initialize in_std_section
17069         unconditionally from the first partition.
17070         (dwarf2out_end_epilogue): Don't override dw_fde_end when
17071         dw_fde_second_begin is non-NULL.
17072         (dwarf2out_switch_text_section): Stop initializing removed
17073         dw_fde_struct fields, initialize new fields, initialize
17074         also dw_fde_end here.  Set dw_fde_switch_cfi even when
17075         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
17076         (struct var_loc_list_def): Add last_before_switch field.
17077         (arange_table, arange_table_allocated, arange_table_in_use,
17078         ARANGE_TABLE_INCREMENT, add_arange): Removed.
17079         (size_of_aranges): Count !in_std_section and !second_in_std_section
17080         hunks in fdes, instead of looking at arange_table_in_use.
17081         (output_aranges): Add aranges_length argument, don't call
17082         size_of_aranges here.  Instead of using aranges_table*
17083         emit ranges for fdes when !in_std_section resp.
17084         !second_in_std_section.
17085         (dw_loc_list): Break ranges crossing section switch.
17086         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
17087         use dw_fde_second_end instead of dw_fde_end as end of last range.
17088         (gen_subprogram_die): Don't call add_arange.  Use
17089         dw_fde_{begin,end} for first partition and if switched
17090         section dw_fde_second_{begin,end} for the second.
17091         (var_location_switch_text_section_1,
17092         var_location_switch_text_section): New functions.
17093         (dwarf2out_begin_function): Initialize cold_text_section even
17094         when function_section () isn't text_section.
17095         (prune_unused_types): Don't walk arange_table.
17096         (dwarf2out_finish): Don't needlessly test
17097         flag_reorder_blocks_and_partition when testing cold_text_section_used.
17098         If info_section_emitted, call size_of_aranges and if it indicates
17099         non-empty .debug_aranges, call output_aranges with the computed
17100         size.  Stop using removed dw_fde_struct fields, use
17101         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
17102         for second.
17103
17104         PR debug/48203
17105         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
17106         create ENTRY_VALUE if incoming or address of incoming's MEM
17107         is a hard REG.
17108         * dwarf2out.c (mem_loc_descriptor): Don't emit
17109         DW_OP_GNU_entry_value of DW_OP_fbreg.
17110         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
17111         on ENTRY_VALUE is able to find the canonical parameter VALUE.
17112         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
17113         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
17114         ENTRY_VALUE_EXPs.
17115         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
17116         is a REG_P or MEM_P with REG_P address, compute hash directly
17117         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
17118         (preserve_only_constants): Don't clear VALUES forwaring
17119         ENTRY_VALUE to some other VALUE.
17120
17121 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
17122
17123         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
17124         instead of GEN_INT.
17125
17126 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
17127
17128         * cfgexpand.c (expand_gimple_cond): Always set the source location and
17129         block before expanding the statement.
17130         (expand_gimple_stmt_1): Likewise.  Set them here...
17131         (expand_gimple_stmt): ...and not here.  Tidy.
17132         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
17133         unknown.
17134
17135 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
17136
17137         * Makefile.in: New rule for cprop.o.
17138         * gcse.c: Move constant/copy propagation to cprop.c.
17139         (compute_local_properties): Only handle expression tables.
17140         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
17141         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
17142         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
17143         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
17144         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
17145         compute_cprop_data, find_used_regs, try_replace_reg,
17146         find_avail_set, cprop_jump, constprop_register, cprop_insn,
17147         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
17148         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
17149         find_bypass_set, reg_killed_on_edge, bypass_block,
17150         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
17151         execute_rtl_cprop, pass_rtl_cprop): Move to...
17152         * cprop.c: ...here.  New file, constant/copy propagation for RTL
17153         moved from gcse.c to here with minor cleanups in duplicated code.
17154
17155 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
17156
17157         * config/i386/i386.c (flag_opts): Fix a typo in
17158         -mavx256-split-unaligned-store.
17159
17160 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
17161
17162         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
17163         LIBCALL_VALUE): Remove macros.
17164         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17165         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17166         (h8300_function_value, h8300_libcall_value,
17167         h8300_function_value_regno_p): New functions.
17168
17169 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
17170
17171         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
17172
17173 2011-03-28  Jeff Law  <law@redhat.com>
17174
17175         * tree-ssa-threadupdate.c (redirect_edges): Call
17176         create_edge_and_update_destination_phis as needed.
17177         (create_edge_and_update_destination_phis): Accept new BB argument.
17178         All callers updated.
17179         (thread_block): Do not update the profile when threading around
17180         intermediate blocks.
17181         (thread_single_edge): Likewise.
17182         (determine_bb_domination_status): If BB is not a successor of the
17183         loop header, return NONDOMINATING.
17184         (register_jump_thread): Note when we register a jump thread around
17185         an intermediate block.
17186         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
17187         (thread_across_edge): Use it.
17188
17189 2011-03-28  Tristan Gingold  <gingold@adacore.com>
17190
17191         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
17192         when for_return is 2.
17193
17194 2011-03-28  Jeff Law  <law@redhat.com>
17195
17196         * var-tracking.c (canonicalize_values_mark): Delete unused
17197         lhs assignment.
17198         (canonicalize_values_star, set_variable_part): Likewise.
17199         (clobber_variable_part, delete_variable_part): Likewise.
17200
17201 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
17202
17203         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
17204
17205 2011-03-28  Martin Jambor  <mjambor@suse.cz>
17206
17207         * tree-inline.c (expand_call_inline): Do not check that destination
17208         node is analyzed.
17209         (optimize_inline_calls): Assert that destination node is analyzed.
17210         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
17211         not call tree_lowering_passes.
17212         * cgraph.h (cgraph_analyze_function): Declare.
17213         * cgraphunit.c (cgraph_analyze_function): Make public.
17214
17215 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
17216
17217         * config/sparc/sparc-opts.h: New.
17218         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
17219         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
17220         (sparc_option_override): Store processor_type enumeration rather
17221         than string in cpu_default.  Remove name and enumeration from
17222         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
17223         without using sparc_select.  Use target_flags_explicit instead of
17224         fpu_option_set.
17225         * config/sparc/sparc.h (enum processor_type): Move to
17226         sparc-opts.h.
17227         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
17228         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
17229         HeaderInclude entry.
17230         (mcpu=, mtune=): Use Var and Enum.
17231         (sparc_processor_type): New Enum and EnumValue entries.
17232
17233 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17234             Iain Sandoe  <iains@gcc.gnu.org>
17235
17236         PR target/48245
17237         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
17238
17239 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
17240
17241         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
17242         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
17243         Insert new statements at it in lieu of STMT.
17244         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
17245         * tree-vect-stmts.c (vectorizable_store): Likewise.
17246         (vectorizable_load): Likewise.
17247
17248 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
17249
17250         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
17251         (divtf3): Ditto.
17252         (multf3): Ditto.
17253         (subtf3): Ditto.
17254
17255 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17256
17257         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
17258         unaligned 256bit load/store.
17259         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
17260         (*avx_movdqu<avxmodesuffix>): Likewise.
17261
17262 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17263
17264         PR target/48288
17265         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
17266         * config/pa/pa.md (iordi3): Use new predicate in expander.
17267         (iorsi3): Likewise.
17268
17269 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
17270
17271         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
17272         FUNCTION_VALUE_REGNO_P): Remove macros.
17273         * config/mips/mips-protos.h (mips_function_value): Remove.
17274         * config/mips/mips.c (mips_function_value): Rename to...
17275         (mips_function_value_1): ... this. Make static.  Handle receiving
17276         the function type in 'fn_decl_or_type' argument.
17277         (mips_function_value, mips_libcall_value,
17278         mips_function_value_regno_p): New function.
17279         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17280         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17281
17282 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17283
17284         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
17285         and -mavx256-split-unaligned-store.
17286         (ix86_option_override_internal): Split 32-byte AVX unaligned
17287         load/store by default.
17288         (ix86_avx256_split_vector_move_misalign): New.
17289         (ix86_expand_vector_move_misalign): Use it.
17290
17291         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
17292         -mavx256-split-unaligned-store.
17293
17294         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
17295         256bit load/store.  Generate unaligned store on misaligned memory
17296         operand.
17297         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
17298         256bit load/store.
17299         (*avx_movdqu<avxmodesuffix>): Likewise.
17300
17301         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
17302         -mavx256-split-unaligned-store.
17303
17304 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
17305
17306         PR target/38598
17307         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
17308         Update commentary.
17309
17310 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
17311
17312         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
17313         opno arguments with an expand_operand.  Use create_input_operand.
17314         (mips_prepare_builtin_target): Delete.
17315         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
17316         functions.
17317         (mips_expand_builtin_direct): Use create_output_operand and
17318         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
17319         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
17320         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
17321
17322 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
17323
17324         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
17325         function.
17326         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
17327
17328 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
17329
17330         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
17331         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
17332         basic blocks and call commit_edge_insertions directly.
17333         (fixup_abnormal_edges): Move from here to...
17334         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
17335         on the edges and return whether some have actually been inserted.
17336         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
17337         compensation code.
17338
17339 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
17340
17341         PR rtl-optimization/48144
17342         * sel-sched-ir.c (merge_history_vect): Factor out from ...
17343         (merge_expr_data): ... here.
17344         (av_set_intersect): Rename to av_set_code_motion_filter.
17345         Update all callers.  Call merge_history_vect when an expression
17346         is found in both sets.
17347         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
17348
17349 2011-03-26  Alan Modra  <amodra@gmail.com>
17350
17351         * config/rs6000/predicates.md (word_offset_memref_op): Handle
17352         cmodel medium addresses.
17353         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
17354         64-bit gpr loads and stores.
17355         (rs6000_secondary_reload_ppc64): New function.
17356         * config/rs6000/rs6000-protos.h: Declare it.
17357         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
17358
17359 2011-03-26  Alan Modra  <amodra@gmail.com>
17360
17361         PR target/47487
17362         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
17363         GNU Go in traceback table.
17364
17365 2011-03-25  Richard Henderson  <rth@redhat.com>
17366
17367         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
17368         if there are exactly 6 operands.
17369         (set_storage_via_setmem): Similarly.
17370
17371 2011-03-25  Kai Tietz  <ktietz@redhat.com>
17372
17373         * collect2.c (write_c_file_stat): Handle backslash
17374         as right-hand directory separator.
17375         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
17376         checking just for slash.
17377         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
17378         instead of checking for trailing slash.
17379         * gcc.c (record_temp_file): Use filename_cmp instead
17380         of strcmp.
17381         (do_spec_1): Likewise.
17382         (replace_outfile_spec_function): Likewise.
17383         (is_directory): Use filename_ncmp instead of strncmp.
17384         (print_multilib_info): Likewise.
17385         * gcov.c (find_source): Use filename_cmp instead
17386         instead of strcmp.
17387         (make_gcov_file_name): Fix order of slash/backslash
17388         checks.
17389         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
17390         (add_standard_paths): Likewise.
17391         * mips-tfile.c (saber_stop): Handle backslash.
17392         * prefix.c (update_path): Use filename_ncmp instead of
17393         strncmp.
17394         * profile.c (output_location): Use filename_cmp instead
17395         of strcmp.
17396         * read-md.c (handle_toplevel_file): Handle backslash.
17397         * tlink.c (frob_extension):  Likewise.
17398         * tree-cfg.c (same_line_p): Use filename_cmp instead of
17399         strcmp.
17400         * tree-dump.c (dequeue_and_dump): Handle backslash.
17401         * tree.c (get_file_function_name): Likewise.
17402         * gengtype.c (read_input_list): Likewise.
17403         (get_file_realbasename): Likewise.
17404         (get_output_file_with_visibility): Use filename_cmp
17405         instead of strcmp.
17406
17407 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
17408
17409         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
17410         case to VFPv1.
17411
17412 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
17413
17414         * fold-const.c (expr_location_or): New function.
17415         (fold_truth_not_expr): Call it.
17416
17417 2011-03-25  Jeff Law  <law@redhat.com>
17418
17419         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
17420         va_end.
17421         * c-family/c-common.c (def_fn_type): Likewise.
17422         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
17423         * emit-rtl.c (gen_rtvec): Likewise.
17424         * lto/lto-lang.c (def_fn_type): Likewise.
17425
17426 2011-03-25  Richard Guenther  <rguenther@suse.de>
17427
17428         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
17429         also generate copies.
17430         (fini_copy_prop): Handle constant values properly.
17431
17432 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
17433
17434         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
17435         mode size instead of bitsize with DWARF2_ADDR_SIZE.
17436         (hash_loc_operands, compare_loc_operands): Handle
17437         DW_OP_GNU_entry_value.
17438
17439 2011-03-25  Kai Tietz  <ktietz@redhat.com>
17440
17441         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
17442         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
17443         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
17444         comment and use macro TARGET_64BIT_MS_ABI instead.
17445         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
17446         and change default behavior for 32-bit MS_ABI.
17447         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
17448         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
17449         32-bit, too.
17450         (ix86_cfun_abi): Likewise.
17451         (ix86_maybe_switch_abi): Adjust comment.
17452         (init_cumulative_args): Check for bit-ness in MS_ABI case.
17453         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
17454         instead of checking for SYSV_ABI.
17455         (ix86_nsaved_sseregs): Likewise.
17456         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
17457         to 16 bytes.
17458         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
17459         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
17460         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
17461         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
17462         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
17463
17464 2011-03-25  Richard Guenther  <rguenther@suse.de>
17465
17466         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
17467         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17468         (verify_gimple): Remove.
17469         * tree-cfg.c (verify_gimple_call): Merge verification
17470         from verify_stmts.
17471         (verify_gimple_phi): Merge verification from verify_stmts.
17472         (verify_gimple_label): New function.
17473         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
17474         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17475         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
17476         (verify_stmts): Rename to verify_gimple_in_cfg.
17477         (verify_gimple_in_cfg): New function.
17478         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
17479         * tree-ssa.c (verify_ssa): Likewise.
17480         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
17481
17482 2011-03-25  Richard Guenther  <rguenther@suse.de>
17483
17484         * passes.c (init_optimization_passes): Add FRE pass after
17485         early SRA.
17486
17487 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
17488             Andrew Stubbs  <ams@codesourcery.com>
17489
17490         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
17491         for Cortex-A8.
17492         (arm_movdi_vfp_cortexa8): New pattern.
17493         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
17494         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
17495         instructions when tuning for Cortex-A8.  Set attribute "arch".
17496         * config/arm/arm.md: Move include arm-tune.md up a bit.
17497         (define_attr "arch"): Add "onlya8" and "nota8" values.
17498         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
17499
17500 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
17501
17502         PR bootstrap/48282
17503         Revert:
17504         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
17505
17506         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17507         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
17508         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17509         * passes.c (init_optimization_passes): Move
17510         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17511
17512 2011-03-25  Kai Tietz  <ktietz@redhat.com>
17513
17514         * c-typeck.c (comptypes_internal): Replace target
17515         hook call of comp_type_attributes by version in tree.c file.
17516         * gimple.c (gimple_types_compatible_p_1): Likewise.
17517         * tree-ssa.c (useless_type_conversion_p): Likewise.
17518         * tree.c (build_type_attribute_qual_variant): Likewise.
17519         (attribute_value_equal): New static helper function.
17520         (comp_type_attributes): New function.
17521         (merge_attributes): Use attribute_value_equal for comparison.
17522         (attribute_list_contained): Likewise.
17523         * tree.h (comp_type_attributes): New prototype.
17524
17525 2011-03-25  Richard Guenther  <rguenther@suse.de>
17526
17527         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
17528         of complex types at -O0.
17529         (verify_gimple_assign_binary): Likewise.
17530         (verify_gimple_assign_ternary): Likewise.
17531
17532 2011-03-24  Mark Wielaard  <mjw@redhat.com>
17533
17534         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
17535         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
17536
17537 2011-03-24  Mark Wielaard  <mjw@redhat.com>
17538
17539         PR debug/48041
17540         * dwarf2out.c (output_abbrev_section): Only write table when
17541         abbrev_die_table_in_use > 1.
17542
17543 2011-02-24  Richard Henderson  <rth@redhat.com>
17544
17545         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
17546         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
17547         (alpha_expand_unaligned_load_words): Use extql.
17548         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
17549         (emit_insxl): Handle all modes for consistency.
17550
17551 2011-02-24  Richard Henderson  <rth@redhat.com>
17552
17553         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
17554         (alpha_expand_unaligned_load): Likewise.
17555         (alpha_expand_unaligned_store): Likewise.
17556         (alpha_expand_unaligned_load_words): Likewise.
17557         (alpha_expand_unaligned_store_words): Likewise.
17558         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
17559         (alpha_split_lock_test_and_set_12): Likewise.
17560         (print_operand, alpha_fold_builtin_extxx): Likewise.
17561         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
17562         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
17563         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
17564         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
17565         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
17566         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
17567         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
17568         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
17569         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
17570         (extwl, extll, extql): Similarly.
17571         (inswh, inslh, insqh): Similarly.
17572         (mskbl, mskwl, mskll, mskql): Similarly.
17573         (mskwh, msklh, mskqh): Similarly.
17574
17575 2011-02-24  Richard Henderson  <rth@redhat.com>
17576
17577         * config/alpha/alpha.md (attribute isa): Add er, ner.
17578         (attribute enabled): Handle them.
17579         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
17580
17581 2011-02-24  Richard Henderson  <rth@redhat.com>
17582
17583         * config/alpha/alpha.md (attribute isa): Add vms.
17584         (attribute enabled): Handle it.
17585         (*movsf): Merge *movsf_{nofix,fix,nofp}.
17586         (*movdf): Merge *movdf_{nofix,fix,nofp}.
17587         (*movtf): Rename from *movtf_internal for consistency.
17588         (*movsi): Merge with *movsi_nt_vms.
17589         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
17590         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
17591         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
17592         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
17593
17594 2011-02-24  Richard Henderson  <rth@redhat.com>
17595
17596         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
17597         (extendqisi2, extendhisi2): Likewise.
17598         (extendqidi2): Simplify BWX/non-BWX expansions.
17599         (extendhidi2): Similarly.
17600
17601 2011-02-24  Richard Henderson  <rth@redhat.com>
17602
17603         * config/alpha/alpha.md (attribute isa): New.
17604         (attribute enabled): New.
17605         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
17606         (zero_extendqisi2, zero_extendqidi2): Similarly.
17607         (zero_extendhisi2, zero_extendhidi2): Similarly.
17608         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
17609
17610 2011-02-24  Richard Henderson  <rth@redhat.com>
17611
17612         * config/alpha/predicates.md (input_operand): Revert last change;
17613         update comment to mention 32-bit VMS rather than Windows.
17614
17615 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
17616
17617         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17618         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
17619         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17620         * passes.c (init_optimization_passes): Move
17621         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17622
17623 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
17624
17625         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
17626
17627 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
17628
17629         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
17630         correctly.
17631
17632 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
17633
17634         PR debug/48204
17635         * simplify-rtx.c (simplify_const_unary_operation): Call
17636         real_convert when changing mode class with FLOAT_EXTEND.
17637
17638 2011-03-24  Nick Clifton  <nickc@redhat.com>
17639
17640         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
17641         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
17642         * config/rx/rx.c (rx_option_override): Set align_jumps,
17643         align_loops and align_labels if not set by the user.
17644         (rx_align_for_label): New function.
17645         (rx_max_skip_for_label): New function.
17646         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
17647         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
17648         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
17649         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
17650         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
17651
17652 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
17653
17654         PR rtl-optimization/48263
17655         * optabs.c (expand_binop_directly): Reinstate convert_modes code
17656         and original commutative_p handling.  Use maybe_gen_insn.
17657
17658 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17659
17660         * reload.c (find_reloads_subreg_address): Add address_reloaded
17661         parameter and return true there if the full address has been
17662         reloaded.
17663         (find_reloads_toplev): Pass address_reloaded flag.
17664         (find_reloads_address_1): Don't use address_reloaded parameter.
17665
17666 2011-03-24  Jeff Law  <law@redhat.com>
17667
17668         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
17669         unused variable "ann".
17670         (remove_unused_locals): Likewise.
17671
17672         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
17673         statement.
17674
17675         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
17676         after it is freed.
17677
17678 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17679
17680         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
17681         for invalid symbolic addresses.
17682         (s390_secondary_reload): Don't use s390_check_symref_alignment for
17683         larl operands.
17684
17685 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
17686
17687         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
17688         the argument in calls to fold_truth_not_expr.
17689
17690 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
17691
17692         * tree.c (record_node_allocation_statistics): New function.
17693         (make_node_stat, copy_node_stat, build_string): Call it.
17694         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
17695         (build1_stat, build_omp_clause): Likewise.
17696
17697 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
17698
17699         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
17700         last commit.
17701
17702 2011-03-24  Richard Guenther  <rguenther@suse.de>
17703
17704         PR tree-optimization/48271
17705         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
17706         blocks that still exist.
17707
17708 2011-03-24  Richard Guenther  <rguenther@suse.de>
17709
17710         PR tree-optimization/48270
17711         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
17712         not free datarefs before ddrs.
17713
17714 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
17715
17716         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
17717         from the address built for a reference with variable offset.
17718
17719 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
17720
17721         PR target/48237
17722         * config/i386/i386.md (*movdf_internal_rex64): Do not split
17723         alternatives that can be handled with movq or movabsq insn.
17724         (*movdf_internal): Disable for !TARGET_64BIT.
17725         (*movdf_internal_nointeger): Ditto.
17726         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
17727
17728 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
17729
17730         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17731         (FUNCTION_ARG_ADVANCE): Likewise.
17732         * tm.texi.in: Change references to them to hook references.
17733         * tm.texi: Regenerate.
17734         * targhooks.c (default_function_arg): Eliminate check for target macro.
17735         (default_function_incoming_arg): Likewise.
17736         (default_function_arg_advance): Likewise.
17737         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
17738         (function_arg_advance): Likewise.
17739         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17740
17741 2011-03-24  Richard Guenther  <rguenther@suse.de>
17742
17743         PR middle-end/48269
17744         * tree-object-size.c (addr_object_size): Do not double-account
17745         for MEM_REF offsets.
17746
17747 2011-03-24  Diego Novillo  <dnovillo@google.com>
17748
17749         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
17750         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
17751         (lto_input_data_block): Move from lto-opts.c.  Make extern.
17752         Update all users.
17753         (lto_input_string): Rename from input_string.  Make extern.
17754         Update all users.
17755         * lto-streamer-out.c (lto_output_string_with_length): Rename from
17756         output_string_with_length.
17757         Output 0 to indicate a non-NULL string.  Update all callers to
17758         not emit 0.
17759         (lto_output_string): Rename from output_string.  Make extern.
17760         Update all users.
17761         (lto_output_decl_state_streams): Make extern.
17762         (lto_output_decl_state_refs): Make extern.
17763         * lto-streamer.h (lto_input_string): Declare.
17764         (lto_input_data_block): Declare.
17765         (lto_output_string): Declare.
17766         (lto_output_string_with_length): Declare.
17767         (lto_output_decl_state_streams): Declare.
17768         (lto_output_decl_state_refs): Declare.
17769
17770 2011-03-24  Richard Guenther  <rguenther@suse.de>
17771
17772         PR tree-optimization/46562
17773         * tree.c (build_invariant_address): New function.
17774         * tree.h (build_invariant_address): Declare.
17775         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
17776         a renamed function moved ...
17777         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
17778         Take valueization callback parameter.
17779         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
17780         * gimple-fold.h: New file.
17781         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
17782         (ccp_fold, fold_const_aggregate_ref,
17783         fold_ctor_reference, fold_nonarray_ctor_reference,
17784         fold_array_ctor_reference, fold_string_cst_ctor_reference,
17785         get_base_constructor): Move ...
17786         * gimple-fold.c: ... here.
17787         (gimple_fold_stmt_to_constant_1): New function
17788         split out from ccp_fold.  Take a valueization callback parameter.
17789         Valueize all operands.
17790         (gimple_fold_stmt_to_constant): New wrapper function.
17791         (fold_const_aggregate_ref_1): New function split out from
17792         fold_const_aggregate_ref.  Take a valueization callback parameter.
17793         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
17794         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
17795         invariant POINTER_PLUS_EXPRs to invariant form.
17796         (vn_valueize): New function.
17797         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
17798         * tree-vrp.c (vrp_valueize): New function.
17799         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
17800         to fold statements to constants.
17801         * tree-ssa-pre.c (eliminate): Properly guard propagation of
17802         function declarations.
17803         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
17804         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
17805
17806 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
17807
17808         * config/h8300/predicates.md (jump_address_operand): Fix register
17809         mode check.
17810
17811 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
17812
17813         * doc/invoke.texi (max-stores-to-sink): Document.
17814         * params.h (MAX_STORES_TO_SINK): Define.
17815         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
17816         if either vectorization or if-conversion is disabled.
17817         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
17818         tree-vect-data-refs.c vect_equal_offsets.
17819         (dr_equal_offsets_p): New function.
17820         (find_data_references_in_bb): Remove static.
17821         * tree-data-ref.h (find_data_references_in_bb): Declare.
17822         (dr_equal_offsets_p): Likewise.
17823         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
17824         (vect_drs_dependent_in_basic_block): Update calls to
17825         vect_equal_offsets.
17826         (vect_check_interleaving): Likewise.
17827         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
17828         (cond_if_else_store_replacement): Rename to...
17829         (cond_if_else_store_replacement_1): ... this.  Change arguments and
17830         documentation.
17831         (cond_if_else_store_replacement): New function.
17832         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
17833         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
17834
17835 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
17836
17837         PR target/46934
17838         * config/arm/arm.md (casesi): Use the gen_int_mode() function
17839         to subtract lower bound instead of GEN_INT().
17840
17841 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
17842
17843         PR other/48179
17844         PR other/48221
17845         PR other/48234
17846         * doc/extend.texi (Alignment): Move section to match order in TOC.
17847         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
17848         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
17849
17850 2011-03-23  Jeff Law  <law@redhat.com>
17851
17852         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
17853         before removing the edge.
17854
17855         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
17856         it may have been freed by redirect_branch_edge or
17857         redirect_edge_succ_nodup.
17858
17859 2011-03-23  Richard Guenther  <rguenther@suse.de>
17860
17861         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
17862         (check_va_list_escapes): Likewise.
17863         (check_all_va_list_escapes): Likewise.
17864
17865 2011-03-23  Richard Guenther  <rguenther@suse.de>
17866
17867         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
17868         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
17869         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
17870         (alias.o): Likewise.
17871         (ipa-type-escape.o): Remove.
17872         (ipa-struct-reorg.o): Likewise.
17873         (GTFILES): Remove ipa-struct-reorg.c.
17874         * alias.c: Do not include ipa-type-escape.h.
17875         * tree-ssa-alias.c: Likewise.
17876         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
17877         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
17878         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
17879         and ipa-type-escape passes.
17880         * tree-pass.h (pass_ipa_type_escape): Remove.
17881         (pass_ipa_struct_reorg): Likewise.
17882         * ipa-struct-reorg.h: Remove.
17883         * ipa-struct-reorg.c: Likewise.
17884         * ipa-type-escape.h: Likewise.
17885         * ipa-type-escape.c: Likewise.
17886         * doc/invoke.texi (-fipa-struct-reorg): Remove.
17887         (--param struct-reorg-cold-struct-ratio): Likewise.
17888         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17889         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17890         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
17891
17892 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17893
17894         * config/s390/2084.md: Enable all insn reservations also for z9_ec
17895         cpu attribute value.
17896         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
17897         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
17898         * config/s390/s390.c (processor_flags_table): New constant array.
17899         (s390_handle_arch_option): Remove.
17900         (s390_handle_option): Remove s390_handle_arch_option invocations
17901         and OPT_mwarn_framesize_ handling.
17902         (s390_option_override): Remove s390_handle_arch_option invocation.
17903         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
17904         warnings.
17905         * config/s390/s390.md (cpu attribute): Add z9_ec value.
17906         * config/s390/s390.opt (s390_tune, s390_arch)
17907         (march=): Replace s390_arch_option enum and values with
17908         processor_type.  Set variable name to s390_arch.  Set
17909         initialization value.
17910         (mtune=): Replace s390_arch_option with processor_type.  Set
17911         variable name to s390_tune.  Set initialization value.
17912
17913 2011-03-23  Julian Brown  <julian@codesourcery.com>
17914
17915         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
17916         accesses which are not naturally aligned.
17917
17918 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
17919
17920         PR target/47553
17921         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
17922
17923 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
17924
17925         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
17926         parameter from "int" to "enum insn_code".
17927         (expand_operand_type): New enum.
17928         (expand_operand): New structure.
17929         (create_expand_operand): New function.
17930         (create_fixed_operand, create_output_operand): Likewise
17931         (create_input_operand, create_convert_operand_to): Likewise.
17932         (create_convert_operand_from, create_address_operand): Likewise.
17933         (create_integer_operand): Likewise.
17934         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
17935         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17936         (expand_insn, expand_jump_insn): Likewise.
17937         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
17938         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
17939         (expand_movstr, expand_builtin___clear_cache): Likewise.
17940         (expand_builtin_lock_release): Likewise.
17941         * explow.c (allocate_dynamic_stack_space): Likewise.
17942         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
17943         and use the default handling in that case.
17944         * expmed.c (check_predicate_volatile_ok): Delete.
17945         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
17946         (emit_cstore): Likewise.
17947         * expr.c (emit_block_move_via_movmem): Likewise.
17948         (set_storage_via_setmem, expand_assignment): Likewise.
17949         (emit_storent_insn, try_casesi): Likewise.
17950         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
17951         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
17952         (expand_vec_shift_expr, expand_binop_directly): Likewise.
17953         (expand_twoval_unop, expand_twoval_binop): Likewise.
17954         (expand_unop_direct, emit_indirect_jump): Likewise.
17955         (emit_conditional_move, vector_compare_rtx): Likewise.
17956         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
17957         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
17958         (expand_sync_lock_test_and_set): Likewise.
17959         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
17960         (emit_unop_insn): Likewise.
17961         (expand_copysign_absneg): Change icode to an insn_code.
17962         (create_convert_operand_from_type): New function.
17963         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
17964         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17965         (expand_insn, expand_jump_insn): Likewise.
17966         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
17967         than const_int_operand for operand 2.
17968
17969 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17970
17971         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
17972         if possible.
17973
17974 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
17975
17976         * emit-rtl.c (emit_pattern_before_noloc): New function.
17977         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
17978         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
17979         (emit_pattern_after_noloc): New function.
17980         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
17981         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
17982
17983 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
17984
17985         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
17986         (__ffsDI2): Likewise.
17987
17988 2011-03-22  Richard Henderson  <rth@redhat.com>
17989
17990         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
17991         of !TARGET_ABI_OPEN_VMS.
17992         (alpha_trampoline_init, alpha_start_function): Likewise.
17993         (alpha_expand_epilogue, alpha_file_start): Likewise.
17994         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
17995         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
17996         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
17997         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
17998         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
17999
18000 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18001
18002         * config/s390/s390-opts.h: New.
18003         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
18004         s390_arch_flags, s390_warn_framesize, s390_stack_size,
18005         s390_stack_guard): Remove.
18006         (s390_handle_arch_option): Return void.  Take enum
18007         s390_arch_option value instead of string and searching array.
18008         (s390_handle_option): Don't assert that global structures are in
18009         use.  Access variables via opts pointer.  Use error_at.  Don't use
18010         sscanf for -mstack-guard= or -mstack-size=.  Update call to
18011         s390_handle_arch_option.
18012         (s390_option_override): Update call to s390_handle_arch_option.
18013         (s390_emit_prologue): Use %d format for s390_stack_size in
18014         diagnostic.  Use %wd for HOST_WIDE_INT.
18015         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
18016         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
18017         * config/s390/s390.opt (config/s390/s390-opts.h): New
18018         HeaderInclude entry.
18019         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
18020         s390_arch_flags, s390_warn_framesize): New Variable entries.
18021         (s390_arch_option): New Enum and EnumValue entries.
18022         (march=): Use Enum instead of Var.
18023         (mstack-guard=, mstack-size=): Use UInteger and Var.
18024         (mtune=): Use Enum.
18025
18026 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18027
18028         * config/score/score.c (score_handle_option): Don't assert that
18029         global structures are in use.  Access target_flags via opts
18030         pointer.  Use value of -march= option to determine target_flags
18031         settings.
18032         * config/score/score.opt (march=): Use Enum.
18033         (score_arch): New Enum and EnumValue entries.
18034
18035 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18036
18037         * config/mep/mep.c (option_mtiny_specified): Remove.
18038         (mep_option_override): Move register handling for -mivc2 from
18039         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
18040         instead of option_mtiny_specified.
18041         (mep_handle_option): Access target_flags via opts pointer.  Don't
18042         assert that global structures are in use.  Defer part of -mivc2
18043         handling and move it to mep_option_override.
18044         * config/mep/mep.opt (IVC2): New Mask entry.
18045         (mivc2): Use Var and Defer instead of Mask.
18046
18047 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18048
18049         * config/v850/v850-opts.h: New.
18050         * config/v850/v850.c (small_memory): Replace with
18051         small_memory_physical_max array.  Make that array static const.
18052         (v850_handle_memory_option): Take integer value of argument.  Take
18053         gcc_options pointer, option text and location.  Return void.
18054         Update for changes to small memory structures.
18055         (v850_handle_option): Access target_flags via opts pointer.  Don't
18056         assert that global structures are in use.  Update calls to
18057         v850_handle_memory_option.
18058         (v850_encode_data_area): Update references to small memory settings.
18059         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
18060         (enum small_memory_type): Move to v850-opts.h.
18061         * config/v850/v850.opt (config/v850/v850-opts.h): New
18062         HeaderInclude entry.
18063         (small_memory_max): New Variable entry.
18064         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
18065         (mtda, mzda): Likewise.
18066
18067 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18068
18069         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
18070         pointer.  Don't assert that global structures are in use.
18071
18072 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18073
18074         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
18075         via opts pointer.  Don't assert that global structures are in use.
18076
18077 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18078
18079         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
18080         (munix=93): Use Var.
18081         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
18082         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
18083         * config/pa/pa-opts.h: New.
18084         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
18085         (pa_handle_option): Don't assert that global structures are in
18086         use.  Access target_flags via opts pointer.  Don't handle
18087         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
18088         OPT_munix_98 here.
18089         (pa_option_override): Handle deferred OPT_mfixed_range_.
18090
18091 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18092
18093         * config/mn10300/mn10300-opts.h: New.
18094         * config/mn10300/mn10300.c (mn10300_processor,
18095         mn10300_tune_string): Remove.
18096         (mn10300_handle_option): Don't assert that global structures are
18097         in use.  Access mn10300_processor via opts pointer.  Don't handle
18098         OPT_mtune_ here.
18099         * config/mn10300/mn10300.h (enum processor_type): Move to
18100         mn10300-opts.h.
18101         (mn10300_processor): Remove.
18102         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
18103         HeaderInclude entry.
18104         (mn10300_processor): New Variable entry.
18105         (mtune=): Use Var.
18106
18107 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18108
18109         * config/microblaze/microblaze.c: Don't include opts.h.
18110         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
18111         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
18112         (mno-clearbss): Use Var and Warn.
18113
18114 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18115
18116         * config/m32r/m32r-opts.h: New.
18117         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
18118         (m32r_handle_option): Don't assert that global structures are in
18119         use.  Access target_flags and m32r_cache_flush_func via opts
18120         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
18121         OPT_mno_flush_trap here.
18122         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
18123         include of m32r-opts.h.
18124         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
18125         HeaderInclude entry.
18126         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
18127         (mmodel=): Use Enum and Var.
18128         (m32r_model): New Enum and EnumValue entries.
18129         (mno-flush-trap): Use Var.
18130         (msdata=): Use Enum and Var.
18131         (m32r_sdata): New Enum and EnumValue entries.
18132
18133 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18134
18135         * config/m32c/m32c.c: Don't include opts.h.
18136         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
18137         m32c_handle_option): Remove.
18138         (m32c_option_override): Check global_options_set.x_target_memregs
18139         instead of target_memregs_set.
18140         * config/m32c/m32c.h (target_memregs): Remove.
18141         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
18142         variable.
18143
18144 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18145
18146         * config/iq2000/iq2000-opts.h: New.
18147         * config/iq2000/iq2000.c: Don't include opts.h.
18148         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
18149         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
18150         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
18151         HeaderInclude entry.
18152         (iq2000_tune): New Variable entry.
18153         (march=): Add comment.  Use Enum.
18154         (iq2000_arch): New Enum and EnumValue entries.
18155         (mcpu=): Use Enum and Var.
18156         (iq2000_tune): New Enum and EnumValue entries.
18157
18158 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18159
18160         * config/ia64/ia64-opts.h: New.
18161         * config/ia64/ia64.c (ia64_tune): Remove.
18162         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
18163         here.  Use error_at.
18164         (ia64_option_override): Handle deferred OPT_mfixed_range_.
18165         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
18166         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
18167         HeaderInclude entry.
18168         (ia64_tune): New Variable entry.
18169         (mfixed-range=): Use Defer and Var.
18170         (mtune=): Use Enum and Var.
18171         (ia64_tune): New Enum and EnumValue entries.
18172
18173 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18174
18175         * config/frv/frv-opts.h: New.
18176         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
18177         frv-opts.h.
18178         (frv_cpu_type): Remove.
18179         * config/frv/frv.c: Don't include opts.h.
18180         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
18181         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
18182         (frv_cpu_type): New Variable entry.
18183         (frv_cpu): New Enum and EnumValue entries.
18184
18185 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18186
18187         * config/cris/cris.c (cris_handle_option): Access target_flags via
18188         opts pointer.  Don't assert that global structures are in use.
18189         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
18190         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
18191
18192 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18193
18194         * config/bfin/bfin-opts.h: New.
18195         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
18196         bfin_si_revision, bfin_workarounds): Remove.
18197         (bfin_cpus): Make static const.
18198         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
18199         not bfin_lib_id_given.
18200         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
18201         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
18202         pointer. Use error_at.  Don't assert that global structures are in use.
18203         * config/bfin/bfin.h: Include bfin-opts.h.
18204         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
18205         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
18206         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
18207         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
18208         entries.
18209
18210 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18211
18212         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
18213         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
18214         or -msoft-float here.
18215         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
18216         -msoft-float and -mhard-float.
18217         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
18218         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
18219         msoft-float.
18220         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
18221         -msoft-float.
18222         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
18223         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
18224         not mhard-float.
18225         (LIBGCC_SPEC): Don't handle -msoft-float.
18226         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
18227         -mhard-float.
18228         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
18229         msoft-float.
18230         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
18231         -mfloat-abi=*, not -msoft-float and -mhard-float.
18232         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
18233         -msoft-float.
18234         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
18235         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
18236         mhard-float and msoft-float.
18237         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
18238         mfloat-abi=soft in comments, not mhard-float and msoft-float.
18239         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
18240         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
18241         mhard-float.
18242         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
18243         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
18244         msoft-float.
18245         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
18246         not mhard-float.
18247         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
18248         not msoft-float.
18249
18250 2011-03-22  Richard Henderson  <rth@redhat.com>
18251
18252         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
18253         TARGET_ABI_WINDOWS_NT.
18254         (alpha_output_function_end_prologue): Likewise.
18255         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
18256         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18257         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
18258         (trap, *movsi_nt_vms): Likewise.
18259         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
18260         (*tablejump_osf_nt_internal): Remove.
18261         * config/alpha/predicates.md (input_operand): Only test Pmode.
18262
18263 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18264
18265         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
18266         via opts pointer.  Use error_at.  Don't assert that global
18267         structures are in use.
18268
18269 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18270
18271         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
18272         (ix86_handle_option): Access ix86_isa_flags and
18273         ix86_isa_flags_explicit via opts pointer.  Don't assert that
18274         global structures are in use.
18275         (ix86_function_specific_save, ix86_function_specific_restore):
18276         Update ix86_isa_flags_explicit field name.
18277         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
18278         (ix86_isa_flags_explicit): Rename TargetSave entry to
18279         x_ix86_isa_flags_explicit.
18280
18281 2011-03-22  Richard Henderson  <rth@redhat.com>
18282
18283         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
18284         (alpha_option_override, direct_return): Likewise.
18285         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
18286         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
18287         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
18288         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
18289         (alpha_expand_epilogue, alpha_end_function): Likewise.
18290         (alpha_init_libfuncs): Likewise.
18291         (struct machine_function): Remove unicosmk members.
18292         (print_operand) ['t']: Remove.
18293         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
18294         unicosmk_output_module_name, unicosmk_output_common,
18295         current_section_align, unicosmk_output_text_section_asm_op,
18296         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
18297         unicosmk_section_type_flags, unicosmk_unique_section,
18298         unicosmk_asm_named_section, unicosmk_insert_attributes,
18299         unicosmk_output_align, unicosmk_defer_case_vector,
18300         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
18301         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
18302         unicosmk_output_ssib, unicosmk_add_call_info_word,
18303         unicosmk_extern_head, unicosmk_output_default_externs,
18304         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
18305         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
18306         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
18307         * config/alpha/alpha-protos.h: Update.
18308         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
18309         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
18310         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
18311         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
18312         (*mulsi_se, mulvsi3): Likewise.
18313         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
18314         (*divmodsi_internal, call, call_value, realign): Likewise.
18315         (moddi3, umoddi3): Likewise; remove duplicate expander.
18316         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
18317         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
18318         (*movdi_nofix): Remove r/U alternative.
18319         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
18320         * config/alpha/constraints.md ("U"): Remove.
18321         * config/alpha/predicates.md (call_operand"): Don't test
18322         TARGET_ABI_UNICOSMK.
18323
18324 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18325
18326         * target.def (handle_option): Take gcc_options and
18327         cl_decoded_option pointers and location_t.
18328         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
18329         * doc/tm.texi: Regenerate.
18330         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
18331         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
18332         * lto-opts.c (lto_reissue_options): Generate option structure for
18333         targetm.handle_option call.
18334         * opts.c (target_handle_option): Update call to
18335         targetm.handle_option.  Remove assertions about values now passed
18336         down to hook.
18337         * targhooks.c (default_target_handle_option): New.
18338         * targhooks.h (default_target_handle_option): Declare.
18339         * config/alpha/alpha.c: Include opts.h.
18340         (alpha_handle_option): Update to new hook interface.
18341         * config/arm/arm.c: Include opts.h.
18342         (arm_handle_option): Update to new hook interface.
18343         * config/arm/t-arm (arm.o): Update dependencies.
18344         * config/bfin/bfin.c: Include opts.h.
18345         (bfin_handle_option): Update to new hook interface.
18346         * config/cris/cris.c: Include opts.h.
18347         (cris_handle_option): Update to new hook interface.
18348         * config/frv/frv.c: Include opts.h.
18349         (frv_handle_option): Update to new hook interface.
18350         * config/i386/i386.c: Include opts.h.
18351         (ix86_handle_option): Update to new hook interface.
18352         (ix86_valid_target_attribute_inner_p): Generate option structure
18353         for call to ix86_handle_option.
18354         * config/i386/t-i386 (i386.o): Update dependencies.
18355         * config/ia64/ia64.c: Include opts.h.
18356         (ia64_handle_option): Update to new hook interface.
18357         * config/ia64/t-ia64 (ia64.o): Update dependencies.
18358         * config/iq2000/iq2000.c: Include opts.h.
18359         (iq2000_handle_option): Update to new hook interface.
18360         * config/m32c/m32c.c: Include opts.h.
18361         (m32c_handle_option): Update to new hook interface.
18362         * config/m32r/m32r.c: Include opts.h.
18363         (m32r_handle_option): Update to new hook interface.
18364         * config/m68k/m68k.c: Include opts.h.
18365         (m68k_handle_option): Update to new hook interface.
18366         * config/mep/mep.c: Include opts.h.
18367         (mep_handle_option): Update to new hook interface.
18368         * config/microblaze/microblaze.c: Include opts.h.
18369         (microblaze_handle_option): Update to new hook interface.
18370         * config/mips/mips.c: Include opts.h.
18371         (mips_handle_option): Update to new hook interface.
18372         * config/mn10300/mn10300.c: Include opts.h.
18373         (mn10300_handle_option): Update to new hook interface.
18374         * config/pa/pa.c: Include opts.h.
18375         (pa_handle_option): Update to new hook interface.
18376         * config/pdp11/pdp11.c: Include opts.h.
18377         (pdp11_handle_option): Update to new hook interface.
18378         * config/rs6000/rs6000.c: Include opts.h.
18379         (rs6000_handle_option): Update to new hook interface.
18380         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
18381         * config/rx/rx.c: Include opts.h.
18382         (rx_handle_option): Update to new hook interface.
18383         * config/s390/s390.c: Include opts.h.
18384         (s390_handle_option): Update to new hook interface.
18385         * config/score/score.c: Include opts.h.
18386         (score_handle_option): Update to new hook interface.
18387         * config/sh/sh.c: Include opts.h.
18388         (sh_handle_option): Update to new hook interface.
18389         * config/sparc/sparc.c: Include opts.h.
18390         (sparc_handle_option): Update to new hook interface.
18391         * config/v850/v850.c: Include opts.h.
18392         (v850_handle_option): Update to new hook interface.
18393
18394 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18395
18396         * gcc.c (driver_unknown_option_callback): Only permit and save
18397         unknown -Wno- options.
18398         (driver_wrong_lang_callback): Save options directly instead of via
18399         driver_unknown_option_callback.
18400
18401 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
18402
18403         * combine.c (simplify_set): Try harder to find the best CC mode when
18404         simplifying a nested COMPARE on the RHS.
18405
18406 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18407
18408         * config/alpha/gnu.h: Remove.
18409         * config/arc: Remove directory.
18410         * config/arm/netbsd.h: Remove.
18411         * config/arm/t-pe: Remove.
18412         * config/crx: Remove directory.
18413         * config/i386/netbsd.h: Remove.
18414         * config/m68hc11: Remove directory.
18415         * config/m68k/uclinux-oldabi.h: Remove.
18416         * config/mcore/mcore-pe.h: Remove.
18417         * config/mcore/t-mcore-pe: Remove.
18418         * config/netbsd-aout.h: Remove.
18419         * config/rs6000/gnu.h: Remove.
18420         * config/sh/sh-symbian.h: Remove.
18421         * config/sh/symbian-base.c: Remove.
18422         * config/sh/symbian-c.c: Remove.
18423         * config/sh/symbian-cxx.c: Remove.
18424         * config/sh/symbian-post.h: Remove.
18425         * config/sh/symbian-pre.h: Remove.
18426         * config/sh/t-symbian: Remove.
18427         * config/svr3.h: Remove.
18428         * config/vax/netbsd.h: Remove.
18429         * config.build: Don't handle i[34567]86-*-pe.
18430         * config.gcc: Remove handling of deprecations for most deprecated
18431         targets.
18432         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
18433         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
18434         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
18435         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
18436         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
18437         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
18438         Remove cases.
18439         * config.host: Don't handle i[34567]86-*-pe.
18440         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
18441         (ASM_SPEC32): Don't handle -mcall-gnu.
18442         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
18443         -mcall-gnu.
18444         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
18445         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
18446         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
18447         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
18448         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
18449         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
18450         conditional on SYMBIAN.
18451         * configure.ac: Don't handle powerpc*-*-gnu*.
18452         * configure: Regenerate.
18453         * doc/extend.texi (interrupt attribute): Don't mention CRX.
18454         * doc/install-old.texi (m6811, m6812): Don't mention.
18455         * doc/install.texi (arc-*-elf*): Don't document multilib option.
18456         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
18457         (m68k-uclinuxoldabi): Don't mention.
18458         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
18459         Remove.
18460         (-mcall-gnu): Remove.
18461         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
18462         families): Remove constraint documentation.
18463
18464 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
18465
18466         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
18467         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
18468         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
18469
18470 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
18471
18472         PR target/48226
18473         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
18474         vector when peeking at the next token for vector, don't expand the
18475         keywords.
18476
18477 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
18478
18479         * config/avr/avr-protos.h (expand_epilogue): Change prototype
18480         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
18481         * config/avr/avr.c (init_cumulative_args)
18482         (avr_function_arg_advance): Use it.
18483         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
18484         sibcall epilogues.
18485         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
18486         (avr_function_ok_for_sibcall): ...this new function.
18487         (avr_lookup_function_attribute1): New static Function.
18488         (avr_naked_function_p, interrupt_function_p)
18489         (signal_function_p, avr_OS_task_function_p)
18490         (avr_OS_main_function_p): Use it.
18491         * config/avr/avr.md ("sibcall", "sibcall_value")
18492         ("sibcall_epilogue"): New expander.
18493         ("*call_insn", "*call_value_insn"): New insn.
18494         ("call_insn", "call_value_insn"): Remove
18495         ("call", "call_value", "epilogue"): Change expander to handle
18496         sibling calls.
18497
18498 2011-03-21  Nick Clifton  <nickc@redhat.com>
18499
18500         * doc/invoke.texi (Overall Options): Move closing brace to end of
18501         options list.
18502         (Optimization Options): Add missing @gol.
18503         (Directory Options): Likewise.
18504         (i386 and x86-64 Options): Likewise.
18505         (RS6000 and PowerPC Options): Likewise.
18506         (i386 and x86-64 Windows Options): Likewise.
18507         (V850 Options): Add text missing from descriptions.
18508
18509 2011-03-22  Richard Henderson  <rth@redhat.com>
18510
18511         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
18512         (avr_incoming_return_addr_rtx): New.
18513         (emit_push_byte): New.
18514         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
18515         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
18516         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
18517         (emit_pop_byte): New.
18518         (expand_epilogue): Use it.  Pop frame pointer by bytes.
18519         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
18520         (INCOMING_RETURN_ADDR_RTX): New.
18521         (INCOMING_FRAME_SP_OFFSET): New.
18522         (ARG_POINTER_CFA_OFFSET): New.
18523         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
18524         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
18525         (pophi): Remove.
18526
18527         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
18528
18529 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
18530
18531         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
18532         (FUNCTION_ARG_ADVANCE): Likewise.
18533         * tm.texi.in: Change references to them to hook references.
18534         * tm.texi: Regenerate.
18535         * targhooks.c (default_function_arg): Eliminate check for target
18536         macro.
18537         (default_function_incoming_arg): Likewise.
18538         (default_function_arg_advance): Likewise.
18539         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
18540         (function_arg_advance): Likewise.
18541         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
18542
18543 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
18544
18545         * tree.c (build_call_1): New function.
18546         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
18547
18548 2011-03-22  Richard Guenther  <rguenther@suse.de>
18549
18550         PR tree-optimization/48228
18551         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
18552         for single-arg PHIs.
18553
18554 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
18555
18556         PR rtl-optimization/48143
18557         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
18558         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
18559         sse2_cvtps2pd): Likewise.
18560
18561 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18562
18563         * recog.c (canonicalize_change_group): Use validate_unshare_change.
18564
18565 2011-03-22  Richard Guenther  <rguenther@suse.de>
18566
18567         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
18568         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
18569         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
18570         and REALIGN_LOAD_EXPR.
18571         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
18572         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
18573         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
18574         DOT_PROD_EXPR case ...
18575         (expand_expr_real_2): ... here.
18576         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
18577         and REALIGN_LOAD_EXPR.
18578         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
18579         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
18580         (vect_create_epilog_for_reduction): Likewise.
18581         (vectorizable_reduction): Likewise.
18582         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
18583         * tree-vect-stmts.c (vectorizable_load): Likewise.
18584
18585 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
18586
18587         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
18588
18589 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18590
18591         * config/s390/s390.c (s390_delegitimize_address): Fix offset
18592         handling for PLTOFF/GOTOFF.
18593
18594 2011-03-22  Nick Clifton  <nickc@redhat.com>
18595
18596         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
18597         trailing backslash from the end of the macro definition.
18598
18599 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18600
18601         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
18602         and PLT unspecs.
18603
18604 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
18605
18606         * expr.h (prepare_operand): Move to...
18607         * optabs.h (prepare_operand): ...here and change the insn code
18608         parameter from "int" to "enum insn_code".
18609         (insn_operand_matches): Declare.
18610         * expr.c (init_expr_target): Use insn_operand_matches.
18611         (compress_float_constant): Likewise.
18612         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
18613         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
18614         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
18615         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
18616         Likewise.
18617         (gen_cond_trap): Likewise.
18618         (prepare_operand): Likewise.  Change icode to an insn_code.
18619         (insn_operand_matches): New function.
18620         * reload.c (find_reloads_address_1): Use insn_operand_matches.
18621         * reload1.c (gen_reload): Likewise.
18622         * targhooks.c (default_secondary_reload): Likewise.
18623
18624 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
18625
18626         * config/alpha/alpha.md (unspec): New define_c_enum.
18627         (unspecv): Ditto.
18628
18629 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
18630
18631         PR debug/48214
18632         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
18633         between a call and its CALL_ARG_LOCATION note.
18634
18635 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
18636
18637         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
18638
18639 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
18640
18641         PR c/42544
18642         PR c/48197
18643         * c-common.c (shorten_compare): If primopN is first sign-extended
18644         to opN and then zero-extended to result type, set primopN to opN.
18645
18646 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
18647
18648         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
18649         for barrier handlers.
18650
18651 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
18652
18653         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
18654         UNSPEC constants to be in the unspec enumeration, and redefine
18655         all UNSPECV constants to be in the unspecv enumeration, so that
18656         dumps print which unspec/unspec_volatile this is.
18657         * config/rs6000/vector.md (UNSPEC_*): Ditto.
18658         * config/rs6000/paired.md (UNSPEC_*): Ditto.
18659         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
18660         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
18661         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
18662
18663         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
18664         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
18665         UNSPECV_LWSYNC, since these are used as unspec_volatile.
18666         * config/rs6000/sync.md (isync, lwsync): Ditto.
18667
18668 2011-03-21  Richard Guenther  <rguenther@suse.de>
18669
18670         * params.def (lto-min-partition): Fix typo.
18671
18672 2011-03-21  Richard Guenther  <rguenther@suse.de>
18673
18674         PR c/47939
18675         * c-decl.c (grokdeclarator): Drop to the main variant only
18676         for array types.  Drop flag_gen_aux_info check.
18677
18678 2011-03-21  Richard Guenther  <rguenther@suse.de>
18679
18680         PR translation/47911
18681         * params.def (lto-partitions): Fix typo.
18682         (lto-min-partition): Fix wording.
18683
18684 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
18685
18686         * config/rs6000/t-freebsd: Remove duplication from file.
18687
18688 2011-03-21  Richard Guenther  <rguenther@suse.de>
18689
18690         PR middle-end/47661
18691         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
18692
18693 2011-03-21  Richard Guenther  <rguenther@suse.de>
18694
18695         PR lto/48210
18696         * params.def (lto-partitions): Require at least 1 partition.
18697
18698 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18699
18700         * gthr-solaris.h: Remove.
18701         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
18702         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
18703         (LIB_SPEC): Likewise.
18704         * config/sol2.opt (threads): Remove.
18705         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
18706         (sparc*-*-solaris2*): Likewise.
18707         * configure.ac (enable_threads): Enable solaris support.
18708         * configure: Regenerate.
18709         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
18710         * doc/install.texi (Configuration, --enable-threads=lib): Remove
18711         solaris.
18712
18713 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18714
18715         * config.gcc: Obsolete *-*-solaris2.8*.
18716         * doc/install.texi (Specific, *-*-solaris2*): Document it.
18717
18718 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18719
18720         PR bootstrap/48135
18721         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
18722         reference.  Solaris 8 perl works.
18723
18724 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18725
18726         PR bootstrap/48135
18727         * doc/install.texi (Prerequisites): Move jar etc. up.
18728         Explain support library version requirements.
18729
18730 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18731
18732         PR bootstrap/48135
18733         * doc/install.texi (Prerequisites): Move Perl to build
18734         requirements.  Always necessary on Solaris 2 with Sun ld.
18735
18736 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18737
18738         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
18739         binutils 2.21.
18740         (Specific, i?86-*-solaris2.[89]): Likewise.
18741         (Specific, i?86-*-solaris2.10): Likewise.
18742         (Specific, mips-sgi-irix6): Likewise.
18743         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
18744         Update for binutils 2.21.
18745
18746 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18747
18748         * configure.ac (gcc_cv_lto_plugin): Fix typo.
18749         Allow -fuse-linker-plugin for non-default plugin linker.
18750         * configure: Regenerate.
18751
18752 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
18753
18754         PR bootstrap/48167
18755         * gengtype.c (files_rules): Added rule for cp/parser.h.
18756
18757 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
18758
18759         PR target/48213
18760         * config/s390/s390.c (s390_delegitimize_address): Don't call
18761         lowpart_subreg if orig_x has BLKmode.
18762
18763 2011-03-21  Kai Tietz  <ktietz@redhat.com>
18764
18765         PR target/12171
18766         * doc/plugins.texi: Adjust documentation for plugin register_callback.
18767         * tree.h (attribute_spec): Add new member affects_type_identity.
18768         * attribs.c (empty_attribute_table): Adjust attribute_spec
18769         initializers.
18770         * config/alpha/alpha.c: Likewise.
18771         * config/arc/arc.c: Likewise.
18772         * config/arm/arm.c: Likewise.
18773         * config/avr/avr.c: Likewise.
18774         * config/bfin/bfin.c: Likewise.
18775         * config/crx/crx.c: Likewise.
18776         * config/darwin.h: Likewise.
18777         * config/h8300/h8300.c: Likewise.
18778         * config/i386/cygming.h: Likewise.
18779         * config/i386/i386.c: Likewise.
18780         * config/ia64/ia64.c: Likewise.
18781         * config/m32c/m32c.c: Likewise.
18782         * config/m32r/m32r.c: Likewise.
18783         * config/m68hc11/m68hc11.c: Likewise.
18784         * config/m68k/m68k.c: Likewise.
18785         * config/mcore/mcore.c: Likewise.
18786         * config/mep/mep.c: Likewise.
18787         * config/microblaze/microblaze.c: Likewise.
18788         * config/mips/mips.c: Likewise.
18789         * config/rs6000/rs6000.c: Likewise.
18790         * config/rx/rx.c: Likewise.
18791         * config/sh/sh.c: Likewise.
18792         * config/sol2.h: Likewise.
18793         * config/sparc/sparc.c: Likewise.
18794         * config/spu/spu.c: Likewise.
18795         * config/stormy16/stormy16.c: Likewise.
18796         * config/v850/v850.c: Likewise.
18797
18798 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
18799
18800         * simplify-rtx.c (simplify_binary_operation_1): Handle
18801         (xor (and A B) C) case when B and C are both constants.
18802
18803 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
18804
18805         * tree-dfa.c (add_referenced_var): Fix typo in comment.
18806
18807 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
18808
18809         PR bootstrap/48168
18810         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
18811
18812 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
18813
18814         PR rtl-optimization/48156
18815         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
18816         assume df and df_lr are not NULL.
18817
18818 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18819
18820         PR debug/48023
18821         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
18822         between a call and its CALL_ARG_LOCATION note.
18823
18824 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
18825
18826         PR debug/48178
18827         * config/sh/sh.c (find_barrier): Don't emit a constant pool
18828         between a call and its corresponding CALL_ARG_LOCATION note.
18829
18830 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
18831
18832         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
18833         instead of loop. Use HARD_REGISTER_NUM_P predicate.
18834         * haifa-sched.c (setup_ref_regs): Ditto.
18835         * caller-save.c (add_used_regs_1): Ditto.
18836         * dse.c (look_for_hardregs): Ditto.
18837         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
18838         * sched-rgn.c (check_live_1): Ditto.
18839
18840 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
18841
18842         * c-decl.c (diagnose_mismatched_decls): Give an error for
18843         redefining a typedef with variably modified type.
18844
18845 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
18846
18847         * c-decl.c (grokfield): Don't allow typedefs for structures or
18848         unions with no tag by default.
18849         * doc/extend.texi (Unnamed Fields): Update.
18850
18851 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
18852
18853         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
18854         Rewrite using indirect functions.
18855         (lwp_slwpcb): Ditto.
18856         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
18857         (avx_vinsertf128<mode>): Ditto.
18858
18859 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18860
18861         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
18862         unspecs.
18863
18864 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18865
18866         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
18867         splitting between a call and its corresponding CALL_ARG_LOCATION note.
18868
18869 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
18870
18871         PR rtl-optimization/48170
18872         * gcse.c (hoist_code): Remove bogus asserts.
18873
18874 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
18875
18876         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
18877         computation for prologue/epilogue.
18878
18879 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18880
18881         * Makefile.in (check-consistency): Remove.
18882
18883 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
18884
18885         PR debug/48176
18886         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
18887         arange_table_in_use is 0, but either text_section_used or
18888         cold_text_section_used is true.  Don't call it if
18889         !info_section_emitted.
18890
18891 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
18892
18893         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
18894         FUNCTION_VALUE_REGNO_P): Remove.
18895         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
18896         Remove.
18897         * config/avr/avr.c (avr_ret_register): Make static inline.
18898         (avr_function_value_regno_p): New function.
18899         (avr_libcall_value): Make static. Add 'func' argument.
18900         (avr_function_value): Make static. Rename 'func' argument to
18901         'fn_decl_or_type', forward it to avr_libcall_value. Call
18902         avr_ret_register function instead of RET_REGISTER macro.
18903         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
18904
18905 2011-03-18  Jason Merrill  <jason@redhat.com>
18906
18907         PR c++/23372
18908         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
18909
18910 2011-03-18  Richard Guenther  <rguenther@suse.de>
18911
18912         * doc/install.texi (--enable-gold): Remove.
18913         (--with-plugin-ld): Document.
18914         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
18915
18916 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
18917
18918         PR middle-end/47790
18919         * expr.c (optimize_bitfield_assignment_op): Revamp to work
18920         again after expansion changes.
18921
18922 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
18923
18924         * combine.c (try_combine): Do simplification only call of
18925         subst() on i2 even when i1 is present. Update comments.
18926
18927 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
18928
18929         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
18930         and UNSPEC_PCREL_SYMOFF.
18931
18932 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18933
18934         * config/s390/s390.md: Use define_c_enum for the unspec constant
18935         definitions.
18936
18937 2011-03-18  Richard Henderson  <rth@redhat.com>
18938             Jakub Jelinek  <jakub@redhat.com>
18939
18940         PR bootstrap/48161
18941         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
18942         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
18943
18944 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
18945
18946         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18947         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
18948         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
18949         Change return type to bool.
18950         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18951
18952 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
18953
18954         PR debug/48163
18955         * var-tracking.c (prepare_call_arguments): If CALL target
18956         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
18957         pc instead of looking it up using cselib_lookup and use
18958         Pmode for it if x has VOIDmode.
18959         * dwarf2out.c (gen_subprogram_die): If also both first and
18960         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
18961
18962         PR debug/48163
18963         * function.c (assign_parms): For data.passed_pointer parms
18964         use MEM of data.entry_parm instead of data.entry_parm itself
18965         as DECL_INCOMING_RTL.
18966         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
18967         also when passed and declared mode is the same, DECL_RTL
18968         is a MEM with pseudo as address and DECL_INCOMING_RTL is
18969         a MEM too.
18970
18971 2011-03-16  Jeff Law  <law@redhat.com>
18972
18973         PR rtl-optimization/37273
18974         * ira-costs.c (scan_one_insn): Detect constants living in memory and
18975         handle them like argument loads from stack slots.  Do not double
18976         count memory for memory constants and argument loads from stack slots.
18977
18978 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
18979
18980         PR debug/48160
18981         * var-tracking.c (prepare_call_arguments): Check SUBREG.
18982
18983 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
18984
18985         PR target/48171
18986         * config/i386/i386.opt: Add Save to -mavx and -mfma.
18987
18988 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
18989
18990         PR bootstrap/48153
18991         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
18992         if dwarf_strict.
18993         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
18994         Clear call_arg_locations and call_arg_loc_last always.
18995
18996         PR middle-end/48152
18997         * var-tracking.c (prepare_call_arguments): If argument needs to be
18998         passed by reference, adjust argtype and mode.
18999
19000 2011-03-17  Richard Guenther  <rguenther@suse.de>
19001
19002         PR middle-end/48134
19003         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
19004         a value make sure to fold the statement.
19005
19006 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
19007
19008         PR target/43872
19009         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
19010         return condition with !cfun->calls_alloca.
19011
19012 2011-03-17  Richard Guenther  <rguenther@suse.de>
19013
19014         PR bootstrap/48148
19015         * lto-cgraph.c (input_overwrite_node): Clear the abstract
19016         origin for decls in other ltrans units.
19017         (input_varpool_node): Likewise.
19018
19019 2011-03-17  Richard Guenther  <rguenther@suse.de>
19020
19021         PR middle-end/48165
19022         * tree-object-size.c (compute_object_offset): Properly return
19023         the offset operand of MEM_REFs as sizetype.
19024
19025 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
19026
19027         PR rtl-optimization/48141
19028         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
19029         * dse.c: Include params.h.
19030         (active_local_stores_len): New variable.
19031         (add_wild_read, dse_step1): Clear it when setting active_local_stores
19032         to NULL.
19033         (record_store, check_mem_read_rtx): Decrease it when removing
19034         from the chain.
19035         (scan_insn): Likewise.  Increase it when adding to chain, if it
19036         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
19037         set active_local_stores to NULL before the addition.
19038         * Makefile.in (dse.o): Depend on $(PARAMS_H).
19039
19040         PR rtl-optimization/48141
19041         * dse.c (record_store): If no positions are needed in an insn
19042         that cannot be deleted, at least unchain it from active_local_stores.
19043
19044 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
19045
19046         PR debug/47510
19047         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
19048         (lookup_type_die_strip_naming_typedef): ... here.
19049         (get_context_die): Use it.
19050         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
19051         the anonymous struct named by the naming typedef.
19052
19053 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
19054
19055         PR target/48154
19056         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
19057         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
19058
19059 2011-03-16  Jeff Law  <law@redhat.com>
19060
19061         * tree-vrp.c (identify_jump_threads): Slightly simplify type
19062         check for operands of conditional.  Allow type to be a pointer.
19063
19064 2011-03-16  Richard Guenther  <rguenther@suse.de>
19065
19066         PR tree-optimization/48149
19067         * fold-const.c (fold_binary_loc): Fold
19068         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
19069
19070 2011-03-16  Richard Guenther  <rguenther@suse.de>
19071
19072         PR tree-optimization/26134
19073         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
19074         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
19075         (non_rewritable_mem_ref_base): Handle complex type component
19076         accesses, constrain offsets for vector and complex extracts
19077         more properly.
19078
19079 2011-03-16  Richard Guenther  <rguenther@suse.de>
19080
19081         PR tree-optimization/48146
19082         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
19083         operands avoiding the need for renaming.
19084
19085 2011-03-16  Richard Guenther  <rguenther@suse.de>
19086
19087         * gimple-fold.c (maybe_fold_reference): Open-code relevant
19088         constant folding.  Move MEM_REF canonicalization first.
19089         Rely on fold_const_aggregate_ref for initializer folding.
19090         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
19091
19092 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
19093
19094         PR middle-end/48136
19095         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
19096         arg0/arg1 or their arguments are always fold converted to matching
19097         types.
19098
19099         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
19100         to nargs.
19101
19102 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19103
19104         PR lto/46944
19105         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
19106         Handle in-tree gold.
19107         (ld_vers): Extract binutils version for gold.
19108         (gcc_cv_ld_hidden): Handle gold here.
19109         (gcc_cv_lto_plugin): Determine level of linker plugin support.
19110         * configure: Regenerate.
19111         * config.in: Regenerate.
19112         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
19113         -fuse-linker-plugin otherwise.
19114         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
19115         (LINK_COMMAND_SPEC): Use it.
19116         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
19117
19118 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
19119
19120         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
19121         * calls.c: Remove debug.h include.
19122         (emit_call_1): Don't call virtual_call_token debug hook.
19123         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
19124         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
19125         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
19126         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
19127         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
19128         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
19129         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
19130         dwarf2out_virtual_call): Remove.
19131         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
19132         copy_call_info and virtual_call hooks.
19133         (dwarf2out_init): Don't initialize vcall_insn_table,
19134         debug_dcall_section and debug_vcall_section.
19135         (prune_unused_types): Don't mark nodes from dcall_table.
19136         (dwarf2out_finish): Don't output dcall or vcall tables.
19137         * final.c (final_scan_insn): Don't call direct_call or
19138         virtual_call debug hooks.
19139         * debug.h (struct gcc_debug_hooks): Remove direct_call,
19140         virtual_call_token, copy_call_info and virtual_call hooks.
19141         (debug_nothing_uid): Remove prototype.
19142         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
19143         copy_call_info and virtual_call hooks.
19144         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
19145         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
19146         * debug.c (do_nothing_debug_hooks): Likewise.
19147         (debug_nothing_uid): Remove.
19148         * doc/invoke.texi (-fenable-icf-debug): Remove.
19149         * common.opt (-fenable-icf-debug): Likewise.
19150
19151         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
19152         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
19153         call's MEM.  Handle functions returning aggregate through a hidden
19154         first pointer.  For virtual calls add clobbered pc to call arguments
19155         chain.
19156         * dwarf2out.c (gen_subprogram_die): Emit
19157         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
19158         can't be emitted.
19159
19160         PR debug/45882
19161         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
19162         * rtl.h (ENTRY_VALUE_EXP): Define.
19163         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
19164         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
19165         * print-rtl.c (print_rtx): Likewise.
19166         * gengtype.c (adjust_field_rtx_def): Likewise.
19167         * var-tracking.c (vt_add_function_parameter): Adjust
19168         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
19169         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
19170         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
19171         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
19172         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
19173
19174         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
19175         Call var_location debug hook even on CALL_INSNs.
19176         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
19177         * rtl.def (ENTRY_VALUE): New.
19178         * dwarf2out.c: Include cfglayout.h.
19179         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
19180         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
19181         (struct call_arg_loc_node): New type.
19182         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
19183         tail_call_site_count): New variables.
19184         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
19185         DW_TAG_GNU_call_site_parameter.
19186         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
19187         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
19188         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
19189         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
19190         and DW_AT_GNU_all_source_call_sites.
19191         (mem_loc_descriptor): Handle ENTRY_VALUE.
19192         (add_src_coords_attributes): Don't add enything if
19193         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
19194         (dwarf2out_abstract_function): Save and clear call_arg_location,
19195         call_site_count and tail_call_site_count around dwarf2out_decl call.
19196         (gen_call_site_die): New function.
19197         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
19198         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
19199         (dwarf2out_function_decl): Clear call_arg_locations,
19200         call_arg_loc_last, set call_site_count and tail_call_site_count
19201         to -1 and free block_map.
19202         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
19203         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
19204         followed by any real instructions.
19205         (dwarf2out_begin_function): Set call_site_count and
19206         tail_call_site_count to 0.
19207         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
19208         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
19209         attempt to force a DIE for it and worst case remove the attribute.
19210         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
19211         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
19212         the decl itself.
19213         * var-tracking.c: Include tm_p.h.
19214         (vt_stack_adjustments): For calls call note_register_arguments.
19215         (argument_reg_set): New variable.
19216         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
19217         ensure the VALUE is resolved.
19218         (call_arguments): New variable.
19219         (prepare_call_arguments): New function.
19220         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
19221         (struct expand_loc_callback_data): Add ignore_cur_loc field.
19222         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
19223         always use the best expression.
19224         (vt_expand_loc): Add ignore_cur_loc argument.
19225         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
19226         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
19227         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
19228         note for all calls.
19229         (vt_add_function_parameter): Use cselib_lookup_from_insn.
19230         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
19231         argument.  Don't call cselib_preserve_only_values and
19232         cselib_reset_table.
19233         (note_register_arguments): New function.
19234         (vt_initialize): Compute argument_reg_set.  Call
19235         vt_add_function_parameters before processing basic blocks instead of
19236         afterwards.  For calls call prepare_call_arguments before calling
19237         cselib_process_insn.
19238         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
19239         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
19240         (var-tracking.o): Depend on $(TM_P_H).
19241         * cfglayout.h (insn_scope): New prototype.
19242         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
19243         * cfglayout.c (insn_scope): No longer static.
19244         * insn-notes.def (CALL_ARG_LOCATION): New.
19245         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
19246         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
19247         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
19248         nothing for DECL_EXTERNAL BLOCK_VARS.
19249
19250 2011-03-16  Alan Modra  <amodra@gmail.com>
19251
19252         PR target/45844
19253         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
19254         create invalid offset address for vsx splat insn.
19255         * config/rs6000/predicates.md (splat_input_operand): New.
19256         * config/rs6000/vsx.md (vsx_splat_*): Use it.
19257
19258 2011-03-15  Xinliang David Li  <davidxl@google.com>
19259
19260         PR c/47837
19261         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
19262         (normalize_preds): New function.
19263         (is_use_properly_guarded): Normalize def predicates.
19264
19265 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
19266
19267         PR target/46788
19268         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
19269         in the output template.
19270
19271 2011-03-15  Richard Guenther  <rguenther@suse.de>
19272
19273         PR middle-end/47650
19274         * tree-pretty-print.c (dump_function_declaration): Properly
19275         dump unprototyped and varargs function types.
19276
19277 2011-03-15  Richard Guenther  <rguenther@suse.de>
19278
19279         PR tree-optimization/13954
19280         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
19281         and friends.
19282
19283 2011-03-15  Richard Guenther  <rguenther@suse.de>
19284
19285         PR tree-optimization/48037
19286         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
19287         selects into BIT_FIELD_REFs.
19288         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
19289         vector select.
19290
19291 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
19292
19293         PR tree-optimization/48129
19294         * builtins.c (fold_builtin_snprintf): Convert to type of
19295         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
19296         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
19297
19298 2011-03-15  Richard Guenther  <rguenther@suse.de>
19299
19300         PR tree-optimization/41490
19301         * tree-ssa-dce.c (propagate_necessity): Handle returns without
19302         value but with VUSE.
19303         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
19304         return statements.
19305         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
19306         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
19307         * tree-tailcall.c (find_tail_calls): Ignore returns.
19308
19309 2011-03-15  Richard Guenther  <rguenther@suse.de>
19310
19311         PR middle-end/48031
19312         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
19313         or variable-indexed array accesses when in gimple form.
19314
19315 2011-03-15  Richard Guenther  <rguenther@suse.de>
19316
19317         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
19318
19319 2011-03-15  Alan Modra  <amodra@gmail.com>
19320
19321         PR target/48032
19322         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
19323         presume symbol_refs without a symbol_ref_decl are suitably
19324         aligned, nor other trees we may see here.  Handle anchor symbols.
19325         (legitimate_constant_pool_address_p): Comment.  Add mode param.
19326         Check cmodel=medium addresses.  Adjust all calls.
19327         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
19328         creating cmodel=medium optimized access to locals.
19329         * config/rs6000/constraints.md (R): Pass QImode to
19330         legitimate_constant_pool_address_p.
19331         * config/rs6000/predicates.md (input_operand): Pass mode to
19332         legitimate_constant_pool_address_p.
19333         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
19334         Update prototype.
19335
19336 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
19337
19338         PR target/48053
19339         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
19340         64-bit constants being loaded into registers other than GPRs such
19341         as loading 0 into a VSX register.
19342
19343 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19344
19345         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
19346
19347 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
19348
19349         PR middle-end/47917
19350         * builtins.c (fold_builtin_snprintf): New function.
19351         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
19352         (fold_builtin_4): Likewise.
19353
19354         PR middle-end/38878
19355         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
19356         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
19357         and C - X == X also strip nops from +/-/p+ operand.
19358         When optimizing -X == C, fold C to arg0's type.
19359
19360         PR debug/47946
19361         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
19362         emit it as add_AT_int instead of add_AT_unsigned.
19363
19364 2011-03-14  Tom Tromey  <tromey@redhat.com>
19365
19366         * unwind-dw2.c: Include sys/sdt.h if it exists.
19367         (_Unwind_DebugHook): Use STAP_PROBE2.
19368         * config.in, configure: Rebuild.
19369         * configure.ac: Check for sys/sdt.h.
19370
19371 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
19372
19373         * config/i386/i386.md (ROUND_FLOOR): New constant.
19374         (ROUND_CEIL): Ditto.
19375         (ROUND_TRUNC): Ditto.
19376         (ROUND_MXCSR): Ditto.
19377         (ROUND_NO_EXC): Ditto.
19378         (rint<mode>2): Use new defines instead of numerical constants.
19379         (floor<mode>2): Ditto.
19380         (ceil<mode>2): Ditto.
19381         (btrunc<mode>2): Ditto.
19382         * config/i386/i386-builtin-types.def: Define ROUND function type
19383         aliases.
19384         * config/i386/i386.c (enum ix86_builtins): Add
19385         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
19386         (struct builtin_description): Add
19387         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
19388         (ix86_expand_sse_round): New static function.
19389         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
19390         function types.
19391         (ix86_builtin_vectorized_function): Handle
19392         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
19393
19394 2011-03-14  Tom Tromey  <tromey@redhat.com>
19395
19396         * c-parser.c (c_parser_asm_string_literal): Clear
19397         warn_overlength_strings.
19398
19399 2011-03-14  Tom Tromey  <tromey@redhat.com>
19400
19401         * c-parser.c (disable_extension_diagnostics): Save
19402         warn_overlength_strings.
19403         (restore_extension_diagnostics): Restore warn_overlength_strings.
19404
19405 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
19406
19407         * BASE-VER: Change to 4.7.0.
19408
19409 2011-03-14  Richard Guenther  <rguenther@suse.de>
19410
19411         PR middle-end/48098
19412         * tree.c (build_vector_from_val): Adjust assert to requirements
19413         and reality.
19414
19415 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
19416
19417         PR bootstrap/48102
19418         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
19419
19420 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
19421
19422         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
19423         terms of target_flags_explicit. Adjust copyright year.
19424
19425         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
19426         * config/rs6000/t-freebsd: New file. Add override for
19427         LIB2FUNCS_EXTRA.
19428
19429 2011-03-13  Chris Demetriou  <cgd@google.com>
19430
19431         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
19432         (-fno-diagnostics-show-option): this, to reflect current default.
19433         (-Werror=): Update text about -fno-diagnostics-show-option.
19434
19435 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
19436
19437         PR target/48053
19438         * config/rs6000/predicates.md (easy_vector_constant_add_self,
19439         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
19440         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
19441         mode is not V2DImode or V2DFmode.
19442         (vspltis_constant): Do not handle V2DImode and V2DFmode.
19443         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
19444         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
19445         registers to 0.
19446         (movdi_internal64): Likewise.
19447
19448 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
19449
19450         PR tree-optimization/47127
19451         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
19452         parameter.
19453         (set_cloog_options): Same.
19454         (scop_to_clast): Same.
19455         (print_clast_stmt): Do not call cloog_state_malloc and
19456         cloog_state_free.
19457         (print_generated_program): Same.
19458         (gloog): Same.
19459         * graphite-clast-to-gimple.h (cloog_state): Declared.
19460         (scop_to_clast): Adjust declaration.
19461         * graphite.c (cloog_state): Defined here.
19462         (graphite_initialize): Call cloog_state_malloc.
19463         (graphite_finalize): Call cloog_state_free.
19464
19465 2011-03-11  Jason Merrill  <jason@redhat.com>
19466
19467         * attribs.c (lookup_attribute_spec): Take const_tree.
19468         * tree.h: Adjust.
19469
19470 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
19471
19472         * config/sparc/sparc.c (sparc_option_override): Use
19473         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
19474
19475 2011-03-11  Richard Guenther  <rguenther@suse.de>
19476
19477         PR tree-optimization/48067
19478         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
19479         multiplication result will be only used once on the target
19480         stmt.
19481
19482 2011-03-11  Richard Guenther  <rguenther@suse.de>
19483
19484         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
19485
19486 2011-03-11  Richard Guenther  <rguenther@suse.de>
19487
19488         PR lto/48073
19489         * tree.c (find_decls_types_r): Do not walk types only reachable
19490         from IDENTIFIER_NODEs.
19491
19492 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
19493
19494         PR middle-end/48044
19495         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
19496         all vnode->force_output nodes as needed.
19497
19498 2011-03-11  Jason Merrill  <jason@redhat.com>
19499
19500         PR c++/48069
19501         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
19502         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
19503
19504 2011-03-11  Martin Jambor  <mjambor@suse.cz>
19505
19506         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
19507         cgraph_node.
19508
19509 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
19510
19511         PR tree-optimization/48063
19512         * ipa-inline.c (cgraph_decide_inlining): Don't try to
19513         inline functions called once if !tree_can_inline_p (node->callers).
19514
19515 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
19516
19517         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
19518         extra_objs.
19519         * config/score/score3.c: Delete.
19520         * config/score/score3.h: Delete.
19521         * config/score/mul-div.S: Delete.
19522         * config/score/sfp-machine.h: Add new file.
19523         * config/score/constraints.md: Add new file.
19524         * config/score/t-score-softfp: Add new file.
19525         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
19526         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
19527         (score7_extra_constraint): Delete.
19528         (score7_option_override): Remove unused code.
19529         * config/score/score.c: Remove score3 and score5 define and code.
19530         * config/score/score.h: Remove score3 and score5 define and code.
19531         * config/score/score.md: Remove score3 template and unusual insn.
19532         * config/score/score.opt: Remove score3 and score5 options.
19533
19534 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19535
19536         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
19537         when _HPUX_SOURCE is defined.
19538         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
19539
19540 2011-03-10  Jason Merrill  <jason@redhat.com>
19541
19542         PR c++/48029
19543         * stor-layout.c (layout_type): Don't set structural equality
19544         on arrays of incomplete type.
19545         * tree.c (type_hash_eq): Handle comparing them properly.
19546
19547 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
19548
19549         PR debug/48043
19550         * config/s390/s390.c (s390_delegitimize_address): Make sure the
19551         result mode matches original rtl mode.
19552
19553 2011-03-10  Nick Clifton  <nickc@redhat.com>
19554
19555         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
19556         (andsi3, andsi3_flags): Fix timings for three operand alternative.
19557
19558 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
19559
19560         PR rtl-optimization/47866
19561         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
19562         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
19563         if target wasn't scalar.
19564         * function.c (assign_stack_temp_for_type): Assert that neither
19565         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
19566         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
19567         macro.
19568         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
19569
19570 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19571
19572         * config/s390/s390-protos.h (s390_label_align): New prototype.
19573         * config/s390/s390.c (s390_label_align): New function.
19574         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
19575
19576 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19577
19578         PR target/47755
19579         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
19580         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
19581         (output_vec_const_move): Ditto.
19582
19583 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
19584
19585         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
19586         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
19587         * config/mips/mips.c (mips_preferred_reload_class): Make static.
19588         Change 'rclass' argument and result type to reg_class_t.
19589         (TARGET_PREFERRED_RELOAD_CLASS): Define.
19590
19591 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
19592
19593         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
19594         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
19595         (TARGET_MEMORY_MOVE_COST): Define.
19596         (avr_register_move_cost, avr_memory_move_cost): New Functions.
19597
19598 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
19599
19600         PR debug/47881
19601         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
19602         removed anything.
19603
19604         PR tree-optimization/48022
19605         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
19606         for EQ/NE_EXPR.
19607
19608 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
19609
19610         PR debug/47991
19611         * var-tracking.c (find_use_val): Return NULL for
19612         cui->sets && cui->store_p BLKmode MEMs.
19613
19614 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
19615
19616         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
19617         Remove.
19618         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
19619         xstormy16_print_operand_address): Remove.
19620         * config/stormy16/stormy16.c (xstormy16_print_operand,
19621         xstormy16_print_operand_address): Make static.
19622         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19623
19624 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
19625
19626         PR target/47862
19627         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
19628         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
19629         before definition.
19630
19631 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
19632
19633         PR bootstrap/48000
19634         * cfgloopmanip.c (fix_bb_placements): Return immediately
19635         if FROM is BASE_LOOP's header.
19636
19637 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
19638
19639         * gimplify.c (gimplify_function_tree): Fix building calls
19640         to __builtin_return_address.
19641
19642 2011-03-07  Alan Modra  <amodra@gmail.com>
19643
19644         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
19645         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
19646         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
19647         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
19648         return_mode args.
19649         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
19650         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
19651         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
19652         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
19653         * config/rs6000/rs6000.c
19654         (rs6000_elf_end_indicate_exec_stack): Rename to..
19655         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
19656         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
19657         (rs6000_file_start): ..here.
19658         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
19659         file scope variables.
19660         (call_ABI_of_interest): New function.
19661         (init_cumulative_args): Set above vars when function return value
19662         is a float, vector, or small struct.
19663         (rs6000_function_arg_advance_1): Likewise for function args.
19664         (rs6000_va_start): Set rs6000_passes_float if variable arg function
19665         references float args.
19666
19667 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
19668
19669         * doc/cfg.texi: Remove "See" before @ref.
19670         * doc/invoke.texi: Likewise.
19671
19672 2011-03-05  Jason Merrill  <jason@redhat.com>
19673
19674         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
19675
19676 2011-03-05  Anthony Green  <green@moxielogic.com>
19677
19678         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
19679
19680 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
19681
19682         PR rtl-optimization/47899
19683         * cfgloopmanip.c (fix_bb_placements): Fix first argument
19684         to flow_loop_nested_p when moving the loop upward.
19685
19686 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
19687
19688         PR target/47719
19689         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
19690
19691 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
19692
19693         PR tree-optimization/47967
19694         * ipa-cp.c (build_const_val): Return NULL instead of creating
19695         VIEW_CONVERT_EXPR for mismatching sizes.
19696         (ipcp_create_replace_map): Return NULL if build_const_val failed.
19697         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
19698         give up on versioning.
19699
19700 2011-03-05  Alan Modra  <amodra@gmail.com>
19701
19702         PR target/47986
19703         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19704         full cmodel medium/large lo_sum + high addresses.
19705
19706 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19707
19708         * config/s390/s390.c (s390_decompose_address): Reject non-literal
19709         pool references in UNSPEC_LTREL_OFFSET.
19710
19711 2011-03-04  Jan Hubicka  <jh@suse.cz>
19712
19713         PR lto/47497
19714         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
19715         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
19716         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
19717         Add node pointers.
19718         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
19719         cgraph_add_thunk): Add node pointers.
19720         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
19721         associated to right node.
19722         (input_node): Update use of cgraph_same_body_alias
19723         and cgraph_add_thunk.
19724
19725 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
19726
19727         * config/i386/i386.opt (mprefer-avx128): New flag.
19728         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
19729         modes when the flag -mprefer-avx128 is on.
19730
19731 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
19732
19733         * dwarf2out.c (compare_loc_operands): Fix address handling.
19734
19735 2011-03-04  Alan Modra  <amodra@gmail.com>
19736
19737         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
19738
19739 2011-03-04  Richard Guenther  <rguenther@suse.de>
19740
19741         PR middle-end/47968
19742         * expmed.c (extract_bit_field_1): Prefer vector modes that
19743         vec_extract patterns can handle.
19744
19745 2011-03-04  Richard Guenther  <rguenther@suse.de>
19746
19747         PR middle-end/47975
19748         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
19749
19750 2011-03-04  Richard Henderson  <rth@redhat.com>
19751
19752         * explow.c (emit_stack_save): Remove 'after' parameter.
19753         (emit_stack_restore): Likewise.
19754         * expr.h: Update to match.
19755         * builtins.c, calls.c, stmt.c: Likewise.
19756         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
19757         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
19758         * function.c (expand_function_end): Insert the emit_stack_save
19759         sequence before parm_birth_insn instead of after.
19760
19761 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
19762
19763         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
19764         (ssse3_pmaddubsw128): Ditto.
19765         (ssse3_pmaddubsw): Ditto.
19766
19767 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
19768
19769         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
19770
19771 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
19772
19773         PR c/47963
19774         * gimplify.c (omp_add_variable): Only call omp_notice_variable
19775         on TYPE_SIZE_UNIT if it is a DECL.
19776
19777         PR debug/47283
19778         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
19779         first operand is not is_gimple_mem_ref_addr, try to fold it.
19780         If the operand still isn't is_gimple_mem_ref_addr, clear
19781         MEM_EXPR on op0.
19782
19783 2011-03-03  Richard Guenther  <rguenther@suse.de>
19784
19785         PR middle-end/47283
19786         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
19787         match comment.
19788         (refs_may_alias_p_1): For release branches return true if
19789         we are confused by our input.
19790
19791 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19792
19793         * config/s390/s390.c (s390_function_value): Rename to ...
19794         (s390_function_and_libcall_value): ... this.
19795         (s390_function_value): New function.
19796         (s390_libcall_value): New function.
19797         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
19798         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
19799         target macro definitions.
19800         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
19801
19802 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
19803
19804         * config/i386/freebsd64.h (CC1_SPEC): Define.
19805         * config/i386/linux64.h (CC1_SPEC): Define.
19806         * config/i386/x86-64.h (CC1_SPEC): Don't define.
19807
19808 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
19809
19810         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19811         Remove.
19812         * config/stormy16/stormy16.c: Include reload.h.
19813         (xstormy16_memory_move_cost): New function.
19814         (TARGET_MEMORY_MOVE_COST): Define.
19815
19816 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
19817
19818         PR rtl-optimization/47925
19819         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
19820         with side effects.  Remove the more-specific check for volatile asms.
19821
19822 2011-03-02  Alan Modra  <amodra@gmail.com>
19823
19824         PR target/47935
19825         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
19826         toc relative addresses for valid offsets.
19827
19828 2011-03-01  Richard Guenther  <rguenther@suse.de>
19829
19830         PR tree-optimization/47890
19831         * tree-vect-loop.c (get_initial_def_for_induction): Set
19832         related stmt properly.
19833
19834 2011-03-01  Richard Guenther  <rguenther@suse.de>
19835
19836         PR lto/47924
19837         * lto-streamer.c (lto_record_common_node): Also register
19838         the canonical type.
19839
19840 2011-03-01  Richard Guenther  <rguenther@suse.de>
19841
19842         PR lto/46911
19843         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19844         Do not stream DECL_ABSTRACT_ORIGIN.
19845         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19846         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19847         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19848         Do not stream DECL_ABSTRACT_ORIGIN.
19849         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19850         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19851
19852 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
19853
19854         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
19855         FUNCTION_VALUE_REGNO_P): Remove.
19856         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
19857         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
19858         Add 'outgoing' argument.
19859         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
19860         function.
19861         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19862         TARGET_FUNCTION_VALUE_REGNO_P): Define.
19863
19864 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
19865
19866         PR debug/28047
19867         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
19868         (lookup_filename): Likewise.
19869         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
19870
19871 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
19872             Jakub Jelinek  <jakub@redhat.com>
19873
19874         PR middle-end/47893
19875         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
19876         (assign_stack_local_1): Change last argument type to int.
19877         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
19878         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
19879         don't record padding space into frame_space_list nor use those areas.
19880         (assign_stack_local): Adjust caller.
19881         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
19882         of assign_stack_local, pass 0 as last argument.
19883         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
19884         callers.
19885
19886 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
19887
19888         PR debug/47283
19889         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
19890         Use target address_mode and pointer_mode hooks instead of hardcoded
19891         Pmode and ptr_mode.  Handle some simple cases of extending if
19892         POINTERS_EXTEND_UNSIGNED < 0.
19893         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
19894         Call convert_debug_memory_address.
19895         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
19896         convert_debug_memory_address.
19897
19898         PR middle-end/46790
19899         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
19900         * configure: Regenerated.
19901         * config.in: Regenerated.
19902         * varasm.c (default_function_section): Return NULL
19903         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
19904
19905 2011-02-28  Martin Jambor  <mjambor@suse.cz>
19906
19907         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
19908         the description to match the printed values.
19909
19910 2011-02-28  Richard Guenther  <rguenther@suse.de>
19911
19912         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
19913         of the copied scope tree.
19914
19915 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19916
19917         * doc/extend.texi (Function Attributes): Avoid deeply (and
19918         wrongly) nested tables.
19919
19920 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
19921
19922         PR middle-end/47903
19923         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
19924         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
19925         r isn't op0 nor op1.
19926
19927 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
19928
19929         * config/avr/avr.md: Remove magic comment for emacs.
19930
19931 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
19932
19933         PR target/45261
19934         * config/avr/avr.c (avr_option_override): Use error on bad options.
19935         (avr_help): New function.
19936         (TARGET_HELP): Define.
19937
19938 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
19939
19940         PR target/42240
19941         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
19942         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
19943
19944 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
19945
19946         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
19947         (ARM Options): Ditto.
19948         (i386 and x86-64 Options): Ditto.
19949         (RX Options): Ditto.
19950         (SPARC Options): Ditto.
19951
19952 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
19953
19954         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
19955         FreeBSD 6 and later.  Generally use cpu generic.
19956
19957 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
19958
19959         * doc/cpp.texi: Update copyright years.
19960
19961 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
19962
19963         PR target/46898
19964         * config/lm32/lm32.md (ashrsi3): Added needed variable.
19965
19966 2011-02-25  Jon Beniston  <jon@beniston.com>
19967
19968         PR target/46898
19969         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
19970         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
19971         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
19972         (lm32_block_move_inline): Add type cast to remove warning.
19973         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
19974         (gen_int_relational): Move declarations to start of function.
19975
19976 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
19977
19978         PR tree-optimization/45470
19979         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
19980         can throw internally only.
19981         * tree-vect-stmts.c (vectorizable_call): Likewise.
19982
19983 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
19984
19985         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
19986         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
19987         * config/stormy16/stormy16-protos.h
19988         (xstormy16_preferred_reload_class): Remove.
19989         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
19990         static. Change 'rclass' argument and return type to reg_class_t.
19991         (TARGET_PREFERRED_RELOAD_CLASS,
19992         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
19993
19994 2011-02-24  Richard Guenther  <rguenther@suse.de>
19995
19996         * lto-streamer-in.c (input_bb): Do not find referenced vars
19997         in debug statements.
19998
19999 2011-02-23  Jason Merrill  <jason@redhat.com>
20000
20001         * common.opt (fabi-version): Document v5 and v6.
20002
20003 2011-02-23  Richard Guenther  <rguenther@suse.de>
20004
20005         PR tree-optimization/47849
20006         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
20007
20008 2011-02-23  Jie Zhang  <jie@codesourcery.com>
20009
20010         * opts-common.c (decode_cmdline_option): Print empty string
20011         argument as "" in decoded->orig_option_with_args_text.
20012         * gcc.c (execute): Print empty string argument as ""
20013         in the verbose output.
20014         (do_spec_1): Keep empty string argument.
20015
20016 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
20017
20018         * config.gcc: Declare score-* and crx-* obsolete.
20019
20020 2011-02-23  Jie Zhang  <jie@codesourcery.com>
20021
20022         PR rtl-optimization/47763
20023         * web.c (web_main): Ignore naked clobber when replacing register.
20024
20025 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
20026
20027         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
20028         Remove.
20029
20030 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20031
20032         PR doc/47848
20033         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
20034
20035 2011-02-22  Mike Stump  <mikestump@comcast.net>
20036
20037         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
20038         assembler.
20039         * configure: Regenerate.
20040
20041 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
20042
20043         PR rtl-optimization/46002
20044         * ira-color.c (update_copy_costs): Change class intersection
20045         test to reg_class_contents[] test of 'hard_regno'.
20046
20047 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
20048
20049         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
20050         than Driver option.
20051         * config/hpux11.opt (mt): Likewise.
20052         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
20053         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
20054         * config/vax/elf.opt (mno-asm-pic): Likewise.
20055         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
20056
20057 2011-02-21  Mike Stump  <mikestump@comcast.net>
20058
20059         PR target/47822
20060         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
20061         tree so we can get save the type.
20062         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
20063         for CFString instead of trying to use past the end of the builtins.
20064         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
20065         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
20066         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
20067         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
20068         Rename to darwin_builtin_cfstring.
20069         (darwin_init_cfstring_builtins): Return the built type.
20070
20071 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
20072
20073         PR target/47840
20074         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
20075         (_mm256_insert_epi64): Use _mm_insert_epi64.
20076
20077 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
20078
20079         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20080         * config/stormy16/stormy16-protos.h
20081         (xstormy16_mode_dependent_address_p): Remove.
20082         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
20083         Make static. Change return type to bool. Change argument type to
20084         const_rtx. Remove dead code.
20085         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20086
20087 2011-02-21  Richard Guenther  <rguenther@suse.de>
20088
20089         PR lto/47820
20090         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
20091         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
20092         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
20093         TUs context.
20094         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
20095         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
20096
20097 2011-02-20  Richard Guenther  <rguenther@suse.de>
20098
20099         PR lto/47822
20100         * tree.c (free_lang_data_in_decl): Clean builtins from
20101         the TU decl BLOCK_VARS.
20102
20103 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
20104
20105         PR debug/47620
20106         PR debug/47630
20107         * haifa-sched.c (fix_tick_ready): Skip tick computation
20108         for debug insns.
20109
20110 2011-02-19  Richard Guenther  <rguenther@suse.de>
20111
20112         PR lto/47647
20113         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
20114         Remove lazy BLOCK_VARS streaming.
20115         (lto_input_ts_block_tree_pointers): Likewise.
20116         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
20117
20118 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
20119
20120         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
20121
20122 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
20123
20124         * config/i386/biarch32.h, config/i386/mach.h,
20125         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
20126
20127 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
20128
20129         PR target/47800
20130         * config/i386/i386.md (peephole2 for shift and plus): Use
20131         operands[1] original mode in the first insn.
20132
20133 2011-02-18  Mike Stump  <mikestump@comcast.net>
20134
20135         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
20136
20137 2011-02-18  Jan Hubicka  <jh@suse.cz>
20138
20139         PR middle-end/47788
20140         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
20141         to zero when the function is not inlinable at all.
20142
20143 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20144
20145         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
20146         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
20147         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
20148         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
20149         * config/pa/t-pa64: Likewise.
20150         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
20151
20152 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
20153
20154         PR driver/47787
20155         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
20156
20157 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20158
20159         PR target/47792
20160         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
20161
20162 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
20163
20164         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
20165         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
20166         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
20167         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
20168         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
20169         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
20170         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
20171         m32r_load_postinc_p, m32r_store_preinc_predec_p,
20172         m32r_legitimate_address_p): New functions.
20173         * config/m32r/constraints.md (constraint "S"): Don't use
20174         STORE_PREINC_PREDEC_P.
20175         (constraint "U"): Don't use LOAD_POSTINC_P.
20176
20177 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
20178
20179         PR rtl-optimization/46178
20180         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
20181         compute ira_hard_regno_cover_class[].
20182
20183 2011-02-18  Richard Guenther  <rguenther@suse.de>
20184
20185         PR lto/47798
20186         * lto-streamer.h (lto_global_var_decls): Declare.
20187         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
20188         statics for global var processing.
20189
20190 2011-02-18  Richard Guenther  <rguenther@suse.de>
20191
20192         PR tree-optimization/47737
20193         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
20194         edge dominance check.
20195
20196 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
20197
20198         PR debug/47780
20199         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
20200         avoid invalid rtx sharing.
20201
20202 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
20203
20204         * doc/cpp.texi (Obsolete Features): Add background on the
20205         origin of assertions.
20206
20207 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
20208
20209         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
20210         objc_abi == 2.
20211         * config/darwin.c (output_objc_section_asm_op): Added support for
20212         ABI v1 and v2.
20213         (is_objc_metadata): New.
20214         (darwin_objc2_section): New.
20215         (darwin_objc1_section): New.
20216         (machopic_select_section): Added support for ABI v1 and v2.
20217         (darwin_emit_objc_zeroed): New.
20218         (darwin_output_aligned_bss): Detect objc metadata and treat it
20219         appropriately.
20220         (darwin_asm_output_aligned_decl_common): Same.
20221         (darwin_asm_output_aligned_decl_local): Same.
20222         * config/darwin-sections.def: Updated for ABI v1 and v2.
20223         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
20224         compiling Objective-C code for the NeXT runtime, default to using
20225         ABI version 0 for 32-bit, and version 2 for 64-bit.
20226
20227 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20228
20229         * common.opt (optimize_fast): New Variable.
20230         * opts.c (default_options_optimization): Use opts->x_optimize_fast
20231         instead of local variable ofast.
20232
20233 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
20234
20235         * doc/invoke.texi (fobjc-abi-version): Documented.
20236         (fobjc-nilcheck): Documented.
20237         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
20238         version.
20239
20240 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20241
20242         PR driver/47390
20243         * common.opt (export-dynamic): New Driver option.
20244         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
20245
20246 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20247
20248         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
20249
20250 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
20251             Jan Hubicka  <jh@suse.cz>
20252
20253         PR debug/47106
20254         PR debug/47402
20255         * cfgexpand.c (account_used_vars_for_block): Remove.
20256         (estimated_stack_frame_size): Use referenced vars.
20257         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
20258         that were referenced in the original function.  Test src_fn
20259         rather than cfun.  Drop redundant get_var_ann.
20260         (setup_one_parameter): Drop redundant get_var_ann.
20261         (declare_return_variable): Likewise.
20262         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
20263         (copy_arguments_for_versioning): Drop redundant get_var_ann.
20264         * ipa-inline.c (compute_inline_parameters): Do not compute
20265         disregard_inline_limits here.
20266         (compute_inlinable_for_current, pass_inlinable): New.
20267         (pass_inline_parameters): Require PROP_referenced_vars.
20268         * cgraphunit.c (cgraph_process_new_functions): Don't run
20269         compute_inline_parameters explicitly unless function is in SSA form.
20270         (cgraph_analyze_function): Set .disregard_inline_limits.
20271         * tree-sra.c (convert_callers): Compute inliner parameters
20272         only for functions already in SSA form.
20273
20274 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20275
20276         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
20277         -mlittle-endian-data.
20278
20279 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20280
20281         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
20282         -mno-fpu, not -fpu and -no-fpu.
20283         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
20284         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
20285
20286 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
20287
20288         PR target/43653
20289         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
20290         input reload with PLUS RTX.
20291
20292 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20293
20294         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
20295         of InverseVar(MDMX).
20296
20297 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20298
20299         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
20300         --m4-340.
20301
20302 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20303
20304         * config/mn10300/mn10300.opt (mno-crt0): New.
20305
20306 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20307
20308         * config/m68k/uclinux.opt (static-libc): New Driver option.
20309
20310 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20311
20312         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
20313
20314 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20315
20316         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
20317         %{muser-extend-enabled}.
20318
20319 2011-02-16  Richard Guenther  <rguenther@suse.de>
20320
20321         PR tree-optimization/47738
20322         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
20323         the TODO from tree_predictive_commoning.
20324
20325 2011-02-15  Jeff Law  <law@redhat.com>
20326
20327         Revert
20328         2011-01-25  Jeff Law  <law@redhat.com>
20329
20330         PR rtl-optimization/37273
20331         * ira-costs.c (scan_one_insn): Detect constants living in memory and
20332         handle them like argument loads from stack slots.  Do not double
20333         count memory for memory constants and argument loads from stack slots.
20334
20335 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
20336
20337         PR target/47755
20338         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
20339         mode for vector constants.  Remove code that checks for TImode.
20340
20341 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20342
20343         PR debug/47106
20344         PR debug/47402
20345         * cgraph.h (compute_inline_parameters): Return void.
20346         * ipa-inline.c (compute_inline_parameters): Adjust.
20347
20348 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20349
20350         PR debug/47106
20351         PR debug/47402
20352         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
20353         rather than decl.
20354         * cfgexpand.c (estimated_stack_frame_size): Likewise.
20355         * ipa-inline.c (compute_inline_parameters): Adjust.
20356
20357 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20358
20359         PR debug/47106
20360         PR debug/47402
20361         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
20362         Adjust all users.  Pass FN to...
20363         * tree-flow-inline.h (first_referenced_var): ... this.  Add
20364         fn argument.
20365         * ipa-struct-reorg.c: Adjust.
20366         * tree-dfa.c: Adjust.
20367         * tree-into-ssa.c: Adjust.
20368         * tree-sra.c: Adjust.
20369         * tree-ssa-alias.c: Adjust.
20370         * tree-ssa-live.c: Adjust.
20371         * tree-ssa.c: Adjust.
20372         * tree-ssanames.c: Adjust.
20373         * tree-tailcall.c: Adjust.
20374
20375 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20376
20377         PR debug/47106
20378         PR debug/47402
20379         * tree-flow.h (referenced_var_lookup): Add fn parameter.
20380         Adjust all callers.
20381         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
20382         * tree-flow-inline.h: Adjust.
20383         * gimple-pretty-print.c: Adjust.
20384         * tree-into-ssa.c: Adjust.
20385         * tree-ssa.c: Adjust.
20386         * cfgexpand.c: Adjust.
20387
20388 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
20389
20390         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
20391         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20392         (EXTRA_CONSTRAINT): Delete.
20393         * config/iq2000/constraints.md: New file.
20394         * config/iq2000/iq2000.md: Include it.
20395         (define_insn ""): Delete.
20396         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
20397         unsupported constraint letters from patterns.
20398         (call_value, call_value_internal1): Likewise.
20399         (call_value_multiple_internal1): Likewise.
20400
20401 2011-02-15  Nick Clifton  <nickc@redhat.com>
20402
20403         * config/mn10300/mn10300.c: Include tm-constrs.h.
20404         (struct liw_data): New data structure describing an LIW candidate
20405         instruction.
20406         (extract_bundle): Use struct liw_data.  Allow small integer
20407         operands for some instructions.
20408         (check_liw_constraints): Use struct liw_data.  Remove swapped
20409         parameter.  Add comments describing the checks.  Fix bug when
20410         assigning the source of liw1 to the source of liw2.
20411         (liw_candidate): Delete.  Code moved into extract_bundle.
20412         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
20413         before swapping.
20414         * config/mn10300/predicates.md (liw_operand): New predicate.
20415         Allows registers and small integer constants.
20416         * config/mn10300/constraints.md (O): New constraint.  Accetps
20417         integers in the range -8 to +7 inclusive.
20418         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
20419         for moving a small integer into a register.  Give this alternative
20420         LIW attributes.
20421         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
20422         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
20423         using the J,K,L and M constraints,
20424         (liw): Remove SI mode on second operands to allow for HI and QI
20425         mode values.
20426         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
20427         instruction.
20428
20429 2011-02-15  Richard Guenther  <rguenther@suse.de>
20430
20431         PR tree-optimization/47743
20432         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
20433         for a non-type-compatible VN lookup bail out.
20434
20435 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
20436
20437         * config/fr30/constraints.md: New file.
20438         * config/fr30/fr30.md: Include it.
20439         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
20440         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20441         (EXTRA_CONSTRAINT): Delete.
20442
20443 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
20444
20445         * config/frv/constraints.md: New file.
20446         * config/frv/predicates.md: Include it.
20447         * config/frv/frv.c (reg_class_from_letter): Delete.
20448         (frv_option_override): Don't initialize it.
20449         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
20450         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
20451         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
20452         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20453         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
20454         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20455         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
20456         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
20457         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
20458         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
20459         (REG_CLASS_FROM_CONSTRAINT): Delete.
20460
20461 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
20462
20463         PR middle-end/47581
20464         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
20465         if frame size is 0 in a leaf function.
20466
20467 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20468
20469         PR pch/14940
20470         * config/alpha/host-osf.c: New file.
20471         * config/alpha/x-osf: New file.
20472         * config.host (alpha*-dec-osf*): Use it.
20473
20474 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
20475
20476         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20477         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
20478         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
20479         (rx_mode_dependent_address_p): ...this. Make static. Change argument
20480         type to const_rtx.
20481         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20482
20483 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
20484
20485         * config/stormy16/constraints.md: New file.
20486         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
20487         Use satisfies_constraint_Q and satisfies_constraint_R.
20488         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
20489         Delete.
20490         (xstormy16_legitiamte_address_p): Declare.
20491         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
20492         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20493         (EXTRA_CONSTRAINT): Delete.
20494         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
20495         Un-staticize.
20496         (xstormy16_extra_constraint_p): Delete.
20497
20498 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
20499
20500         PR tree-optimization/46494
20501         * loop-unroll.c (split_edge_and_insert): Adjust comment.
20502         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
20503         (pass_rtl_loop_done): Add TODO_verify_flow.
20504         * fwprop.c (pass_rtl_fwprop): Likewise.
20505         * modulo-sched.c (pass_sms): Likewise.
20506         * tree-ssa-dom.c (pass_dominator): Likewise.
20507         * tree-ssa-loop-ch.c (pass_ch): Likewise.
20508         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
20509         (pass_tree_loop_done): Likewise.
20510         * tree-ssa-pre.c (execute_pre): Likewise.
20511         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
20512         * tree-ssa-sink.c (pass_sink_code): Likewise.
20513         * tree-vrp.c (pass_vrp): Likewise.
20514
20515 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
20516
20517         * config/v850/constraints.md: New file.
20518         * config/v850/v850.md: Include it.
20519         * config/v850/predicates.md (reg_or_0_operand): Use
20520         satisfies_constraint_G.
20521         (special_symbolref_operand): Use satisfies_constraint_K.
20522         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
20523         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
20524         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
20525         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20526         (EXTRA_CONSTRAINT): Delete.
20527         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
20528         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
20529         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
20530
20531 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
20532
20533         PR target/47696
20534         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
20535         description.
20536
20537 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
20538
20539         * config/mcore/constraints.md: New file.
20540         * config/mcore/mcore.md: Include it.
20541         * config/mcore/mcore.c (reg_class_from_letter): Delete.
20542         * config/mcore/mcore.h (reg_class_from_letter): Delete.
20543         (REG_CLASS_FROM_LETTER): Delete.
20544         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
20545         insn_const_int_ok_for_constraint.
20546         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
20547         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
20548         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20549         (EXTRA_CONSTRAINT): Delete.
20550
20551 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20552
20553         PR ada/41929
20554         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
20555         (IS_SIGHANDLER): Define.
20556         (sparc64_is_sighandler): New function, split off from
20557         sparc64_fallback_frame_state.
20558         (sparc_is_sighandler): New function, split off from
20559         sparc_fallback_frame_state.
20560         (sparc64_fallback_frame_state): Merge with ...
20561         (sparc_fallback_frame_state): ... this into ...
20562         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
20563         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
20564         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
20565         stack instead of hardcoded offsets.
20566
20567 2011-02-14  Andriy Gapon  <avg@freebsd.org>
20568
20569         PR target/45808
20570         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
20571
20572 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20573
20574         * configure: Regenerate.
20575
20576 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
20577
20578         PR driver/45731
20579         * gcc.c (asm_options): Correct spec matching --target-help.
20580
20581 2011-02-12  Martin Jambor  <mjambor@suse.cz>
20582
20583         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
20584         to gimple call error.
20585
20586 2011-02-12  Mike Stump  <mikestump@comcast.net>
20587
20588         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
20589         comments in backslash regions.
20590
20591 2011-02-12  Mike Stump  <mikestump@comcast.net>
20592             Jakub Jelinek  <jakub@redhat.com>
20593             Iain Sandoe  <iains@gcc.gnu.org>
20594
20595         PR target/47324
20596         * dwarf2out.c (output_cfa_loc): When required, apply the
20597         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
20598         (output_loc_sequence): Likewise.
20599         (output_loc_operands_raw): Likewise.
20600         (output_loc_sequence_raw): Likewise.
20601         (output_cfa_loc): Likewise.
20602         (output_loc_list): Suppress register number adjustment when
20603         calling output_loc_sequence()
20604         (output_die): Likewise.
20605
20606 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
20607
20608         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20609         Remove macros.
20610         * config/xtensa/xtensa.c (xtensa_register_move_cost,
20611         xtensa_memory_move_cost): New functions.
20612         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
20613
20614 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
20615
20616         PR lto/47225
20617         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
20618         in the current directory.
20619         * configure: Rebuilt.
20620
20621 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
20622
20623         * config/darwin.c (darwin_override_options): Add a hunk missed
20624         from the commit of r168571.  Trim comment line lengths and
20625         correct indents of the preceding block.
20626
20627 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
20628
20629         * gcc.c (driver_handle_option): Concatenate the argument to -F with
20630         the switch.
20631
20632 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
20633
20634         * common.opt (nostartfiles): New Driver option.
20635
20636 2011-02-11  Xinliang David Li  <davidxl@google.com>
20637
20638         PR tree-optimization/47707
20639         * tree-chrec.c (convert_affine_scev): Keep type precision.
20640
20641 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
20642
20643         PR tree-optimization/47420
20644         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
20645
20646 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
20647
20648         PR rtl-optimization/47614
20649         * rtl.h (check_for_inc_dec): Declare.
20650         * dse.c (check_for_inc_dec): Externalize...
20651         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
20652         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
20653
20654 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
20655
20656         PR driver/47678
20657         * gcc.c (main): Do not compile inputs if there were errors in
20658         option handling.
20659         * opts-common.c (read_cmdline_option): Check for wrong language
20660         after other error checks.
20661
20662 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
20663
20664         * cgraph.c: Fix comment typos.
20665         * cgraph.h: Likewise.
20666         * cgraphunit.c: Likewise.
20667         * ipa-cp.c: Likewise.
20668         * ipa-inline.c: Likewise.
20669         * ipa-prop.c: Likewise.
20670         * ipa-pure-const.c: Likewise.
20671         * ipa-ref.c: Likewise.
20672         * ipa-reference.c: Likewise.
20673
20674 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
20675
20676         PR debug/47684
20677         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
20678
20679 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20680
20681         PR testsuite/47400
20682         * doc/sourcebuild.texi (Require Support): Document
20683         dg-require-ascii-locale.
20684
20685 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
20686
20687         * doc/lto.texi (Write summary): Fix missing parentheses.
20688
20689 2011-02-10  DJ Delorie  <dj@redhat.com>
20690
20691         * config/m32c/m32c.c (m32c_option_override): Disable
20692         -fcombine-stack-adjustments until flag value tracking and compare
20693         optimization can be rewritten.
20694
20695 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
20696
20697         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
20698         PROCESSOR_POWER7.
20699         (PROCESSOR_DEFAULT64): Likewise.
20700
20701 2011-02-10  Richard Henderson  <rth@redhat.com>
20702
20703         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
20704         change from 2011-02-03.
20705         * config/rx/rx.c (flags_from_code): Likewise.
20706         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
20707         is valid, n/pz otherwise.
20708         (rx_select_cc_mode): Return CCmode if Y is not zero.
20709
20710 2011-02-10  Richard Guenther  <rguenther@suse.de>
20711
20712         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
20713
20714 2011-02-10  Richard Guenther  <rguenther@suse.de>
20715
20716         PR tree-optimization/47677
20717         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
20718
20719 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
20720
20721         PR target/47665
20722         * combine.c (make_compound_operation): Only change shifts into
20723         multiplication for SCALAR_INT_MODE_P.
20724
20725 2011-02-10  Jie Zhang  <jie@codesourcery.com>
20726
20727         PR testsuite/47622
20728         Revert
20729         2011-02-05  Jie Zhang  <jie@codesourcery.com>
20730         PR debug/42631
20731         * web.c (entry_register): Don't clobber the number of the
20732         first uninitialized reference in used[].
20733
20734 2011-02-09  Richard Guenther  <rguenther@suse.de>
20735
20736         PR tree-optimization/47664
20737         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
20738         all edges again.
20739
20740 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
20741
20742         PR target/46481
20743         PR target/47032
20744         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
20745         PROCESSOR_POWER7.
20746         (PROCESSOR_DEFAULT64): Same.
20747         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
20748
20749 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20750
20751         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
20752
20753 2011-02-09  Martin Jambor  <mjambor@suse.cz>
20754
20755         PR middle-end/45505
20756         * tree-sra.c (struct access): New flags grp_scalar_read and
20757         grp_scalar_write.  Changed description of assignment read and write
20758         flags.
20759         (dump_access): Dump new flags, reorder all of them.
20760         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
20761         to detect multiple scalar reads.
20762         (analyze_access_subtree): Use the new scalar read write flags instead
20763         of the old flags.  Adjusted comments.
20764
20765 2011-02-08  DJ Delorie  <dj@redhat.com>
20766
20767         PR target/47548
20768         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
20769         patterns.
20770
20771 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20772
20773         * config/m68k/uclinux.opt: New.
20774         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
20775
20776 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20777
20778         * config/cris/elf.opt (sim): New Driver option.
20779
20780 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20781
20782         * config/xtensa/elf.opt: New.
20783         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
20784
20785 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20786
20787         * config/vax/elf.opt: New.
20788         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
20789
20790 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20791
20792         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
20793
20794 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20795
20796         * config/gnu-user.opt: New.
20797         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
20798         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
20799         *-*-uclinux*): Use gnu-user.opt.
20800
20801 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
20802
20803         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
20804         * config/i386/gnu.h (CPP_SPEC): Likewise.
20805
20806 2011-02-08  Ian Lance Taylor  <iant@google.com>
20807
20808         * common.opt (fcx-limited-range): Add SetByCombined flag.
20809         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
20810         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
20811         (fassociative-math, freciprocal-math): Likewise.
20812         (funsafe-math-optimizations): Likewise.
20813         * opth-gen.awk: Handle SetByCombined.
20814         * optc-gen.awk: Likewise.
20815         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
20816         (set_unsafe_math_optimizations_flags): Likewise.
20817         * doc/options.texi (Option properties): Document SetByCombined.
20818
20819 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20820
20821         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
20822         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
20823         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
20824         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
20825         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
20826
20827 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
20828
20829         PR tree-optimization/46834
20830         PR tree-optimization/46994
20831         PR tree-optimization/46995
20832         * graphite-sese-to-poly.c (used_outside_reduction): New.
20833         (detect_commutative_reduction): Call used_outside_reduction.
20834         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
20835         translate_scalar_reduction_to_array only when at least one
20836         loop-phi/close-phi tuple has been detected.
20837
20838 2011-02-08  Richard Guenther  <rguenther@suse.de>
20839
20840         PR middle-end/47639
20841         * tree-vect-generic.c (expand_vector_operations_1): Update
20842         stmts here ...
20843         (expand_vector_operations): ... not here.  Cleanup EH info
20844         and the CFG if required.
20845
20846 2011-02-08  Richard Guenther  <rguenther@suse.de>
20847
20848         PR tree-optimization/47641
20849         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
20850         require type compatibility.
20851
20852 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20853
20854         * gimple-low.c (lower_function_body): Don't remove the location of
20855         the return statement here.
20856         (lower_gimple_return): Do it here instead but only if the return
20857         statement is actually used twice.
20858
20859 2011-02-08  Richard Guenther  <rguenther@suse.de>
20860
20861         PR tree-optimization/47632
20862         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
20863         unused up_to_stmt parameter, return whether cfg-cleanup is
20864         necessary, remove EH info properly.
20865         (forward_propagate_into_gimple_cond): Adjust caller.
20866         (forward_propagate_into_cond): Likewise.
20867         (forward_propagate_comparison): Likewise.
20868         (tree_ssa_forward_propagate_single_use_vars): Make
20869         forward_propagate_comparison case similar to the two others.
20870
20871 2011-02-08  Nick Clifton  <nickc@redhat.com>
20872
20873         * config/mn10300/mn10300.opt (mliw): New command line option.
20874         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
20875         (liw_bundling): New automaton.
20876         (liw): New attribute.
20877         (liw_op): New attribute.
20878         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
20879         (movsi_internal): Add LIW attributes.
20880         (andsi3): Likewise.
20881         (iorsi3): Likewise.
20882         (xorsi3): Likewise.
20883         (addsi3): Separate register and immediate alternatives.
20884         Add LIW attributes.
20885         (subsi3): Likewise.
20886         (cmpsi): Likewise.
20887         (aslsi3): Likewise.
20888         (lshrsi3): Likewise.
20889         (ashrsi3): Likewise.
20890         (liw): New pattern.
20891         * config/mn10300/mn10300.c (liw_op_names): New
20892         (mn10300_print_operand): Handle 'W' operand descriptor.
20893         (extract_bundle): New function.
20894         (check_liw_constraints): New function.
20895         (liw_candidate): New function.
20896         (mn10300_bundle_liw): New function.
20897         (mn10300_reorg): New function.
20898         (TARGET_MACHINE_DEPENDENT_REORG): Define.
20899         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
20900         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
20901         __LIW__ or __NO_LIW__.
20902         * doc/invoke.texi: Describe the -mliw command line option.
20903
20904 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20905
20906         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
20907         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
20908         pthread_mutex_unlock): Remove.
20909         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
20910         * config/pa/t-pa64: Likewise.
20911         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
20912         shared libc if not linking against libpthread.
20913         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20914
20915 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
20916
20917         PR target/47558
20918         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
20919         on 10.6 and later to ensure that we always use the unwinder from
20920         the system.  Only add -no_compact_unwind when tarteting darwin
20921         10.6 or later.
20922
20923 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
20924
20925         PR target/46997
20926         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
20927         (vec_interleave_lowv2sf): Ditto.
20928         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
20929         (vec_extract_oddv2sf): Ditto.
20930
20931 2011-02-07  Mike Stump  <mikestump@comcast.net>
20932
20933         PR target/42333
20934         Add __ieee_divdc3 entry point.
20935         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
20936         entry point.
20937         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
20938         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
20939         * config/darwin.c (darwin_rename_builtins): Add.
20940         * config/darwin-protos.h (darwin_rename_builtins): Add.
20941
20942 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
20943
20944         PR target/47636
20945         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
20946         for the condition.
20947
20948 2011-02-07  Mike Stump  <mikestump@comcast.net>
20949
20950         * config/darwin.opt (mmacosx-version-min): Update default OS version.
20951
20952 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
20953
20954         PR target/47534
20955         * config/avr/libgcc.S (exit): Move .endfunc
20956
20957 2011-02-07  Richard Guenther  <rguenther@suse.de>
20958
20959         PR tree-optimization/47615
20960         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
20961         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
20962         (run_scc_vn): Initialize it.
20963         (visit_reference_op_load): Use it.
20964         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
20965
20966 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20967
20968         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
20969         DImode trapping arithmetic libfuncs.
20970
20971 2011-02-07  Richard Guenther  <rguenther@suse.de>
20972
20973         PR tree-optimization/47621
20974         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
20975         two duplicates ...
20976         (execute_update_addresses_taken): ... here.  Make it more
20977         conservative in what we accept.
20978
20979 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
20980
20981         * config/sparc/freebsd.h (ASM_SPEC): Define.
20982         * config/sparc/vxworks.h (ASM_SPEC): Define.
20983
20984 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
20985
20986         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
20987
20988 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
20989
20990         * doc/invoke.texi: Remove reference to compiler internals from
20991         user documentation.
20992
20993         * reg-notes.def: Remove REG_VALUE_PROFILE.
20994         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
20995
20996 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
20997
20998         PR middle-end/47610
20999         * varasm.c (default_section_type_flags): If decl is NULL,
21000         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
21001
21002 2011-02-05  Jie Zhang  <jie@codesourcery.com>
21003
21004         PR debug/42631
21005         * web.c (entry_register): Don't clobber the number of the
21006         first uninitialized reference in used[].
21007
21008 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
21009
21010         PR tree-optimization/46194
21011         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
21012         (build_classic_dist_vector_1): Do not represent classic distance
21013         vectors when the access functions are variating in different loops.
21014
21015 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
21016
21017         * config/mips/iris6.opt: New.
21018         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
21019
21020 2011-02-04  Richard Henderson  <rth@redhat.com>
21021             Steve Ellcey  <sje@cup.hp.com>
21022
21023         PR target/46997
21024         * config/ia64/predicates.md (mux1_brcst_element): New.
21025         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
21026         * config/ia64/ia64.c (ia64_unpack_assemble): New.
21027         (ia64_unpack_sign): New.
21028         (ia64_expand_unpack): Rewrite using new routines.
21029         (ia64_expand_widen_sum): Ditto.
21030         (ia64_expand_dot_prod_v8qi): Ditto.
21031         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
21032         routines, add endian check.
21033         (pmpy2_even): Rename from pmpy2_r, add endian check.
21034         (pmpy2_odd): Rename from pmpy2_l, add endian check.
21035         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
21036         (vec_widen_smult_hi_v4hi): Ditto.
21037         (vec_widen_umult_lo_v4hi): Ditto.
21038         (vec_widen_umult_hi_v4hi): Ditto.
21039         (mulv2si3): Change endian checks.
21040         (sdot_prodv4hi): Rewrite with new calls.
21041         (udot_prodv4hi): New.
21042         (vec_pack_ssat_v4hi): Add endian check.
21043         (vec_pack_usat_v4hi): Ditto.
21044         (vec_pack_ssat_v2si): Ditto.
21045         (max1_even): Rename from max1_r, add endian check.
21046         (max1_odd): Rename from max1_l, add endian check.
21047         (*mux1_rev): Format change.
21048         (*mux1_mix): Ditto.
21049         (*mux1_shuf): Ditto.
21050         (*mux1_alt): Ditto.
21051         (*mux1_brcst_v8qi): Use new predicate.
21052         (vec_extract_evenv8qi): Remove endian check.
21053         (vec_extract_oddv8qi): Ditto.
21054         (vec_interleave_lowv4hi): Format change.
21055         (vec_interleave_highv4hi): Ditto.
21056         (mix2_even): Rename from mix2_r, add endian check.
21057         (mix2_odd): Rename from mux2_l, add endian check.
21058         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
21059         (vec_extract_evenodd_helper): Format change.
21060         (vec_extract_evenv4hi): Remove endian check.
21061         (vec_extract_oddv4hi): Remove endian check.
21062         (vec_interleave_lowv2si): Format change.
21063         (vec_interleave_highv2si): Format change.
21064         (vec_initv2si): Remove endian check.
21065         (vecinit_v2si): Add endian check.
21066         (reduc_splus_v2sf): Add endian check.
21067         (reduc_smax_v2sf): Ditto.
21068         (reduc_smin_v2sf): Ditto.
21069         (vec_initv2sf): Remove endian check.
21070         (fpack): Add endian check.
21071         (fswap): Add endian check.
21072         (vec_interleave_highv2sf): Add endian check.
21073         (vec_interleave_lowv2sf): Add endian check.
21074         (fmix_lr): Add endian check.
21075         (vec_setv2sf): Format change.
21076         (*vec_extractv2sf_0_be): Use shift to extract operand.
21077         (*vec_extractv2sf_1_be): New.
21078         (vec_pack_trunc_v4hi): Add endian check.
21079         (vec_pack_trunc_v2si): Format change.
21080
21081 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
21082
21083         PR inline-asm/23200
21084         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
21085         do bb, locus and block comparison and disallow loads if it is not set.
21086         (stmt_is_replaceable_p): New function.
21087         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
21088         callers.
21089         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
21090         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
21091         SSA_NAME_DEF_STMT.
21092         * tree-flow.h (stmt_is_replaceable_p): New prototype.
21093
21094 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
21095
21096         * config/rs6000/xilinx.opt: New.
21097         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
21098
21099 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
21100
21101         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
21102
21103 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
21104
21105         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
21106         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
21107         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
21108         secondary_reload_info, xtensa_secondary_reload): Remove.
21109         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
21110         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
21111         (xtensa_preferred_reload_class): Make static. Change return and
21112         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
21113         Use CONST_DOUBLE_P predicate.
21114         (xtensa_preferred_output_reload_class): New function.
21115         (xtensa_secondary_reload): Make static.
21116
21117 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
21118
21119         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
21120         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
21121         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
21122
21123 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
21124
21125         PR middle-end/31490
21126         * output.h (SECTION_RELRO): Define.
21127         (SECTION_MACH_DEP): Adjust.
21128         (get_variable_section): New prototype.
21129         * varpool.c (varpool_finalize_named_section_flags): New function.
21130         (varpool_assemble_pending_decls): Call it.
21131         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
21132         * cgraphunit.c (cgraph_output_in_order): Call
21133         varpool_finalize_named_section_flags.
21134         * varasm.c (get_section): Allow section flags conflicts between
21135         relro and read-only sections if the section hasn't been declared yet.
21136         Set SECTION_OVERRIDE after diagnosing section type conflict.
21137         (get_variable_section): No longer static.
21138         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
21139         readonly sections that need relocations.
21140         (decl_readonly_section_1): New function.
21141         (decl_readonly_section): Use it.
21142
21143         Revert:
21144         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
21145                     Steve Ellcey  <sje@cup.hp.com>
21146
21147         PR middle-end/31490
21148         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
21149         if section attribute used.
21150
21151 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
21152
21153         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
21154         * config/darwin.c (SECTION_NO_ANCHOR): Define.
21155         (darwin_init_sections): Remove assertion.
21156
21157 2011-02-03  Nick Clifton  <nickc@redhat.com>
21158
21159         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
21160         lt and ge.
21161         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
21162         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
21163         instead of "n" and "pz".
21164         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
21165         CC_FLAG_S.
21166
21167 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
21168
21169         PR target/47312
21170         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
21171         fma, expand FMA_EXPR as fma{,f,l} call.
21172
21173         PR lto/47274
21174         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
21175         copy them into a unsigned char variable and pass address of it to
21176         lto_output_data_stream.
21177
21178         PR target/47564
21179         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
21180         around backend_init_target and lang_dependent_init_target calls.
21181         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
21182         (verify_cgraph_node): Don't call set_cfun here.  Use
21183         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
21184         Set error_found for incorrectly represented calls to thunks.
21185
21186 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
21187
21188         PR debug/43092
21189         PR rtl-optimization/43494
21190         * rtl.h (for_each_inc_dec_fn): New type.
21191         (for_each_inc_dec): Declare.
21192         * rtlanal.c (struct for_each_inc_dec_ops): New type.
21193         (for_each_inc_dec_find_inc_dec): New fn.
21194         (for_each_inc_dec_find_mem): New fn.
21195         (for_each_inc_dec): New fn.
21196         * dse.c (struct insn_size): Remove.
21197         (replace_inc_dec, replace_inc_dec_mem): Remove.
21198         (emit_inc_dec_insn_before): New fn.
21199         (check_for_inc_dec): Use it, along with for_each_inc_dec.
21200         (canon_address): Pass mem modes to cselib_lookup.
21201         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
21202         (cselib_lookup_from_insn): Likewise.
21203         (cselib_subst_to_values): Likewise.
21204         * cselib.c (find_slot_memmode): New var.
21205         (cselib_find_slot): New fn.  Use it instead of
21206         htab_find_slot_with_hash everywhere.
21207         (entry_and_rtx_equal_p): Use find_slot_memmode.
21208         (autoinc_split): New fn.
21209         (rtx_equal_for_cselib_p): Rename and implement in terms of...
21210         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
21211         Deal with autoinc.  Special-case recursion into MEMs.
21212         (cselib_hash_rtx): Likewise.
21213         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
21214         address and MEM modes.
21215         (cselib_subst_to_values): Add memmode, pass it on.
21216         Deal with autoinc.
21217         (cselib_lookup): Add memmode argument, pass it on.
21218         (cselib_lookup_from_insn): Add memmode.
21219         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
21220         (struct cselib_record_autoinc_data): New.
21221         (cselib_record_autoinc_cb): New fn.
21222         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
21223         mode to cselib_lookup.  Reset autoinced REGs here instead of...
21224         (cselib_process_insn): ... here.
21225         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
21226         to cselib_lookup.
21227         (add_uses): Likewise, also to cselib_subst_to_values.
21228         (add_stores): Likewise.
21229         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
21230         cselib_subst_to_values.
21231         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
21232         * gcse.c (do_local_cprop): Adjusted.
21233         * postreload.c (reload_cse_simplify_set): Adjusted.
21234         (reload_cse_simplify_operands): Adjusted.
21235         * sel-sched-dump (debug_mem_addr_value): Pass mode.
21236
21237 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
21238
21239         PR tree-optimization/45122
21240         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
21241         unsafe assumptions when there's more than one loop exit.
21242
21243 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
21244
21245         PR target/47272
21246         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
21247         Document using vector double with the load/store builtins, and
21248         that the load/store builtins always use Altivec instructions.
21249
21250         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
21251         to use altivec memory instructions, even on VSX.
21252         (vector_altivec_store_<mode>): Ditto.
21253
21254         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
21255         function.
21256
21257         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21258         V2DF, V2DI support to load/store overloaded builtins.
21259
21260         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
21261         altivec load/store builtins for V2DF/V2DI types.
21262
21263         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
21264         set avoid indexed addresses on power6 if -maltivec.
21265         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
21266         vector_altivec_load/vector_altivec_store builtins.
21267         (altivec_expand_st_builtin): Ditto.
21268         (altivec_expand_builtin): Add VSX memory builtins.
21269         (rs6000_init_builtins): Add V2DI types to internal types.
21270         (altivec_init_builtins): Add support for V2DF/V2DI altivec
21271         load/store builtins.
21272         (rs6000_address_for_altivec): Insure memory address is appropriate
21273         for Altivec.
21274
21275         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
21276         vec_vsx_ld and vec_vsx_st.
21277         (vsx_store_<mode>): Ditto.
21278
21279         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
21280         variables to hold long long types for VSX vector memory builtins.
21281         (RS6000_BTI_unsigned_long_long): Ditto.
21282         (long_long_integer_type_internal_node): Ditti.
21283         (long_long_unsigned_type_internal_node): Ditti.
21284
21285         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
21286         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
21287         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
21288
21289         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
21290         short cuts.
21291         (vec_vsx_st): Ditto.
21292
21293 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
21294
21295         * config/pa/pa-hpux10.opt: New.
21296         * config/hpux11.opt (pthread): New Driver option.
21297         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
21298         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
21299
21300 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
21301
21302         * config/ia64/vms.opt: New.
21303         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
21304
21305 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
21306
21307         PR target/47580
21308         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
21309         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
21310         generator functions.
21311         (vsx_floatuns<VSi><mode>2): Ditto.
21312         (vsx_fix_trunc<mode><VSi>2): Ditto.
21313         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
21314
21315 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
21316
21317         * config/i386/djgpp.opt (posix): New Driver option.
21318
21319 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
21320
21321         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
21322         Move to the unsupported targets list.
21323
21324 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
21325
21326         PR rtl-optimization/47525
21327         * df-scan.c: Update copyright years.
21328         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
21329         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
21330
21331 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21332
21333         * config/i386/sysv4.h (TARGET_VERSION): Remove.
21334         (SUBTARGET_RETURN_IN_MEMORY): Remove.
21335         (ASM_OUTPUT_ASCII): Remove.
21336         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
21337
21338 2011-02-02  Jeff Law  <law@redhat.com>
21339
21340         PR middle-end/47543
21341         * reload.c (find_reloads_address): Handle reg+d address where both
21342         components are invalid by reloading the entire address.
21343
21344 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
21345             Richard Guenther  <rguenther@suse.de>
21346
21347         PR tree-optimization/40979
21348         PR bootstrap/47044
21349         * passes.c (init_optimization_passes): After LIM call copy_prop
21350         and DCE to clean up.
21351         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
21352
21353 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
21354
21355         PR tree-optimization/47576
21356         PR tree-optimization/47555
21357         * doc/invoke.texi (scev-max-expr-complexity): Documented.
21358         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21359         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
21360         * tree-scalar-evolution.c (follow_ssa_edge): Use
21361         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
21362
21363 2011-02-02  Richard Guenther  <rguenther@suse.de>
21364
21365         PR tree-optimization/47566
21366         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
21367
21368 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
21369
21370         PR debug/47106
21371         PR debug/47402
21372         * tree-inline.c (declare_return_variable): Remove unused caller
21373         variable.
21374
21375         PR debug/47106
21376         PR debug/47402
21377         * tree-flow-inline.h (clear_is_used, is_used_p): New.
21378         * cfgexpand.c (account_used_vars_for_block): Use them.
21379         * tree-nrv.c (tree_nrv): Likewise.
21380         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
21381         (dump_scope_block): Likewise.
21382         (remove_unused_locals): Likewise.
21383
21384         PR debug/47106
21385         PR debug/47402
21386         * tree-inline.c (declare_return_variable): Add result decl to
21387         local decls only once.
21388         * gimple-low.c (record_vars_into): Mark newly-created variables
21389         as referenced.
21390
21391 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
21392
21393         PR debug/47498
21394         PR debug/47501
21395         PR debug/45136
21396         PR debug/45130
21397         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21398         debug insns.
21399         (no_real_insns_p, schedule_block, set_priorities): Drop special
21400         treatment of boundary debug insns.
21401         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
21402         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
21403         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21404         (BOUNDARY_DEBUG_INSN_P): Likewise.
21405         (SCHEDULE_DEBUG_INSN_P): Likewise.
21406         * sched-rgn.c (init_ready_list): Drop special treatment of
21407         boundary debug insns.
21408         * final.c (rest_of_clean_state): Clear notes' BB.
21409
21410 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21411
21412         * config/openbsd.opt (assert=): New Driver option.
21413
21414 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21415
21416         * config/i386/nto.opt: New.
21417         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
21418
21419 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21420
21421         * config/i386/netware.opt: New.
21422         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
21423
21424 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21425
21426         * config/interix.opt (posix): New Driver option.
21427
21428 2011-02-01  DJ Delorie  <dj@redhat.com>
21429
21430         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
21431
21432         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
21433         class for A0/A1.
21434
21435 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
21436
21437         PR tree-optimization/47561
21438         * toplev.c (process_options): Print the Graphite flags.  Add
21439         flag_loop_flatten to the list of options requiring Graphite.
21440
21441 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21442
21443         * config/i386/cygming.opt (posix): New Driver option.
21444
21445 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21446
21447         * config/arm/vxworks.opt: New.
21448         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
21449
21450 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21451
21452         * config/alpha/elf.opt: New.
21453         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
21454         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
21455
21456 2011-02-01  Richard Guenther  <rguenther@suse.de>
21457
21458         PR tree-optimization/47559
21459         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
21460         store-motion on references that can throw.
21461
21462 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
21463
21464         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
21465         * tree-pass.h (TDF_CSELIB): New macro.
21466         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
21467         cselib_lookup): Check for it rather than for TDF_DETAILS.
21468
21469 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
21470
21471         PR driver/47547
21472         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
21473         is HOST_BIT_BUCKET.
21474
21475         * opts.c (finish_options): Don't add x_aux_base_name if it is
21476         HOST_BIT_BUCKET.
21477
21478 2011-02-01  Richard Guenther  <rguenther@suse.de>
21479
21480         PR tree-optimization/47555
21481         Revert
21482         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
21483
21484         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21485
21486 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
21487
21488         PR gcc/46692
21489         * config/lm32/t-lm32: Add multilib for all CPU options.
21490
21491 2011-02-01  Richard Guenther  <rguenther@suse.de>
21492
21493         PR tree-optimization/47541
21494         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
21495         sure to have a field at offset zero.
21496
21497 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
21498
21499         * config/arc/arc.opt (EB, EL): New Driver options.
21500
21501 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
21502
21503         * config/alpha/osf5.opt: New.
21504         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
21505
21506 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
21507
21508         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
21509
21510 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
21511
21512         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
21513         -floop-interchange.
21514         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
21515         is an alias of -floop-interchange and that it requires the
21516         Graphite infrastructure.
21517         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
21518         flag_loop_interchange based on the value of flag_tree_loop_linear.
21519
21520 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
21521             Richard Guenther  <rguenther@suse.de>
21522
21523         PR tree-optimization/47538
21524         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
21525         type instead of r1type, except for comparisons.  For right
21526         shifts and comparisons punt if there are mismatches in
21527         sizetype vs. non-sizetype types.
21528
21529 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21530
21531         * doc/sourcebuild.texi (Effective-Target Keywords): Document
21532         avx_runtime.
21533
21534 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21535
21536         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
21537         version number.
21538         * configure: Regenerate.
21539
21540 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21541
21542         * configure.ac (gcc_cv_ld_static_option): Define.
21543         (gcc_cv_ld_dynamic_option): Define.
21544         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
21545         instead.
21546         (HAVE_LD_STATIC_DYNAMIC): Update message.
21547         (LD_STATIC_OPTION): Define.
21548         (LD_DYNAMIC_OPTION): Define.
21549         * configure: Regenerate.
21550         * config.in: Regenerate.
21551         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
21552         HAVE_LD_STATIC_DYNAMIC]: Use them.
21553
21554 2011-01-31  Nick Clifton  <nickc@redhat.com>
21555
21556         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
21557         registers inside interrupt handlers if the handler is not a leaf
21558         function.
21559
21560 2011-01-31  Nick Clifton  <nickc@redhat.com>
21561
21562         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
21563         reg_renumber returning an INVALID_REGNUM.
21564
21565 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
21566
21567         PR libgcj/44341
21568         * doc/install.texi: Document host options discarded when cross
21569         configuring target libraries.
21570
21571 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
21572
21573         Reverted:
21574         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
21575         PR debug/45136
21576         PR debug/45130
21577         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21578         debug insns.
21579         (no_real_insns_p, schedule_block, set_priorities): Drop special
21580         treatment of boundary debug insns.
21581         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
21582         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21583         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21584         (BOUNDARY_DEBUG_INSN_P): Likewise.
21585         (SCHEDULE_DEBUG_INSN_P): Likewise.
21586         * sched-rgn.c (init_ready_list): Drop special treatment of
21587         boundary debug insns.
21588         * final.c (rest_of_clean-state): Clear notes' BB.
21589
21590 2011-01-31  Alan Modra  <amodra@gmail.com>
21591
21592         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
21593         toc relative expressions as we do in print_operand_address.
21594
21595 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
21596
21597         * doc/extend.texi: Follow spelling conventions.
21598         * doc/invoke.texi: Fix a typo.
21599
21600 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
21601
21602         * config/hpux11.opt: New.
21603         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
21604         ia64*-*-hpux*): Use hpux11.opt.
21605
21606 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
21607
21608         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
21609         to tmake_file.
21610
21611 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
21612
21613         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
21614         support sites.
21615
21616 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
21617
21618         * doc/install.texi (Binaries): Remove outdated reference for
21619         Motorola 68HC11/68HC12 downloads.
21620
21621 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
21622
21623         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
21624         Drepper's paper.
21625
21626 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
21627
21628         PR bootstrap/47147
21629         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
21630         used by NetBSD.
21631
21632 2011-01-28  Ahmad Sharif  <asharif@google.com>
21633
21634         * value-prof.c (check_counter): Corrected error message.
21635
21636 2011-01-29  Jie Zhang  <jie@codesourcery.com>
21637
21638         * config/arm/arm.c (arm_legitimize_reload_address): New.
21639         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
21640         arm_legitimize_reload_address.
21641         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
21642
21643 2011-01-28  Ian Lance Taylor  <iant@google.com>
21644
21645         * godump.c (go_define): Ignore macros whose definitions include
21646         two adjacent operands.
21647
21648 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
21649
21650         PR target/42894
21651         * varasm.c (force_const_mem): Store copy of x in desc->constant
21652         instead of x itself.
21653         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
21654         itself into REG_EQUAL note.
21655
21656 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
21657
21658         * config/freebsd.opt (posix, rdynamic): New Driver options.
21659
21660 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21661
21662         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
21663         -Bstatic/-Bdynamic.
21664         * configure: Regenerate.
21665
21666 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
21667
21668         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
21669         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
21670
21671 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
21672
21673         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
21674         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
21675         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
21676         (s390_preferred_reload_class): Make static. Change return and
21677         'rclass' argument type to reg_class_t.
21678
21679 2011-01-27  Jan Hubicka  <jh@suse.cz>
21680
21681         PR middle-end/46949
21682         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
21683         (process_function_and_variable_attributes): Check defined weakrefs.
21684
21685 2011-01-27  Martin Jambor  <mjambor@suse.cz>
21686
21687         PR tree-optimization/47228
21688         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
21689         build_ref_for_offset.
21690
21691 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21692
21693         * config/spu/spu-elf.h (ASM_SPEC): Remove.
21694
21695 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
21696
21697         PR rtl-optimization/46856
21698         * postreload.c (reload_combine_recognize_const_pattern): Do not
21699         separate cc0 setter and user on cc0 targets.
21700
21701 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
21702
21703         PR c/43082
21704         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
21705         passed a VOID_TYPE expression, immediately emit an error and
21706         return error_mark_node.
21707
21708 2011-01-26  Jeff Law  <law@redhat.com>
21709
21710         PR rtl-optimization/47464
21711         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
21712         rather than may_trap_p as needed.
21713
21714 2011-01-26  DJ Delorie  <dj@redhat.com>
21715
21716         PR rtl-optimization/46878
21717         * combine.c (insn_a_feeds_b): Check for the implicit cc0
21718         setter/user dependency as well.
21719
21720 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
21721
21722         PR rtl-optimization/44469
21723         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
21724         after removing trivially dead basic blocks.
21725
21726 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
21727
21728         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
21729         * config/frv/frv.h (LINK_SPEC): Likewise.
21730         * config/i386/netware.h (LINK_SPEC): Likewise.
21731         * config/m68k/linux.h (ASM_SPEC): Likewise.
21732         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
21733         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21734         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21735         * config/sparc/linux.h (ASM_SPEC): Likewise.
21736         * config/sparc/linux64.h (ASM_SPEC): Likewise.
21737         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21738
21739 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
21740
21741         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
21742         * config/frv/frv.h (ASM_SPEC): Likewise.
21743         * config/m68k/linux.h (ASM_SPEC): Likewise.
21744         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21745         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
21746         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21747         * config/sparc/linux.h (ASM_SPEC): Likewise.
21748         * config/sparc/linux64.h (ASM_SPEC): Likewise.
21749         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21750
21751 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
21752
21753         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
21754         * config/frv/frv.h (LINK_SPEC): Likewise.
21755         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21756
21757 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
21758
21759         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
21760         * config/frv/frv.h (ASM_SPEC): Likewise.
21761         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
21762         * config/m68k/linux.h (ASM_SPEC): Likewise.
21763         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21764         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
21765         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21766         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
21767         * config/sparc/linux.h (ASM_SPEC): Likewise.
21768         * config/sparc/linux64.h (ASM_SPEC): Likewise.
21769         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21770         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
21771
21772 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
21773
21774         PR target/46997
21775         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
21776         (*mux2): Ditto.
21777         (vec_extract_evenodd_help): Ditto.
21778         (vec_extract_evenv4hi): Ditto.
21779         (vec_extract_oddv4hi): Ditto.
21780         (vec_interleave_lowv2si): Ditto.
21781         (vec_interleave_highv2si): Ditto.
21782         (vec_extract_evenv2si): Ditto.
21783         (vec_extract_oddv2si: Ditto.
21784         (vec_pack_trunc_v2si): Ditto.
21785
21786 2011-01-22  Jan Hubicka  <jh@suse.cz>
21787
21788         PR target/47237
21789         * cgraph.h (cgraph_local_info): New field can_change_signature.
21790         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
21791         signature can change.
21792         (ipcp_estimate_growth): Call sequence simplify only if calle signature
21793         can change.
21794         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
21795         (cgraph_function_versioning): We can not change signature of functions
21796         that don't allow that.
21797         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
21798         (lto_input_node): Likewise.
21799         * ipa-inline.c (compute_inline_parameters): Compute
21800         local.can_change_signature.
21801         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
21802         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
21803         functions that can not change signature.
21804         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
21805         init_cumulative_args): Do not use local calling conventions
21806         for functions that can not change signature.
21807
21808 2011-01-22  Jan Hubicka  <jh@suse.cz>
21809
21810         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
21811
21812 2011-01-26  Richard Guenther  <rguenther@suse.de>
21813
21814         PR tree-optimization/47190
21815         * cgraphunit.c (process_common_attributes): New function.
21816         (process_function_and_variable_attributes): Use it.
21817
21818 2011-01-26  Richard Guenther  <rguenther@suse.de>
21819
21820         PR lto/47423
21821         * cgraphbuild.c (record_eh_tables): Record reference to personality
21822         function.
21823
21824 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
21825
21826         PR debug/45454
21827         * sel-sched.c (moveup_expr): Don't let debug insns prevent
21828         non-debug insns from moving up.
21829
21830 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
21831
21832         PR target/40125
21833         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
21834         t-dlldir{,-x} fragment for build and add it to tmake_file.
21835         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
21836         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
21837         * config/i386/t-dlldir: New file.
21838         (SHLIB_DLLDIR): Define.
21839         * config/i386/t-dlldir-x: New file.
21840         (SHLIB_DLLDIR): Define.
21841         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
21842         (SHLIB_INSTALL): Use it.
21843
21844 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
21845
21846         PR target/47246
21847         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
21848         lower bound of the allowed Thumb-2 coprocessor load/store
21849         index range to -256. Add explaining comment.
21850
21851 2011-01-25  Ian Lance Taylor  <iant@google.com>
21852
21853         * godump.c (go_define): Improve lexing of macro expansion to only
21854         accept expressions which match Go spec.
21855
21856 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
21857
21858         PR c++/43601
21859         * tree.c (handle_dll_attribute): Handle it.
21860         * doc/extend.texi (@item dllexport): Mention it.
21861         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
21862
21863 2011-01-25  Ian Lance Taylor  <iant@google.com>
21864
21865         PR tree-optimization/26854
21866         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
21867         (decl_jump_unsafe): Move higher in file, with no other change.
21868         (bind): Set has_jump_unsafe_decl if appropriate.
21869         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
21870         (check_earlier_gotos): Likewise.
21871         (c_check_switch_jump_warnings): Likewise.
21872
21873 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
21874
21875         * doc/invoke.texi (Warning Options): Add missing hyphen.
21876         (-fprofile-dir): Minor grammatical fixes.
21877         (-fbranch-probabilities): Likewise.
21878
21879 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
21880
21881         PR debug/45136
21882         PR debug/45130
21883         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21884         debug insns.
21885         (no_real_insns_p, schedule_block, set_priorities): Drop special
21886         treatment of boundary debug insns.
21887         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
21888         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21889         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21890         (BOUNDARY_DEBUG_INSN_P): Likewise.
21891         (SCHEDULE_DEBUG_INSN_P): Likewise.
21892         * sched-rgn.c (init_ready_list): Drop special treatment of
21893         boundary debug insns.
21894         * final.c (rest_of_clean-state): Clear notes' BB.
21895
21896 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21897
21898         * Makefile.in (LAMBDA_H): Removed.
21899         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
21900         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
21901         lambda-trans.o, and tree-loop-linear.o.
21902         (lto-symtab.o): Remove dependence on LAMBDA_H.
21903         (tree-loop-linear.o): Remove rule.
21904         (lambda-mat.o): Same.
21905         (lambda-trans.o): Same.
21906         (lambda-code.o): Same.
21907         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
21908         (tree-vect-slp.o): Same.
21909         * hwint.h (gcd): Moved here.
21910         (least_common_multiple): Same.
21911         * lambda-code.c: Removed.
21912         * lambda-mat.c: Removed.
21913         * lambda-trans.c: Removed.
21914         * lambda.h: Removed.
21915         * tree-loop-linear.c: Removed.
21916         * lto-symtab.c: Do not include lambda.h.
21917         * omega.c (gcd): Removed.
21918         * passes.c (init_optimization_passes): Remove pass_linear_transform.
21919         * tree-data-ref.c (print_lambda_vector): Moved here.
21920         (lambda_vector_copy): Same.
21921         (lambda_matrix_copy): Same.
21922         (lambda_matrix_id): Same.
21923         (lambda_vector_first_nz): Same.
21924         (lambda_matrix_row_add): Same.
21925         (lambda_matrix_row_exchange): Same.
21926         (lambda_vector_mult_const): Same.
21927         (lambda_vector_negate): Same.
21928         (lambda_matrix_row_negate): Same.
21929         (lambda_vector_equal): Same.
21930         (lambda_matrix_right_hermite): Same.
21931         * tree-data-ref.h: Do not include lambda.h.
21932         (lambda_vector): Moved here.
21933         (lambda_matrix): Same.
21934         (dependence_level): Same.
21935         (lambda_transform_legal_p): Removed declaration.
21936         (lambda_collect_parameters): Same.
21937         (lambda_compute_access_matrices): Same.
21938         (lambda_vector_gcd): Same.
21939         (lambda_vector_new): Same.
21940         (lambda_vector_clear): Same.
21941         (lambda_vector_lexico_pos): Same.
21942         (lambda_vector_zerop): Same.
21943         (lambda_matrix_new): Same.
21944         * tree-flow.h (least_common_multiple): Removed declaration.
21945         * tree-parloops.c (lambda_trans_matrix): Moved here.
21946         (LTM_MATRIX): Same.
21947         (LTM_ROWSIZE): Same.
21948         (LTM_COLSIZE): Same.
21949         (LTM_DENOMINATOR): Same.
21950         (lambda_trans_matrix_new): Same.
21951         (lambda_matrix_vector_mult): Same.
21952         (lambda_transform_legal_p): Same.
21953         * tree-pass.h (pass_linear_transform): Removed declaration.
21954         * tree-ssa-loop.c (tree_linear_transform): Removed.
21955         (gate_tree_linear_transform): Removed.
21956         (pass_linear_transform): Removed.
21957         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
21958         flag_loop_interchange.
21959
21960 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
21961
21962         PR tree-optimization/47265
21963         PR tree-optimization/47443
21964         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
21965         if name still has some uses.
21966
21967 2011-01-25  Martin Jambor  <mjambor@suse.cz>
21968
21969         PR tree-optimization/47382
21970         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
21971         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
21972
21973 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
21974
21975         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
21976         sjlj_except_unwind_info.
21977
21978 2011-01-25  Richard Guenther  <rguenther@suse.de>
21979
21980         PR tree-optimization/47426
21981         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
21982         visible functions results escape.
21983
21984 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
21985
21986         PR target/45701
21987         * config/arm/arm.c (any_sibcall_uses_r3): New function.
21988         (arm_get_frame_offsets): Use it.
21989
21990 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21991             Jakub Jelinek  <jakub@redhat.com>
21992
21993         PR tree-optimization/47271
21994         * tree-if-conv.c (bb_postdominates_preds): New.
21995         (if_convertible_bb_p): Call bb_postdominates_preds.
21996         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
21997         (predicate_scalar_phi): Call bb_postdominates_preds.
21998
21999 2011-01-25  Nick Clifton  <nickc@redhat.com>
22000
22001         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
22002         * config/rx/rx.c (rx_function_value): Likewise.
22003         (rx_promote_function_mode): Likewise.
22004         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
22005         in order to make it legitimate.
22006         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
22007         make sure that the first operand is the same as the result register.
22008         (addsi3_unspec): Delete.
22009         (subdi3): Do not accept immediate operands.
22010         (subdi3_internal): Likewise.
22011
22012 2011-01-25  Jeff Law  <law@redhat.com>
22013
22014         PR rtl-optimization/37273
22015         * ira-costs.c (scan_one_insn): Detect constants living in memory and
22016         handle them like argument loads from stack slots.  Do not double
22017         count memory for memory constants and argument loads from stack slots.
22018
22019 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
22020
22021         PR tree-optimization/47427
22022         PR tree-optimization/47428
22023         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
22024         coalesce if the new root var would be TREE_READONLY.
22025
22026 2011-01-25  Richard Guenther  <rguenther@suse.de>
22027
22028         PR middle-end/47414
22029         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
22030         correct type for TBAA.
22031
22032 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22033
22034         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
22035         (close_phi_written_to_memory): Call for_each_index with
22036         dr_indices_valid_in_loop.
22037
22038 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22039
22040         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
22041         when it is initialized.
22042
22043 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22044
22045         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
22046         call to graphite_find_data_references_in_stmt.
22047         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
22048         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
22049         call to graphite_find_data_references_in_stmt.
22050         (analyze_drs_in_stmts): Same.
22051         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
22052         in which the scalar analysis of indices is performed.
22053         (create_data_ref): Same.  Update call to dr_analyze_indices.
22054         (find_data_references_in_stmt): Update call to create_data_ref.
22055         (graphite_find_data_references_in_stmt): Same.
22056         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
22057         declaration.
22058         (create_data_ref): Same.
22059         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
22060         call to create_data_ref.
22061
22062 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22063
22064         * graphite-sese-to-poly.c (build_poly_scop): Move
22065         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
22066
22067 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22068
22069         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
22070         VAR_DECL, PARM_DECL, and RESULT_DECL.
22071
22072 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22073
22074         * graphite-dependences.c (reduction_dr_1): Allow several reductions
22075         in a reduction PBB.
22076         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
22077         that have already been marked as PBB_IS_REDUCTION.
22078
22079 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22080
22081         * graphite-scop-detection.c (same_close_phi_node): New.
22082         (remove_duplicate_close_phi): New.
22083         (make_close_phi_nodes_unique): New.
22084         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
22085
22086 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22087
22088         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
22089         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
22090         of both data references to be the same.
22091
22092 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22093
22094         * graphite-dependences.c (build_lexicographical_constraint): Remove
22095         the gdim parameter.
22096         (build_lexicographical_constraint): Adjust call to
22097         ppl_powerset_is_empty.
22098         (dependence_polyhedron): Same.
22099         (graphite_legal_transform_dr): Same.
22100         (graphite_carried_dependence_level_k): Same.
22101         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
22102         parameter.
22103         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
22104
22105 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22106
22107         * graphite-sese-to-poly.c
22108         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
22109         (close_phi_written_to_memory): New.
22110         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
22111         and unshare_expr.
22112
22113 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22114
22115         * doc/install.texi: Update the expected version number of PPL to 0.11.
22116         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
22117         #if PPL_VERSION_MINOR < 11.
22118
22119 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22120
22121         * graphite-dependences.c: Include graphite-cloog-util.h.
22122         (new_poly_ddr): Inlined into dependence_polyhedron.
22123         (free_poly_ddr): Moved close by new_poly_ddr.
22124         (dependence_polyhedron_1): Renamed dependence_polyhedron.
22125         Early return NULL when ppl_powerset_is_empty returns true.
22126         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
22127         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
22128         (graphite_legal_transform_dr): Call new_poly_ddr.
22129         (graphite_carried_dependence_level_k): Same.
22130         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
22131         (dot_transformed_deps_stmt_1): Removed.
22132         (dot_deps_stmt_1): Call dot_deps_stmt_2.
22133         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
22134         (dot_deps_1): Call dot_deps_2.
22135         * Makefile.in (graphite-dependences.o): Add missing dependence on
22136         graphite-cloog-util.h.
22137
22138 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22139
22140         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
22141         (build_lexicographical_constraint): Same.
22142         (dependence_polyhedron_1): Same.
22143         (graphite_legal_transform_dr): Same.
22144         (graphite_carried_dependence_level_k): Same.
22145         * graphite-ppl.c (ppl_powerset_is_empty): New.
22146         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
22147         * tree-data-ref.c (dump_data_reference): Print the basic block index.
22148
22149 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22150
22151         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
22152         the "a followed by b" relation and document it.
22153
22154 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22155
22156         * graphite-dependences.c (build_lexicographical_constraint): Stop the
22157         iteration when the bag of constraints is empty.
22158
22159 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22160
22161         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
22162
22163 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22164
22165         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
22166         nest and two loop depths as parameters.
22167         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
22168         lst_perfect_nestify.
22169
22170 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22171
22172         * graphite-dependences.c (print_pddr): Call
22173         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
22174
22175 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22176
22177         * graphite-ppl.c (debug_gmp_value): New.
22178         * graphite-ppl.h (debug_gmp_value): Declared.
22179
22180 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
22181
22182         * doc/install.texi: Document availability of cloog-0.16.
22183
22184 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
22185
22186         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
22187         invalid postdominance info.
22188
22189 2011-01-24  Jan Hubicka  <jh@suse.cz>
22190
22191         PR c/21659
22192         * doc/extend.texi (weak pragma): Drop claim that it must
22193         appear before definition.
22194         * varasm.c (merge_weak, declare_weak): Only sanity check
22195         that DECL is not output at a time it is declared weak.
22196
22197 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
22198
22199         * machmode.def: Fixed comments.
22200
22201 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
22202
22203         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
22204
22205 2011-01-24  Paul Koning  <ni1d@arrl.net>
22206
22207         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
22208         WORDS_BIG_ENDIAN.
22209
22210 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
22211
22212         PR target/46519
22213         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
22214         (block_info): Add scanned and prev.
22215         (move_or_delete_vzeroupper_2): Return if the basic block
22216         has been scanned and the upper 128bit state is unchanged
22217         from the last scan.
22218         (move_or_delete_vzeroupper_1): Return true if the exit
22219         state is changed.
22220         (move_or_delete_vzeroupper): Visit basic blocks using the
22221         work-list based algorithm based on vt_find_locations in
22222         var-tracking.c.
22223
22224         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
22225
22226 2011-01-24  Nick Clifton  <nickc@redhat.com>
22227
22228         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
22229         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
22230         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
22231         then define __v850e1__.
22232         * doc/invoke.texi: Document -mv850es.
22233
22234 2011-01-24  Richard Henderson  <rth@redhat.com>
22235
22236         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
22237         compound unordered comparisons.
22238         * config/rx/rx.c (rx_split_fp_compare): Remove.
22239         * config/rx/rx-protos.h: Update.
22240         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
22241         (cbranchsf4): Don't call rx_split_fp_compare.
22242         (*cbranchsf4): Use rx_split_cbranch.
22243         (*cmpsf): Don't accept "i" constraint.
22244         (*conditional_branch): Only valid after reload.
22245         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
22246
22247 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22248
22249         PR target/47385
22250         * config/rs6000/altivec.md (vector constant splitters): Add
22251         support for creating vector single precision constants if -mvsx is
22252         used and we would create the constant using Altivec primitives.
22253
22254 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
22255             Richard Sandiford  <rdsandiford@googlemail.com>
22256
22257         PR rtl-optimization/47166
22258         * reload1.c (emit_reload_insns): Disable the spill_reg_store
22259         mechanism for PRE_MODIFY and POST_MODIFY.
22260         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
22261         reloadreg.
22262
22263 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
22264
22265         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
22266
22267 2011-01-22  Jan Hubicka  <jh@suse.cz>
22268
22269         PR lto/47333
22270         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
22271
22272 2011-01-22  Jan Hubicka  <jh@suse.cz>
22273
22274         PR tree-optimization/43884
22275         PR lto/44334
22276         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
22277         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
22278
22279 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
22280
22281         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
22282         * config/s390/s390.c (s390_register_move_cost,
22283         s390_memory_move_cost): New.
22284         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
22285
22286 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22287
22288         PR middle-end/47401
22289         * except.c (sjlj_assign_call_site_values): Move setting the
22290         crtl->uses_eh_lsda flag to ...
22291         (sjlj_mark_call_sites): ... here.
22292         (sjlj_emit_function_enter): Support NULL dispatch label.
22293         (sjlj_build_landing_pads): In a function with no landing pads
22294         that still has must-not-throw regions, generate code to register
22295         a personality function with empty LSDA.
22296
22297 2011-01-21  Richard Henderson  <rth@redhat.com>
22298
22299         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
22300
22301         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
22302
22303         * compare-elim.c: New file.
22304         * Makefile.in (OBJS-common): Add it.
22305         (compare-elim.o): New.
22306         * common.opt (fcompare-elim): New.
22307         * opts.c (default_options_table): Add OPT_fcompare_elim.
22308         * tree-pass.h (pass_compare_elim_after_reload): New.
22309         * passes.c (init_optimization_passes): Add it.
22310         * recog.h: Protect against re-inclusion.
22311         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
22312         * doc/invoke.texi (-fcompare-elim): Document it.
22313         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
22314         * doc/tm.texi: Rebuild.
22315
22316 2011-01-22  Nick Clifton  <nickc@redhat.com>
22317
22318         * config/rx/rx.md (cstoresf4): Pass comparison operator to
22319         rx_split_fp_compare.
22320
22321 2011-01-22  Nick Clifton  <nickc@redhat.com>
22322
22323         * config/rx/rx.md (UNSPEC_CONST): New.
22324         (deallocate_and_return): Wrap the amount popped off the stack in
22325         an UNSPEC_CONST in order to stop it being rejected by
22326         -mmax-constant-size.
22327         (pop_and_return): Add a "(return)" rtx.
22328         (call): Drop the immediate operand.
22329         (call_internal): Likewise.
22330         (call_value): Likewise.
22331         (call_value_internal): Likewise.
22332         (sibcall_internal): Likewise.
22333         (sibcall_value_internal): Likewise.
22334         (sibcall): Likewise.  Generate an explicit call using
22335         sibcall_internal.
22336         (sibcall_value): Likewise.
22337         (mov<>): FAIL if a constant operand is not legitimate.
22338         (addsi3_unpsec): New pattern.
22339
22340         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
22341         (ok_for_max_constant): New function.
22342         (gen_safe_add): New function.
22343         (rx_expand_prologue): Use gen_safe_add.
22344         (rx_expand_epilogue): Likewise.
22345         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
22346         UNSPEC CONSTs.
22347
22348 2011-01-21  Jeff Law  <law@redhat.com>
22349
22350         PR tree-optimization/47053
22351         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
22352         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
22353         statements are deleted.
22354         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
22355         is nonempty, then purge dead edges and cleanup the CFG.
22356
22357 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
22358
22359         PR debug/47402
22360         Temporarily revert:
22361         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
22362         PR debug/47106
22363         * tree-dfa.c (create_var_ann): Mark variable as used.
22364
22365 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
22366
22367         PR middle-end/45566
22368         * except.c (convert_to_eh_region_ranges): Emit queued no-region
22369         notes from other section in hot/cold partitioning even if
22370         last_action is -3.  Increment call_site_base.
22371
22372         PR rtl-optimization/47366
22373         * fwprop.c (forward_propagate_into): Return bool.  If
22374         any changes are made, -fnon-call-exceptions is used and
22375         REG_EH_REGION note is present, call purge_dead_edges
22376         and return true if it purged anything.
22377         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
22378         any EH edges were purged.
22379
22380 2011-01-21  Jeff Law  <law@redhat.com>
22381
22382         PR rtl-optimization/41619
22383         * caller-save.c (setup_save_areas): Break out code to determine
22384         which hard regs are live across calls by examining the reload chains
22385         so that it is always used.
22386         Eliminate code which checked REG_N_CALLS_CROSSED.
22387
22388 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
22389
22390         PR tree-optimization/47355
22391         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
22392         NOP has non-debug uses beyond PHIs in new_bb.
22393
22394 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
22395
22396         PR debug/47106
22397         * cfgexpand.c (account_used_vars_for_block): Only account vars
22398         that are annotated as used.
22399         (estimated_stack_frame_size): Don't set TREE_USED.
22400         * tree-dfa.c (create_var_ann): Mark variable as used.
22401
22402 2011-01-21  Richard Guenther  <rguenther@suse.de>
22403
22404         PR middle-end/47395
22405         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
22406
22407 2011-01-21  Richard Guenther  <rguenther@suse.de>
22408
22409         PR tree-optimization/47365
22410         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
22411         (vn_reference_lookup_pieces): Adjust.
22412         (vn_reference_lookup): Likewise.
22413         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
22414         (vn_reference_lookup_3): Only look through kills if in
22415         VN_WALKREWRITE mode.
22416         (vn_reference_lookup_pieces): Adjust.
22417         (vn_reference_lookup): Likewise.
22418         (visit_reference_op_load): Likewise.
22419         (visit_reference_op_store): Likewise.
22420         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
22421         (compute_avail): Likewise.
22422         (eliminate): Likewise.
22423
22424 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
22425
22426         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
22427         DECL_IGNORED_P non-reg vars if they are used.
22428
22429         PR tree-optimization/47391
22430         * varpool.c (const_value_known_p): Return false if
22431         decl is volatile.
22432
22433 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
22434
22435         PR bootstrap/47215
22436         * config/i386/i386.c (ix86_local_alignment): Handle
22437         case for va_list_type_node is nil.
22438         (ix86_canonical_va_list_type): Likewise.
22439
22440 2011-01-21  Alan Modra  <amodra@gmail.com>
22441
22442         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
22443         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
22444
22445 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22446
22447         * config/arm/arm.md (define_attr type): Rename f_load
22448         and f_store to f_fpa_load and f_fpa_store. Update.
22449         (write_conflict): Deal with rename fallout.
22450         (*push_fp_multi): Likewise.
22451         * config/arm/fpa.md (f_load): Use f_fpa_load.
22452         (f_store): Use f_fpa_store.
22453         (*movsf_fpa): Likewise.
22454         (*movdf_fpa): Likewise.
22455         (*movxf_fpa): Likewise.
22456         (*thumb2_movsf_fpa): Likewise.
22457         (*thumb2_movdf_fpa): Likewise.
22458         (*thumb2_movxf_fpa): Likewise.
22459         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
22460         f_loadd and f_stored.
22461         (*thumb2_movdi_vfp): Likewise.
22462         (*thumb2_movsf_vfp): Fix attribute to f_loads.
22463         (*thumb2_movsi_vfp): Likewise.
22464         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
22465         Use f_loads instead of f_load.
22466         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
22467
22468 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
22469
22470         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22471         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
22472         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22473         (xtensa_mode_dependent_address_p): New function.
22474         (constantpool_address_p): Make static. Change return type to bool.
22475         Change argument type to const_rtx. Use CONST_INT_P predicate.
22476
22477 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
22478
22479         PR debug/46583
22480         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
22481
22482 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
22483
22484         PR debug/47283
22485         * cfgexpand.c (expand_debug_expr): Instead of generating
22486         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
22487         etc. handling.
22488
22489 2011-01-20  Richard Guenther  <rguenther@suse.de>
22490
22491         PR middle-end/47370
22492         * tree-inline.c (remap_gimple_op_r): Recurse manually for
22493         the pointer operand of MEM_REFs.
22494
22495 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
22496
22497         PR tree-optimization/46130
22498         * ipa-split.c (consider_split): If return_bb contains non-virtual
22499         PHIs other than for retval or if split_function would not adjust it,
22500         refuse to split.
22501
22502 2011-01-20  Richard Guenther  <rguenther@suse.de>
22503
22504         PR tree-optimization/47167
22505         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
22506         Revert previous change, only avoid enumeral type changes.
22507
22508 2011-01-19  Mike Stump  <mikestump@comcast.net>
22509
22510         * doc/tm.texi.in (BRANCH_COST): Englishify.
22511         * doc/tm.texi (BRANCH_COST): Likewise.
22512
22513 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
22514
22515         PR c++/47291
22516         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
22517         (gen_scheduled_generic_parms_dies): New functions.
22518         (gen_struct_or_union_type_die): Schedule template parameters DIEs
22519         generation for the end of CU compilation.
22520         (dwarf2out_finish): Generate template parameters DIEs here.
22521
22522 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
22523
22524         PR debug/46240
22525         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
22526         debug bind stmt on merge edges.
22527
22528 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
22529
22530         PR debug/47079
22531         PR debug/46724
22532         * function.c (instantiate_expr): Instantiate incoming rtl of
22533         implicit arguments, and recurse on VALUE_EXPRs.
22534         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
22535         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
22536
22537 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
22538
22539         * c-parser.c (c_parser_for_statement): Initialize
22540         collection_expression.
22541
22542 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
22543
22544         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
22545
22546 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
22547
22548         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
22549         (LINK_SHLIB_SPEC): Don't use %(link_path).
22550         (SUBTARGET_EXTRA_SPECS): Remove link_path.
22551
22552 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
22553
22554         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
22555         (NO_SHARED_LIB_SUPPORT): Remove.
22556         (LINK_SHLIB_SPEC): Remove one conditional definition.
22557
22558 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
22559
22560         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
22561         %{call_shared}.
22562         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
22563         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
22564         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
22565         %{call_shared} and conditionals on these options not being passed.
22566         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
22567         %{call_shared}.
22568
22569 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
22570
22571         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
22572         simplify.
22573
22574         * ipa-split.c: Spelling fixes.
22575
22576 2011-01-19  Richard Henderson  <rth@redhat.com>
22577
22578         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
22579         (*mulsi3): Likewise.
22580
22581         * longlong.h [__mn10300__] (count_leading_zeros): New.
22582         [__mn10300__] (umul_ppmm, smul_ppmm): New.
22583         [__mn10300__] (add_ssaaaa, subddmmss): New.
22584         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
22585         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
22586
22587 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22588
22589         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
22590
22591 2011-01-19  Richard Henderson  <rth@redhat.com>
22592
22593         * config/mn10300/mn10300.md (addsi3_flags): New.
22594         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
22595         (subsi3_flags, subc_internal, subdi3): New.
22596         (subdi3_internal, *subdi3_degenerate): New.
22597         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
22598
22599         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
22600         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
22601         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
22602         * config/mn10300/mn10300-protos.h: Update.
22603         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
22604         (return_ret): Likewise.  Rename from return_internal_regs.
22605         (return_internal): Remove.
22606
22607         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
22608         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
22609         (mn10300_legitimate_constant_p): Likewise.
22610         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
22611         (mn10300_frame_size): New.
22612         (mn10300_expand_prologue): Use it.
22613         (mn10300_expand_epilogue): Likewise.
22614         (mn10300_initial_offset): Likewise.
22615         * config/mn10300/mn10300-protos.h: Update.
22616         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
22617         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
22618         (prologue, epilogue, return_internal): Tidy output code.
22619         (mn10300_store_multiple_operation, return): Likewise.
22620         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
22621         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
22622         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
22623         (load_pic, am33_load_pic): New.
22624         (mn10300_load_pic0, mn10300_load_pic1): New.
22625
22626         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
22627         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
22628         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
22629         (cc_flags_for_mode, cc_flags_for_code): New.
22630         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
22631         overflow flag is not valid.  Validate that the flags we need
22632         for the comparison are valid.
22633         (mn10300_output_cmp): Remove.
22634         (mn10300_output_add): New.
22635         (mn10300_select_cc_mode): Use cc_flags_for_code.
22636         (mn10300_split_cbranch): New.
22637         (mn10300_match_ccmode): New.
22638         (mn10300_split_and_operand_count): New.
22639         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
22640         to the function.
22641         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
22642         (addsi3): ... here.  Use mn10300_output_add.
22643         (*addsi3_flags): New.
22644         (*am33_subsi3, *mn10300_subsi3): Merge...
22645         (subsi3): ... here.  Use attribute isa.
22646         (*subsi3_flags): New.
22647         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
22648         when possible.
22649         (*am33_andsi3, *mn10300_andsi3): Merge...
22650         (andsi3): ... here.
22651         (*andsi3_flags): New.
22652         (andsi3 splitters): New.
22653         (*am33_iorsi3, *mn10300_iorsi3): Merge...
22654         (iorsi3): ... here.
22655         (*iorsi3_flags): New.
22656         (*am33_xorsi3, *mn10300_xorsi3): Merge...
22657         (xorsi3): ... here.
22658         (*xorsi3_flags): New.
22659         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
22660         (one_cmplsi2): ... here.
22661         (*one_cmplsi2_flags): New.
22662         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
22663         instead of "dax" in constraints.  Use mn10300_split_cbranch.
22664         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
22665         use matching constraints to eliminate a self-comparison.
22666         (*integer_conditional_branch): Rename from integer_conditional_branch.
22667         Use int_mode_flags to match CC_REG.
22668         (*cbranchsi4_btst, *btstsi): New.
22669         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
22670         mn10300_split_cbranch.
22671         (*am33_cmpsf): Rename from am33_cmpsf.
22672         (*float_conditional_branch): Rename from float_conditional_branch.
22673         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
22674         (zero_extendqisi2): ... here.
22675         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
22676         (zero_extendhisi2): ... here.
22677         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
22678         (extendqisi2): ... here.
22679         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
22680         (extendhisi2): ... here.
22681         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
22682         (ashlsi3): ... here.
22683         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
22684         (lshrsi3): ... here.
22685         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
22686         (ashrsi3): ... here.
22687         (consecutive add peephole): Remove.
22688         * config/mn10300/predicates.md (label_ref_operand): New.
22689         (int_mode_flags): New.
22690         (CCZN_comparison_operator): New.
22691
22692         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
22693         (throughput_42_latency_43): New reservation.
22694         (mulsidi3, umulsidi3): New expanders.
22695         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
22696         the MDR register to allocation; separately allocate the low and
22697         high parts of the DImode result.
22698         (umulsidi3_internal): Similarly.
22699         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
22700         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
22701         (udivsi3, umodsi3): Remove.
22702         (udivmodsi4, divmodsi4): New expanders.
22703         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
22704         (*divmodsi4): Simiarly.
22705         (ext_internal): New.
22706
22707         * config/mn10300/constraints.md ("z"): New constraint.
22708         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
22709         (FIXED_REGISTERS): Don't fix MDR.
22710         (CALL_USED_REGSITERS): Reformat nicely.
22711         (REG_ALLOC_ORDER): Add MDR.
22712         (enum regclass): Add MDR_REGS.
22713         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
22714         (IRA_COVER_CLASSES): Add MDR_REGS.
22715         (REGNO_REG_CLASS): Handle MDR_REG.
22716         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
22717         (mn10300_register_move_cost): Likewise.
22718         * config/mn10300/mn10300.md (MDR_REG): New.
22719         (*movsi_internal): Handle moves to/from MDR_REGS.
22720
22721         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
22722         POST_MODIFY.
22723         (mn10300_secondary_reload): Tidy combination reload classes.
22724         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
22725         addresses for AM33.  Allow symbolic offsets for reg+imm.
22726         (mn10300_regno_in_class_p): New.
22727         (mn10300_legitimize_reload_address): New.
22728         * config/mn10300/mn10300.h (enum reg_class): Remove
22729         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
22730         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
22731         SP_OR_GENERAL_REGS.
22732         (REG_CLASS_NAMES): Update to match.
22733         (REG_CLASS_CONTENTS): Likewise.
22734         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
22735         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
22736         (REGNO_IN_RANGE_P): Remove.
22737         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
22738         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
22739         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
22740         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
22741         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
22742         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
22743         (REGNO_GENERAL_P): New.
22744         (HAVE_POST_MODIFY_DISP): New.
22745         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
22746         (LEGITIMIZE_RELOAD_ADDRESS): New.
22747         * config/mn10300/mn10300-protos.h: Update.
22748
22749         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
22750         DATA_REGS for AM33 stack-pointer destination.
22751         (mn10300_preferred_output_reload_class): Likewise.
22752         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
22753         into a form appropriate for ...
22754         (TARGET_SECONDARY_RELOAD): New.
22755         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
22756         * config/mn10300/mn10300-protos.h: Update.
22757         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
22758         reload_insi; use the "A" constraint for the scratch; handle AM33
22759         moves of sp to non-address registers.
22760
22761         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
22762         (*movqi_internal): ... here.
22763         (*am33_movhi, *mn10300_movhi): Merge into...
22764         (*movhi_internal): ... here.
22765         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
22766         as the source/destination of moves from/to SP.
22767         (movsf): Only allow for AM33-2.
22768         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
22769         any integer constant constraint.  Only allow for AM33-2.  Tidy
22770         all of the alternative outputs.
22771         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
22772         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
22773         for MN103.
22774         (udivsi3, umodsi3): New patterns for MN103 only.
22775
22776 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
22777
22778         * doc/tm.texi.in: Spell out that a lack of register class unions
22779         can lead to ICEs.
22780         * doc/tm.texi: Regenerate.
22781
22782 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
22783
22784         PR rtl-optimization/47337
22785         * dce.c (check_argument_store): New function.
22786         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
22787
22788         PR tree-optimization/47290
22789         * tree-eh.c (infinite_empty_loop_p): New function.
22790         (cleanup_empty_eh): Use it.
22791
22792 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
22793
22794         PR target/46997
22795         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
22796         (a64_expand_widen_sum): Ditto.
22797         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
22798         (vec_extract_evenodd_help): Ditto.
22799         (vec_extract_evenv4hi): Ditto.
22800         (vec_extract_oddv4hi): Ditto.
22801         (vec_extract_evenv2si): Ditto.
22802         (vec_extract_oddv2si): Ditto.
22803         (vec_extract_evenv2sf): Ditto.
22804         (vec_extract_oddv2sf): Ditto.
22805         (vec_pack_trunc_v4hi: Ditto.
22806         (vec_pack_trunc_v2si): Ditto.
22807         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
22808         (vec_interleave_highv8qi): Ditto.
22809         (mix1_r): Ditto.
22810         (vec_extract_oddv8qi): Ditto.
22811         (vec_interleave_lowv4hi): Ditto.
22812         (vec_interleave_highv4hi): Ditto.
22813         (vec_interleave_lowv2si): Ditto.
22814         (vec_interleave_highv2si): Ditto.
22815
22816 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22817
22818         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
22819         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
22820         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
22821         (pa_c_mode_for_suffix): New.
22822         (TARGET_EXPAND_BUILTIN): Define.
22823         (TARGET_C_MODE_FOR_SUFFIX): Define.
22824         (pa_builtins): Define.
22825         (pa_init_builtins): Register __float128 type and init new support
22826         builtins.
22827         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
22828         * config/pa/quadlib.c (_U_Qfcopysign): New.
22829
22830 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
22831
22832         PR middle-end/46894
22833         * explow.c (allocate_dynamic_stack_space): Do not assume more than
22834         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
22835         are defined.
22836
22837 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22838
22839         PR tree-optimization/47179
22840         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
22841         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
22842
22843 2011-01-18  Richard Guenther  <rguenther@suse.de>
22844
22845         PR rtl-optimization/47216
22846         * emit-rtl.c: Include tree-flow.h.
22847         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
22848         of replicating it with different semantics.
22849         * Makefile.in (emit-rtl.o): Adjust.
22850
22851 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22852
22853         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
22854         (cortex_a9_dp): Handle neon types correctly.
22855
22856 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
22857
22858         PR rtl-optimization/47299
22859         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
22860         subtarget.  Use normal multiplication if both operands are constants.
22861         * expmed.c (expand_widening_mult): Don't try to optimize constant
22862         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
22863         before using it.
22864
22865 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22866
22867         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
22868         spacing after 'e.g.', typos, comma, hyphenation.
22869
22870 2011-01-17  Richard Henderson  <rth@redhat.com>
22871
22872         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
22873         (rx_restricted_mem_operand): New.
22874         (rx_shift_operand): Use register_operand.
22875         (rx_source_operand, rx_compare_operand): Likewise.
22876         * config/rx/rx.md (addsi3_flags): New expander.
22877         (adddi3): Rewrite as expander.
22878         (adc_internal, *adc_flags, adddi3_internal): New patterns.
22879         (subsi3_flags): New expander.
22880         (subdi3): Rewrite as expander.
22881         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
22882
22883         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
22884         (rx_init_builtins): Remove sat builtin.
22885         (rx_expand_builtin): Likewise.
22886         * config/rx/rx.md (ssaddsi3): New.
22887         (*sat): Rename from sat.  Represent the CC_REG input.
22888
22889         * config/rx/predicates.md (rshift_operator): New.
22890         * config/rx/rx.c (rx_expand_insv): Remove.
22891         * config/rx/rx-protos.h: Update.
22892         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
22893         operand to the canonical position.
22894         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
22895         (*bitclr, *bitclr_in_memory): Similarly.
22896         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
22897         (insv): Retain the zero_extract in the expansion.
22898
22899         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
22900         (bswaphi2, bitinvert, revw): Likewise.
22901
22902         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
22903         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
22904         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
22905         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
22906         (bitset, bitset_in_memory): Likewise.
22907         (bitinvert, bitinvert_in_memory): Likewise.
22908         (bitclr, bitclr_in_memory): Likewise.
22909         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
22910         (rx_strend, rx_cmpstrn): Likewise.
22911         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
22912         (bitop peep2 patterns): Remove.
22913
22914         * config/rx/rx.c (rx_match_ccmode): New.
22915         * config/rx/rx-protos.h: Update.
22916         * config/rx/rx.md (abssi2): Clobber, don't set flags.
22917         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
22918         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
22919         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
22920         (fix_truncsfsi2, floatsisf2): Likewise.
22921         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
22922         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
22923         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
22924         (*subsi3_flags, *xorsi3_flags): New.
22925
22926         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
22927
22928         * config/rx/rx.c (rx_print_operand): Remove workaround for
22929         unsplit comparison operations.
22930
22931         * config/rx/rx.md (movsicc): Split after reload.
22932         (*movsicc): Merge *movsieq and *movsine via match_operator.
22933         (*stcc): New pattern.
22934
22935         * config/rx/rx.c (rx_float_compare_mode): Remove.
22936         * config/rx/rx.h (rx_float_compare_mode): Remove.
22937         * config/rx/rx.md (cstoresi4): Split after reload.
22938         (*sccc): New pattern.
22939
22940         * config/rx/predicates.md (label_ref_operand): New.
22941         (rx_z_comparison_operator): New.
22942         (rx_zs_comparison_operator): New.
22943         (rx_fp_comparison_operator): New.
22944         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
22945         Validate that the flags are set properly for the comparison.
22946         (rx_gen_cond_branch_template): Remove.
22947         (rx_cc_modes_compatible): Remove.
22948         (mode_from_flags): New.
22949         (flags_from_code): Rename from flags_needed_for_conditional.
22950         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
22951         (rx_select_cc_mode): Likewise.
22952         (rx_split_fp_compare): New.
22953         (rx_split_cbranch): New.
22954         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
22955         (*cbranchsi4): Use match_operator and rx_split_cbranch.
22956         (*cbranchsf4): Similarly.
22957         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
22958         match_operator and rx_split_cbranch.
22959         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
22960         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
22961         (*cmpsi): Rename from cmpsi.
22962         (*tstsi): Rename from tstsi.
22963         (*cmpsf): Rename from cmpsf; use CC_Fmode.
22964         (*conditional_branch): Rename from conditional_branch.
22965         (*reveresed_conditional_branch): Remove.
22966         (b<code>): Remove expander.
22967         * config/rx/rx-protos.h: Update.
22968
22969         * config/rx/rx.c (rx_compare_redundant): Remove.
22970         * config/rx/rx.md (cmpsi): Don't use it.
22971         * config/rx/rx-protos.h: Update.
22972
22973         * config/rx/rx-modes.def (CC_F): New mode.
22974         * config/rx/rx.c (rx_select_cc_mode): New.
22975         * config/rx/rx.h (SELECT_CC_MODE): Use it.
22976         * config/rx/rx-protos.h: Update.
22977
22978 2011-01-17  Richard Henderson  <rth@redhat.com>
22979
22980         * except.c (dump_eh_tree): Fix stray ; after for statement.
22981
22982 2011-01-17  Richard Guenther  <rguenther@suse.de>
22983
22984         PR tree-optimization/47313
22985         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
22986         handling before copying the body.  Properly deal with
22987         by-reference result in SSA form.
22988
22989 2011-01-17  Ian Lance Taylor  <iant@google.com>
22990
22991         PR target/47219
22992         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
22993         (struct_value_alias_set): Don't define.
22994         (sparc_option_override): Don't set sparc_sr_alias_set and
22995         struct_value_alias_set.
22996         (save_or_restore_regs): Use gen_frame_mem rather than calling
22997         set_mem_alias_set.
22998         (sparc_struct_value_rtx): Likewise.
22999
23000 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
23001
23002         PR target/47318
23003         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
23004         (_mm_maskstore_pd): Likewise.
23005         (_mm_maskload_ps): Likewise.
23006         (_mm_maskstore_ps): Likewise.
23007         (_mm256_maskload_pd): Change mask to __m256i.
23008         (_mm256_maskstore_pd): Likewise.
23009         (_mm256_maskload_ps): Likewise.
23010         (_mm256_maskstore_ps): Likewise.
23011
23012         * config/i386/i386-builtin-types.def: Updated.
23013         (ix86_expand_special_args_builtin): Likewise.
23014
23015         * config/i386/i386.c (bdesc_special_args): Update
23016         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
23017         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
23018         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
23019         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
23020
23021         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
23022         Use <avxpermvecmode> on mask register.
23023         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
23024
23025 2011-01-17  Olivier Hainque  <hainque@adacore.com>
23026             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
23027             Eric Botcazou  <ebotcazou@adacore.com>
23028
23029         PR target/46655
23030         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
23031         if <= USHRT_MAX in 32-bit mode.
23032
23033 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23034
23035         * doc/install.texi (Configuration, Specific): Wrap long
23036         lines in examples.  Allow line wrapping in long options
23037         and URLs where beneficial for PDF output.
23038
23039 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
23040
23041         * config/mips/mips.c (mips_classify_symbol): Don't return
23042         SYMBOL_PC_RELATIVE for nonlocal labels.
23043
23044 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
23045
23046         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
23047
23048 2011-01-15  Jan Hubicka  <jh@suse.cz>
23049
23050         PR tree-optimization/47276
23051         * ipa.c (function_and_variable_visibility): Do not try to mark alias
23052         declarations as needed.
23053
23054 2011-01-15  Martin Jambor  <mjambor@suse.cz>
23055
23056         * common.opt (fdevirtualize): New flag.
23057         * doc/invoke.texi (Option Summary): Document it.
23058         * opts.c (default_options_table): Add devirtualize flag.
23059         * ipa-prop.c (detect_type_change): Return immediately if
23060         devirtualize flag is not set.
23061         (detect_type_change_ssa): Likewise.
23062         (compute_known_type_jump_func): Likewise.
23063         (ipa_analyze_virtual_call_uses): Likewise.
23064
23065 2011-01-14  Martin Jambor  <mjambor@suse.cz>
23066
23067         PR tree-optimization/45934
23068         PR tree-optimization/46302
23069         * ipa-prop.c (type_change_info): New type.
23070         (stmt_may_be_vtbl_ptr_store): New function.
23071         (check_stmt_for_type_change): Likewise.
23072         (detect_type_change): Likewise.
23073         (detect_type_change_ssa): Likewise.
23074         (compute_complex_assign_jump_func): Check for dynamic type change.
23075         (compute_complex_ancestor_jump_func): Likewise.
23076         (compute_known_type_jump_func): Likewise.
23077         (compute_scalar_jump_functions): Likewise.
23078         (ipa_analyze_virtual_call_uses): Likewise.
23079         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
23080
23081 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23082
23083         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
23084         * config/i386/i386.opt (msse5): New Alias.
23085
23086 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23087
23088         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
23089         * config/sparc/linux64.h (CC1_SPEC): Likewise.
23090         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
23091         * config/sparc/sparc.h (CC1_SPEC): Likewise.
23092
23093 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23094
23095         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
23096         -mcpu options.
23097         * config/sparc/linux64.h (CC1_SPEC): Likewise.
23098         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
23099         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
23100         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
23101         Likewise.
23102         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
23103
23104 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23105
23106         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
23107
23108 2011-01-14  Mike Stump  <mikestump@comcast.net>
23109
23110         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
23111         * config/fr30/fr30.md: Likweise
23112         (movsi_push): Likewise.
23113         (movsi_pop): Likewise.
23114         (enter_func): Likewise.
23115         * config/moxie/moxie.md (movsi_push): Likewise.
23116         (movsi_pop): Likewise.
23117
23118 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23119
23120         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
23121         %{no_archive} %{exact_version}.
23122         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
23123         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
23124         %{no_archive} %{exact_version}.
23125         * config/mips/openbsd.h (LINK_SPEC): Likewise.
23126         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
23127         * config/mips/vxworks.h: Likewise.
23128
23129 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23130
23131         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
23132
23133 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23134
23135         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
23136         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
23137
23138 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23139
23140         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
23141         -nodefaultlib.
23142
23143 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23144
23145         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
23146         for mcpu not cpu.
23147         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
23148         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
23149         not cpu.
23150         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
23151         Don't handle -shlib.
23152
23153 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23154
23155         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
23156         (CC1_SPEC): Don't handle -profile.
23157
23158 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23159
23160         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
23161         * config/mips/mips.h (CC1_SPEC): Likewise.
23162
23163 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23164
23165         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
23166         * config/mips/mips.h (CC1_SPEC): Likewise.
23167
23168 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23169
23170         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
23171         * config/m32r/linux.h (LINK_SPEC): Likewise.
23172         * config/mips/linux.h (LINK_SPEC): Likewise.
23173         * config/mips/linux64.h (LINK_SPEC): Likewise.
23174         * config/sparc/linux.h (LINK_SPEC): Likewise.
23175         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
23176         LINK_SPEC): Likewise.
23177         * config/xtensa/linux.h (LINK_SPEC): Likewise.
23178
23179 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23180
23181         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
23182         %{version:-v}.
23183         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
23184
23185 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23186
23187         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
23188         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
23189
23190 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23191
23192         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
23193
23194 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23195
23196         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
23197         supports -Bstatic/-Bdynamic.
23198         * configure: Regenerate.
23199
23200 2011-01-14  Jan Hubicka  <jh@suse.cz>
23201             Jack Howarth  <howarth@bromo.med.uc.edu>
23202
23203         PR target/46037
23204         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
23205         when checking debug_info_level. Test write_symbols instead of
23206         debug_hooks->var_location when setting flag_var_tracking_uninit.
23207
23208 2011-01-14  Richard Guenther  <rguenther@suse.de>
23209
23210         PR tree-optimization/47179
23211         * target.def (ref_may_alias_errno): New target hook.
23212         * targhooks.h (default_ref_may_alias_errno): Declare.
23213         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
23214         (default_ref_may_alias_errno): New function.
23215         * target.h (struct ao_ref_s): Declare.
23216         * tree-ssa-alias.c: Include target.h.
23217         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
23218         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
23219         (targhooks.o): Likewise.
23220         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
23221         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
23222
23223 2011-01-14  Richard Guenther  <rguenther@suse.de>
23224
23225         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
23226
23227 2011-01-14  Richard Guenther  <rguenther@suse.de>
23228
23229         PR tree-optimization/47280
23230         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
23231         return CFG changes.
23232         (tree_ssa_forward_propagate_single_use_vars): Deal with
23233         CFG changes from associate_plusminus.
23234
23235 2011-01-14  Richard Guenther  <rguenther@suse.de>
23236
23237         PR middle-end/47281
23238         Revert
23239         2011-01-11  Richard Guenther  <rguenther@suse.de>
23240
23241         PR tree-optimization/46076
23242         * tree-ssa.c (useless_type_conversion_p): Conversions from
23243         unprototyped to empty argument list function types are useless.
23244
23245 2011-01-14  Richard Guenther  <rguenther@suse.de>
23246
23247         PR tree-optimization/47286
23248         * tree-ssa-structalias.c (new_var_info): Register variables are global.
23249
23250 2011-01-14  Martin Jambor  <mjambor@suse.cz>
23251
23252         PR middle-end/46823
23253         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
23254
23255 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
23256
23257         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
23258         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23259         * config/xtensa/xtensa.c (xtensa_libcall_value,
23260         xtensa_function_value_regno_p): New functions.
23261         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
23262
23263 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
23264
23265         PR c++/47213
23266         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
23267         PE specific hook.
23268         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
23269         New function prototype.
23270         * config/i386/winnt.c (i386_pe_assemble_visibility):
23271         Warn only if attribute was specified by user.
23272
23273 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
23274
23275         PR target/47251
23276         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
23277         floating point.
23278         (floatunsdidf2_fcfidu): Ditto.
23279
23280 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23281
23282         * config/s390/s390.c (print_operand_address): Replace 'error' with
23283         'output_operand_lossage'.
23284         (print_operand): Likewise.
23285
23286 2011-01-13  Jeff Law  <law@redhat.com>
23287
23288         PR rtl-optimization/39077
23289         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
23290         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
23291         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
23292         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
23293         * gcse.c (prune_insertions_deletions): New function.
23294         (compute_pre_data): Use it.
23295
23296 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
23297
23298         PR debug/PR46973
23299         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
23300         static function.
23301         (prune_unused_types_mark): Use it.
23302
23303 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
23304
23305         PR rtl-optimization/45352
23306         * sel-sched.c: Update copyright years.
23307         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
23308         in the advancing loop when we have issued issue_rate insns.
23309
23310 2011-01-12  Richard Henderson  <rth@redhat.com>
23311
23312         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
23313         (TARGET_MD_ASM_CLOBBERS): New.
23314
23315         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
23316         (TARGET_DELEGITIMIZE_ADDRESS): New.
23317
23318         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
23319         (clzsi2, *bsch): New patterns.
23320
23321         * config/mn10300/mn10300.md (INT): New mode iterator.
23322         (*mov<INT>_clr): New pattern, and peep2 to generate it.
23323
23324         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
23325         flag_split_wide_types.
23326
23327         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
23328         (mn10300_trampoline_init): Rewrite without a template, an immediate
23329         load and a direct branch.
23330         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
23331
23332 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
23333
23334         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23335         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
23336         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
23337         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23338
23339 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
23340
23341         PR debug/47209
23342         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
23343         of type.
23344
23345 2011-01-12  Jan Hubicka  <jh@suse.cz>
23346
23347         PR driver/47244
23348         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
23349         (PLUGIN_COND_CLOSE): New macro.
23350         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
23351
23352 2011-01-12  Richard Guenther  <rguenther@suse.de>
23353
23354         PR lto/47259
23355         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
23356         register variables in a MEM_REF.
23357
23358 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
23359
23360         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
23361         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
23362         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
23363         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
23364         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
23365         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
23366         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
23367         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
23368         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
23369         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
23370         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
23371         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
23372         * config/gnu-user.h: New.  Copied from linux.h.
23373         (LINUX_TARGET_STARTFILE_SPEC): Rename to
23374         GNU_USER_TARGET_STARTFILE_SPEC.
23375         (LINUX_TARGET_ENDFILE_SPEC): Rename to
23376         GNU_USER_TARGET_ENDFILE_SPEC.
23377         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
23378         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
23379         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
23380         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
23381         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
23382         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
23383         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
23384         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
23385         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
23386         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
23387         * config/arm/linux-eabi.h (CC1_SPEC): Use
23388         GNU_USER_TARGET_CC1_SPEC.
23389         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
23390         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
23391         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
23392         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
23393         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
23394         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
23395         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
23396         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
23397
23398 2011-01-12  Richard Guenther  <rguenther@suse.de>
23399
23400         PR other/46946
23401         * doc/invoke.texi (ffast-math): Document it is turned on
23402         with -Ofast.
23403
23404 2011-01-12  Jan Hubicka  <jh@suse.cz>
23405
23406         PR tree-optimization/47233
23407         * opts.c (common_handle_option): Disable ipa-reference with profile
23408         feedback.
23409
23410 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
23411
23412         * c-parser.c (c_parser_objc_at_property_declaration): Improved
23413         error message.
23414
23415 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
23416
23417         * c-parser.c (c_lex_one_token): Updated and reindented some
23418         comments.  No changes in code.
23419
23420 2011-01-11  Ian Lance Taylor  <iant@google.com>
23421
23422         * godump.c (go_output_var): Don't output the variable if there is
23423         already a type with the same name.
23424
23425 2011-01-11  Ian Lance Taylor  <iant@google.com>
23426
23427         * godump.c (go_format_type): Don't generate float80.
23428
23429 2011-01-11  Richard Henderson  <rth@redhat.com>
23430
23431         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
23432         declaration.  Rewrite for both speed and size.
23433         (mn10300_address_cost_1): Remove.
23434         (mn10300_register_move_cost): New.
23435         (mn10300_memory_move_cost): New.
23436         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
23437         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
23438         extensions, shifts, BSWAP, CLZ.
23439         (mn10300_wide_const_load_uses_clr): Remove.
23440         (TARGET_REGISTER_MOVE_COST): New.
23441         (TARGET_MEMORY_MOVE_COST): New.
23442         * config/mn10300/mn10300-protos.h: Update.
23443         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
23444
23445         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
23446         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
23447         * config/mn10300/mn10300-protos.h: Update.
23448         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
23449         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
23450         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
23451         (*test_int_bitfield, *test_byte_bitfield): Remove.
23452         (*bit_test, *subreg_bit_test): Remove.
23453         * config/mn10300/predicates.md (const_8bit_operand): Remove.
23454
23455         * config/mn10300/constraints.md ("c"): Rename from "A".
23456         ("A", "D"): New constraint letters.
23457         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
23458         (fmssf4, fnmasf4, fnmssf4): Likewise.
23459
23460         * config/mn10300/mn10300.md (isa): New attribute.
23461         (enabled): New attribute.
23462
23463         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
23464         (abssf2, negsf2): Define only for hardware fp.
23465         (sqrtsf2): Reformat.
23466         (addsf3, subsf3, mulsf3): Merge expander and insn.
23467
23468         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
23469         (DEBUGGER_AUTO_OFFSET): Remove.
23470         (DEBUGGER_ARG_OFFSET): Remove.
23471
23472         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
23473         Emit register stores with the same offsets as the hardware.
23474         (mn10300_store_multiple_operation): Don't check that the register
23475         save offsets are monotonic.
23476         * config/mn10300/mn10300-protos.h: Update.
23477
23478         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
23479
23480         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
23481         in terms of the value on the stack, not the MDR register.
23482
23483 2011-01-11  Jan Hubicka  <jh@suse.cz>
23484
23485         PR lto/45721
23486         PR lto/45375
23487         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
23488         (symbol_alias_set_destroy, symbol_alias_set_contains,
23489         propagate_aliases_backward): Declare.
23490         * lto-streamer-out.c (struct sets): New sturcture.
23491         (trivally_defined_alias): New function.
23492         (output_alias_pair_p): Rewrite.
23493         (output_unreferenced_globals): Fix output of alias pairs.
23494         (produce_symtab): Likewise.
23495         * ipa.c (function_and_variable_visibility): Set weak alias destination
23496         as needed in lto.
23497         * varasm.c (symbol_alias_set_t): Remove.
23498         (symbol_alias_set_destroy): Export.
23499         (propagate_aliases_forward, propagate_aliases_backward): New functions
23500         based on ...
23501         (compute_visible_aliases): ... this one; remove.
23502         (trivially_visible_alias): New
23503         (trivially_defined_alias): New.
23504         (remove_unreachable_alias_pairs): Rewrite.
23505         (finish_aliases_1): Reorganize code checking if alias is defined.
23506         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
23507         in LTO mode.
23508
23509 2011-01-11  Richard Guenther  <rguenther@suse.de>
23510
23511         PR tree-optimization/46076
23512         * tree-ssa.c (useless_type_conversion_p): Conversions from
23513         unprototyped to empty argument list function types are useless.
23514
23515 2011-01-11  Richard Guenther  <rguenther@suse.de>
23516
23517         PR middle-end/45235
23518         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
23519         volatile MEMs as MEM_READONLY_P.
23520
23521 2011-01-11  Richard Guenther  <rguenther@suse.de>
23522
23523         PR tree-optimization/47239
23524         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
23525
23526 2011-01-11  Jeff Law  <law@redhat.com>
23527
23528         PR tree-optimization/47086
23529         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
23530         IVs from statements that might throw.
23531
23532 2011-01-10  Jan Hubicka  <jh@suse.cz>
23533
23534         PR lto/45375
23535         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
23536
23537 2011-01-10  Jan Hubicka  <jh@suse.cz>
23538
23539         PR lto/45375
23540         * profile.c (read_profile_edge_counts): Ignore profile inconistency
23541         when correcting profile.
23542
23543 2011-01-10  Jan Hubicka  <jh@suse.cz>
23544
23545         PR lto/46083
23546         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
23547         DECL_FINI_PRIORITY.
23548         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
23549         Restore DECL_FINI_PRIORITY.
23550
23551 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23552
23553         * doc/gimple.texi: Fix quoting of multi-word return values in
23554         @deftypefn statements.  Ensure presence of return value.  Wrap
23555         overlong @deftypefn lines.
23556         (is_gimple_operand, is_gimple_min_invariant_address): Remove
23557         descriptions of removed functions.
23558         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
23559         of multi-word return value in @deftypefn statement.
23560
23561 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23562
23563         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
23564         (Conditional Expressions, Logical Operators)
23565         (Statement and operand traversals): Do not indent smallexample
23566         code.  Fix duplicate function argument in example.
23567
23568 2011-01-10  Jeff Law  <law@redhat.com>
23569
23570         PR tree-optimization/47141
23571         * ipa-split.c (split_function): Handle case where we are
23572         returning a value and the return block has a virtual operand phi.
23573
23574 2011-01-10  Jan Hubicka  <jh@suse.cz>
23575
23576         PR tree-optimization/47234
23577         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
23578         (pass_feedback_split_functions): Declare.
23579         * passes.c (init_optimization_passes): Add ipa-split as subpass of
23580         tree-profile.
23581         * ipa-split.c (gate_split_functions): Update comments; disable
23582         split-functions for profile_arc_flag and branch_probabilities.
23583         (gate_feedback_split_functions): New function.
23584         (execute_feedback_split_functions): New function.
23585         (pass_feedback_split_functions): New global var.
23586
23587 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
23588
23589         PR lto/46760
23590         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
23591         calling gimple_call_set_cannot_inline.
23592
23593 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
23594
23595         * config/darwin-sections.def: Remove unused section.
23596
23597 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
23598
23599         PR c++/47218
23600         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
23601
23602 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
23603
23604         PR objc/47232
23605         * c-parser.c (c_parser_declaration_or_fndef): Improved
23606         error message.
23607
23608 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
23609
23610         * config/i386/winnt.c (i386_pe_start_function): Make sure
23611         to switch back to function's section.
23612
23613 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
23614
23615         PR gcc/46902
23616         PR testsuite/46912
23617         * plugin.c: Move include of dlfcn.h from here...
23618         * system.h: ... to here.
23619
23620 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23621
23622         * doc/cpp.texi (C++ Named Operators): Fix markup for header
23623         file name.
23624         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
23625         two extra empty pages in PDF output.
23626
23627 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
23628
23629         PR objc/47078
23630         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
23631         for error recovery purposes behave as if it was not specified so
23632         that the default type is usd.
23633
23634 2011-01-07  Jan Hubicka  <jh@suse.cz>
23635
23636         PR tree-optmization/46469
23637         * ipa.c (function_and_variable_visibility): Clear needed flags on
23638         nodes with external decls; handle weakrefs merging correctly.
23639
23640 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
23641
23642         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
23643         not false.
23644
23645 2011-01-07  Jan Hubicka  <jh@suse.cz>
23646
23647         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
23648         and no longer claim that gold is required for linker plugin.
23649         * configure: Regenerate.
23650         * gcc.c (PLUGIN_COND): New macro.
23651         (LINK_COMMAND_SPEC): Use it.
23652         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
23653         * config.in (HAVE_LTO_PLUGIN): New.
23654         * configure.ac (--with-lto-plugin): New parameter; autodetect
23655         HAVE_LTO_PLUGIN.
23656
23657 2011-01-07  Jan Hubicka  <jh@suse.cz>
23658
23659         PR tree-optimization/46367
23660         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
23661         when we can update original.
23662         (cgraph_mark_inline_edge): Sanity check.
23663         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
23664
23665 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23666
23667         * config/spu/spu.h (ASM_COMMENT_START): Define.
23668
23669 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
23670
23671         PR driver/42445
23672         * gcc.c (%>S): New.
23673         (SWITCH_KEEP_FOR_GCC): Likewise.
23674         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
23675         (do_spec_1): Handle "%>".
23676
23677         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
23678
23679 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
23680
23681         PR target/47201
23682         * config/i386/i386.c (ix86_delegitimize_address): If
23683         simplify_gen_subreg fails, return orig_x.
23684
23685         PR bootstrap/47187
23686         * value-prof.c (gimple_stringop_fixed_value): Handle
23687         lhs of the call properly.
23688
23689 2011-01-07  Jan Hubicka  <jh@suse.cz>
23690
23691         PR lto/45375
23692         * lto-opt.c (lto_reissue_options): Set flag_shlib.
23693
23694 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
23695
23696         * target.def (function_switched_text_sections): New hook.
23697         * doc/tm.texi: Regenerated.
23698         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
23699         * final.c (default_function_switched_text_sections): New.
23700         (final_scan_insn): Call function_switched_text_sections when a
23701         mid-function section change occurs.
23702         * output.h (default_function_switched_text_sections): Declare.
23703         * config/darwin-protos.h (darwin_function_switched_text_sections):
23704         Likewise.
23705         * config/darwin.c (darwin_function_switched_text_sections): New.
23706         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
23707
23708 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
23709
23710         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
23711         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
23712         the secondary code fragment when outputting for DWARF == 2.
23713
23714 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
23715
23716         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23717         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
23718         Remove.
23719         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
23720         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23721
23722 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
23723
23724         PR debug/46704
23725         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
23726         when it is not empty.
23727
23728 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
23729
23730         Bobcat Enablement
23731         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
23732         (case ${target}): Add btver1.
23733         * config/i386/driver-i386.c (host_detect_local_cpu): Let
23734         -march=native recognize btver1 processors.
23735         * config/i386/i386-c.c (ix86_target_macros_internal): Add
23736         btver1 def_and_undef
23737         * config/i386/i386.c (struct processor_costs btver1_cost): New
23738         btver1 cost table.
23739         (m_BTVER1): New definition.
23740         (m_AMD_MULTIPLE): Includes m_BTVER1.
23741         (initial_ix86_tune_features): Add btver1 tune.
23742         (processor_target_table): Add btver1 entry.
23743         (static const char *const cpu_names): Add btver1 entry.
23744         (software_prefetching_beneficial_p): Add btver1.
23745         (ix86_option_override_internal): Add btver1 instruction sets.
23746         (ix86_issue_rate): Add btver1.
23747         (ix86_adjust_cost): Add btver1.
23748         * config/i386/i386.h (TARGET_BTVER1): New definition.
23749         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
23750         (enum processor_type): Add PROCESSOR_BTVER1.
23751         * config/i386/i386.md (define_attr "cpu"): Add btver1.
23752
23753 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23754
23755         PR target/43309
23756         * config/i386/i386.c (legitimize_tls_address)
23757         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
23758         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
23759         (tls_initial_exec_64_sun): New pattern.
23760
23761 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
23762
23763         * doc/invoke.texi (Overall Options): Improve wording and markup
23764         of the description of -wrapper.
23765
23766 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
23767
23768         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
23769         rdynamic, threads): New Driver options.
23770
23771 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23772
23773         PR target/38118
23774         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
23775         if coming from .tdata.
23776         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
23777
23778 2011-01-06  Jan Hubicka  <jh@suse.cz>
23779
23780         PR lto/47188
23781         * collect2.c (main): Do not enable LTOmode when plugin is active.
23782
23783 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23784
23785         PR other/45915
23786         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
23787         --version output if supported.
23788         * configure: Regenerate.
23789
23790 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
23791
23792         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
23793         Driver options.
23794
23795 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
23796
23797         PR c/47150
23798         * c-convert.c (convert): When converting a complex expression
23799         other than COMPLEX_EXPR to a different complex type, ensure
23800         c_save_expr is called instead of save_expr, unless in_late_binary_op.
23801         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
23802         when converting COMPLEX_TYPE.
23803
23804 2011-01-06  Ira Rosen  <irar@il.ibm.com>
23805
23806         PR tree-optimization/47139
23807         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
23808         only the last reduction value is used outside the loop.  Update
23809         documentation.
23810
23811 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
23812
23813         * config/rtems.opt: New.
23814         * config.gcc (*-*-rtems*): Use rtems.opt.
23815
23816 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
23817
23818         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
23819         processors do not support 3DNow instructions.
23820
23821 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23822
23823         * config/spu/spu.c (spu_option_override): Set parameter
23824         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
23825
23826 2011-01-05  Jan Hubicka  <jh@suse.cz>
23827
23828         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
23829         at the command line.
23830
23831 2011-01-05  Martin Jambor  <mjambor@suse.cz>
23832
23833         PR lto/47162
23834         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
23835         deltas on streamed outgoing edges.
23836         (output_node_opt_summary): Output info for outgoing edges only when
23837         the node is in new parameter set.
23838         (output_cgraph_opt_summary): New parameter set, passed to the two
23839         aforementioned functions.  Update its forward declaration and its
23840         callee too.
23841
23842 2011-01-05  Tom Tromey  <tromey@redhat.com>
23843
23844         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
23845         operator to c_finish_omp_atomic.
23846         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
23847         (build_unary_op): Update.
23848         (build_modify_expr): Update.
23849         (build_asm_expr): Update.
23850
23851 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23852
23853         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
23854         newly inserted insns.
23855         (pad_bb): Likewise.
23856         (spu_emit_branch_hint): Likewise.
23857         (insert_hbrp_for_ilb_runout): Likewise.
23858         (spu_machine_dependent_reorg): Call df_finish_pass after
23859         schedule_insns returns.
23860
23861 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23862
23863         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
23864
23865 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
23866
23867         PR tree-optimization/47005
23868         * tree-sra.c (struct access): Add 'non_addressable' bit.
23869         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
23870         (decide_one_param_reduction): Return 0 if the parameter is passed by
23871         reference and one of the accesses in the group is non_addressable.
23872
23873 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
23874
23875         PR tree-optimization/47056
23876         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
23877         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
23878         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
23879
23880 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
23881
23882         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
23883         initializer.  Skip view conversions from aggregate types.
23884
23885 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
23886
23887         PR bootstrap/47055
23888         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
23889
23890 2011-01-04  Philipp Thomas  <pth@suse.de>
23891
23892         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
23893         obvious typo.
23894
23895 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23896
23897         * function.c (thread_prologue_and_epilogue_insns): Do not crash
23898         on empty epilogue sequences.
23899
23900 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
23901
23902         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
23903         non-static): New Driver options.
23904
23905 2011-01-04  Jie Zhang  <jie@codesourcery.com>
23906
23907         PR driver/47137
23908         * gcc.c (default_compilers[]): Set combinable field to 0
23909         for all assembly languages.
23910
23911 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
23912
23913         * config/mips/loongson3a.md: New file.
23914         * config/mips/mips.md: Include loongson3a.md.
23915         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
23916         TUNE_LOONGSON_3A.
23917
23918 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
23919
23920         PR middle-end/47017
23921         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
23922         instead of convert_memory_address_addr_space on the base expression.
23923
23924 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23925
23926         * config/spu/spu.c (spu_option_override): Update error text
23927         for bad -march= / -mtune= values.
23928
23929 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23930
23931         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
23932         if branch-hint optimization will be performed.
23933
23934 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
23935
23936         PR tree-optimization/47148
23937         * ipa-split.c (split_function): Convert arguments to
23938         DECL_ARG_TYPE if possible.
23939
23940         PR tree-optimization/47155
23941         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
23942         when computing uns.
23943
23944         PR rtl-optimization/47157
23945         * combine.c (try_combine): If undobuf.other_insn becomes
23946         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
23947         and set *new_direct_jump_p too.
23948
23949 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
23950
23951         PR tree-optimization/47021
23952         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
23953
23954 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
23955
23956         * gcc.c (process_command): Update copyright notice dates.
23957         * gcov.c (print_version): Likewise.
23958         * gcov-dump.c (print_version): Likewise.
23959         * mips-tfile.c (main): Likewise.
23960         * mips-tdump.c (main): Likewise.
23961
23962 2011-01-03  Martin Jambor  <mjambor@suse.cz>
23963
23964         PR tree-optimization/46801
23965         * tree-sra.c (type_internals_preclude_sra_p): Check whether
23966         aggregate fields start at byte boundary instead of the bit-field flag.
23967
23968 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23969
23970         PR driver/47137
23971         * gcc.c (main): Revert revision 168407.
23972
23973 2011-01-03  Martin Jambor  <mjambor@suse.cz>
23974
23975         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
23976
23977 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23978
23979         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
23980         vector optab to expand vector/scalar shift, update gimple to vector.
23981
23982 2011-01-03  Martin Jambor  <mjambor@suse.cz>
23983
23984         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
23985         a thunk.
23986
23987 2011-01-03  Martin Jambor  <mjambor@suse.cz>
23988
23989         PR tree-optimization/46984
23990         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
23991         HOST_WIDE_INT.
23992         (cgraph_create_indirect_edge): Fixed line length.
23993         (cgraph_indirect_call_info): Declare.
23994         (cgraph_make_edge_direct) Update declaration.
23995         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
23996         (cgraph_create_indirect_edge): Use it.
23997         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
23998         callees.
23999         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
24000         the new thunk_delta representation.
24001         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
24002         HOST_WIDE_INT.
24003         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
24004         (ipa_read_indirect_edge_info): Likewise.
24005         * lto-cgraph.c (output_edge_opt_summary): New function.
24006         (output_node_opt_summary): Call it on all outgoing edges.
24007         (input_edge_opt_summary): New function.
24008         (input_node_opt_summary): Call it on all outgoing edges.
24009
24010 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
24011
24012         PR driver/47137
24013         * gcc.c (main): Don't check have_o when settting combine_inputs.
24014
24015 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
24016
24017         * regrename.c: Add general comment describing the pass.
24018         (struct du_head): Remove 'length' field.
24019         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
24020         (regrename_optimize): Do not sort chains.  Rework comments, add others.
24021         Force renaming to the preferred class (if any) in the first pass and do
24022         not consider registers that belong to it in the second pass.
24023         (create_new_chain): Do not set 'length' field.
24024         (scan_rtx_reg): Likewise.
24025
24026 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
24027
24028         PR tree-optimization/47140
24029         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
24030         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
24031         to bit_value_binop.
24032
24033         PR rtl-optimization/47028
24034         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
24035         parm_birth_insn instead of at the beginning of first bb.
24036
24037 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
24038
24039         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
24040         Remove the word "see" before "@pxref".
24041         * doc/rtl.texi: Remove the word "see" before "@pxref".
24042
24043 2011-01-01  Jan Hubicka  <jh@suse.cz>
24044
24045         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
24046         memory.
24047
24048 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
24049
24050         PR target/38662
24051         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
24052
24053 \f
24054 Copyright (C) 2011 Free Software Foundation, Inc.
24055
24056 Copying and distribution of this file, with or without modification,
24057 are permitted in any medium without royalty provided the copyright
24058 notice and this notice are preserved.