OSDN Git Service

h8300: Add flags to .section directives.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-07-31  Richard Henderson  <rth@redhat.com>
2
3         * config/h8300/crti.asm: Add flags to .section directive.
4         * config/h8300/crtn.asm: Likewise.
5
6 2011-07-31  Richard Henderson  <rth@redhat.com>
7
8         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
9         * tree.c (build_common_tree_nodes): Likewise.
10
11 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
12
13         PR target/49880
14         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
15         (divsi3_i1): Likewise.
16
17 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18
19         PR tree-optimization/49749
20         * tree-ssa-reassoc.c (get_rank): New forward declaration.
21         (PHI_LOOP_BIAS): New macro.
22         (phi_rank): New function.
23         (loop_carried_phi): Likewise.
24         (propagate_rank): Likewise.
25         (get_rank): Add calls to phi_rank and propagate_rank.
26         
27 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
28
29         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
30         of TARGET_64BIT.
31         (PTRDIFF_TYPE): Likewise.
32
33 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
34
35         PR target/49920
36         * config/i386/i386.md (strset): Do not expand strset_singleop
37         when %eax or $edi are fixed.
38         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
39         (*strsetsi_1): Ditto.
40         (*strsethi_1): Ditto.
41         (*strsetqi_1): Ditto.
42         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
43         (*rep_stossi): Ditto.
44         (*rep_stosqi): Ditto.
45         (cmpstrnsi): Also fail when %ecx is fixed.
46         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
47         (*cmpstrnqi_1): Ditto.
48         (*strlenqi_1): Ditto.
49         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
50         (*strmovsi_1): Ditto.
51         (*strmovhi_1): Ditto.
52         (*strmovqi_1): Ditto.
53         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
54         (*rep_movsi): Ditto.
55         (*rep_movqi): Ditto.
56
57 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
58
59         PR target/47908
60         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
61         Disable instruction scheduling for non-ColdFire targets.
62         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
63
64 2011-07-31  Revital Eres  <revital.eres@linaro.org>
65
66         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
67         of anti-dep edge from a branch.
68         (add_cross_iteration_register_deps): Create anti-dep edge from
69         a branch.
70
71 2011-07-31  Revital Eres  <revital.eres@linaro.org>
72
73         * modulo-sched.c: Change comment.
74         (reset_sched_times): Fix print message.
75         (print_partial_schedule): Add print info.
76
77 2011-07-31  Tom de Vries  <tom@codesourcery.com>
78
79         PR middle-end/43513
80         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
81         get_object_alignment and TYPE_ALIGN.
82
83 2011-07-30  Tom de Vries  <tom@codesourcery.com>
84
85         PR middle-end/43513
86         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
87         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
88
89 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
90
91         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
92         <sys/sbd.h>.
93         (cpu_types): New array.
94         (cputype): New function.
95         (host_detect_local_cpu): Only define buf, f if !__sgi__.
96         Use scaninvent instead of /proc/cpuinfo if __sgi__.
97         * config.host: Also use driver-native.o, mips/x-native on
98         mips-sgi-irix*.
99         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
100         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
101         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
102
103 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
104
105         PR middle-end/49897
106         PR middle-end/49898
107         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
108         in nested parallel and outer is a gimple_reg, mark it as addressable
109         and set its bit in task_shared_vars bitmap too.
110
111 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
112
113         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
114
115 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
116
117         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
118         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
119         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
120         AMASK_LOCKPFTCHOK): Define.
121         (host_detect_local_cpu): Remove buf, f, cpu_names.
122         Define cpu_types, implver, amask.
123         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
124         native CPU.
125         * config.host: Also use driver-alpha.o, alpha/x-alpha on
126         alpha*-dec-osf*.
127         * config/alpha/osf5.h [__alpha__ || __alpha]
128         (host_detect_local_cpu): Declare.
129         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
130         (DRIVER_SELF_SPECS): Define.
131
132 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
133
134         PR target/47715
135         * config/i386/i386.md (*load_tp_x32): New.
136         (*load_tp_x32_zext): Ditto.
137         (*add_tp_x32): Ditto.
138         (*add_tp_x32_zext): Ditto.
139         (*load_tp_<mode>): Disable for TARGET_X32 targets.
140         (*add_tp_<mode>): Ditto.
141         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
142         ptr_mode and convert to Pmode if needed.
143
144 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
145
146         PR target/49687
147         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
148         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
149         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
150         Add X to register footprint: Clobber r26/r27.
151
152 2011-07-29  Richard Guenther  <rguenther@suse.de>
153
154         * builtins.c (fold_builtin_signbit): Build the comparison
155         with a proper type.
156
157 2011-07-29  Richard Guenther  <rguenther@suse.de>
158
159         PR tree-optimization/49893
160         * tree-predcom.c (suitable_reference_p): Volatile references
161         are not suitable.
162
163 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
164
165         PR target/49313
166         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
167         (__ctzsi2): Result for 0 may be undefined.
168         (__ctzhi2): Result for 0 may be undefined.
169         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
170         (__popcountsi2): Ditto. And don't clobber r26.
171         (__popcountdi2): Ditto. And don't clobber r27.
172         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
173         (parityhi2): New expand.
174         (paritysi2): New expand.
175         (popcounthi2): New expand.
176         (popcountsi2): New expand.
177         (clzhi2): New expand.
178         (clzsi2): New expand.
179         (ctzhi2): New expand.
180         (ctzsi2): New expand.
181         (ffshi2): New expand.
182         (ffssi2): New expand.
183         (copysignsf3): New insn.
184         (bswapsi2): New expand.
185         (*parityhi2.libgcc): New insn.
186         (*parityqihi2.libgcc): New insn.
187         (*paritysihi2.libgcc): New insn.
188         (*popcounthi2.libgcc): New insn.
189         (*popcountsi2.libgcc): New insn.
190         (*popcountqi2.libgcc): New insn.
191         (*popcountqihi2.libgcc): New insn-and-split.
192         (*clzhi2.libgcc): New insn.
193         (*clzsihi2.libgcc): New insn.
194         (*ctzhi2.libgcc): New insn.
195         (*ctzsihi2.libgcc): New insn.
196         (*ffshi2.libgcc): New insn.
197         (*ffssihi2.libgcc): New insn.
198         (*bswapsi2.libgcc): New insn.
199
200 2011-07-29  Richard Guenther  <rguenther@suse.de>
201
202         * tree-vrp.c (get_value_range): Only set parameter default
203         definitions to varying, leave others at undefined.
204         (extract_range_from_binary_expr): Fix undefined handling.
205         (vrp_visit_phi_node): Handle merged undefined state.
206
207 2011-07-29  Wei Guozhi  <carrot@google.com>
208
209         PR rtl-optimization/49799
210         * combine.c (make_compound_operation): Check if the bit field is valid
211         before change it to bit field extraction.
212
213 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
214
215         PR rtl-optimization/49891
216         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
217         newly created returnjumps.
218
219 2011-07-28  DJ Delorie  <dj@redhat.com>
220
221         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
222         local frame in a naked function, and produce a suitable error for
223         that specific case.
224
225         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
226         registers to be reloaded in HI classes when the target is HI.
227
228 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
229
230         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
231         bound_one, bound_two.
232
233 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
234
235         PR middle-end/48648
236         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
237         CLAST assignments.
238         (translate_clast): Same.
239         (translate_clast_assignment): New.
240
241 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
242
243         PR tree-optimization/49876
244         * sese.c (rename_uses): Do not return false on gloog_error: set
245         the new_expr to integer_zero_node and continue code generation.
246         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
247
248 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
249
250         PR debug/49846
251         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
252         arguments also check if they aren't initialized with a MODE_INT
253         mode of the same size.
254
255 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
256
257         * expr.c (get_bit_range): Handle *MEM_REF's.
258
259 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
260
261         * rtlanal.c (tablejump_p): False for returns.
262         * reorg.c (first_active_target_insn): New static function.
263         (find_end_label): Set JUMP_LABEL for a new returnjump.
264         (optimize_skip, get_jump_flags, rare_destination,
265         mostly_true_jump, get_branch_condition,
266         steal_delay_list_from_target, own_thread_p,
267         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
268         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
269         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
270         * jump.c (delete_related_insns): Likewise.
271         (jump_to_label_p): New function.
272         (redirect_target): New static function.
273         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
274         (redirect_jump_1): Assert that the new label is nonnull.
275         (redirect_jump): Likewise.
276         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
277         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
278         exit block.
279         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
280         changed.  Ensure that the right label is passed to redirect_jump.
281         * function.c (emit_return_into_block,
282         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
283         ret_rtx in their JUMP_LABEL.
284         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
285         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
286         pass ret_rtx as label.
287         * cfglayout.c (fixup_reorder_chain): Use
288         force_nonfallthru_and_redirect rather than force_nonfallthru.
289         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
290         * rtl.h (ANY_RETURN_P): New macro.
291         (jump_to_label_p): Declare.
292         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
293         JUMP_LABELs.
294         (mark_target_live_regs): Likewise.
295         * basic-block.h (force_nonfallthru_and_redirect): Declare.
296         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
297         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
298         alpha_tablejump_best_label): Remove functions.
299         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
300         alpha_tablejump_best_label): Remove declarations.
301         * config/sh/sh.c (barrier_align, split_branches): Adjust for
302         ret_rtx in JUMP_LABELs.
303         * config/arm/arm.c (is_jump_table): Likewise.
304
305 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
306
307         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
308         special predicate.  Remove explicit mode checks.
309
310 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
311
312         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
313         DW_AT_data_member_location containing just DW_OP_plus_uconst.
314
315         PR debug/49871
316         * dwarf2out.c (size_of_die, value_format, output_die): Use
317         DW_FORM_udata instead of DW_FORM_data[48] for
318         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
319
320 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
321
322         * config/i386/i386.md (*tls_global_dynamic_64): Update
323         length attribute.
324
325 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
326
327         PR target/47715
328         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
329         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
330         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
331         (tls_dynamic_gnu2_64): Ditto.
332         (*tls_dynamic_gnu2_lea_64): Ditto.
333         (*tls_dynamic_gnu2_call_64): Ditto.
334         (*tls_dynamic_gnu2_combine_64): Ditto.
335
336 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
337
338         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
339
340 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
341
342         PR target/47364
343         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
344
345 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
346
347         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
348         before the core constraints. Adjust attributes.
349         ("*thumb2_movdf_vfp"): Likewise.
350
351 2011-07-28  Kai Tietz  <ktietz@redhat.com>
352
353         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
354         (simplify_truth_ops_using_ranges): Likewise.
355         (build_assert_expr_for): Likewise.
356         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
357         and handle BIT_NOT_EXPR for truth-operation.
358
359 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
360
361         PR target/49313
362         Undo r176835 from trunk
363         2011-07-27  Georg-Johann Lay
364
365 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
366
367         PR target/49687
368         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
369         Add _muluhisi3, _mulshisi3, _usmulhisi3.
370         * config/avr/libgcc.S (__mulsi3): Rewrite.
371         (__mulhisi3): Rewrite.
372         (__umulhisi3): Rewrite.
373         (__usmulhisi3): New.
374         (__muluhisi3): New.
375         (__mulshisi3): New.
376         (__mulohisi3): New.
377         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
378         declare.
379         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
380         (pseudo_register_or_const_int_operand): New.
381         (combine_pseudo_register_operand): New.
382         (u16_operand): New.
383         (s16_operand): New.
384         (o16_operand): New.
385         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
386         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
387         (any_extend, any_extend2): New code iterators.
388         (extend_prefix): New code attribute.
389         (mulsi3): Rewrite. Turn insn to expander.
390         (mulhisi3): Ditto.
391         (umulhisi3): Ditto.
392         (usmulhisi3): New expander.
393         (*mulsi3): New insn-and-split.
394         (mulu<mode>si3): New insn-and-split.
395         (muls<mode>si3): New insn-and-split.
396         (mulohisi3): New insn-and-split.
397         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
398         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
399         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
400         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
401         insn-and-split.
402         (*mulsi3_call): Rewrite.
403         (*mulhisi3_call): Rewrite.
404         (*umulhisi3_call): Rewrite.
405         (*usmulhisi3_call): New insn.
406         (*muluhisi3_call): New insn.
407         (*mulshisi3_call): New insn.
408         (*mulohisi3_call): New insn.
409         (extendqihi2): Use combine_pseudo_register_operand as predicate
410         for operand 1.
411         (extendqisi2): Ditto.
412         (zero_extendqihi2): Ditto.
413         (zero_extendqisi2): Ditto.
414         (zero_extendhisi2): Ditto.
415         (extendhisi2): Ditto. Don't early-clobber operand 0.
416
417 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
418
419         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
420
421 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
422
423         PR tree-optimization/49471
424         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
425         iv only when the largest type is unsigned.  Do not call
426         lang_hooks.types.type_for_size.
427
428 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
429
430         PR middle-end/45450
431         * graphite-poly.c (apply_poly_transforms): Disable legality check
432         after an openscop read.
433
434 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
435
436         PR middle-end/47691
437         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
438         copy_bb_and_scalar_dependences.
439         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
440         (graphite_copy_stmts_from_block): Update call to rename_uses.
441         (copy_bb_and_scalar_dependences): Update call to
442         graphite_copy_stmts_from_block.
443         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
444
445 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
446
447         PR target/49313
448         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
449         (__ctzsi2): Result for 0 may be undefined.
450         (__ctzhi2): Result for 0 may be undefined.
451         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
452         (__popcountsi2): Ditto. And don't clobber r26.
453         (__popcountdi2): Ditto. And don't clobber r27.
454         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
455         (parityhi2): New expand.
456         (paritysi2): New expand.
457         (popcounthi2): New expand.
458         (popcountsi2): New expand.
459         (clzhi2): New expand.
460         (clzsi2): New expand.
461         (ctzhi2): New expand.
462         (ctzsi2): New expand.
463         (ffshi2): New expand.
464         (ffssi2): New expand.
465         (copysignsf3): New insn.
466         (bswapsi2): New expand.
467         (*parityhi2.libgcc): New insn.
468         (*parityqihi2.libgcc): New insn.
469         (*paritysihi2.libgcc): New insn.
470         (*popcounthi2.libgcc): New insn.
471         (*popcountsi2.libgcc): New insn.
472         (*popcountqi2.libgcc): New insn.
473         (*popcountqihi2.libgcc): New insn-and-split.
474         (*clzhi2.libgcc): New insn.
475         (*clzsihi2.libgcc): New insn.
476         (*ctzhi2.libgcc): New insn.
477         (*ctzsihi2.libgcc): New insn.
478         (*ffshi2.libgcc): New insn.
479         (*ffssihi2.libgcc): New insn.
480         (*bswapsi2.libgcc): New insn.
481
482 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
483
484         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
485         the mode of symbolic_opreand RTXes.
486
487 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
488
489         * config/i386/predicates.md (x86_64_movabs_operand): Return false
490         for pic_32bit_operand RTXes.
491         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
492         in DImode.
493
494 2011-07-27  Kai Tietz  <ktietz@redhat.com>
495
496         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
497         for 32-bit, too.
498         (ix86_handle_abi_attribute): Allow function attributes
499         ms_abi/sysv_abi in 32-bit mode, too.
500         * doc/extend.texi: Adjust attribute documentation.
501
502         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
503         expression handling.
504         (and_var_with_comparison_1): Likewise.
505
506 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
507
508         * params.h (ALLOW_STORE_DATA_RACES): New.
509         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
510         * Makefile.in (expr.o): Depend on PARAMS_H.
511         * machmode.h (get_best_mode): Add argument.
512         * fold-const.c (optimize_bit_field_compare): Add argument to
513         get_best_mode.
514         (fold_truthop): Same.
515         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
516         * expr.c (emit_group_store): Same.
517         (copy_blkmode_from_reg): Same.
518         (write_complex_part): Same.
519         (optimize_bitfield_assignment_op): Add argument.
520         Add argument to get_best_mode.
521         (get_bit_range): New.
522         (expand_assignment): Calculate maxbits and pass it down accordingly.
523         (store_field): New argument.
524         (expand_expr_real_2): New argument to store_field.  Include params.h.
525         * expr.h (store_bit_field): New argument.
526         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
527         into account maxbits.
528         * calls.c (store_unaligned_arguments_into_pseudos): New argument
529         to store_bit_field.
530         * expmed.c (store_bit_field_1): New argument.  Use it.
531         (store_bit_field): Same.
532         (store_fixed_bit_field): Same.
533         (store_split_bit_field): Same.
534         (extract_bit_field_1): Pass new argument to get_best_mode.
535         (extract_bit_field): Same.
536         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
537         * doc/invoke.texi: Document parameter allow-store-data-races.
538
539 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
540
541         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
542
543 2011-07-27  Kai Tietz  <ktietz@redhat.com>
544
545         * tree-vrp.c (extract_range_from_binary_expr): Remove
546         TRUTH-binary cases and add new bitwise-cases.
547         (extract_range_from_assignment): Likewise.
548         (register_edge_assert_for_1): Likeiwise.
549         (register_edge_assert_for): Likewise.
550         (simplify_truth_ops_using_ranges): Likewise.
551         (simplify_stmt_using_ranges): Likewise.
552
553 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
554
555         PR target/47372
556         * config/i386/i386.c (ix86_delegitimize_address): Call
557         simplify_gen_subreg for PIC with mode of x only if modes of
558         x and orig_x are different.
559
560 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
561
562         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
563         to GC allocated copy of the string.
564         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
565         before .debug_line, not after it.
566
567 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
568
569         PR middle-end/47046
570         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
571         evolution_function_is_affine_p on CHREC_RIGHT.
572
573 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
574
575         * tree-data-ref.c (max_stmt_executions_tree): Do not call
576         lang_hooks.types.type_for_size.
577
578 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
579
580         PR middle-end/47653
581         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
582         loops using wrapping semantics.
583
584 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
585
586         PR middle-end/48805
587         * tree-scalar-evolution.c (instantiate_scev_r): Return
588         chrec_dont_know for ADDR_EXPR.
589
590 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
591             H.J. Lu  <hongjiu.lu@intel.com>
592
593         PR target/47369
594         PR target/49853
595         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
596         if legitimize_tls_address returned operand in wrong mode. Allow
597         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
598         if legitimize_pic_address returned operand in wrong mode.
599
600 2011-07-26  Martin Jambor  <mjambor@suse.cz>
601
602         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
603         return false for invariants.
604
605 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
606
607         * config/i386/i386.md (add->lea splitter): Implement using SWI
608         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
609         (add->lea zext splitter): Change operand 2 predicate to
610         x86_64_nonmemory_operand.
611
612 2011-07-26  Richard Guenther  <rguenther@suse.de>
613
614         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
615         frequency makes everything hot.
616
617 2011-07-26  Richard Guenther  <rguenther@suse.de>
618
619         PR tree-optimization/49840
620         * tree-vrp.c (range_fits_type_p): Properly handle full
621         double-int precision.
622
623 2011-07-26  Martin Jambor  <mjambor@suse.cz>
624
625         PR bootstrap/49786
626         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
627         counts.
628         (update_specialized_profile): Likewise.
629
630 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
631             H.J. Lu  <hongjiu.lu@intel.com>
632
633         PR target/47381
634         PR target/49832
635         PR target/49833
636         * config/i386/i386.md (i): Change SImode attribute to "e".
637         (g): Change SImode attribute to "rme".
638         (di): Change SImode attribute to "nF".
639         (general_operand): Change SImode attribute to x86_64_general_operand.
640         (general_szext_operand): Change SImode attribute to
641         x86_64_szext_general_operand.
642         (immediate_operand): Change SImode attribute to
643         x86_64_immediate_operand.
644         (nonmemory_operand): Change SImode attribute to
645         x86_64_nonmemory_operand.
646         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
647         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
648         (*lea_1): Use SWI48 mode iterator.
649         (*lea_1_zext): New insn pattern.
650         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
651         (*bt<mode>): Ditto.
652         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
653         Update operand constraints.
654         (addsi_1_zext): Ditto.
655         (*add<mode>2): Ditto.
656         (*addsi_3_zext): Ditto.
657         (*subsi_1_zext): Ditto.
658         (*subsi_2_zext): Ditto.
659         (*subsi_3_zext): Ditto.
660         (*addsi3_carry_zext): Ditto.
661         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
662         (*mulsi3_1_zext): Ditto.
663         (*andsi_1): Ditto.
664         (*andsi_1_zext): Ditto.
665         (*andsi_2_zext): Ditto.
666         (*<any_or:code>si_1_zext): Ditto.
667         (*<any_or:code>si_2_zext): Ditto.
668         (*test<mode>_1): Use <general_operand> predicate for operand 1.
669         (*and<mode>_2): Ditto.
670         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
671         (add->lea splitter): Check operand modes in insn constraint.  Extend
672         operands less than SImode wide to SImode.
673         (add->lea zext splitter): Do not extend input operands to DImode.
674         (*lea_general_1): Handle only QImode and HImode operands.
675         (*lea_general_2): Ditto.
676         (*lea_general_3): Ditto.
677         (*lea_general_1_zext): Remove.
678         (*lea_general_2_zext): Ditto.
679         (*lea_general_3_zext): Ditto.
680         (*lea_general_4): Check operand modes in insn constraint.  Extend
681         operands less than SImode wide to SImode.
682         (ashift->lea splitter): Ditto.
683         * config/i386/i386.c (ix86_print_operand_address): Print address
684         registers with 'q' modifier on 64bit targets.
685         * config/i386/predicates.md (pic_32bit_opreand): Define as special
686         predicate.  Reject non-SI and non-DI modes.
687
688 2011-07-25  Andrew Pinski  <apinski@cavium.com>
689
690         PR tree-opt/49671
691         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
692         TREE_THIS_NOTRAP into the inner most MEM_REF.
693         Always copy TREE_THIS_VOLATILE.
694         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
695         arguments are not volatile references.
696
697 2011-07-25  Richard Henderson  <rth@redhat.com>
698
699         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
700         * final.c (final_scan_insn): Don't test for it.
701         (rest_of_clean_state): Likewise.
702
703 2011-07-25  Richard Henderson  <rth@redhat.com>
704
705         PR debug/49841
706         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
707         (emit_frame_save): Likewise.
708         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
709         insn onto a dummy blockage insn after the join label.
710
711 2011-07-25  Richard Henderson  <rth@redhat.com>
712
713         * dwarf2cfi.c (dw_trace_info): Add ID member.
714         (get_trace_index): Remove.  Change users to use ID member.
715         (before_next_cfi_note): New.
716         (connect_traces): Remove unreachable traces before the main loop.
717         Look across one trace and generate remember/restore_state if needed.
718
719 2011-07-25  Richard Henderson  <rth@redhat.com>
720
721         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
722
723 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
724
725         * genattr.c (write_upcase, gen_attr <enum definition writing>):
726         Move to ...
727         * genattr-common.c ... here.
728         (main): Call gen_attr.
729         * optc-gen.awk: Make generated program include insn-attr-common.h .
730         * Makefile.in (oprions.o): Depend on insn-attr-common.h
731
732 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
733
734         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
735         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
736         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
737         m32c_print_operand, m32c_print_operand_address): Remove.
738         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
739         Change return type to bool. Change argument type to bool.
740         (m32c_print_operand, m32c_print_operand_address): Make static.
741         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
742         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
743
744 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
745
746         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
747         attributes): Document mmap.
748
749 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
750
751         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
752         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
753         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
754         mmix_print_operand, mmix_print_operand_address): Remove.
755         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
756         Change return type to bool. Change argument type to bool.
757         (mmix_print_operand, mmix_print_operand_address): Make static.
758         (mmix_intval, mmix_output_condition): Change 'x' argument type
759         to const_rtx.
760         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
761         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
762
763 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
764
765         PR target/39386
766         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
767         shift counter for x << x and x >> x shifts.
768
769 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
770
771         PR target/47124
772         * config.gcc: Reject *-*-solaris2 configuration.
773
774 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
775
776         PR tree-optimization/49809
777         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
778         gimple_get_lhs instead of gimple_assign_lhs.
779
780 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
781
782         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
783
784 2011-07-25  Richard Guenther  <rguenther@suse.de>
785
786         PR tree-optimization/49822
787         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
788         more.  Make sure to preserve stmts with side-effects.  Properly
789         handle virtual defs, follow a longer def chain.
790
791 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
792
793         PR plugins/45348
794         PR plugins/48425
795         PR plugins/46577
796         * Makefile.in: Do not flatten c-family directory when installing
797         plugin headers.
798
799 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
800
801         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
802         original nodes if we are dealing with virtual clones.
803
804 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
805
806         * common/config/c6x/c6x-common.c: New file.
807
808 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
809
810         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
811
812 2011-07-25  Richard Guenther  <rguenther@suse.de>
813
814         PR tree-optimization/49715
815         * tree-vrp.c: Include expr.h and optabs.h.
816         (range_fits_type_): New function.
817         (simplify_float_conversion_using_ranges): Likewise.
818         (simplify_stmt_using_ranges): Call it.
819         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
820         * optabs.c (can_float_p): Export.
821         * optabs.h (can_float_p): Declare.
822
823 2011-07-25  Richard Guenther  <rguenther@suse.de>
824
825         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
826         (get_value_range): For out-of-range SSA names or names created
827         after propagation return a read-only varying range.
828         (dump_all_value_ranges): Adjust.
829         (vrp_initialize): Likewise.
830         (vrp_finalize): Likewise.
831
832 2011-07-24  Richard Henderson  <rth@redhat.com>
833
834         PR debug/49831
835         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
836         them entirely.
837
838 2011-07-24  Richard Henderson  <rth@redhat.com>
839
840         PR debug/49825
841         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
842         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
843
844 2011-07-24  Richard Henderson  <rth@redhat.com>
845
846         PR debug/49827
847         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
848
849 2011-07-24  Richard Henderson  <rth@redhat.com>
850
851         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
852         Zero args_size for abnormal edges.  Adjust all callers.
853
854 2011-07-24  Richard Henderson  <rth@redhat.com>
855
856         PR debug/49825
857         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
858
859 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
860
861         PR bootstrap/49835
862         * collect2.c (demangle_flag): Removed.
863
864 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
865
866         * configure.ac (demangler_in_ld): Default to yes.
867         * configure: Regenerated.
868         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
869         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
870         --no-demangle options straight through to ld.  When
871         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
872         way that has the intended effect on Windows.
873
874 2011-07-23  Richard Henderson  <rth@redhat.com>
875
876         * dwarf2cfi.c: Include basic-block.h.
877         (dw_label_info): Remove.
878         (trace_work_list, trace_index): New.
879         (remember_row, emit_cfa_remember): Remove.
880         (dw_trace_info_hash, dw_trace_info_eq): New.
881         (get_trace_index, get_trace_info): New.
882         (save_point_p): New.
883         (free_cfi_row): Remove.
884         (add_cfi): Do not emit DW_CFA_remember_state.
885         (cfa_row_equal_p): New.
886         (barrier_args_size): Remove.
887         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
888         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
889         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
890         (dwarf2out_cfi_begin_epilogue): Remove.
891         (dwarf2out_frame_debug_restore_state): Remove.
892         (connect_traces, create_pseudo_cfg): New.
893         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
894         * Makefile.in (dwarf2cfi.o): Update.
895
896 2011-07-23  Richard Henderson  <rth@redhat.com>
897
898         * dwarf2cfi.c (dw_trace_info): New.
899         (dw_label_info): New.
900         (cie_return_save): New.
901         (cur_trace): New.
902         (queued_args_size): Rename from args_size.  Update all users.
903         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
904         (def_cfa_1): Use cur_trace instead of cfa_*.
905         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
906         (clobbers_queued_reg_save, reg_saved_in): Likewise.
907         (dwarf2out_frame_debug_expr): Likewise.
908         (create_cie_data): Split out from ...
909         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
910
911 2011-07-23  Richard Henderson  <rth@redhat.com>
912
913         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
914         Update all users to match.
915         (execute_dwarf2_frame): Free reg_saved_in_data.
916
917 2011-07-23  Richard Henderson  <rth@redhat.com>
918
919         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
920         (queued_reg_saves): Don't GTY.  Change to a VEC.
921         (queue_reg_save): Update to match.
922         (dwarf2out_flush_queued_reg_saves): Likewise.
923         (clobbers_queued_reg_save): Likewise.
924         (reg_saved_in): Likewise.
925         (execute_dwarf2_frame): Free queued_reg_saves.
926
927 2011-07-23  Richard Henderson  <rth@redhat.com>
928
929         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
930
931 2011-07-23  Richard Henderson  <rth@redhat.com>
932
933         * dwarf2cfi.c (add_cfi_args_size): Split out from...
934         (dwarf2out_args_size): ... here.
935         (add_cfi_restore): Split out from ...
936         (dwarf2out_frame_debug_cfa_restore): ... here.
937         (def_cfa_0): Split out from ...
938         (def_cfa_1): ... here.
939         (cfi_oprnd_equal_p, cfi_equal_p): New.
940         (change_cfi_row): New.
941         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
942         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
943         (output_cfis): Remove.
944         * dwarf2out.c (output_fde): Simplify output_cfi loop.
945         (dwarf2out_switch_text_section): Don't call output_cfis.
946         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
947         * dwarf2out.h: Update decls.
948         (enum dw_val_class): Add dw_val_class_none.
949
950 2011-07-23  Richard Henderson  <rth@redhat.com>
951
952         * dwarf2cfi.c (update_row_reg_save): New.
953         (dwarf2out_frame_debug_cfa_expression): Use it.
954         (dwarf2out_frame_debug_cfa_restore): Likewise.
955         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
956
957 2011-07-23  Richard Henderson  <rth@redhat.com>
958
959         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
960
961 2011-07-23  Richard Henderson  <rth@redhat.com>
962
963         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
964         (cie_cfi_row): New.
965         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
966         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
967         (cur_row, remember_row): New.
968         (def_cfa_1): Use cur_row instead of the old_* variables.
969         (dwarf2out_frame_debug_restore_state): Similarly.
970         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
971         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
972         (dwarf2out_frame_debug_adjust_cfa): Likewise.
973         (dwarf2out_frame_debug_cfa_offset): Likewise.
974         (dwarf2out_frame_debug_expr): Likewise.
975         (execute_dwarf2_frame): Set up cur_row.
976         * dwarf2out.h (struct cfa_loc): Mark for GTY.
977
978 2011-07-23  Richard Henderson  <rth@redhat.com>
979
980         * basic-block.h (EDGE_PRESERVE): New.
981         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
982         * bb-reorder.c: Include except.h.
983         (fix_up_crossing_landing_pad): New.
984         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
985         landing pads in the right partition.  Duplicate as necessary.
986         (partition_hot_cold_basic_blocks): Fix up DF info after
987         duplicating landing pads.
988         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
989         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
990         is set properly.  Validate that EH edges are not CROSSING.
991         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
992         (dw2_build_landing_pads): ... here.
993         (convert_to_eh_region_ranges): Remove code to fixup crossing
994         landing pads.
995         * except.h (expand_dw2_landing_pad_for_region): Declare.
996         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
997
998 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
999
1000         PR target/49816
1001         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
1002
1003 2011-07-22  Jason Merrill  <jason@redhat.com>
1004
1005         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
1006
1007 2011-07-22  Richard Henderson  <rth@redhat.com>
1008
1009         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
1010
1011 2011-07-22  Richard Henderson  <rth@redhat.com>
1012
1013         * jump.c (maybe_propagate_label_ref): Split out of...
1014         (mark_all_labels): ... here.  Do not attempt label_ref
1015         propagation while in cfglayout mode.
1016
1017 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
1018
1019         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
1020         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
1021         (dwarf_attr_name): Handle DW_AT_GNU_macros.
1022         (dwarf2out_define): If the vector is empty and
1023         lineno is 0, emit a dummy entry first.
1024         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
1025         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
1026         optimize_macinfo_range): New functions.
1027         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
1028         mergeable, optimize longer strings using
1029         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
1030         optimize longer sequences of define/undef ops from headers
1031         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
1032         emit a section headers.
1033         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
1034         and macinfo_section_label to DEBUG_MACRO_SECTION
1035         resp. DEBUG_MACRO_SECTION_LABEL.
1036         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
1037         instead of DW_AT_macro_info.
1038
1039         PR other/32998
1040         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
1041         options.
1042         * dwarf2out.c: Include opts.h.
1043         (dchar_p): New typedef.  Define heap VEC for it.
1044         (producer_string): New variable.
1045         (gen_producer_string): New function.
1046         (gen_compile_unit_die): Use it.
1047         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
1048         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
1049         * doc/invoke.texi: Document -grecord-gcc-switches and
1050         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
1051         to -frecord-gcc-switches description.
1052
1053 2011-07-22  Jason Merrill  <jason@redhat.com>
1054
1055         PR c++/30112
1056         * c-decl.c (c_linkage_bindings): Define.
1057
1058 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
1059
1060         PR debug/49815
1061         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
1062
1063 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
1064
1065         * config/i386/i386.c (ix86_option_override_internal): Disallow
1066         MS ABI in x32 mode.
1067         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
1068         only for TARGET_LP64.
1069         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
1070
1071 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
1072
1073         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
1074         avoid warnings when GCC is built with a C++ compiler.
1075
1076 2011-07-22  Martin Jambor  <mjambor@suse.cz>
1077
1078         PR lto/49796
1079         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
1080         if decl node is in another partition, call cgraph_get_node only once.
1081
1082 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
1083
1084         * config.gcc (x86_64-*-linux*): Set
1085         default_gnu_indirect_function to yes.
1086
1087 2011-07-22  Richard Guenther  <rguenther@suse.de>
1088
1089         PR tree-optimization/45819
1090         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
1091         preserve volatile and notrap flags.
1092
1093 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1094             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1095
1096         PR bootstrap/49794
1097         * configure.ac: Test AM_ICONV with CXX.
1098         * configure: Regenerate.
1099         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
1100
1101 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1102
1103         PR bootstrap/49797
1104         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
1105         (set_cloog_options): Use it.
1106
1107 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
1108
1109         PR c++/49756
1110         * gcc.c (main): Call stack_limit_increase (64MB).
1111         * toplev.c (toplev_main): Likewise.
1112
1113 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1114
1115         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
1116         instead of force_reg.
1117
1118 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1119
1120         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
1121         needed and use force_reg after convert.
1122         (ix86_expand_call): Likewise.
1123         (ix86_expand_special_args_builtin): Likewise.
1124         (ix86_expand_builtin): Likewise.
1125
1126 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1127
1128         PR middle-end/47654
1129         PR middle-end/49649
1130         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
1131         in parameter.  Initialize v1 and v2 based on the values returned
1132         by clast_name_to_lb_ub.
1133         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
1134         values.
1135         (type_for_clast_bin): Same.
1136         (type_for_clast_expr): Same.
1137         (type_for_clast_eq): Update calls to type_for_clast_expr.
1138         (type_for_clast_for): Same.
1139         (build_iv_mapping): Same.
1140         * graphite-ppl.h (value_min): New.
1141
1142 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1143
1144         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
1145         types whenever possible.
1146
1147 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1148
1149         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
1150         and ub fields.
1151         (new_clast_name_index): Add lb and ub parameters.
1152         (free_clast_name_index): New.
1153         (clast_name_to_lb_ub): New.
1154         (save_clast_name_index): Add lb and ub parameters.
1155         (compute_bounds_for_param): New.
1156         (type_for_level): Removed.
1157         (type_for_clast_for): Removed level parameter.  Do not call
1158         type_for_level.
1159         (graphite_create_new_loop): Store the lb and ub for the clast_name
1160         of the iterator of the loop that has been generated.
1161         (graphite_create_new_loop_guard): Remove parameter level.
1162         (create_params_index): Store the lb and ub of each parameter.
1163         (gloog): Use free_clast_name_index.  Pass to create_params_index
1164         the current scop.
1165
1166 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1167
1168         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
1169         (max_precision_type): Inline max_signed_precision_type.
1170         (type_for_clast_red): Use max_precision_type.
1171         (type_for_clast_bin): Same.
1172         (type_for_clast_for): Same.
1173
1174 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1175
1176         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
1177         type_for_interval.
1178         (gcc_type_for_value): Renamed type_for_value.
1179         (gcc_type_for_clast_term): Renamed type_for_clast_term.
1180         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
1181         (gcc_type_for_clast_red): Renamed type_for_clast_red.
1182         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
1183         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
1184         (graphite_translate_clast_equation): Update calls.
1185         (compute_type_for_level): Renamed type_for_level.
1186         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
1187         (build_iv_mapping): Update calls.
1188         (graphite_create_new_loop_guard): Same.
1189
1190 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1191
1192         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
1193         comment.
1194
1195 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1196
1197         * graphite-clast-to-gimple.c (struct ivs_params): New.
1198         (clast_name_to_gcc): Use ivs_params to pass around parameters.
1199         (clast_to_gcc_expression): Same.
1200         (clast_to_gcc_expression_red): Same.
1201         (gcc_type_for_clast_term): Same.
1202         (gcc_type_for_clast_expr): Same.
1203         (gcc_type_for_clast_red): Same.
1204         (gcc_type_for_clast_bin): Same.
1205         (gcc_type_for_clast_eq): Same.
1206         (graphite_translate_clast_equation): Same.
1207         (graphite_create_guard_cond_expr): Same.
1208         (graphite_create_new_guard): Same.
1209         (graphite_create_new_loop): Same.
1210         (build_iv_mapping): Same.
1211         (translate_clast_user): Same.
1212         (graphite_create_new_loop_guard): Same.
1213         (translate_clast): Same.
1214         (translate_clast_for_loop): Same.
1215         (translate_clast_for): Same.
1216         (translate_clast_guard): Same.
1217         (initialize_cloog_names): Fix typo.
1218         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
1219
1220 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1221
1222         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
1223         (new_clast_name_index): Add level parameter.
1224         (clast_name_to_level): New.
1225         (save_clast_name_index): Add level parameter.
1226         (newivs_to_depth_to_newiv): Removed.
1227         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
1228         (graphite_create_new_loop): Add level parameter.  Pass level to
1229         save_clast_name_index.
1230         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
1231         (create_params_index): Pass level to save_clast_name_index.
1232
1233 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1234
1235         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
1236         recompute type, lb, and ub.  Get them from...
1237         (graphite_create_new_loop_guard): ...here.  Pass in parameter
1238         pointers to type, lb, and ub.
1239         (translate_clast_for_loop): Update function calls.
1240         (translate_clast_for): Same.
1241
1242 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1243
1244         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
1245         psct_dynamic_dim.
1246         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
1247         (gcc_type_for_iv_of_clast_loop): Update use of level.
1248         (gloog): Start counting nesting level from 0.
1249         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
1250         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
1251         psct_dynamic_dim on level.
1252
1253 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1254
1255         * config/i386/i386.c (ix86_legitimize_address): Convert to
1256         Pmode if needed.
1257
1258 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1259
1260         * config/i386/i386.c (function_value_64): Always return pointers
1261         in Pmode.
1262         (ix86_promote_function_mode): New.
1263         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
1264
1265 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1266
1267         PR tree-optimization/49749
1268         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
1269         remove no-longer-used maxrank variable.
1270
1271 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
1272
1273         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
1274
1275 2011-07-21  Jason Merrill  <jason@redhat.com>
1276
1277         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
1278         * recog.h (struct insn_data_d): Check it instead of
1279         HAVE_DESIGNATED_INITIALIZERS.
1280         * genoutput.c (output_insn_data): Likewise.
1281
1282 2011-07-21  Richard Guenther  <rguenther@suse.de>
1283
1284         PR tree-optimization/49770
1285         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
1286         valueized any operand.  Renamed from ...
1287         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
1288         (valueize_shared_reference_ops_from_ref): Return whether we
1289         valueized any operand.
1290         (vn_reference_lookup): Only when we valueized any operand
1291         use the valueized reference for alias analysis.  Do not preserve
1292         the original reference tree in this case.
1293
1294 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
1295
1296         * config/i386/i386.c (ix86_decompose_address): Reject all but
1297         register operands and subregs of DImode hard registers in index.
1298
1299 2011-07-21  Kai Tietz  <ktietz@redhat.com>
1300
1301         * fold-const.c (fold_unary_loc): Preserve indirect
1302         comparison cast to none-boolean type.
1303         * tree-ssa.c (useless_type_conversion_p): Preserve cast
1304         from/to boolean-type.
1305         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
1306         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
1307         * tree-cfg.c (verify_gimple_comparison): Check result
1308         type of comparison expression.
1309         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
1310         of condition result and disallow type-cast sinking into comparison.
1311
1312 2011-07-21  Richard Guenther  <rguenther@suse.de>
1313
1314         * tree-ssa-forwprop.c (combine_conversions): Return whether
1315         we have to run cfg-cleanup.  Properly remove dead stmts.
1316         (ssa_forward_propagate_and_combine): Adjust.
1317
1318 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
1319
1320         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
1321
1322 2011-07-21  Kai Tietz  <ktietz@redhat.com>
1323
1324         * tree-ssa-propagate.c (substitute_and_fold): Use
1325         do_dce flag to deside, if BB's statements are scanned
1326         in last to first, or first to last order.
1327
1328 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
1329
1330         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
1331
1332 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
1333             Uros Bizjak  <ubizjak@gmail.com>
1334             Richard Henderson  <rth@redhat.com>
1335
1336         * config/i386/constraints.md (w): New.
1337
1338         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
1339         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
1340
1341         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
1342         instead of TARGET_64BIT.
1343
1344         * config/i386/i386.md (indirect_jump): Replace
1345         nonimmediate_operand with indirect_branch_operand.
1346         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
1347         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
1348         Convert operand 0 to Pmode for x32 if not PIC.
1349         (*tablejump_1): Replace nonimmediate_operand with
1350         indirect_branch_operand.  Replace constraint "m" with "w".
1351         (*call_vzeroupper): Replace constraint "m" with "w".
1352         (*call): Likewise.
1353         (*call_rex64_ms_sysv_vzeroupper): Likewise.
1354         (*call_rex64_ms_sysv): Likewise.
1355         (*call_value_vzeroupper): Likewise.
1356         (*call_value): Likewise.
1357         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
1358         (*call_value_rex64_ms_sysv): Likewise.
1359         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
1360
1361         * config/i386/predicates.md (indirect_branch_operand): New.
1362         (call_insn_operand): Support x32.
1363
1364 2011-07-20  Michael Eager  <eager@eagercon.com>
1365
1366         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
1367
1368 2011-07-20  Richard Henderson  <rth@redhat.com>
1369
1370         * cfg.c (dump_bb_info): Dump basic_block->flags.
1371         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
1372
1373 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
1374
1375         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1376         of DImode hard registers in index.
1377         (ix86_legitimate_address_p): Allow subregs of base and index to span
1378         more than a word.  Assert that subregs of base and index satisfy
1379         register_no_elim_operand predicates.  Reject addresses where
1380         base and index have different modes.
1381
1382 2011-07-20  Robert Millan  <rmh@gnu.org>
1383
1384         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
1385
1386 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1387
1388         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
1389         removing now-unnecessary assignment.
1390
1391 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1392
1393         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
1394         memory address space to the type's address space.
1395
1396 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
1397
1398         PR target/36467
1399         PR target/49687
1400         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
1401         and expand appropriately if there is a CONST_INT in operand2.
1402         (usmulqihi3): New insn.
1403         (*sumulqihi3): New insn.
1404         (*osmulqihi3): New insn.
1405         (*oumulqihi3): New insn.
1406         (*muluqihi3.uconst): New insn_and_split.
1407         (*muluqihi3.sconst): New insn_and_split.
1408         (*mulsqihi3.sconst): New insn_and_split.
1409         (*mulsqihi3.uconst): New insn_and_split.
1410         (*mulsqihi3.oconst): New insn_and_split.
1411         (*ashifthi3.signx.const): New insn_and_split.
1412         (*ashifthi3.signx.const7): New insn_and_split.
1413         (*ashifthi3.zerox.const): New insn_and_split.
1414         (mulsqihi3): New insn.
1415         (muluqihi3): New insn.
1416         (muloqihi3): New insn.
1417         * config/avr/predicates.md (const_2_to_7_operand): New.
1418         (const_2_to_6_operand): New.
1419         (u8_operand): New.
1420         (s8_operand): New.
1421         (o8_operand): New.
1422         (s9_operand): New.
1423         (register_or_s9_operand): New.
1424
1425 2011-07-20  Kai Tietz  <ktietz@redhat.com>
1426
1427         * builtins.c (fold_builtin_expect): See through the cast
1428         from truthvalue_type_node to long.
1429
1430 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
1431
1432         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
1433         where we can use them from the standard and altivec instruction
1434         sets, instead of always using the 3 operand VSX forms that require
1435         the destination to overlap one of the inputs.
1436         (vsx_fms*): Ditto.
1437         (vsx_fnma*): Ditto.
1438         (vsx_fnms*): Ditto.
1439
1440         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
1441         for DF types.
1442         (fmsdf4_fpr): Ditto.
1443         (nfmadf4_fpr): Ditto.
1444         (nfmsdf4_fpr): Ditto.
1445
1446 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
1447
1448         * genrecog.c (make_insn_sequence): Correct position numbering
1449         when filtering out match_scratch and match_dup.
1450
1451 2011-07-20  Richard Guenther  <rguenther@suse.de>
1452
1453         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1454         against already removed statements.
1455         (forward_propagate_into_comparison): Remove dead defining stmts.
1456         (forward_propagate_into_gimple_cond): Likewise.
1457         (forward_propagate_into_cond): Simplify.
1458         (ssa_forward_propagate_and_combine): Handle changed cfg from
1459         forward_propagate_into_comparison.
1460         * tree-ssa-phiopt.c (conditional_replacement): Use proper
1461         locations for newly built statements.
1462
1463 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
1464
1465         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
1466
1467 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1468
1469         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
1470         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
1471
1472 2011-07-20  Richard Guenther  <rguenther@suse.de>
1473
1474         PR middle-end/18908
1475         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
1476         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
1477         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
1478
1479 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
1480
1481         * config/frv/frv.c (frv_register_move_cost): Define explicitly
1482         costs for subclasses of GR_REGS.
1483
1484 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
1485
1486         PR target/49780
1487         * config/i386/predicates.md (no_seg_addres_operand): No more special.
1488         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1489         of DImode hard registers in base.
1490         (ix86_legitimate_address_p): Allow SImode and DImode base and index
1491         registers.
1492
1493 2011-07-20  Richard Guenther  <rguenther@suse.de>
1494
1495         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
1496         (unify_nodes): Deal with that.
1497         (solve_graph): Likewise.
1498
1499 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
1500
1501         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
1502         canonicalize left operand from ZERO_EXTEND to AND.
1503
1504 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
1505
1506         * target.def (class_max_nregs): New hook.
1507         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
1508         * doc/tm.texi: Regenerate.
1509         * targhooks.c (default_class_max_nregs): New function.
1510         * targhooks.h (default_class_max_nregs): Declare.
1511         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
1512         x_ira_reg_class_min_nregs arrays to unsigned char.
1513         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
1514         hook instead of CLASS_MAX_NREGS macro.
1515         * reginfo.c (restore_register_info): Ditto.
1516         * ira-conflicts.c (process_regs_for_copy): Use
1517         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1518         Change type rclass and aclass vars to reg_class_t.
1519         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
1520         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
1521         reg_class_t.
1522         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
1523         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1524
1525         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
1526         * config/i386/i386.c (ix86_class_max_nregs): New function.
1527         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
1528         instead of CLASS_MAX_NREGS macro.
1529         (TARGET_CLASS_MAX_NREGS): Define.
1530         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
1531         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
1532         * config/avr/avr.c (class_max_nregs): Remove function.
1533         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
1534         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
1535         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
1536         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
1537         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
1538         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
1539         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
1540         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
1541         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
1542         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
1543         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
1544         * config/score/score.h (CLASS_MAX_NREGS): Remove.
1545         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
1546         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
1547         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
1548
1549 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
1550
1551         * cif-code.def (OVERWRITABLE): Fix typo and move around.
1552         (TARGET_OPTIMIZATION_MISMATCH): Delete.
1553         (EH_PERSONALITY): Fix typo.
1554         (NON_CALL_EXCEPTIONS): Fix message.
1555         (OPTIMIZATION_MISMATCH): Adjust message.
1556         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
1557
1558 2011-07-19  Ian Lance Taylor  <iant@google.com>
1559
1560         * doc/install.texi (Configuration): Document
1561         --enable-build-poststage1-with-cxx.
1562
1563 2011-07-19  Robert Millan  <rmh@gnu.org>
1564
1565         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
1566         (GLIBC_DYNAMIC_LINKER): Remove.
1567
1568         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
1569         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1570         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1571         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
1572         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
1573         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
1574
1575         * config/mips/linux.h: Remove everything except for ...
1576         (GLIBC_DYNAMIC_LINKER): ... this macro.
1577
1578         * config/mips/linux64.h: Remove everything except for ...
1579         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1580         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1581         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
1582         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
1583         (GNU_USER_LINK_EMULATIONN32): New macros.
1584
1585         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
1586         Use the new headers.
1587
1588 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1589
1590         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
1591         Add offset_known_p and size_known_p fields.
1592         (MEM_OFFSET_KNOWN_P): Update accordingly.
1593         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
1594         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
1595         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
1596         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
1597         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
1598         (init_emit_regs): Likewise.
1599
1600 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1601
1602         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
1603         (MEM_OFFSET): Change from returning an rtx to returning a
1604         HOST_WIDE_INT.
1605         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
1606         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
1607         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1608         (clear_mem_offset): Declare.
1609         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
1610         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
1611         MEM_OFFSET to get a HOST_WIDE_INT offset.
1612         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
1613         (adjust_offset_for_component_ref): Take a bool "known_p"
1614         parameter and a HOST_WIDE_INT "offset" parameter.
1615         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
1616         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
1617         than an rtx.  Use clear_mem_offset to clear the offset.
1618         * cfgcleanup.c (merge_memattrs): Likewise.
1619         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
1620         * function.c (assign_parm_find_stack_rtl): Likewise.
1621         (assign_parm_setup_stack): Likewise.
1622         * print-rtl.c (print_rtx): Likewise.
1623         * reload.c (find_reloads_subreg_address): Likewise.
1624         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1625         * var-tracking.c (INT_MEM_OFFSET): Likewise.
1626         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
1627         (get_mem_align_offset): Likewise.
1628         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1629         (clear_mem_offset): New function.
1630         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
1631         offset rather than an rtx.  Assume both the expressio and offset
1632         are available.
1633         (r10k_needs_protection_p_1): Update accordingly, checking the
1634         expression and offset availability here instead.
1635
1636 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1637
1638         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
1639         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
1640         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
1641         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
1642         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1643         (clear_mem_size): Declare.
1644         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1645         (clear_mem_size): New function.
1646         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
1647         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
1648         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
1649         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
1650         to clear the size.
1651         (nonoverlapping_memrefs_p): Likewise.
1652         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
1653         (expand_builtin_init_trampoline): Likewise.
1654         * calls.c (compute_argument_addresses): Likewise.
1655         * cfgcleanup.c (merge_memattrs): Likewise.
1656         * dce.c (find_call_stack_args): Likewise.
1657         * dse.c (record_store, scan_insn): Likewise.
1658         * dwarf2out.c (dw_sra_loc_expr): Likewise.
1659         * expr.c (emit_block_move_hints): Likewise.
1660         * function.c (assign_parm_find_stack_rtl): Likewise.
1661         * print-rtl.c (print_rtx): Likewise.
1662         * reload.c (find_reloads_subreg_address): Likewise.
1663         * rtlanal.c (may_trap_p_1): Likewise.
1664         * var-tracking.c (track_expr_p): Likewise.
1665         * varasm.c (assemble_trampoline_template): Likewise.
1666         * config/arm/arm.c (arm_print_operand): Likewise.
1667         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
1668         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
1669         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
1670         (expand_constant_setmem_prologue): Likewise.
1671         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
1672         * config/rs6000/rs6000.c (expand_block_move): Likewise.
1673         (adjacent_mem_locations): Likewise.
1674         * config/s390/s390.c (s390_expand_setmem): Likewise.
1675         (s390_expand_insv): Likewise.
1676         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
1677         (*extendqi<mode>2_short_displ): Likewise.
1678         * config/sh/sh.c (expand_block_move): Likewise.
1679         * config/sh/sh.md (extv, extzv): Likewise.
1680
1681 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1682
1683         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
1684         (mem_attrs_htab_eq): ...here.
1685         (find_mem_attrs): Replace with...
1686         (set_mem_attrs): ...this function.  Take a mem_attrs structure
1687         rather than individual fields.
1688         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1689         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1690         (set_mem_size, change_address, adjust_address_1, offset_address)
1691         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
1692         Update accordingly.
1693
1694 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1695
1696         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
1697         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
1698         Provide a dummy definition of MEM_ADDR_SPACE for generators.
1699         (target_rtl): Add x_mode_mem_attrs.
1700         (mode_mem_attrs): New macro.
1701         (get_mem_attrs): New function.
1702         * emit-rtl.c (get_mem_attrs): Rename to...
1703         (find_mem_attrs): ...this.
1704         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1705         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1706         (set_mem_size, change_address, adjust_address_1, offset_address)
1707         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
1708         Update accordingly.
1709         (init_emit_regs): Initialize mode_mem_attrs.
1710
1711 2011-07-19  Richard Guenther  <rguenther@suse.de>
1712
1713         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
1714         TRUTH_*_EXPR handling.
1715         * tree-ssa-operands.c (get_expr_operands): Likewise.
1716         * tree-ssa-pre.c (fully_constant_expression): Likewise.
1717         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
1718         Likewise.
1719         (is_and_or_or): Likewise.
1720         (is_norm_cond_subset_of): Likewise.
1721
1722 2011-07-19  Richard Guenther  <rguenther@suse.de>
1723
1724         * tree.h (fold_build_pointer_plus_loc): New helper function.
1725         (fold_build_pointer_plus_hwi_loc): Likewise.
1726         (fold_build_pointer_plus): Define.
1727         (fold_build_pointer_plus_hwi): Likewise.
1728         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
1729         (fold_builtin_memory_op): Likewise.
1730         (fold_builtin_stpcpy): Likewise.
1731         (fold_builtin_memchr): Likewise.
1732         (fold_builtin_strstr): Likewise.
1733         (fold_builtin_strchr): Likewise.
1734         (fold_builtin_strrchr): Likewise.
1735         (fold_builtin_strpbrk): Likewise.
1736         (fold_builtin_strcat): Likewise.
1737         (expand_builtin_memory_chk): Likewise.
1738         (fold_builtin_memory_chk): Likewise.
1739         * c-typeck.c (build_unary_op): Likewise.
1740         * cgraphunit.c (thunk_adjust): Likewise.
1741         * fold-const.c (build_range_check): Likewise.
1742         (fold_binary_loc): Likewise.
1743         * omp-low.c (extract_omp_for_data): Likewise.
1744         (expand_omp_for_generic): Likewise.
1745         (expand_omp_for_static_nochunk): Likewise.
1746         (expand_omp_for_static_chunk): Likewise.
1747         * tree-affine.c (add_elt_to_tree): Likewise.
1748         * tree-data-ref.c (split_constant_offset_1): Likewise.
1749         * tree-loop-distribution.c (generate_memset_zero): Likewise.
1750         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
1751         * tree-predcom.c (ref_at_iteration): Likewise.
1752         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
1753         (add_to_parts): Likewise.
1754         (create_mem_ref): Likewise.
1755         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
1756         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
1757         (number_of_iterations_le): Likewise.
1758         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
1759         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
1760         (vect_create_addr_base_for_vector_ref): Likewise.
1761         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
1762         (vect_create_cond_for_alias_checks): Likewise.
1763         * tree-vrp.c (extract_range_from_assert): Likewise.
1764         * config/alpha/alpha.c (alpha_va_start): Likewise.
1765         (alpha_gimplify_va_arg_1): Likewise.
1766         * config/i386/i386.c (ix86_va_start): Likewise.
1767         (ix86_gimplify_va_arg): Likewise.
1768         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1769         * config/mep/mep.c (mep_expand_va_start): Likewise.
1770         (mep_gimplify_va_arg_expr): Likewise.
1771         * config/mips/mips.c (mips_va_start): Likewise.
1772         (mips_gimplify_va_arg_expr): Likewise.
1773         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1774         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
1775         (rs6000_gimplify_va_arg): Likewise.
1776         * config/s390/s390.c (s390_va_start): Likewise.
1777         (s390_gimplify_va_arg): Likewise.
1778         * config/sh/sh.c (sh_va_start): Likewise.
1779         (sh_gimplify_va_arg_expr): Likewise.
1780         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
1781         * config/spu/spu.c (spu_va_start): Likewise.
1782         (spu_gimplify_va_arg_expr): Likewise.
1783         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1784         Likewise.
1785         (xstormy16_gimplify_va_arg_expr): Likewise.
1786         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
1787         (xtensa_gimplify_va_arg_expr): Likewise.
1788
1789 2011-07-19  Richard Guenther  <rguenther@suse.de>
1790
1791         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
1792         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
1793         handling.
1794
1795         PR middle-end/18908
1796         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
1797         result of BIT_*_EXPR to bitfield precision.
1798
1799 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
1800
1801         PR tree-optimization/49742
1802         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
1803         as a potential write.
1804
1805 2011-07-19  Richard Guenther  <rguenther@suse.de>
1806
1807         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
1808         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
1809         (forward_propagate_comparison): Simplify, remove obsolete code.
1810
1811 2011-07-19  Richard Guenther  <rguenther@suse.de>
1812
1813         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
1814         BIT_XOR_EXPR, same as the RTL expander does.
1815         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
1816         (verify_gimple_assign_unary): Likewise.
1817         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
1818         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
1819         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
1820
1821 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
1822
1823         PR tree-optimization/49768
1824         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
1825         if offset is smaller than bitoffset, but offset+size is bigger
1826         than bitoffset.
1827
1828 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
1829
1830         PR tree-optimization/49771
1831         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
1832         zero step, set segment length to the size of the data-ref's type.
1833
1834 2011-07-18  Martin Jambor  <mjambor@suse.cz>
1835
1836         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
1837         comments.
1838         (ipcp_values_pool): Declare.
1839         (ipcp_sources_pool): Likewise.
1840         (ipcp_lattice): Changed to forward declaration.
1841         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
1842         cannot_devirtualize.
1843         (ipa_node_params): New fields descriptors, lattices, known_vals,
1844         clone_for_all_contexts and node dead, removed fields params and
1845         count_scale.
1846         (ipa_set_param_count): Removed.
1847         (ipa_get_param_count): Made to work with descriptors vector.
1848         (ipa_get_param): Updated.
1849         (ipa_param_cannot_devirtualize_p): Removed.
1850         (ipa_param_types_vec_empty): Likewise.
1851         (ipa_set_param_used): New function.
1852         (ipa_get_param_used): Updated to use descriptors vector.
1853         (ipa_func_list): Removed.
1854         (ipa_init_func_list): Removed declaration.
1855         (ipa_push_func_to_list_1): Likewise.
1856         (ipa_pop_func_from_list): Likewise.
1857         (ipa_push_func_to_list): Removed.
1858         (ipa_lattice_from_jfunc): Remove declaration.
1859         (ipa_get_jf_pass_through_result): Declare.
1860         (ipa_get_jf_ancestor_result): Likewise.
1861         (ipa_value_from_jfunc): Likewise.
1862         (ipa_get_lattice): Update.
1863         (ipa_lat_is_single_const): New function.
1864         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
1865         (ipa_init_func_list): Likewise.
1866         (ipa_pop_func_from_list): Likewise.
1867         (ipa_get_param_decl_index): Fix coding style.
1868         (count_formal_params): Removed.
1869         (count_formal_params_1): Renamed to count_formal_params.
1870         (ipa_populate_param_decls): Update to use descriptors vector.
1871         (ipa_initialize_node_params): Likewise.
1872         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
1873         (ipa_analyze_params_uses): Likewise.
1874         (ipa_free_node_params_substructures): Likewise and free also lattices
1875         and known values.
1876         (duplicate_array): Removed.
1877         (ipa_edge_duplication_hook): Add the new edge to the list of edge
1878         clones.
1879         (ipa_node_duplication_hook): Update to use new lattices.
1880         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
1881         (ipa_free_all_structures_after_iinln): Likewise.
1882         (ipa_write_node_info): Update to use new lattices.
1883         (ipa_read_node_info): Likewise.
1884         (ipa_get_jf_pass_through_result): New function.
1885         (ipa_get_jf_ancestor_result): Likewise.
1886         (ipa_value_from_jfunc): Likewise.
1887         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
1888         * ipa-cp.c: Reimplemented.
1889         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
1890         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
1891         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
1892         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
1893         * doc/invoke.texi (devirt-type-list-size): Removed description.
1894         (ipa-cp-value-list-size): Added description.
1895
1896 2011-07-18  Richard Henderson  <rth@redhat.com>
1897
1898         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
1899         before calling create_basic_block.
1900
1901 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
1902
1903         PR middle-end/49675
1904         * tree.c (build_common_builtin_nodes): Register
1905         __builtin_return_address, __cyg_profile_func_enter
1906         and __cyg_profile_func_exit.
1907
1908 2011-07-18  Richard Henderson  <rth@redhat.com>
1909
1910         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
1911         (add_labels_and_missing_jumps): ... here.
1912         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
1913
1914 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
1915
1916         PR target/47744
1917         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1918         of DImode hard registers in PLUS address chains.
1919
1920 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1921
1922         PR bootstrap/49769
1923         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
1924         (alpha*-*-freebsd*): Likewise.
1925         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1926         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
1927         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
1928         crtprec80.o, crtfastmath.o to extra_parts for all targets.
1929         (ia64*-*-elf*): Remove extra_parts.
1930         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
1931         (sparc64-*-linux*): Likewise.
1932         (sparc64-*-freebsd*): Likewise.
1933
1934         Revert:
1935         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
1936         (ia64*-*-linux*): Likewise.
1937         (mips64*-*-linux*): Likewise.
1938         (mips*-*-linux*): Likewise.
1939
1940 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
1941
1942         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
1943
1944 2011-07-18  Richard Guenther  <rguenther@suse.de>
1945
1946         * gimplify.c (gimplify_expr): Use input_location, not saved_location
1947         when building new trees.
1948
1949 2011-07-18  Richard Guenther  <rguenther@suse.de>
1950
1951         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
1952         expansion result to bitfield precision if required.
1953
1954 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1955
1956         * config.gcc (i[3456x]86-*-netware*): Remove.
1957
1958         * gthr-nks.h: Remove.
1959         * configure.ac (enable_threads): Remove nks.
1960         * configure: Regenerate.
1961
1962         * config/i386/i386.c (ix86_encode_section_info): Remove netware
1963         reference.
1964         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
1965         <netware.h> reference.
1966
1967         * config/i386/netware-libgcc.c,
1968         gcc/config/i386/netware-libgcc.def,
1969         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
1970         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
1971         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
1972         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
1973
1974         * doc/extend.texi (Function Attributes,
1975         callee_pop_aggregate_return): Remove i?86-netware reference.
1976         * doc/install.texi (Configuration, --enable-threads): Remove nks.
1977
1978 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1979
1980         PR target/49746
1981         Revert:
1982         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1983
1984         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
1985         patterns.
1986
1987 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
1988
1989         PR middle-end/49732
1990         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
1991
1992 2011-07-16  Matthias Klose  <doko@ubuntu.com>
1993
1994         * doc/install.texi: Document --enable-static-libjava.
1995
1996 2011-07-15  Richard Henderson  <rth@redhat.com>
1997
1998         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1999         Replace all three arguments by returning a VEC of edges.
2000         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
2001         pointers and counts.
2002         (fix_edges_for_rarely_executed_code): Merge ...
2003         (rest_of_handle_partition_blocks): ... into...
2004         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
2005         any work was performed.
2006         (pass_partition_blocks): Clear todo_flags_finish.
2007
2008 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
2009             Jakub Jelinek  <jakub@redhat.com>
2010             Jonathan Wakely  <jwakely.gcc@gmail.com>
2011
2012         PR libstdc++/49745
2013         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
2014         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
2015
2016 2011-07-15  Jason Merrill  <jason@redhat.com>
2017
2018         PR testsuite/49741
2019         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
2020         rather than --tool_opts.
2021
2022 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
2023
2024         * doc/plugins.texi (Building GCC plugins): gengtype needs its
2025         corresponding gtype.state.
2026
2027 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2028
2029         PR target/49723
2030         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
2031
2032 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
2033
2034         PR target/48220
2035         * doc/md.texi (Standard Names): Document window_save.
2036         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
2037         expand_debug_expr and expand_debug_source_expr.  If the target has
2038         a window_save instruction, adjust the ENTRY_VALUE_EXP.
2039         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
2040         SSA_NAME_VAR is a parameter.
2041         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
2042         * var-tracking.c (parm_reg_t): New type and associated vector type.
2043         (windowed_parm_regs): New variable.
2044         (adjust_insn): If the target has a window_save instruction and this
2045         is the instruction, make its effect on parameter registers explicit.
2046         (next_non_note_insn_var_location): New function.
2047         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
2048         (vt_add_function_parameter): If the target has a window_save insn,
2049         adjust the incoming RTL and record that in windowed_parm_regs.
2050         (vt_finalize): Free windowed_parm_regs.
2051
2052 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
2053
2054         * doc/invoke.texi (C6X Options): New section.
2055         * doc/md.texi (TI C6X family): New section.
2056         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
2057         tic6x-*-uclinux.
2058         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
2059         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
2060         Provide C6X definitions.
2061         * config/c6x/c6x.md: New file.
2062         * config/c6x/constraints.md: New file.
2063         * config/c6x/predicates.md: New file.
2064         * config/c6x/c6x-sched.md.in: New file.
2065         * config/c6x/c6x-sched.md: New file.
2066         * config/c6x/gensched.sh: New file.
2067         * config/c6x/c6x-mult.md.in: New file.
2068         * config/c6x/genmult.sh: New file.
2069         * config/c6x/c6x-mult.md: New file.
2070         * config/c6x/sync.md: New file.
2071         * config/c6x/c6x-protos.h: New file.
2072         * config/c6x/sfp-machine.h: New file.
2073         * config/c6x/c6x.c: New file.
2074         * config/c6x/c6x.h: New file.
2075         * config/c6x/crti.s: New file.
2076         * config/c6x/crtn.s: New file.
2077         * config/c6x/lib1funcs.asm: New file.
2078         * config/c6x/c6x-modes.def: New file.
2079         * config/c6x/genopt.sh: New file.
2080         * config/c6x/c6x.opt: New file.
2081         * config/c6x/c6x-tables.opt: New file.
2082         * config/c6x/c6x-opts.h: New file.
2083         * config/c6x/c6x-isas.def: New file.
2084         * config/c6x/elf.h: New file.
2085         * config/c6x/elf-common.h: New file.
2086         * config/c6x/uclinux-elf.h: New file.
2087         * config/c6x/t-c6x: New file.
2088         * config/c6x/t-c6x-elf: New file.
2089         * config/c6x/t-c6x-uclinux: New file.
2090         * config/c6x/t-c6x-softfp: New file.
2091         * config/c6x/gtd.c: New file.
2092         * config/c6x/gtf.c: New file.
2093         * config/c6x/ltd.c: New file.
2094         * config/c6x/ltf.c: New file.
2095         * config/c6x/ged.c: New file.
2096         * config/c6x/gef.c: New file.
2097         * config/c6x/led.c: New file.
2098         * config/c6x/lef.c: New file.
2099         * config/c6x/eqd.c: New file.
2100         * config/c6x/eqf.c: New file.
2101         * config/c6x/libgcc-c6xeabi.ver: New file.
2102
2103         Revert
2104         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2105         PR rtl-optimization/11320
2106         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
2107         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
2108         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
2109         current_sched_info->compute_jump_reg_dependencies. Record which
2110         registers are used and which registers are set by the jump.
2111         Clear deps->reg_conditional_sets after a barrier.
2112         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
2113         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
2114         (init_deps): Initialize reg_conditional_sets.
2115         (free_deps): Clear reg_conditional_sets.
2116         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
2117         Mark registers live on entry of the fallthrough block and conditionally
2118         set as set by the jump. Mark registers live on entry of non-fallthrough
2119         blocks as used by the jump.
2120         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
2121         Mark new parameters as unused.
2122
2123 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
2124
2125         PR tree-opt/49309
2126         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
2127         Use fold_build2_loc instead of build2.
2128         Use the correct type for the new tree.
2129
2130 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2131
2132         PR rtl-optimization/11320
2133         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
2134         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
2135
2136 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
2137
2138         PR target/49487
2139         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
2140         of REG.
2141         (*rotw<mode>): Use const_int_operand for operand2.
2142         Use match_scatch for operand3.
2143         (*rotb<mode>): Ditto
2144         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
2145
2146 2011-07-14  Richard Guenther  <rguenther@suse.de>
2147
2148         PR tree-optimization/49651
2149         * tree-ssa-structalias.c (get_constraint_for_1): Properly
2150         handle dereferences with subvariables.
2151
2152 2011-07-14  Richard Guenther  <rguenther@suse.de>
2153
2154         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
2155         (fold_stmt_1): Do it here directly on gimple and as a first thing.
2156
2157 2011-07-14  Richard Guenther  <rguenther@suse.de>
2158
2159         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
2160         not bool_var when folding bool_var != 1 or bool_var == 0.
2161
2162 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2163
2164         * haifa-sched.c (schedule_insns): Remove outdated comment.
2165         (schedule_block): When computing a known value for TODO_SPEC,
2166         just set it rather than using logical operations.
2167         (try_ready): Likewise.  Use a local variable rather than a
2168         pointer to TODO_SPEC.  Reorder an if statement to move the
2169         easy case to the then block.
2170         * sched-deps.c (dep_spec_p): New static function.
2171         (update_dep): Use it to decide whether to call
2172         change_spec_dep_to_hard.
2173         (get_back_and_forw_lists): Use it.
2174         (sd_resolve_dep): Likewise.
2175         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
2176         (haifa_note_mem_dep): Likewise.
2177         (check_dep): Likewise.
2178         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
2179         (sched_free_deps): Free in two passes.
2180
2181 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
2182
2183         PR middle-end/49736
2184         * expr.c (all_zeros_p): Undo bogus part of last change.
2185
2186 2011-07-14  Matthias Klose <doko@ubuntu.com>
2187
2188         * doc/extend.texi (optimize attribute): Fix typo.
2189
2190 2011-07-14  Richard Guenther  <rguenther@suse.de>
2191
2192         * gimplify.c (gimplify_expr): Only do required conversions.
2193
2194 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
2195
2196         PR target/43746
2197         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
2198         i.e. use default_elf_select_section.
2199         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
2200         (READONLY_DATA_SECTION_ASM_OP): Remove.
2201         (TARGET_ASM_NAMED_SECTION): Move from here...
2202         * config/avr/avr.c: ...to here.
2203         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
2204         (avr_asm_named_section): Make static.
2205
2206 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2207
2208         PR bootstrap/49739
2209         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
2210         and crtfastmath.o for Linux/x86.
2211
2212 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2213
2214         * haifa-sched.c: Include "hashtab.h"
2215         (sched_no_dce): New global variable.
2216         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
2217         SHADOW_P): New macros.
2218         (last_clock_var, cycle_issued_insns): Move declarations.
2219         (must_backtrack): New static variable.
2220         (struct delay_pair): New structure.
2221         (delay_htab, delay_htab_i2): New static variables.
2222         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
2223         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
2224         functions.
2225         (dep_cost_1): If delay pairs exist, try to look up the insns and
2226         use the correct pair delay if we find them.
2227         (rank-for_schedule): Tweak priority for insns that must be scheduled
2228         soon to avoid backtracking.
2229         (queue_insn): Detect conditions which force backtracking.
2230         (ready_add): Likewise.
2231         (struct sched_block_state): Add member shadows_only_p.
2232         (struct haifa_save_data): New structure.
2233         (backtrack_queue): New static variable.
2234         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
2235         unschedule_insns_until, restore_last_backtrack_point,
2236         free_topmost_backtrack_point, free_backtrack_queue,
2237         estimate_insn_tick, estimate_shadow_tick): New functions.
2238         (prune_ready_list): New arg shadows_only_p.  All callers changed.
2239         If true, remove everything that isn't SHADOW_P.  Look up delay
2240         pairs and estimate ticks to avoid scheduling the first insn too early.
2241         (verify_shadows): New function.
2242         (schedule_block): Add machinery to enable backtracking.
2243         (sched_init): Take sched_no_dce into account when setting
2244         DF_LR_RUN_DCE.
2245         (free_delay_pairs): New function.
2246         (init_h_i_d): Initialize INSN_EXACT_TICK.
2247         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
2248         * sched-deps.c (sd_unresolve_dep): New function.
2249         * sched-int. (struct haifa_sched_info): New fields save_state
2250         and restore_state.
2251         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
2252         feeds_backtrack_insn and shadow_p.
2253         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
2254         (sched_no_dce): Declare variable.
2255         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
2256         sd_unresolve_dep): Declare functions.
2257         * modulo-sched.c (sms_sched_info): Clear the two new fields.
2258         * sched-rgn.c (rgn_const_sched_info): Likewise.
2259         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2260         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
2261         (ebb_sched_info): Add them for the two new fields.
2262         (add_deps_for_risky_insns): Call add_delay_dependencies.
2263
2264 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
2265
2266         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
2267         Rename -mr11.
2268         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
2269         (rs6000_call_indirect_aix): Ditto.
2270         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
2271         (call_indirect_aix<ptrsize>_internal): Ditto.
2272         (call_indirect_aix<ptrsize>_nor11): Ditto.
2273         (call_indirect_aix<ptrsize>_internal2): Ditto.
2274         (call_value_indirect_aix<ptrsize>): Ditto.
2275         (call_value_indirect_aix<ptrsize>_internal): Ditto.
2276         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2277         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2278         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
2279
2280 2011-07-13  Jason Merrill  <jason@redhat.com>
2281
2282         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
2283
2284 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2285
2286         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
2287         * config/spu/spu.md ("clrsb<mode>2"): New expander.
2288
2289 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
2290
2291         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
2292         * configure: Regenerate.
2293
2294 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2295
2296         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
2297         (asm_file_start): Remove.
2298         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
2299         free_bb_for_insn around code that modifies insns before
2300         restarting df analysis.
2301
2302 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2303
2304         PR target/49541
2305         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
2306         (LINK_SPEC): ... here.
2307
2308 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
2309
2310         * haifa-sched.c (struct sched_block_state): New.
2311         (schedule_block): Move some local variables into such a structure.
2312
2313 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2314
2315         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
2316         * config/i386/t-crtpc: Remove.
2317         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2318         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
2319         tmake_file.
2320         (x86_64-*-darwin*): Likewise.
2321         (i[34567]86-*-linux*): Likewise.
2322         (x86_64-*-linux*): Likewise.
2323
2324         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
2325         Handle -mpc32, -mpc64, -mpc80.
2326
2327 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2328
2329         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
2330         * config/alpha/t-crtfm: Remove.
2331         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
2332         * config/i386/t-crtfm: Remove.
2333         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
2334         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
2335         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
2336         * config/sparc/t-crtfm: Remove.
2337
2338         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
2339         (alpha*-*-freebsd*): Likewise.
2340         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
2341         (x86_64-*-darwin*): Likewise.
2342         (i[34567]86-*-linux*): Likewise.
2343         (x86_64-*-linux*): Likewise.
2344         (x86_64-*-mingw*): Likewise.
2345         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
2346         (ia64*-*-freebsd*): Likewise.
2347         (ia64*-*-linux*): Likewise.
2348         (mips64*-*-linux*): Likewise.
2349         (mips*-*-linux*): Likewise.
2350         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
2351         (sparc64-*-linux*): Likewise.
2352         (sparc64-*-freebsd*): Likewise.
2353
2354 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2355
2356         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
2357         * config/darwin-crt3.c: Move to ../libgcc/config.
2358         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2359         ($(T)crt3$(objext)): Remove.
2360         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
2361         ($(T)crt2$(objext)): Remove.
2362         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
2363         (powerpc64-*-darwin*): Likewise.
2364
2365 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
2366
2367         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
2368
2369         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
2370         (addsi_1_zext): This.
2371
2372 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
2373
2374         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
2375         * doc/tm.texi: Regenerate.
2376         * target.def (mergeable_rodata_prefix): New defhookpod.
2377         * varasm.c (mergeable_string_section, mergeable_constant_section):
2378         Use it. Allocate name with alloca.
2379
2380 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
2381
2382         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
2383
2384 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
2385
2386         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
2387         overlap check.
2388
2389 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
2390
2391         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
2392         (count_type_elements): Delete.
2393         (complete_ctor_at_level_p): Declare.
2394         * expr.c (flexible_array_member_p): New function, split out from...
2395         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
2396         parameter with for_ctor_p.  When for_ctor_p is true, return the
2397         number of elements that should appear in the top-level constructor,
2398         otherwise return an estimate of the number of scalars.
2399         (categorize_ctor_elements): Replace p_must_clear with p_complete.
2400         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
2401         (complete_ctor_at_level_p): New function, borrowing union logic
2402         from old categorize_ctor_elements_1.
2403         (mostly_zeros_p): Return true if the constructor is not complete.
2404         (all_zeros_p): Update call to categorize_ctor_elements.
2405         * gimplify.c (gimplify_init_constructor): Update call to
2406         categorize_ctor_elements.  Don't call count_type_elements.
2407         Unconditionally prevent clearing for variable-sized types,
2408         otherwise rely on categorize_ctor_elements to detect
2409         incomplete initializers.
2410
2411 2011-07-13  Richard Guenther  <rguenther@suse.de>
2412
2413         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
2414         the final type is integral.
2415
2416 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
2417
2418         * sched-int.h (struct _dep): Add member cost.
2419         (DEP_COST, UNKNOWN_DEP_COST): New macros.
2420         * sched-deps.c (init_dep_1): Initialize DEP_COST.
2421         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
2422         (sched_change_pattern): Reset it for dependent insns.
2423
2424 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2425
2426         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
2427         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
2428         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
2429         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
2430         (CRT0_S, MCRT0_S): Remove.
2431         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
2432         Remove.
2433         (s-crt0): Remove.
2434         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
2435
2436 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2437
2438         * cse.c (insert_with_costs): Put semi-colon after empty loop body
2439         on the next line.
2440         * emit-rtl.c (push_to_sequence): Likewise.
2441         * haifa-sched.c (max_issue): Likewise.
2442         * matrix-reorg.c (add_allocation_site): Likewise.
2443         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
2444         * reload.c (alternative_allows_const_pool_ref): Likewise.
2445         * sched-rgn.c (rgn_add_block): Likewise.
2446         (rgn_fix_recovery_cfg): Likewise.
2447         * tree.c (attribute_list_contained): Likewise.
2448
2449 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
2450
2451         * config/i386/i386.c: Tidy processor feature bitmasks.
2452         (m_P4_NOCONA): New.
2453
2454 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
2455
2456         PR rtl-opt/49474
2457         * cprop.c (find_implicit_sets): Correct the condition.
2458
2459 2011-07-12  Richard Henderson  <rth@redhat.com>
2460
2461         PR target/49713
2462         * dwarf2out.h (dwarf_frame_regnum): Remove.
2463         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
2464         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
2465         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
2466         (execute_dwarf2_frame): Initialize them.
2467         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
2468         users of the macros with the variables.
2469         (expand_builtin_dwarf_sp_column): Revert last change.
2470         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
2471         result of DWARF_FRAME_REGNUM into a local variable.
2472
2473 2011-07-12  Richard Henderson  <rth@redhat.com>
2474
2475         PR target/49714
2476         * config/i386/i386.c (x86_output_mi_thunk): Use
2477         machopic_indirect_call_target instead of machopic_indirection_name
2478         directly.
2479
2480 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
2481             Eric Botcazou  <ebotcazou@adacore.com>
2482
2483         * prefix.h: Wrap up in extern "C" block.
2484
2485 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
2486
2487         AMD bdver2 Enablement
2488         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
2489         (case ${target}): Add bdver2.
2490         * config/i386/driver-i386.c (host_detect_local_cpu): Let
2491         -march=native recognize bdver2 processors.
2492         * config/i386/i386-c.c (ix86_target_macros_internal): Add
2493         bdver2 def_and_undef
2494         * config/i386/i386.c (struct processor_costs bdver2_cost): New
2495         bdver2 cost table.
2496         (m_BDVER2): New definition.
2497         (m_AMD_MULTIPLE): Includes m_BDVER2.
2498         (initial_ix86_tune_features): Add bdver2 tuning.
2499         (processor_target_table): Add bdver2 entry.
2500         (static const char *const cpu_names): Add bdver2 entry.
2501         (ix86_option_override_internal): Add bdver2 instruction sets.
2502         (ix86_issue_rate): Add bdver2.
2503         (ix86_adjust_cost): Add bdver2.
2504         (has_dispatch): Add bdver2.
2505         * config/i386/i386.h (TARGET_BDVER2): New definition.
2506         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
2507         (enum processor_type): Add PROCESSOR_BDVER2.
2508         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
2509         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
2510         description.
2511
2512 2011-07-12  Richard Henderson  <rth@redhat.com>
2513
2514         PR target/49714
2515         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
2516         destination address in memory on some paths.
2517
2518 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
2519
2520         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
2521         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
2522         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
2523         * function.c (locate_and_pad_parm): Take it into account.
2524         * target.def (function_arg_round_boundary): New hook.
2525         * targhooks.c (default_function_arg_round_boundary): New function.
2526         * targhooks.h (default_function_arg_round_boundary): Declare.
2527         * doc/tm.texi: Regenerate.
2528
2529 2011-07-12  Richard Guenther  <rguenther@suse.de>
2530
2531         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
2532         Do not perform no-op changes.
2533
2534 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
2535
2536         * config/arm/predicates.md (neon_struct_operand): Make a normal
2537         predicate.
2538         (neon_struct_or_register_operand): New predicate.
2539         * config/arm/neon.md (movmisalign<mode>): Replace predicates
2540         with neon_struct_or_register_operand.
2541         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
2542         neon_struct_operand instead of memory_operand.
2543
2544 2011-07-12  Martin Jambor  <mjambor@suse.cz>
2545
2546         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
2547         * cgraph.c (cgraph_get_node_or_alias): Removed.
2548         (change_decl_assembler_name): Changed all calls to
2549         cgraph_get_node_or_alias to a call to cgraph_get_node.
2550         (cgraph_make_decl_local): Likewise.
2551         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
2552         * varasm.c (default_binds_local_p_1): Likewise.
2553         (decl_binds_to_current_def_p): Likewise.
2554
2555 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
2556
2557         PR tree-optimization/49712
2558         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
2559
2560 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
2561
2562         * genautomata.c (add_arc): Return void.  All callers changed.
2563         (make_automaton): Remove dead code.
2564
2565 2011-07-11  Richard Henderson  <rth@redhat.com>
2566
2567         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
2568         (DW_FRAME_POINTER_REGNUM): New.
2569         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
2570         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
2571         (dwf_regno): New.
2572         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
2573         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
2574         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
2575         Use it.
2576         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
2577         * dwarf2out.h (dwarf_frame_regnum): New.
2578         (struct cfa_loc): Document the domain of the reg member.
2579
2580 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
2581
2582         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
2583         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
2584
2585 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
2586
2587         PR debug/49676
2588         * dwarf2out.c (int_shift_loc_descriptor): New function.
2589         (int_loc_descriptor): If shorter, emit i as
2590         (i >> shift), shift, DW_OP_shl for suitable shift value.
2591         Similarly, try to optimize large negative values using
2592         DW_OP_neg of a positive value if shorter.
2593         (size_of_int_shift_loc_descriptor): New function.
2594         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
2595         changes.
2596         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
2597         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
2598         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
2599         is shorter.
2600         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
2601         addend as added DW_OP_plus if it is shorter.
2602
2603 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2604
2605         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
2606         (DTORS_SECTION_ASM_OP): Define.
2607
2608 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2609
2610         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
2611         * config/t-dfprules: Move to ../libgcc/config.
2612         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2613         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
2614         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
2615         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
2616         Likewise.
2617         (i[34567]86-*-cygwin*): Likewise.
2618         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
2619         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
2620         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
2621         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
2622         D64PBIT_FUNCS, D128PBIT_FUNCS.
2623
2624 2011-07-11  Richard Guenther  <rguenther@suse.de>
2625
2626         * tree-vrp.c (simplify_conversion_using_ranges): Manually
2627         translate the source value-range through the conversion chain.
2628
2629 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
2630
2631         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
2632
2633 2011-07-11  Arthur Loiret  <aloiret@debian.org>
2634
2635         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
2636         a bi-arch compiler defaulting to 31-bit. In this case:
2637         (tmake_file): Add s390/t-linux64.
2638         * doc/install.texi: Add s390-linux to the list of targets supporting
2639         --enable-targets=all.
2640
2641 2011-07-11  Arthur Loiret  <aloiret@debian.org>
2642             Matthias Klose <doko@debian.org>
2643
2644         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
2645         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
2646         (tm_file): Add mips/linux64.h.
2647         (tmake_file): Add mips/t-linux64.
2648         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
2649         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
2650         instead of hardcoded mabi=n32.
2651         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
2652         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
2653         convention.
2654
2655 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2656
2657         * passes.c (init_optimization_passes): Add invariant motion pass
2658         after induction variable optimization.
2659
2660 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
2661
2662         PR target/39633
2663         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
2664         offsets 1..5 set cc0 in a usable way.
2665
2666 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
2667
2668         * tree.h (call_expr_arg): Remove.
2669         (call_expr_argp): Likewise.
2670
2671 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
2672
2673         * config/sparc/sparc.md (save_register_window_1): Rename to...
2674         (window_save): ...this.
2675         * config/sparc/sparc.c (emit_save_register_window): Rename to...
2676         (emit_window_save): ...this.
2677         (sparc_expand_prologue): Adjust to above renaming.
2678
2679 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
2680
2681         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
2682         of movabs for x32.
2683
2684 2011-07-10  Richard Henderson  <rth@redhat.com>
2685
2686         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
2687         run final, instead of emitting text directly.
2688
2689 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
2690
2691         * config/i386/i386.c (ix86_option_override_internal): Turn on
2692         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
2693         small PIC models for TARGET_X32.
2694
2695 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
2696
2697         PR target/49684
2698         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
2699         $(LIBGCC2_CFLAGS).
2700
2701         PR bootstrap/49680
2702         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
2703         stray notes and debug insns by using prev_nonnote_nondebug_insn
2704         instead of PREV_INSN.
2705
2706 2011-07-09  Richard Henderson  <rth@redhat.com>
2707
2708         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
2709         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
2710         * dwarf2out.c: ... here.
2711         (output_all_cfis): Remove.
2712         (dwarf2out_switch_text_section): Use output_cfis directly.
2713         (size_of_locs): Export.
2714         (output_loc_sequence, output_loc_sequence_raw): Export.
2715         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
2716         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
2717         output_cfa_loc_raw): Move to ...
2718         * dwarfcfi.c: ... here.
2719         * dwarf2out.h: Update decls.
2720
2721 2011-07-09  Richard Henderson  <rth@redhat.com>
2722
2723         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
2724         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
2725         * dwarf2cfi.c: ... here.
2726         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
2727         (DWARF_ROUND, DWARF_CIE_ID): Remove.
2728         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
2729         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
2730         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
2731
2732 2011-07-09  Richard Henderson  <rth@redhat.com>
2733
2734         * dwarf2cfi.c (cie_return_save): New.
2735         (queue_reg_save): Use compare_reg_or_pc.
2736         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
2737         (dwarf2out_frame_debug_expr): Likewise.
2738         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
2739         (initial_return_save): Likewise.
2740         (execute_dwarf2_frame): Save and restore initial return save from
2741         the cie to the fde.
2742         * config/mips/mips.c (mips_frame_set): Remove special case for
2743         DWARF_FRAME_RETURN_COLUMN.
2744
2745 2011-07-09  Richard Henderson  <rth@redhat.com>
2746
2747         * dwarf2cfi.c (lookup_cfa): Remove.
2748         (execute_dwarf2_frame): Assert queues are empty on entry.
2749         Setup initial cfa directly, not via lookup_cfa.
2750         Don't clear args_size state here.
2751
2752 2011-07-09  Richard Henderson  <rth@redhat.com>
2753
2754         * dwarf2cfi.c (add_cfi_vec): New.
2755         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
2756         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
2757         (execute_dwarf2_frame): Set add_cfi_vec.
2758
2759 2011-07-09  Richard Henderson  <rth@redhat.com>
2760
2761         * defaults.h (ASM_COMMENT_START): Move here...
2762         * dwarf2asm.c: ... from here.
2763         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
2764         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
2765         * varasm.c: Likewise.
2766
2767 2011-07-09  Richard Henderson  <rth@redhat.com>
2768
2769         PR debug/49686
2770         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
2771         (create_cfi_notes): ... do it here instead.
2772
2773 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
2774
2775         PR debug/49676
2776         * dwarf2out.c (size_of_int_loc_descriptor): New function.
2777         (address_of_int_loc_descriptor): Use it.
2778         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
2779
2780 2011-07-09  Richard Henderson  <rth@redhat.com>
2781
2782         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
2783         (prologue, epilogue): New.
2784         (return, *rts): New.
2785         (blockage, setd, seti): New.
2786         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
2787         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2788         (pdp11_saved_regno): New.
2789         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
2790         generate rtl instead of text.
2791         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
2792         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
2793         * config/pdp11/pdp11-protos.h: Update.
2794
2795 2011-07-09  Richard Henderson  <rth@redhat.com>
2796
2797         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
2798         try to insert an rtl prologue here.
2799         (rs6000_output_function_epilogue): Similarly.
2800         * config/rs6000/rs6000.md (prologue): Emit a barrier to
2801         satisfy !TARGET_SCHED_PROLOG.
2802         (epilogue, sibcall_epilogue): Likewise.
2803
2804 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
2805
2806         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
2807         (FP_REG_P): Delete.
2808         (IN_OR_GLOBAL_P): Likewise.
2809
2810 2011-07-08  Jason Merrill  <jason@redhat.com>
2811
2812         PR c++/45437
2813         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
2814         compound assignment.
2815
2816         * cgraph.c (cgraph_add_to_same_comdat_group): New.
2817         * cgraph.h: Declare it.
2818         * ipa.c (function_and_variable_visibility): Make sure thunks
2819         have the right visibility.
2820
2821 2011-07-08  Richard Henderson  <rth@redhat.com>
2822
2823         PR bootstrap/49680
2824         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
2825         any tablejump vector.
2826
2827         PR bootstrap/49680
2828         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
2829         end of the prologue.
2830
2831 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
2832
2833         PR target/49621
2834         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
2835         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
2836         * config/rs6000/vector.md (vector_select_<mode>,
2837         vector_select_<mode>_uns): Change second operand of NE to
2838         CONST0_RTX (<MODE>mode) instead of const0_rtx.
2839         * config/rs6000/altivec.md (*altivec_vsel<mode>,
2840         *altivec_vsel<mode>_uns): Expect second operand of NE to be
2841         zero_constant of the corresponding vector mode.
2842         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
2843         Likewise.
2844
2845 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
2846
2847         * graphite-dependences.c (build_alias_set_powerset): Remove
2848         continue from loop, add one more assert.
2849
2850 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
2851
2852         PR target/46779
2853         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
2854         In particular, allow 8-bit values in r28 and r29.
2855         (avr_hard_regno_scratch_ok): Disallow any register that might be
2856         part of the frame pointer.
2857         (avr_hard_regno_rename_ok): Same.
2858         (avr_legitimate_address_p): Don't allow SUBREGs.
2859
2860 2011-07-08  Julian Brown  <julian@codesourcery.com>
2861
2862         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
2863         big-endian mode.
2864         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
2865         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
2866         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
2867         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
2868         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
2869         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
2870         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
2871         registers in big-endian mode.
2872
2873 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
2874
2875         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
2876         in terms of another.
2877         (write_attr_value): Write a cast if necessary.
2878
2879         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
2880         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
2881         (REG_WORDS_BIG_ENDIAN): Document.
2882         * doc/tm.texi: Regenerate.
2883         * reload.c (operands_match_p): Take it into account.
2884         (reload_adjust_reg_for_mode): Likewise.
2885         * rtlanal.c (subreg_get_info): Likewise.
2886
2887 2011-07-08  Richard Guenther  <rguenther@suse.de>
2888
2889         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
2890         folding.
2891
2892 2011-07-08  Kai Tietz  <ktietz@redhat.com>
2893
2894         * fold-const.c (fold_truth_andor): Factored out truth_andor
2895         label from fold_binary as function.
2896         (fold_binary_loc): Replace truth_andor lable
2897         by function fold_truth_andor.
2898
2899 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
2900
2901         PR middle-end/49519
2902         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
2903         check if address is stored in register. If so - give up.
2904         (check_sibcall_argument_overlap_1): Do not perform check of
2905         overlapping when it is call to address.
2906
2907 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
2908
2909         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
2910         of magic '31'.
2911
2912 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
2913
2914         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
2915         GET_MODE_BITSIZE where appropriate.
2916         (widen_leading, expand_parity, expand_ctz, expand_ffs,
2917         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
2918         expand_float, expand_fix): Likewise.
2919         * expr.c (convert_move, convert_modes, expand_expr_real_2,
2920         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
2921         * stor-layout.c (get_mode_bounds): Likewise.
2922         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
2923         Likewise.
2924         * convert.c (convert_to_integer): Likewise.
2925         * expmed.c (expand_shift_1): Likewise.
2926
2927         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
2928         a bitsize.
2929
2930         * optabs.c (expand_binop): Tighten conditions for doubleword
2931         expansions.
2932         (widen_bswap): Assert that mode bitsize and precision are the same.
2933         * stor-layout.c (get_best_mode): Skip modes that have lower
2934         precision than bitsize.
2935         * recog.c (simplify_while_replacing): Assert that bitsize and
2936         precision are the same.
2937
2938 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2939
2940         * Makefile.in (LIBGCOV): Remove.
2941         (libgcc.mvars): Remove LIBGCOV.
2942         * libgov.c: Move to ../libgcc.
2943
2944 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2945
2946         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
2947
2948 2011-07-08  Martin Jambor  <mjambor@suse.cz>
2949
2950         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
2951         is too big for total scalarization.
2952
2953 2011-07-07  Richard Henderson  <rth@redhat.com>
2954
2955         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
2956         (DBX_DEBUGGING_INFO): Undef.
2957
2958 2011-07-07  Richard Henderson  <rth@redhat.com>
2959
2960         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
2961         Handle some opcodes specially for debugging.
2962         * print-rtl.c: Include dwarf2out.h
2963         (print_rtx): Handle NOTE_INSN_CFI.
2964         * Makefile.in (print-rtl.o): Update.
2965
2966 2011-07-07  Richard Henderson  <rth@redhat.com>
2967
2968         * tree-pass.h (pass_dwarf2_frame): Declare.
2969         * passes.c (init_optimization_passes): Add it.
2970         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
2971         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
2972         make static, do not call add_cfis_to_fde.
2973         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
2974         dwarf2out_frame_init): Merge into...
2975         (execute_dwarf2_frame): ... here.  New function.
2976         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
2977         saved_do_cfi_asm to a tri-state variable.
2978         (gate_dwarf2_frame, pass_dwarf2_frame): New.
2979         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
2980         if it has yet to be done.  Don't call dwarf2cfi_function_init.
2981         * dwarf2out.h, debug.h: Update decls.
2982         * final.c (final_start_function): Don't call
2983         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
2984         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
2985         * toplev.c (lang_dependent_init): Likewise.
2986
2987 2011-07-07  Richard Henderson  <rth@redhat.com>
2988
2989         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
2990         FDE_TABLE_INCREMENT): Replace with...
2991         (fde_vec): ... this, a new vector.
2992         (current_fde): Remove.  Replace all users with cfun->fde.
2993         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
2994         (size_of_aranges, dwarf2out_finish): Likewise.
2995         (dwarf2out_alloc_current_fde): Break out from ...
2996         (dwarf2out_begin_prologue): ... here.
2997         (dwarf2out_frame_init): Remove.
2998         * dwarf2cfi.c: Update all users of current_fde.
2999         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
3000         * dwarf2out.h: Update decls.
3001         (dw_fde_node): Add fde_index member.
3002         * function.h (struct function): Add fde member.
3003
3004 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3005             Richard Henderson  <rth@redhat.com>
3006
3007         * dwarf2cfi.c (add_cfi): Remove.
3008         (dwarf2out_cfi_label): Remove force argument.  Only generate the
3009         label name.
3010         (add_fde_cfi): Simplify the different code paths.
3011         (add_cie_cfi): New.
3012         (old_cfa, old_cfa_remember): New.
3013         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
3014         (last_reg_save_label): Remove.
3015         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
3016         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3017         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3018         dwarf2out_frame_debug_cfa_expression,
3019         dwarf2out_frame_debug_cfa_restore,
3020         dwarf2out_frame_debug_cfa_window_save,
3021         dwarf2out_frame_debug_expr): Remove label parameter.
3022         (cfi_label_required_p, add_cfis_to_fde): New.
3023         (dwarf2out_frame_debug_after_prologue): New.
3024         (dwarf2cfi_frame_init): Initialize old_cfa.
3025         (dwarf2out_frame_debug_restore_state): Likewise.
3026         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
3027         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
3028         * final.c (final_start_function): Call
3029         dwarf2out_frame_debug_after_prologue.
3030
3031 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3032             Richard Henderson  <rth@redhat.com>
3033
3034         * dwarf2cfi.c (cfi_insn): New.
3035         (dwarf2out_cfi_label): Don't emit cfi label here.
3036         (add_fde_cfi): Create a NOTE_INSN_CFI.
3037         (dwarf2out_frame_debug): Setup cfi_insn.
3038         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
3039         (dwarf2out_cfi_begin_epilogue): Make static.
3040         (dwarf2out_frame_debug_restore_state): Make static.
3041         * dwarf2out.c (output_cfi_directive): Make static.
3042         (dwarf2out_emit_cfi): New.
3043         * dwarf2out.h: Update.
3044         * final.c (final): Remove CFI notes.
3045         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
3046         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
3047         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
3048         * insn-notes.def (NOTE_INSN_CFI): New.
3049         (NOTE_INSN_CFI_LABEL): New.
3050         * rtl.h (union rtunion_def): Add rt_cfi member.
3051         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
3052
3053 2011-07-07  Richard Henderson  <rth@redhat.com>
3054
3055         * dwarf2cfi.c: New file.
3056         * Makefile.in (OBJS): Add it.
3057         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
3058         * gengtype.c (open_base_files): Include dwarf2out.h.
3059         * coretypes.h (enum var_init_status): Move from ...
3060         * rtl.h: ... here.
3061         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
3062         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
3063         expand_builtin_dwarf_sp_column, init_return_column_size,
3064         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
3065         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
3066         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
3067         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
3068         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
3069         compute_barrier_args_size, dwarf2out_args_size,
3070         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
3071         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
3072         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
3073         queue_reg_save, dwarf2out_flush_queued_reg_saves,
3074         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
3075         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3076         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3077         dwarf2out_frame_debug_cfa_expression,
3078         dwarf2out_frame_debug_cfa_restore,
3079         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
3080         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
3081         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
3082         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
3083         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
3084         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
3085         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
3086         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
3087         dw_loc_descr_node): Move to dwarf2out.h.
3088         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
3089         mem_loc_descriptor): Export.
3090         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
3091         (dwarf2out_frame_init): Extract CIE generation code to
3092         dwarf2cfi_frame_init.
3093
3094 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
3095
3096         PR target/49660
3097         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
3098         MASK_V8PLUS, remove commented out flag and reorder.
3099
3100 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
3101
3102         PR c/49644
3103         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
3104         one non-complex and one complex argument, call c_save_expr on both
3105         operands.
3106
3107 2011-07-07  Martin Jambor  <mjambor@suse.cz>
3108
3109         PR middle-end/49495
3110         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
3111         (verify_cgraph_node): Some functinality moved to
3112         verify_edge_corresponds_to_fndecl, call it.
3113
3114 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3115
3116         * config.gcc (*local*): Remove.
3117         * doc/install-old.texi: Don't mention local configurations.
3118
3119 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
3120
3121         PR debug/49522
3122         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
3123         referencing debug insns that have been reset.
3124         (dead_debug_insert_before): Don't assert reg is non-NULL,
3125         instead return immediately if it is NULL.
3126
3127 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3128
3129         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
3130
3131 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3132
3133         * hw-doloop.c: New file.
3134         * hw-doloop.h: New file.
3135         * Makefile.in (OBJS): Add hw-doloop.o.
3136         (hw-doloop.o): New rule.
3137         ($(obj_out_file)): Add hw-doloop.h dependency.
3138         * config/bfin/bfin.c: Include "hw-doloop.h".
3139         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
3140         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
3141         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
3142         type changed to hwloop_info.  Return bool, true if the loop was
3143         successfully optimized.  Remove code that was moved to
3144         hw-doloop.c, and adjust other parts.
3145         (hwloop_fail): New static function, containing parts that used
3146         to be in bfin_optimize_loop.
3147         (bfin_discover_loop, bfin_discover_loops, free_loops,
3148         bfin_reorder_loops): Remove.
3149         (hwloop_pattern_reg): New static function.
3150         (bfin_doloop_hooks): New variable.
3151         (bfin_reorg_loops): Remove most code, call reorg_loops.
3152         * config/bfin/bfin.md (doloop_end splitter): Also enable if
3153         loop counter is a memory_operand.
3154
3155 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
3156
3157         * config.gcc: Support --with-multilib-list for x86 Linux targets.
3158
3159         * configure.ac: Mention x86-64 for --with-multilib-list.
3160         * configure: Regenerated.
3161
3162         * config/i386/gnu-user64.h (SPEC_64): Support x32.
3163         (SPEC_32): Likewise.
3164         (ASM_SPEC): Likewise.
3165         (LINK_SPEC): Likewise.
3166         (TARGET_THREAD_SSP_OFFSET): Likewise.
3167         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
3168         (SPEC_X32): New.
3169
3170         * config/i386/i386.h (TARGET_X32): New.
3171         (TARGET_LP64): New.
3172         (LONG_TYPE_SIZE): Likewise.
3173         (POINTER_SIZE): Likewise.
3174         (POINTERS_EXTEND_UNSIGNED): Likewise.
3175         (OPT_ARCH64): Support x32.
3176         (OPT_ARCH32): Likewise.
3177
3178         * config/i386/i386.opt (mx32): New.
3179
3180         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
3181         (GLIBC_DYNAMIC_LINKERX32): Likewise.
3182         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
3183         (GLIBC_DYNAMIC_LINKERX32): Likewise.
3184
3185         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
3186         (BIONIC_DYNAMIC_LINKERX32): Likewise.
3187         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
3188
3189         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
3190
3191         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
3192
3193         * doc/invoke.texi: Document -mx32.
3194
3195 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
3196
3197         * doc/invoke.texi (mwords-little-endian): Deprecate.
3198         * config/arm/arm.opt (mwords-little-endian): Likewise.
3199         * config/arm/arm.c (arm_option_override): Warn about the deprecation
3200         of -mwords-little-endian.
3201
3202 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
3203
3204         * reload1.c (choose_reload_regs): Use mode sizes to check whether
3205         an old reload register completely defines the required value.
3206
3207 2011-07-07  Richard Guenther  <rguenther@suse.de>
3208
3209         * fold-const.c (fold_unary_loc): Do not strip sign-changes
3210         for NEGATE_EXPR.
3211
3212 2011-07-07  Richard Guenther  <rguenther@suse.de>
3213
3214         * tree-vrp.c (simplify_conversion_using_ranges): New function.
3215         (simplify_stmt_using_ranges): Call it.
3216
3217 2011-07-07  Kai Tietz  <ktietz@redhat.com>
3218
3219         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
3220         (lookup_logical_inverted_value): Likewise.
3221         (simplify_bitwise_binary_1): Likewise.
3222         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
3223
3224 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3225
3226         * gcc.c (%[Spec]): Don't document.
3227         (struct spec_list): Update comment.
3228         (do_spec_1): Don't handle %[Spec].
3229         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
3230
3231 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3232
3233         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
3234         default based on TARGET_ASM_NAMED_SECTION.
3235         * common/common-target.def (have_named_sections): Default to true.
3236         * common/config/default-common.c: Don't include tm.h.
3237         * common/config/picochip/picochip-common.c
3238         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
3239         * common/config/m32c/m32c-common.c: Remove.
3240         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
3241         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3242         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3243         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3244         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3245         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3246         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3247
3248 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
3249
3250         PR middle-end/49640
3251         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
3252         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
3253
3254 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3255
3256         PR libmudflap/49550
3257         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
3258
3259 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3260
3261         PR target/39150
3262         * configure.ac (gcc_cv_as_hidden): Also accept
3263         x86_64-*-solaris2.1[0-9]*.
3264         (gcc_cv_as_cfi_directive): Likewise.
3265         (gcc_cv_as_comdat_group_group): Likewise.
3266         (set_have_as_tls): Likewise.
3267         * configure: Regenerate.
3268         * config.gcc (i[34567]86-*-solaris2*): Also handle
3269         x86_64-*-solaris2.1[0-9]*.
3270         * config.host (i[34567]86-*-solaris2*): Likewise.
3271         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
3272         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
3273         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
3274         (TARGET_LD_EMULATION): Use it.
3275         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
3276         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
3277         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
3278         (ASM_CPU64_DEFAULT_SPEC): Define.
3279         (ASM_CPU_SPEC): Use %(asm_cpu_default).
3280         (ASM_SPEC): Redefine.
3281         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
3282         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
3283         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
3284         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
3285         configuration.
3286         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
3287
3288 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3289
3290         * config/sol2.h (ASM_SPEC): Split into ...
3291         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
3292         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
3293         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
3294         (ASM_SPEC): Use ASM_SPEC_BASE.
3295         * config/sparc/sol2.h (ASM_SPEC): Redefine.
3296
3297 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
3298
3299         * config/avr/avr.md (*reload_insi): Change predicate #1 to
3300         const_int_operand.  Ditto for peep2 producing this insn.
3301         Add argument to output_reload_insisf call.
3302         (*movsi,*movsf): Add argument to output_movsisf call.
3303         (*reload_insf): New insn and new peep2 to produce it.
3304         * config/avr/avr-protos.h (output_movsisf): Change prototype.
3305         (output_reload_insisf): Change prototype.
3306         * config/avr/avr.c (avr_asm_len): New function.
3307         (output_reload_insisf): Rewrite.
3308         (output_movsisf): Change prototype.  output_reload_insisf for
3309         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
3310         (adjust_insn_length): Add argument to output_movsisf and
3311         output_reload_insisf call.
3312
3313 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3314
3315         * emit-rtl.c (paradoxical_subreg_p): New function.
3316         * rtl.h (paradoxical_subreg_p): Declare.
3317         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
3318         apply_distributive_law, simplify_comparison, simplify_set): Use it.
3319         * cse.c (record_jump_cond, cse_insn): Likewise.
3320         * expr.c (force_operand): Likewise.
3321         * rtlanal.c (num_sign_bit_copies1): Likewise.
3322         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
3323         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
3324         (push_reload): Use precision to check for paradoxical subregs.
3325         * expmed.c (extract_bit_field_1): Likewise.
3326
3327         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
3328         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
3329         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
3330         simplify_set, simplify_logical, expand_compound_operation,
3331         make_extraction, force_to_mode, if_then_else_cond, extended_count,
3332         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
3333         record_value_for_reg): Likewise.
3334         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
3335         * simplify-rtx. c (simplify_unary_operation_1,
3336         simplify_binary_operation_1, simplify_const_relational_operation):
3337         Likewise.
3338
3339         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
3340         instead of GET_MODE_BITSIZE where appropriate.
3341         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
3342         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
3343         init_num_sign_bit_copies_in_rep): Likewise.
3344         * cse.c (fold_rtx, cse_insn): Likewise.
3345         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
3346         * simplify-rtx.c (simplify_unary_operation_1,
3347         simplify_const_unary_operation, simplify_binary_operation_1,
3348         simplify_const_binary_operation, simplify_ternary_operation,
3349         simplify_const_relational_operation, simplify_subreg): Likewise.
3350         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
3351         simplify_if_then_else, simplify_set, expand_compound_operation,
3352         expand_field_assignment, make_extraction, if_then_else_cond,
3353         make_compound_operation, force_to_mode, make_field_assignment,
3354         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
3355         extended_count, try_widen_shift_mode, simplify_shift_const_1,
3356         simplify_comparison, record_promoted_value, simplify_compare_const,
3357         record_dead_and_set_regs_1): Likewise.
3358
3359         Revert:
3360         * simplify-rtx.c (simplify_const_binary_operation): Use the
3361         shift_truncation_mask hook instead of performing modulo by width.
3362         Compare against mode precision, not bitsize.
3363         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
3364         Use shift_truncation_mask instead of constructing the value manually.
3365
3366 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3367
3368         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
3369         declaration.
3370         (rs6000_save_toc_in_prologue_p): Ditto.
3371
3372         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
3373         up the static chain (r11) during indirect function calls.
3374         (-msave-toc-indirect): New undocumented debug switch.
3375
3376         * config/rs6000/rs6000.c (struct machine_function): Add
3377         save_toc_in_prologue field to note whether the prologue needs to
3378         save the TOC value in the reserved stack location.
3379         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
3380         to save the TOC in the prologue, do so.
3381         (rs6000_trampoline_init): Don't allow creating AIX style
3382         trampolines if -mno-r11 is in effect.
3383         (rs6000_call_indirect_aix): New function to create AIX style
3384         indirect calls, adding support for -mno-r11 to suppress loading
3385         the static chain, and saving the TOC in the prologue instead of
3386         the call body.
3387         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
3388         TOC in the prologue.
3389
3390         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
3391         register numbers.
3392         (TOC_REGNUM): Ditto.
3393         (STATIC_CHAIN_REGNUM): Ditto.
3394         (ARG_POINTER_REGNUM): Ditto.
3395         (SFP_REGNO): Delete, unused.
3396         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
3397         function descriptor offsets.
3398         (TOC_SAVE_OFFSET_64BIT): Ditto.
3399         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
3400         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
3401         (AIX_FUNC_DESC_SC_32BIT): Ditto.
3402         (AIX_FUNC_DESC_SC_64BIT): Ditto.
3403         (ptrload): New mode attribute for the appropriate load of a pointer.
3404         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
3405         (call_indirect_aix64): Ditto.
3406         (call_value_indirect_aix32): Ditto.
3407         (call_value_indirect_aix64): Ditto.
3408         (call_indirect_nonlocal_aix32_internal): Ditto.
3409         (call_indirect_nonlocal_aix32): Ditto.
3410         (call_indirect_nonlocal_aix64_internal): Ditto.
3411         (call_indirect_nonlocal_aix64): Ditto.
3412         (call): Rewrite AIX indirect function calls.  Add support for
3413         eliminating the static chain, and for moving the save of the TOC
3414         to the function prologue.
3415         (call_value): Ditto.
3416         (call_indirect_aix<ptrsize>): Ditto.
3417         (call_indirect_aix<ptrsize>_internal): Ditto.
3418         (call_indirect_aix<ptrsize>_internal2): Ditto.
3419         (call_indirect_aix<ptrsize>_nor11): Ditto.
3420         (call_value_indirect_aix<ptrsize>): Ditto.
3421         (call_value_indirect_aix<ptrsize>_internal): Ditto.
3422         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3423         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3424         (call_nonlocal_aix32): Relocate in the rs6000.md file.
3425         (call_nonlocal_aix64): Ditto.
3426
3427         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
3428         -mno-r11 documentation.
3429
3430 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
3431
3432         PR other/49658
3433         * doc/extend.texi (Compound Literals): Fix typo.
3434
3435 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
3436
3437         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
3438
3439 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
3440
3441         * configure.ac (plugin-version.h): Generate
3442         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
3443         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
3444         macros.
3445
3446         * configure: Regenerate.
3447
3448         * doc/plugins.texi (Building GCC plugins): Mention
3449         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
3450
3451 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
3452
3453         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
3454         * combine.c (make_extraction, gen_lowpart_or_truncate,
3455         apply_distributive_law, simplify_comparison,
3456         reg_truncated_to_mode, record_truncated_value): Use it.
3457         * cse.c (notreg_cost): Likewise.
3458         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
3459         * expr.c (convert_move, convert_modes): Likewise.
3460         * optabs.c (expand_binop, expand_unop): Likewise.
3461         * postreload.c (move2add_last_label): Likewise.
3462         * regmove.c (optimize_reg_copy_3): Likewise.
3463         * rtlhooks.c (gen_lowpart_general): Likewise.
3464         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3465
3466 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
3467
3468         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
3469
3470 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
3471
3472         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
3473         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
3474         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
3475         (simplify_const_unary_operation, simplify_binary_operation_1,
3476         simplify_const_binary_operation, simplify_const_relational_operation):
3477         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
3478         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
3479         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
3480         simplify_shift_const_1, simplify_comparison): Likewise.
3481         * expr.c (convert_modes): Likewise.
3482         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
3483         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
3484         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
3485
3486         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
3487
3488 2011-07-06  Richard Guenther  <rguenther@suse.de>
3489
3490         PR tree-optimization/49645
3491         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
3492         register variables.
3493         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
3494         in type qualification here ...
3495         (copy_reference_ops_from_ref): ... not here.
3496         (vn_reference_lookup_3): ... or here.
3497         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
3498         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
3499
3500 2011-07-06  Ian Lance Taylor  <iant@google.com>
3501
3502         * doc/install.texi (Configuration): It's
3503         --enable-gnu-indirect-function, not --enable-indirect-function.
3504
3505 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
3506
3507         * simplify-rtx.c (simplify_const_binary_operation): Use the
3508         shift_truncation_mask hook instead of performing modulo by width.
3509         Compare against mode precision, not bitsize.
3510         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
3511         Use shift_truncation_mask instead of constructing the value manually.
3512
3513 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
3514
3515         PR middle-end/47383
3516         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
3517         address computation and convert to address_mode if needed.
3518
3519 2011-07-06  Richard Guenther  <rguenther@suse.de>
3520
3521         * tree.c (build_common_tree_nodes_2): Merge with
3522         build_common_tree_nodes.
3523         * tree.h (build_common_tree_nodes): Adjust prototype.
3524         (build_common_tree_nodes_2): Remove.
3525         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
3526         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
3527
3528 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
3529
3530         PR tree-optimization/49618
3531         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
3532         t recurse on the decl.
3533         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
3534         return true if expr isn't known to be defined in current
3535         TU or some other LTO partition.
3536
3537 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
3538
3539         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
3540         override CASE_VALUES_THRESHOLD.
3541
3542         * stmt.c (toplevel): Include params.h.
3543         (case_values_threshold): Use the --param case-values-threshold
3544         value if non-zero, otherwise use machine dependent value.
3545         (expand_case): Use case_values_threshold.
3546
3547         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
3548
3549         * doc/invoke.texi (--param case-values-threshold): Document.
3550
3551 2011-07-05  Richard Henderson  <rth@redhat.com>
3552
3553         * dwarf2out.c (dwarf2out_cfi_label): Make static.
3554         (dwarf2out_flush_queued_reg_saves): Make static.
3555         (dwarf2out_reg_save): Remove.
3556         (dwarf2out_return_save): Remove.
3557         (dwarf2out_return_reg): Remove.
3558         (dwarf2out_reg_save_reg): Remove.
3559         (dwarf2out_def_cfa): Merge into ...
3560         (dwarf2out_frame_init): ... here.
3561         * dwarf2out.h, tree.h: Remove declarations as necessary.
3562
3563 2011-07-05  Richard Henderson  <rth@redhat.com>
3564
3565         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
3566         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3567         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
3568         the alloc insn.
3569
3570         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
3571         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
3572         (process_epilogue): Don't call dwarf2out_def_cfa.
3573
3574         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
3575         indicate the return address save.
3576         (process_cfa_register): Likewise.
3577
3578         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
3579         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
3580
3581         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
3582         for ar.pfs save at alloc insn.
3583
3584 2011-07-05  Richard Henderson  <rth@redhat.com>
3585
3586         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
3587         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3588         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
3589         stack pointer save.
3590         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
3591         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
3592         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
3593         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
3594
3595 2011-07-05  Richard Henderson  <rth@redhat.com>
3596
3597         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
3598         VUNSPEC_* constants here instead of via define_constants.
3599         (VUNSPEC_PEM): New constant.
3600         (procedure_entry_mask): New insn.
3601         (prologue): New expander.
3602         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
3603         (vax_expand_prologue): Rename from vax_output_function_prologue;
3604         emit rtl instead of text.
3605         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
3606         (print_operand): Add 'x' prefix.
3607
3608 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
3609
3610         PR middle-end/47715
3611         * calls.c (precompute_register_parameters): Promote the function
3612         argument before checking non-legitimate constant.
3613
3614 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
3615
3616         PR tree-optimization/47654
3617         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
3618         (lst_do_strip_mine_loop): Return an int.
3619         (lst_do_strip_mine): Same.
3620         (scop_do_strip_mine): Same.
3621         (scop_do_block): Loop blocking should strip-mine at least two loops.
3622         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
3623         (scop_do_interchange): Same.
3624         * graphite-poly.h (scop_do_interchange): Update declaration.
3625         (scop_do_strip_mine): Same.
3626
3627 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
3628
3629         * graphite-clast-to-gimple.c (precision_for_value): Removed.
3630         (precision_for_interval): Removed.
3631         (gcc_type_for_interval): Use mpz_sizeinbase.
3632
3633 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
3634
3635         * graphite-ppl.h (value_max): Correct computation of max.
3636
3637 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
3638
3639         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
3640
3641 2011-07-05  Richard Guenther  <rguenther@suse.de>
3642
3643         * c-decl.c (c_init_decl_processing): Defer building common
3644         tree nodes to c_common_nodes_and_builtins.
3645
3646 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
3647
3648         PR tree-optimization/49580
3649         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
3650         the loop's number of iterations.
3651         * tree-parloops.c (transform_to_exit_first_loop): Add the
3652         handling of the loop's number of iterations before the call
3653         to gimple_duplicate_sese_tail.
3654         Insert the stmt caclculating the new rhs of the loop's
3655         condition stmt to the preheader instead of iters_bb.
3656
3657 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
3658
3659         PR rtl-optimization/47449
3660         * fwprop.c (forward_propagate_subreg): Don't propagate hard
3661         register nor zero/sign extended hard register.
3662
3663 2011-07-05  Richard Guenther  <rguenther@suse.de>
3664
3665         PR tree-optimization/49518
3666         PR tree-optimization/49628
3667         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
3668         irrelevant and invariant data-references.
3669         (vect_analyze_data_ref_access): For invariant loads clear the
3670         group association.
3671
3672 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
3673
3674         PR rtl-optimization/49619
3675         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
3676         pass VOIDmode as op0_mode to recursive call, and return temp even
3677         when different from tor, just if it is not IOR of the original
3678         PLUS arguments.
3679
3680         PR rtl-optimization/49472
3681         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
3682         negating MULT, negate the second operand instead of first.
3683         (simplify_binary_operation_1) <case MULT>: If one operand is
3684         a NEG and the other is MULT, don't attempt to optimize by negation
3685         of the MULT operand if it only moves the NEG operation around.
3686
3687         PR debug/49602
3688         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
3689         get_current_def return value if it can't be trusted to be
3690         the current value of the variable in the current bb.
3691
3692 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
3693
3694         PR target/49600
3695         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
3696         general register to memory for !TARGET_INTER_UNIT_MOVES.
3697
3698 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
3699
3700         PR target/44643
3701         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
3702         instead of TREE_READONLY.
3703
3704 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
3705
3706         * doc/extend.texi (AVR Built-in Functions): Update documentation
3707         of __builtin_avr_fmul*.
3708         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
3709         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
3710         * config/avr/avr.md (fmul): Rename to fmul_insn.
3711         (fmuls): Rename to fmuls_insn.
3712         (fmulsu): Rename to fmulsu_insn.
3713         (fmul,fmuls,fmulsu): New expander.
3714         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
3715         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
3716         * config/avr/libgcc.S (__fmul): New function.
3717         (__fmuls): New function.
3718         (__fmulsu,__fmulsu_exit): New function.
3719
3720 2011-07-04  Richard Guenther  <rguenther@suse.de>
3721
3722         PR tree-optimization/49615
3723         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
3724         basic-block index check.
3725
3726 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
3727
3728         * longlong.h (count_leading_zeros, count_trailing_zeros,
3729         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
3730         resp. 64.
3731
3732 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
3733
3734         PR tree-optimization/49610
3735         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
3736         a basic block.
3737
3738 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
3739             Olivier Hainque  <hainque@adacore.com>
3740             Nicolas Setton  <setton@adacore.com>
3741
3742         * tree.h (TYPE_ARTIFICIAL): New flag.
3743         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
3744         the DIE of the type if it is artificial.
3745         (gen_array_type_die): Likewise.
3746         (gen_enumeration_type_die): Likewise.
3747         (gen_struct_or_union_type_die): Likewise.
3748         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
3749         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
3750
3751 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
3752
3753         * tree-object-size.c (pass_through_call): Handle
3754         BUILT_IN_ASSUME_ALIGNED.
3755
3756 2011-07-01  Martin Jambor  <mjambor@suse.cz>
3757
3758         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
3759
3760 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
3761
3762         PR middle-end/48016
3763         * explow.c (update_nonlocal_goto_save_area): Use proper mode
3764         for stack save area.
3765         * function.c (expand_function_start): Likewise.
3766
3767 2011-07-01  Richard Guenther  <rguenther@suse.de>
3768
3769         PR middle-end/49596
3770         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
3771         may have unknown refs.
3772
3773 2011-07-01  Kai Tietz  <ktietz@redhat.com>
3774
3775         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
3776
3777 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3778
3779         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
3780         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
3781         (Specific, mips-sgi-irix6): Likewise.
3782
3783 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3784
3785         PR libmudflap/49549
3786         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
3787
3788 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
3789
3790         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
3791         [idx]= and [idx1 ... idx2]= before initializers if needed for
3792         array initializers.
3793
3794 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
3795
3796         * config.gcc (score-*-elf): Remove score7.o.
3797         * config/score/t-score-elf: Likewise.
3798         * config/score/score.c: Merge score7 to score.c and
3799         remove forwarding functions.
3800         * config/score/score7.c: Deleted.
3801         * config/score/score7.h: Deleted.
3802
3803 2011-07-01  Richard Guenther  <rguenther@suse.de>
3804
3805         PR tree-optimization/49603
3806         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
3807
3808 2011-06-30  Martin Jambor  <mjambor@suse.cz>
3809
3810         * tree-sra.c (struct access): Rename total_scalarization to
3811         grp_total_scalarization
3812         (completely_scalarize_var): New function.
3813         (sort_and_splice_var_accesses): Set total_scalarization in the
3814         representative access.
3815         (analyze_access_subtree): Propagate total scalarization accross the
3816         tree, no holes in totally scalarized trees, simplify coverage
3817         computation.
3818         (analyze_all_variable_accesses): Call completely_scalarize_var instead
3819         of completely_scalarize_record.
3820
3821 2011-06-30  Richard Henderson  <rth@redhat.com>
3822
3823         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
3824         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
3825         * config/i386/i386.c: Don't include dwarf2out.h.
3826         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
3827         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
3828         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
3829         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
3830         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
3831
3832 2011-06-30  Richard Henderson  <rth@redhat.com>
3833
3834         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
3835         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3836         * final.c (final_scan_insn): Look for it, and invoke
3837         dwarf2out_frame_debug before the insn if found.
3838
3839 2011-06-30  Richard Henderson  <rth@redhat.com>
3840
3841         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
3842         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
3843
3844 2011-06-30  Richard Henderson  <rth@redhat.com>
3845
3846         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
3847         Define a vector of this type.
3848         (regs_saved_in_regs): Use a VEC.
3849         (num_regs_saved_in_regs): Remove.
3850         (compare_reg_or_pc): New.
3851         (record_reg_saved_in_reg): Split out from...
3852         (dwarf2out_flush_queued_reg_saves): ... here.
3853         (clobbers_queued_reg_save): Update for VEC.
3854         (reg_saved_in): Likewise.
3855         (dwarf2out_frame_debug_init): Likewise.
3856         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
3857         (dwarf2out_frame_debug_cfa_register): Likewise.
3858
3859 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3860
3861         PR tree-optimization/49572
3862         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
3863         type of the RHS instead of that of the LHS for the expression type.
3864
3865 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3866
3867         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
3868         unconditionally.
3869
3870 2011-06-30  Richard Guenther  <rguenther@suse.de>
3871
3872         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
3873         * tree-ssa-structalias.c (create_variable_info_for): Do not
3874         add initial constraints for non-var-decls.  Properly handle
3875         globals in other ltrans partitions.
3876         (intra_create_variable_infos): Manually create constraints for
3877         the fake no-alias parameter.
3878         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
3879         and assert there are no clones.
3880
3881 2011-06-30  Richard Guenther  <rguenther@suse.de>
3882
3883         PR tree-optimization/46787
3884         * tree-data-ref.c (dr_address_invariant_p): Remove.
3885         (find_data_references_in_stmt): Invariant accesses are ok now.
3886         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
3887         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
3888         invariant loads.
3889
3890 2011-06-30  Martin Jambor  <mjambor@suse.cz>
3891
3892         PR tree-optimization/49094
3893         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
3894         (build_accesses_from_assign): Use it.
3895
3896 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
3897
3898         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3899         handling of BUILT_IN_ASSUME_ALIGNED.
3900
3901         PR debug/49364
3902         * dwarf2out.c (output_abbrev_section): Don't return early
3903         if abbrev_die_table_in_use is 1.
3904         (dwarf2out_finish): Instead don't call output_abbrev_section
3905         nor emit abbrev_section_label in that case.
3906
3907 2011-06-30  Nick Clifton  <nickc@redhat.com>
3908
3909         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
3910         for the V850E.
3911
3912 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
3913
3914         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3915         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
3916
3917 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
3918
3919         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3920         both pattern and original statements if necessary.
3921         (vect_transform_loop): Likewise.
3922         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
3923         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
3924         Mark the pattern statement only if the original statement doesn't
3925         have its own uses.
3926         (process_use): Call vect_mark_relevant with additional parameter.
3927         (vect_mark_stmts_to_be_vectorized): Likewise.
3928         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
3929         (vect_analyze_stmt): Handle both pattern and original statements
3930         if necessary.
3931         (vect_transform_stmt): Don't store vectorized pattern statement
3932         in the original statement.
3933         (vect_is_simple_use_1): Use related pattern statement only if the
3934         original statement is irrelevant.
3935         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
3936
3937 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
3938
3939         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
3940         option.
3941         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
3942         entry.
3943         (TARGET_AVX128_OPTIMAL): New definition.
3944         * config/i386/i386.c (initial_ix86_tune_features): Initialize
3945         X86_TUNE_AVX128_OPTIMAL entry.
3946         (ix86_option_override_internal): Enable the generation
3947         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
3948         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
3949         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
3950
3951 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
3952
3953         PR tree-optimization/49539
3954         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
3955         names by means of stmt_references_abnormal_ssa_name.
3956         (associate_plusminus): Call can_propagate_from before propagating
3957         from definition statements.
3958         (ssa_forward_propagate_and_combine): Remove superfluous newline.
3959
3960 2011-06-29  Richard Guenther  <rguenther@suse.de>
3961
3962         * doc/invoke.texi: Document -scev dump modifier.
3963         * tree-pass.h (TDF_SCEV): New dump flag.
3964         * tree-dump.c (dump_option_value_in): Add scev.
3965         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
3966         * tree-scalar-evolution.c: Likewise.
3967
3968 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
3969
3970         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
3971         (cxa_type_match): Correct declaration.
3972         (__gnu_unwind_pr_common): Reconstruct additional indirection
3973         when __cxa_type_match returns succeeded_with_ptr_to_base.
3974
3975 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3976
3977         PR rtl-optimization/49114
3978         * reload.c (struct replacement): Remove SUBREG_LOC member.
3979         (push_reload): Do not set it.
3980         (push_replacement): Likewise.
3981         (subst_reload): Remove dead code.
3982         (copy_replacements): Remove assertion.
3983         (copy_replacements_1): Do not handle SUBREG_LOC.
3984         (move_replacements): Likewise.
3985         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
3986         Detect subregs via recursive descent instead of via SUBREG_LOC.
3987
3988 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
3989
3990         * config/avr/avr.c (avr_encode_section_info): Dispatch to
3991         default_encode_section_info.
3992
3993 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
3994
3995         PR tree-optimization/49545
3996         * builtins.c (get_object_alignment_1): Update function comment.
3997         Do not use DECL_ALIGN for functions, but test
3998         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
3999         * fold-const.c (get_pointer_modulus_and_residue): Don't check
4000         for functions here.
4001         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
4002
4003 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
4004
4005         PR debug/49567
4006         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
4007         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
4008
4009 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
4010
4011         PR target/34734
4012         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
4013         about uninitialized data attributed 'progmem' from here...
4014         (avr_encode_section_info): ...to this new function.
4015         (TARGET_ENCODE_SECTION_INFO): New define.
4016         (avr_section_type_flags): For data in ".progmem.data", remove
4017         section flag SECTION_WRITE.
4018
4019 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
4020
4021         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
4022         _xmulhisi3_exit.
4023         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
4024         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
4025         (__umulhisi3): Ditto.
4026         * config/avr/avr.md (mulhisi3): New insn expender.
4027         (umulhisi3): New insn expender.
4028         (*mulhisi3_call): New insn.
4029         (*umulhisi3_call): New insn.
4030
4031 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
4032
4033         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
4034
4035 2011-06-28  Richard Henderson  <rth@redhat.com>
4036
4037         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
4038         all code and arguments that handled pushes.  Update all callers.
4039
4040 2011-06-28  Richard Henderson  <rth@redhat.com>
4041
4042         * config/arm/arm.c (arm_output_function_prologue): Don't call
4043         thumb1_output_function_prologue.
4044         (arm_expand_prologue): Avoid dead store.
4045         (number_of_first_bit_set): Use ctz_hwi.
4046         (thumb1_emit_multi_reg_push): New.
4047         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
4048         to emit the entire prologue as rtl.
4049         (thumb1_output_interwork): Split out from
4050         thumb1_output_function_prologue.
4051         (thumb1_output_function_prologue): Remove.
4052         (arm_attr_length_push_multi): Handle thumb1.
4053         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
4054         (prologue_thumb1_interwork): New.
4055         (*push_multi): Allow thumb1; use push_mult_memory_operand.
4056         * config/arm/predicates.md (push_mult_memory_operand): New.
4057
4058 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
4059
4060         * config/sparc/sync.md (*stbar): Delete.
4061         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
4062
4063 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
4064
4065         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
4066
4067 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4068
4069         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
4070         (TARGET_64BIT_DEFAULT): Define.
4071         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
4072         of tm_file.
4073         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
4074
4075 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
4076
4077         * common.opt (in_lto_p): New Variable entry.
4078         * flags.h (in_lto_p): Move to common.opt.
4079         * gcc.c: Include params.h.
4080         (set_option_handlers): Also use common_handle_option and
4081         target_handle_option.
4082         (main): Call global_init_params, finish_params and init_options_struct.
4083         * opts.c (debug_type_names): Move from toplev.c.
4084         (print_filtered_help): Access quiet_flag through opts pointer.
4085         (common_handle_option): Return early in the driver for some options.
4086         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
4087         opts pointer.
4088         * toplev.c (in_lto_p): Move to common.opt.
4089         (debug_type_names): Move to opts.c.
4090         * Makefile.in (OBJS): Remove opts.o.
4091         (OBJS-libcommon-target): Add opts.o.
4092         (gcc.o): Update dependencies.
4093
4094 2011-06-28  Kai Tietz  <ktietz@redhat.com>
4095
4096         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
4097
4098 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4099
4100         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
4101         with '=' constraint modifier.
4102         (*divdf3_vfp): Likewise.
4103         ("*mulsf3_vfp"): Likewise.
4104         ("*muldf3_vfp"): Likewise.
4105         ("*mulsf3negsf_vfp"): Likewise.
4106         ("*muldf3negdf_vfp"): Likewise.
4107
4108 2011-06-28  Nick Clifton  <nickc@redhat.com>
4109
4110         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
4111         relaxation when performing an incremental link.
4112
4113 2011-06-28  Kai Tietz  <ktietz@redhat.com>
4114
4115         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
4116         within BB from last to first.
4117
4118 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
4119
4120         * genattr-common.c: New.  Based on genattr.c.
4121         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
4122         (MOSTLYCLEANFILES): Add insn-attr-common.h.
4123         (opts.o): Update dependencies.
4124         (.PRECIOUS): Add insn-attr-common.h.
4125         (simple_rtl_generated_h): Add insn-attr-common.h.
4126         (build/genattr-common.o): New.
4127         (genprogrtl): Add attr-common.
4128         * genattr.c (main): Include insn-attr-common.h.  Don't generate
4129         definitions of DELAY_SLOTS or INSN_SCHEDULING.
4130         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
4131
4132 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
4133
4134         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
4135         avr-*-* and avr-*-rtems* targets.
4136
4137         * config/avr/elf.h: New file.
4138         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
4139         (TARGET_ASM_SELECT_SECTION): Define.
4140         (INIT_SECTION_ASM_OP): Undefine.
4141         (FINI_SECTION_ASM_OP): Undefine.
4142         (READONLY_DATA_SECTION_ASM_OP): Undefine.
4143         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
4144         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
4145         * config/avr/avr.h:
4146         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
4147         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
4148         (MAX_OFILE_ALIGNMENT): Move to elf.h.
4149         (STRING_LIMIT): Move to elf.h.
4150         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
4151         (ASM_DECLARE_OBJECT_NAME): Remove.
4152         (ESCAPES): Remove.
4153         (ASM_OUTPUT_SKIP): Remove.
4154         (DWARF2_DEBUGGING_INFO): Remove.
4155         (OBJECT_FORMAT_ELF): Remove.
4156         (USER_LABEL_PREFIX): Remove.
4157         (ASM_OUTPUT_EXTERNAL): Remove.
4158         (ASM_OUTPUT_ASCII): Remove.
4159         (TYPE_ASM_OP): Remove.
4160         (SIZE_ASM_OP): Remove.
4161         (WEAK_ASM_OP): Remove.
4162         (STRING_ASM_OP): Remove.
4163         (SET_ASM_OP): Remove.
4164         (ASM_WEAKEN_LABEL): Remove.
4165         (TYPE_OPERAND_FMT): Remove.
4166         (ASM_DECLARE_FUNCTION_SIZE): Remove.
4167         (ASM_FINISH_DECLARE_OBJECT): Remove.
4168         (NO_DOLLAR_IN_LABEL): Remove.
4169         (ASM_GENERATE_INTERNAL_LABEL): Remove.
4170         (ASM_OUTPUT_CASE_LABEL): Remove.
4171         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
4172         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
4173         (gas_output_ascii): Remove.
4174         (gas_output_limited_string): Remove.
4175         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
4176         * config/avr/avr-protos.h
4177         (gas_output_ascii): Remove prototye.
4178         (gas_output_limited_string): Remove prototype.
4179
4180 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
4181
4182         PR target/48637
4183         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
4184         asm operands.
4185
4186 2011-06-27  Jan Hubicka  <jh@suse.cz>
4187
4188         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
4189         node instead of references in node.
4190
4191 2011-06-27  Richard Henderson  <rth@redhat.com>
4192
4193         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
4194         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
4195         inside ifdef.
4196
4197 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
4198
4199         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
4200
4201         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
4202         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
4203         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
4204         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
4205         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
4206         (evaluate_stmt, execute_fold_all_builtins): Handle
4207         BUILT_IN_ASSUME_ALIGNED.
4208         * tree-ssa-dce.c (propagate_necessity): Likewise.
4209         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4210         call_may_clobber_ref_p_1): Likewise.
4211         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
4212         (expand_builtin_assume_aligned): New function.
4213         * doc/extend.texi (__builtin_assume_aligned): Document.
4214
4215         PR debug/49544
4216         * cselib.c (promote_debug_loc): If cselib_preserve_constants
4217         and l has two DEBUG_INSN owned locs instead of just one, adjust
4218         the second location's setting_insn too.
4219
4220 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4221
4222         PR libmudflap/38738
4223         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
4224
4225 2011-06-27  Nick Clifton  <nickc@redhat.com>
4226
4227         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
4228         bit position of highest bit set into a count of the high zero bits.
4229
4230 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
4231
4232         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
4233
4234 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
4235
4236         PR lto/48492
4237         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
4238         to a NULL parent.
4239
4240 2011-06-27  Richard Guenther  <rguenther@suse.de>
4241
4242         PR tree-optimization/49394
4243         * passes.c (execute_one_pass): Restore current_pass after
4244         applying IPA transforms.
4245
4246 2011-06-27  Kai Tietz  <ktietz@redhat.com>
4247
4248         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
4249         out of type precision after operation.
4250         (find_bswap): Take for limit value the integer auto-promotion
4251         into account.
4252
4253 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
4254
4255         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
4256         forward scan as well.
4257
4258 2011-06-27  Tristan Gingold  <gingold@adacore.com>
4259
4260         PR target/44241
4261         * config/vms/vms-protos.h: New file.
4262         * config/vms/vms-crtlmap.map: New file.
4263         * config/vms/vms.c: New file.
4264         * config/vms/make-crtlmap.awk: New file.
4265         * config/vms/vms-crtl.h: File removed.
4266         * config/vms/vms-crtl-64.h: File removed.
4267         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
4268         * config/alpha/vms64.h: Do not include vms-crtl-64.h
4269         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
4270         clear some builtins on VMS.  Calls vms_patch_builtins.
4271         (avms_asm_output_external): Remove.
4272         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
4273         (struct crtl_name_spec): Remove
4274         (DO_CTRL_NAMES): Remove.
4275         * config/ia64/vms.h (struct crtl_name_spec): Remove
4276         (DO_CTRL_NAMES): Remove.
4277         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
4278         clear some builtins on VMS.  Calls vms_patch_builtins.
4279         (ia64_asm_output_external): Remove DO_CRTL_NAME.
4280         * config/ia64/vms64.h: Do not include vms-crtl-64.h
4281         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
4282
4283 2011-06-27  Tristan Gingold  <gingold@adacore.com>
4284
4285         * config/alpha/alpha.c (alpha_end_function): Always generate .end
4286         directive on VMS.
4287
4288 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
4289
4290         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
4291         the function receives nonlocal gotos.
4292
4293 2011-06-27  Richard Guenther  <rguenther@suse.de>
4294
4295         PR tree-optimization/49536
4296         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
4297         For non-scalar inner types use a scalar type according to
4298         the scalar inner mode.
4299
4300 2011-06-27  Richard Guenther  <rguenther@suse.de>
4301
4302         PR tree-optimization/49365
4303         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
4304
4305 2011-06-27  Richard Guenther  <rguenther@suse.de>
4306
4307         PR tree-optimization/49169
4308         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
4309         the alignment of function decls.
4310
4311 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
4312
4313         PR target/47997
4314         * config/darwin.c (darwin_mergeable_string_section): Place string
4315         constants in '.cstring' rather than '.const' when CF/NSStrings are
4316         active.
4317
4318 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
4319
4320         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
4321         (emit_save_register_window): Likewise.
4322         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
4323         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
4324         Swap back %o7/%i7 in register naming.
4325
4326 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
4327
4328         PR driver/49371
4329         * config/darwin.c (darwin_override_options): Improve warning when
4330         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
4331         is given with fpie/fPIE.
4332         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
4333         * config/darwin9.h (PIE_SPEC): New.
4334
4335 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
4336
4337         * timevar.c (timevar_print): Increase width for display of timevar
4338         name.
4339
4340 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
4341
4342         PR c++/46400
4343         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
4344         instead of TYPE_CHAIN for chain_next for types.
4345
4346 2011-06-24  Richard Henderson  <rth@redhat.com>
4347
4348         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
4349         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
4350         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
4351         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
4352         (sparc_flat_expand_prologue): Emit individual instructions
4353         instead of one of the above.
4354
4355 2011-06-24  Easwaran Raman  <eraman@google.com>
4356
4357         PR rtl-optimization/49429
4358         PR target/49454
4359         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
4360         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
4361         used to copy y into x.
4362         * calls.c (initialize_argument_information): Mark
4363         an argument addressable if it is passed by invisible reference.
4364         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
4365         if it is passed by reference.
4366
4367 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
4368
4369         PR rtl-optimization/49504
4370         * rtlanal.c (nonzero_bits1): Properly handle addition or
4371         subtraction of a pointer in Pmode if pointers extend unsigned.
4372         (num_sign_bit_copies1): Likewise.
4373
4374 2011-06-24  Martin Jambor  <mjambor@suse.cz>
4375
4376         PR tree-optimizations/49516
4377         * tree-sra.c (sra_modify_assign): Choose the safe path for
4378         aggregate copies if we also did scalar replacements.
4379
4380 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4381
4382         PR target/49335
4383         * config/arm/predicates.md (add_operator): New.
4384         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
4385
4386 2011-06-24  Andi Kleen  <ak@linux.intel.com>
4387
4388         * tree-sra.c (type_internals_preclude_sra_p): Add msg
4389         parameter. Split up ifs and report reason in *msg.
4390         (reject): Add.
4391         (find_var_candiate): Add msg variable.
4392         Split up ifs and report reason to reject.
4393         (find_param_candidates): Add msg variable.
4394         Pass msg to type_internals_preclude_sra_p.
4395
4396 2011-06-23  Jeff Law  <law@redhat.com>
4397
4398         PR middle-end/48770
4399         * reload.h (reload): Change to return a bool.
4400         * ira.c (ira): If requested by reload, run a fast DCE pass after
4401         reload has completed.  Fix comment typo.
4402         * reload1.c (need_dce): New file scoped static.
4403         (reload): Set reload_completed here.  Return whether or not a DCE
4404         pass after reload is needed.
4405         (delete_dead_insn): Set need_dce as needed.
4406
4407         PR middle-end/49465
4408         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
4409         to detect threading through joiner block.  If there was already
4410         an edge to the new target, then do not change the PHI nodes.
4411
4412 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
4413
4414         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
4415         get_pointer_alignment to see if base isn't sufficiently aligned.
4416
4417 2011-06-23  Jan Hubicka  <jh@suse.cz>
4418
4419         PR tree-optimize/49373
4420         * tree-pass.h (all_late_ipa_passes): Declare.
4421         * cgraphunit.c (init_lowered_empty_function): Fix properties.
4422         (cgraph_optimize): Execute late passes; remove unreachable funcions
4423         after materialization.
4424         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
4425         LTOing.
4426         * passes.c (all_late_ipa_passes): Declare.
4427         (dump_passes, register_pass): Handle late ipa passes.
4428         (init_optimization_passes): Move ipa_pta to late passes; schedule
4429         fixup_cfg at beggining of all_passes.
4430         (apply_ipa_transforms): New function.
4431         (execute_one_pass): When doing simple ipa pass, apply all transforms.
4432
4433 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
4434
4435         * params.c: Include common/common-target.h.  Don't include tm.h.
4436         (lang_independent_params): Move from toplev.c.
4437         (global_init_params): New.
4438         * params.h (global_init_params): Declare.
4439         * target.def (default_params): Move to common-target.def.
4440         * toplev.c (lang_independent_options): Remove.
4441         (lang_independent_params): Move to params.c.
4442         (general_init): Use global_init_params.
4443         * common/common-target.def (option_default_params): Move from
4444         target.def.
4445         * common/config/ia64/ia64-common.c: Include params.h.
4446         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4447         from ia64.c.
4448         * common/config/rs6000/rs6000-common.c: Include params.h.
4449         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4450         from rs6000.c.
4451         * common/config/sh/sh-common.c: Include params.h.
4452         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4453         from sh.c.
4454         * common/config/spu/spu-common.c: Include params.h.
4455         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4456         from spu.c.
4457         * config/ia64/ia64.c (ia64_option_default_params,
4458         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
4459         * config/rs6000/rs6000.c (rs6000_option_default_params,
4460         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
4461         * config/sh/sh.c (sh_option_default_params,
4462         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
4463         * config/spu/spu.c (spu_option_default_params,
4464         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
4465         * Makefile.in (OBJS): Remove params.o.
4466         (OBJS-libcommon-target): Add params.o.
4467         (params.o, $(common_out_object_file)): Update dependencies.
4468         * doc/tm.texi: Regenerate.
4469
4470 2011-06-23  Alan Modra  <amodra@gmail.com>
4471
4472         PR bootstrap/49383
4473         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
4474         invocation for 2011-06-09 changes.
4475
4476 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
4477
4478         PR libgomp/49490
4479         * omp-low.c (expand_omp_for_static_nochunk): Only
4480         use n ceil/ nthreads size for the first n % nthreads threads in the
4481         team instead of all threads except for the last few ones which
4482         get less work or none at all.
4483
4484         PR debug/49496
4485         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
4486         uses.
4487
4488 2011-06-22  Richard Guenther  <rguenther@suse.de>
4489
4490         PR tree-optimization/49493
4491         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
4492         Refer to the alias target of variables.
4493         (associate_varinfo_to_alias_1): Remove.
4494         (ipa_pta_execute): Do not associate aliases with anything.
4495         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
4496         (cgraph_function_node): Likewise.
4497         (cgraph_function_or_thunk_node): Likewise.
4498         (varpool_variable_node): Likewise.
4499
4500 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
4501
4502         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
4503         * config.gcc (arm*-*-linux*): Default to gnu tls.
4504         (arm*-*-*): Add --with-tls option.
4505         (all_defaults): Add 'tls'.
4506
4507 2011-06-22  Richard Henderson  <rth@redhat.com>
4508
4509         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
4510         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4511         (dwarf2out_frame_debug_cfa_window_save): Rename from
4512         dwarf2out_window_save; make static.
4513         * tree.h (dwarf2out_window_save): Don't declare.
4514
4515         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
4516         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4517         (emit_save_register_window): Rename from gen_save_register_window;
4518         emit the insn and add REG_CFA_* notes.
4519         (sparc_expand_prologue): Update to match.
4520         * config/sparc/sparc.md (save_register_window_1): Simplify from
4521         save_register_window<P:mode>.
4522
4523 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
4524
4525         PR target/49497
4526         * config/i386/i386.md (*lea_general_2): Always allow SImode.
4527         (*lea_general_2_zext): Likewise.
4528         (imul to lea peepholes): Use const359_operand and check
4529         TARGET_PARTIAL_REG_STALL.
4530
4531         * config/i386/predicates.md (const359_operand): New.
4532
4533 2011-06-22  Michael Matz  <matz@suse.de>
4534
4535         * cgraphunit.c (assemble_thunk): Use correct return type.
4536
4537 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
4538             Dmitry Melnik  <dm@ispras.ru>
4539
4540         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
4541         (neon_output_shift_immediate): Ditto.
4542         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
4543         prototype.
4544         (neon_output_shift_immediate): Ditto.
4545         * config/arm/neon.md (vashl<mode>3): Modified constraint.
4546         (vashr<mode>3_imm): New insn pattern.
4547         (vlshr<mode>3_imm): Ditto.
4548         (vashr<mode>3): Modified constraint.
4549         (vlshr<mode>3): Ditto.
4550         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
4551         predicate.
4552         (imm_for_neon_rshift_operand): Ditto.
4553         (imm_lshift_or_reg_neon): Ditto.
4554         (imm_rshift_or_reg_neon): Ditto.
4555
4556         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
4557
4558 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
4559
4560         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
4561         builtin calls even if likelyvalue is not CONSTANT.
4562         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
4563         Return get_value_for_expr of first operand
4564         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
4565         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4566         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
4567         their non-checking counterparts.
4568         (call_may_clobber_ref_p_1): Likewise.
4569         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
4570         like their non-checking counterparts.
4571         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4572         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
4573         like their non-checking counterparts.
4574         (find_func_clobbers): Likewise.
4575         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
4576         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
4577
4578         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
4579         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
4580         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
4581         of base type reference as argument.
4582         (resolve_addr_in_expr): Likewise.  Fix keep computation.
4583         (convert_descriptor_to_signed): Renamed to...
4584         (convert_descriptor_to_mode): ... this.  For wider types convert to
4585         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
4586         (typed_binop): New function.
4587         (scompare_loc_descriptor, ucompare_loc_descriptor,
4588         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
4589         default to unsigned type instead of signed.
4590
4591         PR debug/47858
4592         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
4593         (gimple_build_debug_source_bind_stat): New prototype.
4594         (gimple_build_debug_source_bind): Define.
4595         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
4596         gimple_debug_source_bind_get_value,
4597         gimple_debug_source_bind_get_value_ptr,
4598         gimple_debug_source_bind_set_var,
4599         gimple_debug_source_bind_set_value): New inlines.
4600         * gimple.c (gimple_build_debug_source_bind_stat): New function.
4601         * gimple-pretty-print.c (dump_gimple_debug): Handle
4602         GIMPLE_DEBUG_SOURCE_BIND.
4603         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
4604         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4605         * tree-parloops.c (eliminate_local_variables,
4606         separate_decls_in_region): Likewise.
4607         (separate_decls_in_region_debug): Renamed from
4608         separate_decls_in_region_debug_bind.  Handle
4609         gimple_debug_source_bind_p.
4610         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
4611         prototypes.
4612         (DECL_HAS_DEBUG_ARGS_P): Define.
4613         (struct tree_function_decl): Add has_debug_args_flag field.
4614         * tree.c (debug_args_for_decl): New variable.
4615         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
4616         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
4617         (rewrite_debug_stmt_uses): New function.
4618         (rewrite_stmt): Use it to rewrite debug stmt uses.
4619         * rtl.def (DEBUG_PARAMETER_REF): New.
4620         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
4621         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
4622         DEBUG_PARAMETER_REF.
4623         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
4624         * print-rtl.c (print_rtx): Likewise.
4625         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
4626         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
4627         debug stmts in the first bb.
4628         * tree-inline.c (remap_ssa_name): If remapping default def
4629         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
4630         a source bind debug stmt.
4631         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
4632         (maybe_move_debug_stmts_to_successors): Likewise.
4633         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
4634         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
4635         debug args vector from old_decl to new_decl.
4636         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
4637         or modified parameters, add debug bind stmts before call
4638         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
4639         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
4640         on DECL_DEBUG_EXPRs from debug args vector.
4641         (expand_debug_source_expr): New function.
4642         (expand_debug_locations): Use it for source bind insns.
4643         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
4644         * var-tracking.c (prepare_call_arguments): Add debug args
4645         to call_arguments if any.
4646         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
4647         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
4648         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
4649         (get_ref_die_offset, parameter_ref_descriptor): New functions.
4650         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
4651         (gen_subprogram_die): Handle parameters identified by
4652         DEBUG_PARAMETER_REF.
4653
4654 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
4655
4656         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
4657         * doc/install.texi (Configuration): Document --with-tls.
4658         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
4659         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
4660         (arm_tls_descseq_addr): New.
4661         (legitimize_tls_address): Add tlsdesc support.
4662         (arm_cannot_copy_insn_p): Check for tlscall.
4663         (arm_emit_tls_decoration): Likewise.
4664         * config/arm/arm.h (TARGET_GNU2_TLS): New.
4665         (OPTION_DEFAULT_SPECS): Add with-tls support.
4666         * config/arm/arm.md (R1_REGNUM): Define.
4667         (tlscall): New.
4668         * config/arm/arm.opt (tls_type): New enumeration type and values.
4669         (mtls-dialect): New switch.
4670         * config/arm/arm-opts.h (enum tls_type): New.
4671
4672 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
4673
4674         * attribs.c (register_attribute): Added assert to check that all
4675         attribute specs are registered with a name that is not empty and
4676         does not start with '_'.
4677         (decl_attributes): Avoid the lookup of the "naked" attribute spec
4678         if the function has no attributes.
4679         * tree.c (is_attribute_with_length_p): Removed.
4680         (is_attribute_p): Removed.
4681         (private_is_attribute_p): New.
4682         (private_lookup_attribute): New.
4683         (lookup_attribute): Removed.
4684         (lookup_ident_attribute): New.
4685         (remove_attribute): Require the first argument to be in the form
4686         'text', not '__text__'.  Updated asserts.
4687         (merge_attributes): Use lookup_ident_attributes instead of
4688         lookup_attribute.
4689         (merge_dllimport_decl_attributes): Use remove_attribute.
4690         (attribute_list_contained): Likewise.
4691         (attribute_list_equal): Immediately return 1 if the arguments are
4692         identical pointers.
4693         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
4694         'int'.  Require the first argument to be in the form 'text', not
4695         '__text__'.  Require the second argument to be an identifier.
4696         (lookup_attribute): Made inline.  Require the first argument to be
4697         in the form 'text', not '__text__'.
4698         (private_is_attribute_p, private_lookup_attribute): New.
4699         Updated comments.
4700
4701 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
4702
4703         * builtins.c: Add sync_ or SYNC__ to builtin names.
4704         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
4705         * omp-low.c: Add sync_ or SYNC__ to builtin names.
4706
4707 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
4708
4709         PR target/33049
4710         * config/avr/avr.md (extzv): New expander.
4711         (*extzv): New insn.
4712         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
4713         * config/avr/constraints.md (C04): New constraint.
4714         * doc/md.texi (Machine Constraints): Document it.
4715
4716 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
4717
4718         PR middle-end/49489
4719         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
4720         unsignedp argument instead of 1 for clrsb_optab.
4721         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
4722         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
4723         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
4724         * optabs.c (widen_leading): Call widen_operand and expand_unop
4725         with 0 as unsignedp argument instead of 1 for clrsb_optab.
4726         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
4727
4728 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
4729
4730         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
4731
4732 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
4733
4734         * gensupport.c (add_define_attr): New static function.
4735         (is_predicable): Allow multi-alternative lists for the "predicable"
4736         attribute.
4737         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
4738         (process_one_cond_exec): Call alter_attrs_for_insn.
4739         * doc/md.texi (Defining Attributes): Mention some standard names.
4740         (Conditional Execution): Update documentation for "predicable".
4741
4742         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
4743         __builtin_clrsbll): Document.
4744         * doc/rtl.texi (clrsb): New entry.
4745         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
4746         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
4747         (expand_unop): Handle clrsb_optab.
4748         (init_optabs): Initialize it.
4749         * optabs.h (enum optab_index): New entry OTI_clrsb.
4750         (clrsb_optab): Define.
4751         * genopinit.c (optabs): Add an entry for it.
4752         * builtins.c (expand_builtin): Handle clrsb builtin functions.
4753         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
4754         BUILT_IN_CLRSBLL): New.
4755         * rtl.def (CLRSB): New code.
4756         * dwarf2out.c (mem_loc_descriptor): Handle it.
4757         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
4758         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
4759         and popcount.
4760         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
4761         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
4762         (__ctzDI2): Move declaration.
4763         * config/bfin/bfin.md (clrsbsi2): New expander.
4764         (signbitssi2): Use the CLRSB rtx.
4765         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
4766         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
4767
4768 2011-06-21  Richard Guenther  <rguenther@suse.de>
4769
4770         * ipa-inline-transform.c (inline_transform): Fix previous change.
4771
4772 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
4773
4774         PR tree-optimization/49478
4775         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
4776         with constant operand.
4777
4778 2011-06-21  Richard Guenther  <rguenther@suse.de>
4779
4780         * ipa-inline-transform.c (inline_transform): Fix typo.
4781
4782 2011-06-21  Richard Guenther  <rguenther@suse.de>
4783
4784         PR tree-optimization/49483
4785         * tree-vect-stmts.c (vectorizable_assignment): Also handle
4786         VIEW_CONVERT_EXPR conversions.
4787
4788 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
4789
4790         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
4791         * config/avr/avr-tables.opt: New file (generated).
4792         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
4793         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
4794         avr-mcus.def.
4795         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
4796         (avr_option_override): Don't process -mmcu= argument here.  Set
4797         avr_current_device using avr_mcu_index.
4798         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
4799         * config/avr/avr.opt (mmcu=): Use Enum.
4800         * config/avr/t-avr (avr-devices.o): Update dependencies.
4801         ($(srcdir)/config/avr/avr-tables.opt): New.
4802         * target.def (help): Remove.
4803         * doc/tm.texi.in (TARGET_HELP): Remove.
4804         * doc/tm.texi: Regenerate.
4805         * opts.c: Don't include target.h.
4806         (common_handle_option): Don't call targetm.help.
4807         * system.h (TARGET_HELP): Poison.
4808         * Makefile.in (opts.o): Update dependencies.
4809
4810 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4811
4812         * config/usegld.h: New file.
4813         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
4814         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
4815         (LIB_SPEC): Likewise.  Search /lib.
4816         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
4817         (RDYNAMIC_SPEC): Handle GNU ld.
4818         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
4819         Define.
4820         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
4821         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
4822         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
4823         (STACK_CHECK_STATIC_BUILTIN): Define.
4824         * config/sol2.opt (compat-bsd): Remove.
4825         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
4826         * config/sol2-bi.h: New file.
4827         * config/sol2-gld.h: Remove.
4828         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
4829         (NO_DBX_BNSYM_ENSYM): Remove.
4830         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4831         (STACK_CHECK_STATIC_BUILTIN): Remove.
4832         Test USE_GLD instead of TARGET_GNU_LD.
4833         * config/i386/sol2-10.h: Rename to ...
4834         * config/i386/sol2-bi.h .. this.
4835         (SUBTARGET_EXTRA_SPECS): Redefine.
4836         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
4837         (MULTILIB_DEFAULTS): Remove.
4838         (DEFAULT_ARCH32_P): Define.
4839         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
4840         (ARCH64_SUBDIR): Define.
4841         Test USE_GLD instead of TARGET_GNU_LD.
4842         (I386_EMULATION): Rename to ...
4843         (ARCH32_EMULATION): ... this.
4844         (X86_64_EMULATION): Rename to ...
4845         (ARCH64_EMULATION): ... this.
4846         (TARGET_LD_EMULATION): Remove.
4847         (LINK_ARCH_SPEC): Remove.
4848         * config/i386/sol2-gas.h: Remove.
4849         * config/i386/t-sol2-10: Rename to ...
4850         * config/i386/t-sol2-64: ... this.
4851         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
4852         (AS_SPARC64_FLAG): Define.
4853         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
4854         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
4855         depending on TARGET_CPU_DEFAULT.
4856         (CPP_CPU_SPEC): Redefine.
4857         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
4858         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
4859         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
4860         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
4861         ASM_ARCH_DEFAULT_SPEC): Redefine.
4862         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
4863         LINK_ARCH_DEFAULT_SPEC.
4864         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
4865         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
4866         (ARCH64_SUBDIR): Define.
4867         (LINK_ARCH64_SPEC): Redefine.
4868         (CC1_SPEC): Redefine.
4869         (OPTION_DEFAULT_SPECS): Redefine.
4870         (MULTILIB_DEFAULTS): Define.
4871         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
4872         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
4873         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
4874         (NO_DBX_BNSYM_ENSYM): Remove.
4875         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4876         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
4877         (TARGET_ASM_NAMED_SECTION): Likewise.
4878         (STACK_CHECK_STATIC_BUILTIN): Remove.
4879         * config/sparc/sol2-bi.h: Remove.
4880         * config/sparc/sol2-gas-bi.h: Remove.
4881         * config/sparc/sol2-gas.h: Remove.
4882         * config/sparc/sol2-gld-bi.h: Remove.
4883         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
4884         common parts ...
4885         (*-*-solaris2*): ... here.
4886
4887 2011-06-21  Christian Bruel  <christian.bruel@st.com>
4888
4889         PR other/43564
4890         * ipa-inline.c (can_inline_edge_p): Check
4891         !DECL_DISREGARD_INLINE_LIMITS.
4892
4893 2011-06-21  Christian Bruel  <christian.bruel@st.com>
4894
4895         PR middle-end/49139
4896         * cgraphunit.c (process_function_and_variable_attributes): warn when
4897         always_inline functions that are not inline.
4898         * ipa-inline-transform.c (inline_transform): Always call
4899         optimize_inline.
4900         * tree-inline.c (tree_inlinable_function_p): Use error instead
4901         of sorry.
4902         (expand_call_inline): Likewise.
4903
4904 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
4905
4906         * Makefile.in (dg_target_exps): Set.
4907         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
4908         instead of 7, try to divide it more evenly.
4909
4910 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
4911
4912         PR target/49089
4913         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
4914         (avx256_split_unaligned_store): New definition.
4915         (ix86_option_override_internal): Enable avx256 unaligned load/store
4916         splitting only when avx256_split_unaligned_load/store is set.
4917
4918 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
4919
4920         * regrename.c (scan_rtx_reg): Handle the case where we write to an
4921         open chain in a smaller mode without failing the entire block.
4922
4923 2011-06-21  Alan Modra  <amodra@gmail.com>
4924
4925         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
4926         CONST high part large-toc address.
4927         (rs6000_tls_referenced_p): Make static.
4928         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
4929
4930 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4931
4932         PR target/49385
4933         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
4934         one of the operands is a register.
4935
4936 2011-06-20  Kai Tietz  <ktietz@redhat.com>
4937
4938         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
4939         operations in combination with binary and.
4940
4941 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
4942
4943         * regrename.c (do_replace): Don't update notes.
4944
4945 2011-06-20  Alan Modra  <amodra@gmail.com>
4946
4947         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
4948         of toc-relative address in CONST.
4949         (rs6000_delegitimize_address): Recognize changed address.
4950         (rs6000_legitimize_reload_address): Likewise.
4951         (rs6000_emit_move): Don't force these constants to memory.
4952         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
4953         toc-relative address in CONST.
4954         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
4955         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
4956
4957 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
4958
4959         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
4960         (count_trailing_zeros): Likewise.
4961
4962 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
4963
4964         PR other/49325
4965         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
4966         .init_array can be used with .ctors on targets.
4967         * configure: Regenerated.
4968
4969 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
4970
4971         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
4972         if the element type is volatile.
4973
4974 2011-06-18  Jan Hubicka  <jh@suse.cz>
4975
4976         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
4977         extra name aliases.
4978         (lto_symtab_resolve_can_prevail_p): Likewise.
4979         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
4980         * cgraphbuild.c (record_reference): Remove extra body alias code.
4981         (mark_load): Likewise.
4982         (mark_store): Likewise.
4983         * cgraph.h (varpool_node): Remove extra_name filed;
4984         add alias_of and extraname_alias.
4985         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
4986         (varpool_alias_aliased_node): New inline function.
4987         (varpool_variable_node): New function.
4988         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
4989         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
4990         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
4991         (input_varpool_node): Likewise.
4992         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
4993         (varpool_externally_visible_p): Remove extra body alias code.
4994         (function_and_variable_visibility): Likewise.
4995         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
4996         (ipa_pta_execute): Use it.
4997         * varpool.c (varpool_remove_node): Remove extra name alias code.
4998         (varpool_mark_needed_node): Likewise.
4999         (varpool_analyze_pending_decls): Analyze aliases.
5000         (assemble_aliases): New functoin.
5001         (varpool_assemble_decl): Use it.
5002         (varpool_create_variable_alias): New function.
5003         (varpool_extra_name_alias): Rewrite.
5004         (varpool_for_node_and_aliases): New function.
5005
5006 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
5007
5008         PR target/49411
5009         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
5010         last_arg_constant and last argument doesn't match its predicate,
5011         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
5012         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
5013         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
5014         spelling of error message.
5015         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
5016         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
5017         const_0_to_255_operand instead of const_int_operand.
5018
5019         Revert:
5020         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
5021
5022         * config/i386/sse.md (blendbits): Remove mode attribute.
5023         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
5024         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
5025         Check integer value of operand 3 in insn constraint.
5026
5027 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
5028
5029         PR rtl-optimization/48542
5030         * reload.c (find_equiv_reg): Stop looking when finding a
5031         setjmp-type call.
5032         * reload1.c (reload_as_needed): Invalidate all reload
5033         registers when crossing a setjmp-type call.
5034
5035 2011-06-16  Jeff Law  <law@redhat.com>
5036
5037         * tree-ssa-threadupdate.c (struct redirection_data): New field
5038         intermediate_edge.
5039         (THREAD_TARGET2): Define.
5040         (redirection_data_eq): Also check that the intermediate edge is equal.
5041         (lookup_redirection_data): Drop useless argument.  Extract the
5042         outgoing_edge and intermediate edge from E.  Callers updated.
5043         (copy_phi_args, update_destination_phis): New functions.
5044         (fix_duplicate_block_edges): Likewise.
5045         (create_edge_and_update_destination_phis): Duplicate all the edges
5046         hung off e->aux.  Use copy_phi_args.
5047         (create_duplicates): Use fix_duplicate_block_edges.
5048         (fixup_template_block): Likewise.
5049         (redirect_edges): If necessary, redirect the joiner block's incoming
5050         edge to the duplicate of the joiner block.
5051         (thread_block): Don't muck up loops when threading through a joiner
5052         block.
5053         (thread_through_loop_header): Handle threading through a joiner block.
5054         (mark_threaded_blocks, register_jump_thread): Likewise.
5055         * tree-flow.h (register_jump_thread): Add new argument.  Callers
5056         updated.
5057         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
5058         (thread_across_edge): Handle threading through a joiner block.
5059
5060 2011-06-16  Martin Jambor  <mjambor@suse.cz>
5061
5062         PR tree-optimization/49343
5063         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
5064         calculate offset, provide 2nd operand for the new COMPONENT_REF.
5065
5066 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
5067
5068         * config/darwin-protos.h (machopic_select_rtx_section): Move to
5069         inside RTX_CODE ifdef.
5070
5071 2011-06-16  Tom de Vries  <tom@codesourcery.com>
5072
5073         PR target/45098
5074         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
5075         Disallow NULL pointer for pointer arithmetic.
5076
5077 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5078
5079         PR target/49398
5080         Revert.
5081         2011-06-10  Wei Guozhi  <carrot@google.com>
5082
5083         PR target/45335
5084         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5085         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5086         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5087         related peephole2.
5088         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5089         related peephole2.
5090         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5091         (arm_legitimate_ldrd_p): New prototype.
5092         (arm_output_ldrd): New prototype.
5093         * config/arm/arm.c (arm_check_ldrd_operands): New function.
5094         (arm_legitimate_ldrd_p): New function.
5095         (arm_output_ldrd): New function.
5096
5097 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
5098
5099         PR middle-end/46500
5100         * doc/tm.texi.in: Update Copyright date.
5101         * doc/tm.texi: Regenerate.
5102         * targhooks.c (default_setup_incoming_varargs): Replace
5103         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5104         (default_pretend_outgoing_varargs_named): Likewise.
5105         (hook_pass_by_reference_must_pass_in_stack): Likewise.
5106         (hook_callee_copies_named): Likewise.
5107         (default_function_arg_advance): Likewise.
5108         (default_function_arg): Likewise.
5109         (default_function_incoming_arg): Likewise.
5110         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5111         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5112         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5113         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5114         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5115         * targhooks.h (default_setup_incoming_varargs): Likewise.
5116         (default_pretend_outgoing_varargs_named): Likewise.
5117         (hook_pass_by_reference_must_pass_in_stack): Likewise.
5118         (hook_callee_copies_named): Likewise.
5119         (default_function_arg_advance): Likewise.
5120         (default_function_arg): Likewise.
5121         (default_function_incoming_arg): Likewise.
5122         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5123         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5124         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5125         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5126         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5127         * target.def (pass_by_reference): Likewise.
5128         (setup_incoming_varargs, strict_argument_naming): Likewise.
5129         (pretend_outgoing_varargs_named, callee_copies): Likewise.
5130         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
5131         (function_incoming_arg): Likewise.
5132         * target.h: Don't include "tm.h" .
5133         (cumulative_args_t): New typedef.
5134         [GCC_TM_H] (get_cumulative_args): New static inline function.
5135         [GCC_TM_H] (pack_cumulative_args): Likewise.
5136         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
5137         argument type with cumulative_args_t.
5138         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
5139         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
5140         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
5141         (frv_arg_partial_bytes, frv_function_arg): Likewise.
5142         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
5143         (frv_function_arg_1): Likewise.
5144         * config/s390/s390.c (s390_pass_by_reference): Likewise.
5145         (s390_function_arg_advance, s390_function_arg): Likewise.
5146         * config/m32c/m32c.c (m32c_function_arg): Likewise.
5147         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
5148         (m32c_strict_argument_naming): Likewise.
5149         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
5150         (spu_function_arg_advance): Likewise.
5151         (spu_setup_incoming_varargs): Likewise.  Make static.
5152         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
5153         Remove prototype.
5154         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
5155         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5156         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
5157         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
5158         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
5159         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
5160         (mep_pass_by_reference, mep_function_arg): Likewise.
5161         (mep_function_arg_advance): Likewise.
5162         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
5163         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
5164         (m32r_function_arg, m32r_function_arg_advance): Likewise.
5165         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
5166         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
5167         (ix86_function_arg, ix86_pass_by_reference): Likewise.
5168         (ix86_setup_incoming_varargs): Likewise.
5169         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
5170         (sh_strict_argument_naming): Likewise.
5171         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
5172         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
5173         (sh_function_arg_advance, sh_function_arg): Likewise.
5174         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
5175         (pdp11_function_arg_advance): Likewise.
5176         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
5177         Likewise.
5178         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
5179         * config/avr/avr.c (avr_function_arg): Likewise.
5180         (avr_function_arg_advance): Likewise.
5181         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
5182         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
5183         (xtensa_function_arg_1): Likewise.
5184         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
5185         Likewise.
5186         (xstormy16_function_arg): Likewise.
5187         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
5188         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
5189         (fr30_function_arg_advance): Likewise.
5190         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
5191         (lm32_function_arg, lm32_function_arg_advance): Likewise.
5192         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
5193         (moxie_function_arg, moxie_function_arg_advance): Likewise.
5194         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
5195         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
5196         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
5197         (cris_function_arg, cris_function_incoming_arg): Likewise.
5198         (cris_function_arg_advance, cris_function_arg_1): Likewise.
5199         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
5200         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
5201         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
5202         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
5203         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
5204         (mn10300_arg_partial_bytes): Likewise.
5205         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
5206         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
5207         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
5208         (ia64_function_arg_1): Likewise.
5209         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
5210         (m68k_function_arg): Likewise.
5211         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
5212         (rs6000_function_arg, setup_incoming_varargs): Likewise.
5213         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
5214         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
5215         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
5216         (picochip_arg_advance): Likewise.
5217         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
5218         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
5219         (mcore_function_arg_advance): Likewise.
5220         * config/score/score.c (score_pass_by_reference): Likewise.
5221         (score_function_arg_advance): Likewise.
5222         (score_arg_partial_bytes): Likewise.  Make static.
5223         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
5224         * config/arm/arm.c (arm_arg_partial_bytes): Replace
5225         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5226         (arm_function_arg, arm_function_arg_advance): Likewise.
5227         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
5228         * config/pa/pa.c (pa_pass_by_reference): Likewise.
5229         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
5230         (pa_function_arg): Likewise.
5231         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
5232         (mips_function_arg, mips_function_arg_advance): Likewise.
5233         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
5234         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
5235         * config/vax/vax.c (vax_function_arg): Likewise.
5236         (vax_function_arg_advance): Likewise.
5237         * config/h8300/h8300.c (h8300_function_arg): Likewise.
5238         (h8300_function_arg_advance): Likewise.
5239         * config/v850/v850.c (v850_pass_by_reference): Likewise.
5240         (v850_strict_argument_naming, v850_function_arg): Likewise.
5241         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
5242         (v850_setup_incoming_varargs): Likewise.
5243         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
5244         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
5245         (mmix_function_arg, mmix_pass_by_reference): Likewise.
5246         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
5247         with const void *.
5248         * config/bfin/bfin.c (setup_incoming_varargs): Replace
5249         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5250         (bfin_function_arg_advance, bfin_function_arg): Likewise.
5251         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
5252         * calls.c (emit_call_1): Change type of args_so_far to
5253         cumulative_args_t.  Changed all callers.
5254         (initialize_argument_information): Likewise.
5255         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
5256         * dse.c (get_call_args): Likewise.
5257         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
5258         * function.c (pass_by_reference, reference_callee_copied): Likewise.
5259         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
5260         New member args_so_far_v.  Changed all users.
5261         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
5262         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
5263         * config/mips/mips.c (mips_output_args_xfer): Likewise.
5264         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
5265         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5266         * config/microblaze/microblaze.c (microblaze_expand_prologue):
5267         Likewise.
5268         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
5269         m32r_pass_by_reference.
5270
5271 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
5272
5273         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
5274         argument to be a VEC of statements.
5275         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
5276         assert that pattern statements have to have their vector type set.
5277         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
5278         Change the first argument to be a VEC of statements.  Update
5279         documentation.
5280         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
5281         (vect_handle_widen_mult_by_const): New function.
5282         (vect_recog_widen_mult_pattern):  Change the first argument to be a
5283         VEC of statements.  Update documentation.  Check that the constant is
5284         INTEGER_CST.  Support multiplication by a constant that fits an
5285         intermediate type - call vect_handle_widen_mult_by_const.
5286         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
5287         call.  Handle additional pattern statements if necessary.
5288
5289 2011-06-16  Nick Clifton  <nickc@redhat.com>
5290
5291         PR target/49427
5292         * config.gcc: Set cpu_type to v850 for any V850 architecture.
5293         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
5294         md_file, extra_modes, out_file and extra_options are these are all
5295         deduced from cpu_type.
5296
5297 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
5298
5299         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
5300         truncation mask to 63.
5301
5302 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
5303
5304         PR target/49313
5305         PR target/29524
5306         * longlong.h: Add AVR support:
5307         (count_leading_zeros): New macro.
5308         (count_trailing_zeros): New macro.
5309         (COUNT_LEADING_ZEROS_0): New macro.
5310         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
5311         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
5312         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
5313         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
5314         (LIB2FUNCS_EXCLUDE): Add _clz.
5315         * config/avr/libgcc.S (XCALL): Move up in file.
5316         (XJMP): New C Macro.
5317         (DEFUN): New asm macro.
5318         (ENDF): New asm macro.
5319         (__ffssi2): New function.
5320         (__ffshi2): New function.
5321         (__loop_ffsqi2): New function.
5322         (__ctzsi2): New function.
5323         (__ctzhi2): New function.
5324         (__clzdi2): New function.
5325         (__clzsi2): New function.
5326         (__clzhi2): New function.
5327         (__paritydi2): New function.
5328         (__paritysi2): New function.
5329         (__parityhi2): New function.
5330         (__parityqi2): New function.
5331         (__popcounthi2): New function.
5332         (__popcountsi2): New function.
5333         (__popcountdi2): New function.
5334         (__popcountqi2): New function.
5335         (__bswapsi2): New function.
5336         (__bswapdi2): New function.
5337         (__ashldi3): New function.
5338         (__ashrdi3): New function.
5339         (__lshrdi3): New function.
5340         Fix suspicous lines.
5341
5342 2011-06-16  Richard Guenther  <rguenther@suse.de>
5343
5344         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
5345         the same as x != 0.
5346         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
5347         to (bool) X & 1.
5348         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
5349         equality compares against zero for the lower bit.
5350
5351 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
5352
5353         PR tree-optimization/49419
5354         * tree-vrp.c (execute_vrp): Call init_range_assertions
5355         before estimate_numbers_of_iterations, call
5356         free_number_of_iterations_estimates before calling
5357         remove_range_assertions.
5358
5359 2011-06-16  Revital Eres  <revital.eres@linaro.org>
5360
5361         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
5362         (struct partial_schedule): Add rows_length field.
5363         (verify_partial_schedule): Check rows_length.
5364         (ps_insert_empty_row): Handle rows_length.
5365         (create_partial_schedule): Likewise.
5366         (free_partial_schedule): Likewise.
5367         (reset_partial_schedule): Likewise.
5368         (create_ps_insn): Remove rest_count argument.
5369         (remove_node_from_ps): Update rows_length.
5370         (add_node_to_ps): Update rows_length and call create_ps_insn
5371         without passing row_rest_count.
5372         (rotate_partial_schedule): Update rows_length.
5373
5374 2011-06-16  Revital Eres  <revital.eres@linaro.org>
5375
5376         * ddg.c (add_intra_loop_mem_dep): New function.
5377         (build_intra_loop_deps): Call it.
5378
5379 2011-06-13  Jeff Law  <law@redhat.com>
5380
5381         * df-problems.c (df_lr_local_compute): Manually CSE
5382         PIC_OFFSET_TABLE_REGNUM.
5383         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
5384         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
5385
5386 2011-06-13  Jan Hubicka  <jh@suse.cz>
5387
5388         * cgraphunit.c (handle_alias_pairs): New function.
5389         (cgraph_finalize_compilation_unit): Use it.
5390         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
5391         as externally visible.
5392
5393 2011-06-15  Richard Guenther  <rguenther@suse.de>
5394
5395         * expr.c (expand_expr_real_2): Reduce all integral types to
5396         bitfield precision.
5397         (expand_expr_real_1): Likewise.
5398
5399 2011-06-15  Martin Jambor  <mjambor@suse.cz>
5400
5401         PR tree-optimization/48613
5402         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
5403         ipa_node_params_vector is NULL.
5404
5405 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
5406
5407         PR debug/49382
5408         * dwarf2out.c (dw_loc_list_node): Add force field.
5409         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
5410         location in the list, even if it is modified before first real insn.
5411         (output_loc_list): Emit empty ranges with force flag set.
5412         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
5413
5414 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
5415
5416         PR target/49349
5417         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
5418         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
5419         above a fence.  Update comments.
5420         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
5421         placed just above it.  Do not allow NULL place_to_insert.
5422
5423 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
5424
5425         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
5426         (slpeel_tree_peel_loop_to_edge): Don't call
5427         remove_dead_stmts_from_loop.
5428         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
5429         remove irrelevant pattern statements.  For irrelevant statements
5430         check if it is the last statement of a detected pattern, use
5431         corresponding pattern statement instead.
5432         (destroy_loop_vec_info): No need to remove pattern statements,
5433         only free stmt_vec_info.
5434         (vect_transform_loop): For irrelevant statements check if it is
5435         the last statement of a detected pattern, use corresponding
5436         pattern statement instead.
5437         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
5438         pattern statements.  Set basic block for the new statement.
5439         (vect_pattern_recog): Update documentation.
5440         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
5441         operands of pattern statements.
5442         (vectorizable_call): Fix printing.  In case of a pattern statement
5443         use the lhs of the original statement when creating a dummy
5444         statement to replace the original call.
5445         (vect_analyze_stmt): For irrelevant statements check if it is
5446         the last statement of a detected pattern, use corresponding
5447         pattern statement instead.
5448         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
5449         statements use gsi of the original statement.
5450
5451 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
5452
5453         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
5454         common/common-target-def.h.
5455         * target.def (default_target_flags, handle_option,
5456         supports_split_stack, optimization_table, init_struct,
5457         except_unwind_info, unwind_tables_default, have_named_sections):
5458         Move to common/common-target.def.
5459         * target.h (enum opt_levels, struct default_options): Move to
5460         common/common-target.h.
5461         * targhooks.c (default_except_unwind_info,
5462         dwarf2_except_unwind_info, sjlj_except_unwind_info,
5463         default_target_handle_option, empty_optimization_table): Move to
5464         common/common-targhooks.c.
5465         * targhooks.h (default_except_unwind_info,
5466         dwarf2_except_unwind_info, sjlj_except_unwind_info,
5467         default_target_handle_option, empty_optimization_table): Move to
5468         common/common-targhooks.h.
5469         * common/common-target-def.h: Include common/common-targhooks.h.
5470         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
5471         defined.
5472         * common/common-target.def (handle_option, option_init_struct,
5473         option_optimization_table, default_target_flags,
5474         except_unwind_info, supports_split_stack, unwind_tables_default,
5475         have_named_sections): Move from target.def.
5476         (HOOK_PREFIX): Undefine at end of file.
5477         * common/common-target.h: Include input.h.
5478         (enum opt_levels, struct default_options): Move from target.h.
5479         * common/common-targhooks.c, common/common-targhooks.h: New.
5480         * config.gcc (target_has_targetm_common): Default to yes.
5481         (moxie*): Set target_has_targetm_common=no.
5482         (hppa*-*-*): Don't set target_has_targetm_common=yes.
5483         * doc/tm.texi: Regenerate.
5484         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
5485         (C_TARGET_DEF_H): Add common/common-targhooks.h.
5486         (GCC_OBJS): Remove vec.o.
5487         (OBJS): Remove hooks.o and vec.o.
5488         (OBJS-libcommon-target): Add vec.o, hooks.o and
5489         common/common-targhooks.o.
5490         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
5491         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
5492         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
5493         cfglayout.o, $(out_object_file), $(common_out_object_file)):
5494         Update dependencies.
5495         (common/common-targhooks.o): New.
5496         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
5497         * common/config/pa/pa-common.c: Include more headers.  Take
5498         copyright dates from pa.c.
5499         (pa_option_optimization_table, pa_handle_option,
5500         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
5501         TARGET_HANDLE_OPTION): Move from pa.c.
5502         * common/config/alpha/alpha-common.c,
5503         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
5504         common/config/bfin/bfin-common.c,
5505         common/config/cris/cris-common.c,
5506         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
5507         common/config/h8300/h8300-common.c,
5508         common/config/i386/i386-common.c,
5509         common/config/ia64/ia64-common.c,
5510         common/config/iq2000/iq2000-common.c,
5511         common/config/lm32/lm32-common.c,
5512         common/config/m32c/m32c-common.c,
5513         common/config/m32r/m32r-common.c,
5514         common/config/m68k/m68k-common.c,
5515         common/config/mcore/mcore-common.c,
5516         common/config/mep/mep-common.c,
5517         common/config/microblaze/microblaze-common.c,
5518         common/config/mips/mips-common.c,
5519         common/config/mmix/mmix-common.c,
5520         common/config/mn10300/mn10300-common.c,
5521         common/config/pdp11/pdp11-common.c,
5522         common/config/picochip/picochip-common.c,
5523         common/config/rs6000/rs6000-common.c,
5524         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
5525         common/config/score/score-common.c, common/config/sh/sh-common.c,
5526         common/config/sparc/sparc-common.c,
5527         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
5528         common/config/vax/vax-common.c,
5529         common/config/xstormy16/xstormy16-common.c,
5530         common/config/xtensa/xtensa-common.c: New.
5531         * config/alpha/alpha.c: Include common/common-target.h.
5532         (alpha_option_optimization_table, alpha_handle_option,
5533         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5534         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
5535         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
5536         * config/arm/arm.c (arm_option_optimization_table,
5537         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5538         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
5539         arm-common.c.
5540         * config/avr/avr.c (avr_option_optimization_table,
5541         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5542         to avr-common.c.
5543         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
5544         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
5545         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
5546         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
5547         * config/cris/cris.c (cris_option_optimization_table,
5548         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5549         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
5550         cris-common.c.
5551         * config/fr30/fr30.c (fr30_option_optimization_table,
5552         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
5553         to fr30-common.c.
5554         * config/frv/frv.c (frv_option_optimization_table,
5555         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
5556         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
5557         * config/h8300/h8300.c (h8300_option_optimization_table,
5558         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5559         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
5560         * config/i386/i386-protos.h (ix86_handle_option): Declare.
5561         * config/i386/i386.c: Include common/common-target.h.
5562         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
5563         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
5564         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
5565         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
5566         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
5567         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
5568         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
5569         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
5570         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
5571         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
5572         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
5573         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
5574         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
5575         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
5576         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
5577         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
5578         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
5579         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
5580         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
5581         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
5582         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
5583         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
5584         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
5585         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
5586         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
5587         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
5588         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
5589         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
5590         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
5591         ix86_option_optimization_table, ix86_option_init_struct,
5592         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
5593         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5594         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
5595         i386-common.c.
5596         * config/i386/t-i386 (i386.o): Update dependencies.
5597         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
5598         * config/ia64/ia64.c (ia64_option_optimization_table,
5599         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5600         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5601         ia64_handle_option): Move to ia64-common.c.
5602         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
5603         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
5604         * config/lm32/lm32.c (lm32_option_optimization_table,
5605         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5606         to lm32-common.c.
5607         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
5608         m32c-common.c.
5609         * config/m32r/m32r.c (m32r_option_optimization_table,
5610         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5611         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5612         m32r_handle_option): Move to m32r-common.c.
5613         (m32r_memory_move_cost): Remove comment referring to
5614         TARGET_HANDLE_OPTION.
5615         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
5616         Move to m68k-common.c.
5617         * config/mcore/mcore.c (mcore_option_optimization_table,
5618         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5619         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
5620         * config/mep/mep.c (mep_option_optimization_table,
5621         mep_handle_option, TARGET_HANDLE_OPTION,
5622         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
5623         Move to mep-common.c.
5624         * config/microblaze/microblaze.c
5625         (microblaze_option_optimization_table,
5626         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5627         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
5628         * config/mips/mips.c (mips_handle_option,
5629         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5630         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
5631         mips-common.c.
5632         * config/mmix/mmix.c (mmix_option_optimization_table,
5633         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5634         Move to mmix-common.c.
5635         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5636         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
5637         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5638         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
5639         * config/pa/pa.c: Include common/common-target.h.
5640         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5641         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5642         pa_handle_option): Move to pa-common.c.
5643         (pa_option_override): Use targetm_common.except_unwind_info.
5644         (pa_asm_output_mi_thunk, pa_function_section): Use
5645         targetm_common.have_named_sections.
5646         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
5647         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5648         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5649         pdp11_handle_option, pdp11_option_init_struct): Move to
5650         pdp11-common.c.
5651         * config/picochip/picochip.c (picochip_option_optimization_table,
5652         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
5653         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
5654         * config/rs6000/rs6000.c: Include common/common-target.h.
5655         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
5656         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
5657         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
5658         rs6000_handle_option): Move to rs6000-common.c.
5659         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
5660         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
5661         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5662         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
5663         * config/s390/s390.c (processor_flags_table,
5664         s390_option_optimization_table, s390_option_init_struct,
5665         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
5666         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5667         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
5668         * config/s390/s390.h (processor_flags_table): Declare.
5669         * config/score/score.c (score_option_optimization_table,
5670         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5671         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
5672         score_handle_option): Move to score-common.c.
5673         * config/sh/sh.c (sh_option_optimization_table,
5674         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5675         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5676         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
5677         * config/sparc/sparc.c: Include common/common-target.h.
5678         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5679         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
5680         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
5681         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
5682         spu_option_init_struct): Move to spu-common.c.
5683         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
5684         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
5685         * config/v850/v850.c (small_memory_physical_max,
5686         v850_handle_memory_optionn v850_handle_option,
5687         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5688         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
5689         v850-common.c.
5690         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
5691         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
5692         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5693         Move to xtensa-common.c.
5694         * cfglayout.c: Include common/common-target.h.
5695         (fixup_reorder_chain): Use targetm_common.have_named_sections.
5696         * cfgrtl.c: Include common/common-target.h.
5697         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
5698         targetm_common.have_named_sections.
5699         * dbxout.c: Include common/common-target.h.
5700         (dbxout_function_end): Use targetm_common.have_named_sections.
5701         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
5702         targetm_common.except_unwind_info.
5703         * dwarf2out.c: Include common/common-target.h.
5704         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
5705         dwarf2out_begin_prologue, dwarf2out_frame_init,
5706         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
5707         targetm_common.except_unwind_info.
5708         * except.c: Include common/common-target.h.
5709         (init_eh, finish_eh_generation,
5710         output_one_function_exception_table): Use
5711         targetm_common.except_unwind_info.
5712         (switch_to_exception_section): Use targetm_common.have_named_sections.
5713         * explow.c: Include common/common-target.h.
5714         * expr.c: Include common/common-target.h.
5715         (build_personality_function): Use targetm_common.except_unwind_info.
5716         * function.c: Include common/common-target.h.
5717         (expand_function_end): Use targetm_common.except_unwind_info.
5718         * haifa-sched.c: Include common/common-target.h.
5719         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
5720         * lto-opts.c: Include common/common-target.h instead of target.h.
5721         (lto_reissue_options): Use targetm_common.handle_option.
5722         * opts.c: Include common/common-target.h.
5723         (target_handle_option): Use targetm_common.handle_option.
5724         (init_options_struct): Update comment referring to
5725         targetm.target_option.optimization.  Use
5726         targetm_common.default_target_flags,
5727         targetm_common.unwind_tables_default and
5728         targetm_common.option_init_struct.
5729         (default_options_optimization): Use
5730         targetm_common.option_optimization_table.
5731         (finish_options): Use targetm_common.except_unwind_info,
5732         targetm_common.unwind_tables_default,
5733         targetm_common.have_named_sections and
5734         targetm_common.supports_split_stack.
5735         * toplev.c: Include common/common-target.h.
5736         (process_options): Use targetm_common.have_named_sections.
5737         * tree-tailcall.c: Include common/common-target.h.
5738         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
5739         * tree.c: Include common/common-target.h.
5740         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
5741         * varasm.c: Include common/common-target.h.
5742         (resolve_unique_section, hot_function_section,
5743         default_function_section): Use targetm_common.have_named_sections.
5744
5745 2011-06-14  Easwaran Raman  <eraman@google.com>
5746
5747         PR rtl-optimization/44194
5748         * dse.c: Include tree-flow.h
5749         (insn_info): Add new field non_frame_wild_read.
5750         (group_info): Add new fields escaped_n and escaped_p.
5751         (kill_on_calls): New variable.
5752         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
5753         (dse_step0): Initialize kill_on_calls.
5754         (can_escape): New function.
5755         (set_usage_bits): Add additional parameter; record information
5756         about escaped locations.
5757         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
5758         (dse_step2_nospill): Set kill_on_calls based on
5759         group->escaped_n and group->escaped_n.
5760         (add_wild_read): Refactor into...
5761         (reset_active_stores): ... New function, and
5762         (free_read_records): ... New function.
5763         (add_non_frame_wild_read): New function.
5764         (scan_insn): Call add_non_frame_wild_read on non-const calls.
5765         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
5766         (dse_step5_nospill): Call scan_reads_nospill for instructions
5767         marked as non_frame_wild_read.
5768         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
5769
5770 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
5771
5772         * common/common-target-def.h, common/common-target.def,
5773         common/common-target.h, common/config/default-common.c,
5774         common/config/pa/pa-common.c: New files.
5775         * Makefile.in (common_out_file, common_out_object_file,
5776         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
5777         (OBJS-libcommon-target): Include $(common_out_object_file).
5778         (prefix.o): Update dependencies.
5779         ($(common_out_object_file), common/common-target-hooks-def.h,
5780         s-common-target-hooks-def-h): New.
5781         (s-tm-texi): Also check timestamp on common-target.def.
5782         (build/genhooks.o): Update dependencies.
5783         * config.gcc (common_out_file, target_has_targetm_common): Define.
5784         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
5785         TARGET_ALWAYS_STRIP_DOTDOT.
5786         * configure.ac (common_out_object_file): Define.
5787         (common_out_file, common_out_object_file): Substitute.
5788         (common): Create directory.
5789         * configure: Regenerate.
5790         * doc/tm.texi.in (targetm_common): Document.
5791         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
5792         * doc/tm.texi: Regenerate.
5793         * genhooks.c (hook_array): Also include common/common-target.def.
5794         * prefix.c (tm.h): Don't include.
5795         (common/common-target.h): Include.
5796         (ALWAYS_STRIP_DOTDOT): Don't define.
5797         (update_path): Use targetm_common.always_strip_dotdot instead of
5798         ALWAYS_STRIP_DOTDOT.
5799         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
5800
5801 2011-06-14  David Li  <davidxl@google.com>
5802
5803         * passes.c (execute_function_todo): Remove TODO_dump_func.
5804         (execute_one_pass): Remove TODO_dump_func.
5805         (execute_function_dump): New function.
5806         * tree-vrp.c: Remove TODO_dump_func.
5807         * regrename.c: Remove TODO_dump_func.
5808         * fwprop.c: Remove TODO_dump_func.
5809         * tree-into-ssa.c: Remove TODO_dump_func.
5810         * tree-complex.c: Remove TODO_dump_func.
5811         * tracer.c: Remove TODO_dump_func.
5812         * tree-loop-distribution.c: Remove TODO_dump_func.
5813         * postreload-gcse.c: Remove TODO_dump_func.
5814         * postreload.c: Remove TODO_dump_func.
5815         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
5816         * tree-tailcall.c: Remove TODO_dump_func.
5817         * ipa-cp.c: Remove TODO_dump_func.
5818         * final.c: Remove TODO_dump_func.
5819         * tree-emutls.c: Remove TODO_dump_func.
5820         * omp-low.c: Remove TODO_dump_func.
5821         * tree-ssa-dse.c: Remove TODO_dump_func.
5822         * tree-ssa-uncprop.c: Remove TODO_dump_func.
5823         * auto-inc-dec.c: Remove TODO_dump_func.
5824         * reorg.c: Remove TODO_dump_func.
5825         * tree-ssa-copyrename.c: Remove TODO_dump_func.
5826         * tree-ssa-ccp.c: Remove TODO_dump_func.
5827         * compare-elim.c: Remove TODO_dump_func.
5828         * mode-switching.c: Remove TODO_dump_func.
5829         * modulo-sched.c: Remove TODO_dump_func.
5830         * tree-call-cdce.c: Remove TODO_dump_func.
5831         * cse.c: Remove TODO_dump_func.
5832         * web.c: Remove TODO_dump_func.
5833         * tree-stdarg.c: Remove TODO_dump_func.
5834         * lto-streamer-out.c: Remove TODO_dump_func.
5835         * tree-ssa-math-opts.c: Remove TODO_dump_func.
5836         * tree-ssa-dom.c: Remove TODO_dump_func.
5837         * tree-nrv.c: Remove TODO_dump_func.
5838         * loop-init.c: Remove TODO_dump_func.
5839         * gimple-low.c: Remove TODO_dump_func.
5840         * ipa-inline.c: Remove TODO_dump_func.
5841         * tree-ssa-sink.c: Remove TODO_dump_func.
5842         * jump.c: Remove TODO_dump_func.
5843         * ifcvt.c: Remove TODO_dump_func.
5844         * tree-ssa-loop.c: Remove TODO_dump_func.
5845         * recog.c: Remove TODO_dump_func.
5846         * dse.c: Remove TODO_dump_func.
5847         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
5848         * matrix-reorg.c: Remove TODO_dump_func.
5849         * tree-eh.c: Remove TODO_dump_func.
5850         * regmove.c: Remove TODO_dump_func.
5851         * function.c: Remove TODO_dump_func.
5852         * tree-vectorizer.c: Remove TODO_dump_func.
5853         * ipa-split.c: Remove TODO_dump_func.
5854         * gcse.c: Remove TODO_dump_func.
5855         * tree-if-conv.c: Remove TODO_dump_func.
5856         * init-regs.c: Remove TODO_dump_func.
5857         * tree-ssa-phiopt.c: Remove TODO_dump_func.
5858         * implicit-zee.c: Remove TODO_dump_func.
5859         * lower-subreg.c: Remove TODO_dump_func.
5860         * bt-load.c: Remove TODO_dump_func.
5861         * tree-dfa.c: Remove TODO_dump_func.
5862         * except.c: Remove TODO_dump_func.
5863         * emit-rtl.c: Remove TODO_dump_func.
5864         * store-motion.c: Remove TODO_dump_func.
5865         * cfgexpand.c: Remove TODO_dump_func.
5866         * tree-cfgcleanup.c: Remove TODO_dump_func.
5867         * cfgcleanup.c: Remove TODO_dump_func.
5868         * tree-ssa-pre.c: Remove TODO_dump_func.
5869         * tree-sra.c: Remove TODO_dump_func.
5870         * tree-mudflap.c: Remove TODO_dump_func.
5871         * tree-ssa-copy.c: Remove TODO_dump_func.
5872         * cfglayout.c: Remove TODO_dump_func.
5873         * tree-ssa-forwprop.c: Remove TODO_dump_func.
5874         * tree-ssa-dce.c: Remove TODO_dump_func.
5875         * ira.c: Remove TODO_dump_func.
5876         * tree-ssa.c: Remove TODO_dump_func.
5877         * integrate.c: Remove TODO_dump_func.
5878         * tree-optimize.c: Remove TODO_dump_func.
5879         * tree-ssa-phiprop.c: Remove TODO_dump_func.
5880         * tree-object-size.c: Remove TODO_dump_func.
5881         * combine.c: Remove TODO_dump_func.
5882         * bb-reorder.c: Remove TODO_dump_func.
5883         * cprop.c: Remove TODO_dump_func.
5884         * var-tracking.c: Remove TODO_dump_func.
5885         * tree-profile.c: Remove TODO_dump_func.
5886         * tree-vect-generic.c: Remove TODO_dump_func.
5887         * reg-stack.c: Remove TODO_dump_func.
5888         * sched-rgn.c: Remove TODO_dump_func.
5889         * tree-ssa-structalias.c: Remove TODO_dump_func.
5890         * tree-switch-conversion.c: Remove TODO_dump_func.
5891         * tree-cfg.c: Remove TODO_dump_func.
5892         * tree-ssa-reassoc.c: Remove TODO_dump_func.
5893         * combine-stack-adj.c: Remove TODO_dump_func.
5894         * dce.c: Remove TODO_dump_func.
5895         * tree-ssanames.c: Remove TODO_dump_func.
5896         * regcprop.c: Remove TODO_dump_func.
5897
5898 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
5899
5900         PR middle-end/47364
5901         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
5902         and properly handle result not in Pmode.
5903
5904 2011-06-14  Robert Millan  <rmh@gnu.org>
5905
5906         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
5907         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
5908         `config/linux.h'.
5909
5910         * config/i386/kfreebsd-gnu64.h: New file.
5911         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
5912         with `i386/kfreebsd-gnu64.h'.
5913
5914         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
5915         (GNU_USER_LINK_EMULATION64): New macros.
5916         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
5917         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
5918         of hardcoding `elf_i386' and `elf_x86_64'.
5919
5920 2011-06-14  Nick Clifton  <nickc@redhat.com>
5921
5922         PR target/49403
5923         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
5924
5925         PR target/49402
5926         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
5927
5928 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
5929
5930         PR fortran/49103
5931         * tree.h (DECL_NONSHAREABLE): Define.
5932         (struct tree_decl_common): Change decl_common_unused to
5933         decl_nonshareable_flag.
5934         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
5935         Ignore vars with DECL_NONSHAREABLE bit set.
5936         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
5937         on stores to automatic aggregate vars.
5938
5939         PR rtl-optimization/49390
5940         Revert:
5941         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
5942
5943         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
5944         MEM_ALIAS_SET.
5945
5946 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
5947             Tom de Vries  <tom@codesourcery.com>
5948
5949         PR target/45098
5950         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
5951         Document changed semantics.
5952         (max_stmt_executions, max_stmt_executions_int): Declare.
5953         * tree-data-ref.c (estimated_loop_iterations)
5954         (estimated_loop_iterations_int): Move functions...
5955         * tree-ssa-loop-niter.c (estimated_loop_iterations)
5956         (estimated_loop_iterations_int): here.
5957         (record_estimate): Change nb_iterations_upper_bound and
5958         nb_iterations_estimate semantics.
5959         (max_stmt_executions, max_stmt_executions_int): New function.
5960         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
5961         (max_stmt_executions_tree): this.
5962         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
5963         estimated_loop_iterations_tree.
5964         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
5965         max_stmt_executions_int instead of estimated_loop_iterations_int.
5966         * predict.c (predict_loops): Idem.
5967         * tree-parloops.c (parallelize_loops): Idem.
5968         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
5969         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
5970         (init_omega_for_ddr_1): Idem.
5971         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
5972         (loop_prefetch_arrays): Idem
5973         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
5974         max_stmt_executions instead of estimated_loop_iterations.
5975         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
5976         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
5977         instead of nb_iterations_upper_bound.
5978
5979 2011-06-13  Jan Hubicka  <jh@suse.cz>
5980
5981         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
5982
5983 2011-06-14  Richard Henderson  <rth@redhat.com>
5984
5985         PR debug/48459
5986         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
5987         (based_loc_descr): Assert it's true.
5988         (compute_frame_pointer_to_fb_displacement): Set it, rather than
5989         aborting immediately.
5990
5991 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
5992             Mingfeng Wu  <mingfeng@faraday-tech.com>
5993
5994         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
5995
5996 2011-06-13  Jan Hubicka  <jh@suse.cz>
5997
5998         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
5999
6000 2011-06-13  Jan Hubicka  <jh@suse.cz>
6001
6002         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
6003         similarly to DECL_COMDAT.
6004         * cgraphunit.c (cgraph_analyze_function): Likewise.
6005         * ipa.c (function_and_variable_visibility): Likewise.
6006
6007 2011-06-13  Jan Hubicka  <jh@suse.cz>
6008
6009         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
6010         BINFO_VIRTUALS when streaming for ltrans unit.
6011
6012 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
6013
6014         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
6015         (movdi_internal64): Same.
6016
6017 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
6018
6019         PR target/44618
6020         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
6021         a set of similar patterns, where the MATCH_OPERAND for the function
6022         argument is replaced with individual references to hardware registers.
6023         (save_fpregs_<mode>): Ditto
6024         (restore_gpregs_<mode>): Ditto
6025         (return_and_restore_gpregs_<mode>): Ditto
6026         (return_and_restore_fpregs_<mode>): Ditto
6027         (return_and_restore_fpregs_aix_<mode>): Ditto
6028
6029 2011-06-13  Jan Hubicka  <jh@suse.cz>
6030
6031         * ipa-utils.c (postorder_stack): New structure.
6032         (ipa_reverse_postorder): Handle aliases.
6033
6034 2011-06-13  Jan Hubicka  <jh@suse.cz>
6035
6036         * ipa-inline.c (reset_edge_caches): Walk aliases.
6037         (update_caller_keys): Do not test inlinability of aliases.
6038         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
6039         (do_estimate_growth): Fix typo.
6040
6041 2011-06-13  Jan Hubicka  <jh@suse.cz>
6042
6043         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
6044         (can_remove_node_now_p): ... here; handle same comdat groups.
6045         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
6046         (inline_call): Update use of can_remove_node_now_p.
6047
6048 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6049
6050         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
6051         condition to disallow non-identical memory locations.
6052         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
6053         preference to bit manipulation instructions.
6054
6055 2011-06-13  Jan Hubicka  <jh@suse.cz>
6056
6057         * cgraph.c (cgraph_for_node_thunks_and_aliases,
6058         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
6059         (nonremovable_p): New function.
6060         (cgraph_can_remove_if_no_direct_calls_p): New function.
6061         (used_from_object_file_p): New functoin.
6062         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
6063         references from aliases.
6064         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
6065         * ipa-inline.c (check_caller_edge): New function.
6066         (want_inline_function_called_once_p): Use it; accept aliases called
6067         once, too.
6068         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
6069
6070 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6071
6072         PR target/48454
6073         * config/arm/neon.md (vec_pack_trunc): Set the lengths
6074         correctly for the case with Quad vectors.
6075
6076 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
6077            Ira Rosen  <ira.rosen@linaro.org>
6078
6079         PR tree-optimization/49352
6080         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
6081         all, make sure loop_use_stmt after the loop is a def stmt of a used
6082         SSA_NAME that is the only one defined inside of the loop.  Don't
6083         check for COND_EXPR and GIMPLE_BINARY_RHS.
6084         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
6085         check_reduction is true.
6086
6087 2011-06-11  Jan Hubicka  <jh@suse.cz>
6088
6089         PR middle-end/49373
6090         * ipa.c (cgraph_externally_visible_p): Check resolution info.
6091
6092 2011-06-11  Jan Hubicka  <jh@suse.cz>
6093
6094         PR middle-end/48836
6095         * ipa-inline-transform.c: Include tree-pass.h
6096         (inline_transform): Set TODO_update_ssa_only_virtuals.
6097         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
6098
6099 2011-06-11  Jan Hubicka  <jh@suse.cz>
6100
6101         PR middle-end/49378
6102         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
6103         aliases and thunks.
6104
6105 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
6106
6107         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
6108         Take number of iterations to peel into account for equally frequent
6109         misalignment values.
6110
6111 2011-06-11  Jan Hubicka  <jh@suse.cz>
6112
6113         * lto-streamer-out.c (produce_symtab): Stream out the newly
6114         represented aliases.
6115
6116 2011-06-11  Jan Hubicka  <jh@suse.cz>
6117
6118         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
6119         varying args.
6120         (ipa_update_after_lto_read): Likewise.
6121         (ipa_write_node_info): Do not sream call_with_var_arguments.
6122         (ipa_read_node_info): Likewise.
6123
6124 2011-06-11  Jan Hubicka  <jh@suse.cz>
6125
6126         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
6127
6128 2011-06-11  Jan Hubicka  <jh@suse.cz>
6129
6130         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
6131         (lto_symtab_resolve_can_prevail_p): Likewise.
6132         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
6133         * cgraph.c (same_body_aliases_done): New global var.
6134         (cgraph_same_body_alias_1): Rename to ...
6135         (cgraph_create_function_alias): ... this one; reorg to new
6136         representation.
6137         (cgraph_same_body_alias): Use cgraph_create_function_alias;
6138         record references when asked to.
6139         (cgraph_add_thunk): Fix formating.
6140         (cgraph_get_node): Kill same body alias code.
6141         (cgraph_node_for_asm): Likewise.
6142         (cgraph_remove_same_body_alias): Remove.
6143         (cgraph_remove_node): Kill same body alias code.
6144         (cgraph_mark_address_taken_node): Mark also the aliased function
6145         as having address taken.
6146         (dump_cgraph_node): Dump same body aliases.
6147         (cgraph_for_node_thunks_and_aliases): Update for new alias
6148         representation.
6149         (cgraph_for_node_and_aliases): Likewise.
6150         * cgraph.h (same_body): Kll pointer.
6151         (same_body_alias): Update comment.
6152         (same_body_aliases_done): Declare.
6153         (cgraph_remove_same_body_alias): Remove declaration.
6154         (cgraph_create_function_alias): Declare.
6155         (cgraph_process_same_body_aliases): Declare.
6156         (cgraph_function_with_gimple_body_p): Check for alias.
6157         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
6158         (cgraph_alias_aliased_node): New function.
6159         (cgraph_function_node): Update for new aliases.
6160         (cgraph_function_or_thunk_node): Likewise.
6161         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
6162         (inline_call): Remove dead aliases.
6163         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
6164         name hack for same body aliases.
6165         (clone_of_p): Look through aliases.
6166         (verify_cgraph_node): Verify aliases.
6167         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
6168         (cgraph_process_same_body_aliases): New function.
6169         (process_function_and_variable_attributes): Disable weakref warning on
6170         alias.
6171         (cgraph_analyze_functions): Handle aliases.
6172         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
6173         (assemble_thunks): Rename to ...
6174         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
6175         (cgraph_expand_function): Remove alias output code.
6176         (cgraph_output_in_order): Skip aliases.
6177         (cgraph_preserve_function_body_p): Aliases don't need preserving.
6178         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
6179         (ipa_record_reference): Do not assert on alias references.
6180         (ipa_ref_has_aliases_p): New function.
6181         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
6182         (ipa_ref_has_aliases_p): Declare.
6183         * lto-cgraph.c (lto_output_node): Handle aliases.
6184         (input_node): Likewise.
6185         * lto-streamer-out.c (lto_output): Skip aliases.
6186         (produce_symtab): Kill same_body_alias code.
6187         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
6188         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
6189         * ipa-inline.c (update_caller_keys): Walk aliases.
6190         (inline_small_functions): Fix thinko in previous patch.
6191         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
6192         (function_and_variable_visibility): Do not walk same body aliases.
6193         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
6194         (ipa_pta_execute): Use it.
6195
6196 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
6197
6198         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
6199         (*vec_dupv2df): Rename from vec_dupv2df.
6200         (vec_dupv2df): New expander.
6201
6202 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
6203
6204         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
6205
6206 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
6207
6208         * config/i386/i386.md: Use default value in "isa" attribute.
6209         * config/i386/sse.md: Ditto.
6210         * config/i386/mmx.md: Ditto.
6211
6212 2011-06-10  Wei Guozhi  <carrot@google.com>
6213
6214         PR target/45335
6215         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
6216         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
6217         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
6218         related peephole2.
6219         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
6220         related peephole2.
6221         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
6222         (arm_legitimate_ldrd_p): New prototype.
6223         (arm_output_ldrd): New prototype.
6224         * config/arm/arm.c (arm_check_ldrd_operands): New function.
6225         (arm_legitimate_ldrd_p): New function.
6226         (arm_output_ldrd): New function.
6227
6228 2011-06-10  David Li  <davidxl@google.com>
6229
6230         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6231         * passes.c (passr_eq): New function.
6232         (create_pass_tab): New function.
6233         (pass_traverse): New function.
6234         (dump_one_pass): New function.
6235         (dump_pass_list): New function.
6236         (dump_passes): New function.
6237
6238 2011-06-10  Jan Hubicka  <jh@suse.cz>
6239
6240         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
6241         setting the nothrow flag.
6242         * ipa-reference.c (propagate): Skip aliases.
6243         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
6244         (propagate_nothrow): Skip aliases; do not update cgraph.
6245         (local_pure_const): Do not update cgraph.
6246         * tree-profile.c (tree_profiling): Do fixup_cfg.
6247
6248 2011-06-10  Jan Hubicka  <jh@suse.cz>
6249
6250         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
6251         (cgraph_local_node_p): ... here; handle aliases.
6252         (has_addr_references_p): Break out from ...;
6253         (cgraph_remove_unreachable_nodes) ... here.
6254
6255 2011-06-10  Jan Hubicka  <jh@suse.cz>
6256
6257         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
6258         * common.opt (flag_inline_functions_called_once): Do not
6259         initialize to 1.
6260
6261 2011-06-10  Jan Hubicka  <jh@suse.cz>
6262
6263         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
6264         (ipcp_initialize_node_lattices): Do not deal with aliases;
6265         Do not try to propagate through thunks.
6266         (ipcp_change_tops_to_bottom): Do not deal with aliases.
6267
6268 2011-06-10  Jan Hubicka  <jh@suse.cz>
6269
6270         * ipa-prop.c (ipa_write_node_info): Stream jump functions
6271         for indirect calls.
6272         (ipa_read_node_info): Likewise.
6273
6274 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6275
6276         PR lto/49302
6277         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
6278         (build_and_insert_call): Likewise.
6279         (build_and_insert_ref): New.
6280         (gimple_expand_builtin_pow): Minor cleanup.
6281         (gimple_expand_builtin_cabs): New.
6282         (execute_cse_sincos): Add case for BUILT_IN_CABS.
6283
6284 2011-06-10  Jan Hubicka  <jh@suse.cz>
6285
6286         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
6287         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
6288         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
6289         (ipcp_propagate_stage): Skip aliases when propagating.
6290         (ipcp_need_redirect_p): Skip aliases.
6291         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
6292         collect_callers_of_node.
6293         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
6294         for aliases.
6295         (ipa_compute_jump_functions): Look through aliases.
6296
6297 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6298
6299         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
6300
6301 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
6302
6303         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
6304         Adjust comments.
6305         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
6306
6307 2011-06-10  Jan Hubicka  <jh@suse.cz>
6308
6309         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
6310         Update call of gimple_get_virt_method_for_binfo.
6311         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
6312         refuse_thunks parameter.
6313         (gimple_fold_call): Update.
6314         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
6315
6316 2011-06-10  Jan Hubicka  <jh@suse.cz>
6317
6318         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
6319         (not_all_callers_have_enough_arguments_p): ... this one; turn into
6320         worker for cgraph_for_node_and_aliases.
6321         (convert_callers_for_node): Break out from ...
6322         (convert_callers): ... here.
6323         (modify_function): Use collect_callers_of_node.
6324         (ipa_early_sra): Use cgraph_for_node_and_aliases.
6325
6326 2011-06-10  Richard Guenther  <rguenther@suse.de>
6327
6328         PR tree-optimization/49361
6329         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
6330         when not already in gimple form.
6331
6332 2011-06-10  Richard Guenther  <rguenther@suse.de>
6333
6334         PR bootstrap/49344
6335         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
6336         FOR_EACH_PHI_OR_STMT_USE.
6337
6338 2011-06-10  Jan Hubicka  <jh@suse.cz>
6339
6340         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
6341         (clone_inlined_nodes): ... here.
6342         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
6343         to real destination prior inlining.
6344         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
6345         can_early_inline_edge_p, want_early_inline_function_p,
6346         want_early_inline_function_p, want_inline_small_function_p,
6347         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
6348         edge_badness, update_all_callee_keys, lookup_recursive_calls,
6349         add_new_edges_to_heap, inline_small_functions, flatten_function,
6350         inline_always_inline_functions, early_inline_small_functions): Use
6351         cgraph_function_or_thunk_node.
6352         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
6353         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
6354         (do_estimate_edge_growth_1): Break out from ...
6355         (do_estimate_growth) ... here; walk aliases.
6356         (inline_generate_summary): Skip aliases.
6357
6358 2011-06-10  Richard Guenther  <rguenther@suse.de>
6359
6360         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
6361         forward when combining, visit inserted stmts when a stmt was changed.
6362
6363 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
6364
6365         * tree.h (error_operand_p): Add.
6366         * dbxout.c (dbxout_type_fields): Use the latter.
6367         * c-decl.c (add_stmt): Likewise.
6368         * gimplify.c (omp_add_variable, omp_notice_variable,
6369         gimplify_scan_omp_clauses): Likewise.
6370
6371 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
6372
6373         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
6374         when a value is actually passed in regs.
6375
6376 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
6377             Laurent Rougé  <laurent.rouge@menta.fr>
6378
6379         * doc/invoke.texi (SPARC options): Add -mflat.
6380         * config/sparc/sparc.opt: Likewise.
6381         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
6382         (sparc_flat_expand_prologue): Declare.
6383         (sparc_flat_expand_epilogue): Likewise.
6384         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
6385         (CPP_ENDIAN_SPEC): Replace with...
6386         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
6387         (CPP_SPEC): Adjust to above change.
6388         (EXTRA_SPECS): Likewise.
6389         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
6390         (INCOMING_REGNO): Likewise.
6391         (OUTGOING_REGNO): Likewise.
6392         (LOCAL_REGNO): Likewise.
6393         (SETUP_FRAME_ADDRESSES): Likewise.
6394         (FIXED_REGISTERS): Set 0 for %fp.
6395         (CALL_USED_REGISTERS): Likewise.
6396         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
6397         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
6398         (RETURN_ADDR_REGNUM): Define.
6399         (RETURN_ADDR_RTX): Use it.
6400         (INCOMING_RETURN_ADDR_REGNUM): Define.
6401         (INCOMING_RETURN_ADDR_RTX): Use it.
6402         (DWARF_FRAME_RETURN_COLUMN): Likewise.
6403         (EH_RETURN_REGNUM): Define.
6404         (EH_RETURN_STACKADJ_RTX): Use it.
6405         (EH_RETURN_HANDLER_RTX): Delete.
6406         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
6407         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
6408         Delete.
6409         (struct machine_function): Add frame_size, apparent_frame_size,
6410         frame_base_reg, frame_base_offset, n_global_fp_regs and
6411         save_local_in_regs_p fields.
6412         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
6413         sparc_frame_base_offset, sparc_n_global_fp_regs,
6414         sparc_save_local_in_regs_p): New macros.
6415         (sparc_option_override): Error out if -fcall-saved-REG is specified
6416         for Out registers.
6417         (eligible_for_restore_insn): Fix formatting.
6418         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
6419         (eligible_for_sibcall_delay): Likewise.
6420         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
6421         (sparc_legitimate_address_p): Adjust to above change.
6422         (save_global_or_fp_reg_p): New predicate.
6423         (return_addr_reg_needed_p): Likewise.
6424         (save_local_or_in_reg_p): Likewise.
6425         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
6426         (SORR_SAVE, SORR_RESTORE): Delete.
6427         (sorr_pred_t): New typedef.
6428         (sorr_act_t): New enum.
6429         (save_or_restore_regs): Rename to...
6430         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
6431         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
6432         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
6433         mechanism.  Add CFI information for double-word saves in 32-bit mode.
6434         (emit_adjust_base_to_offset): New function extracted from...
6435         (emit_save_or_restore_regs): ...this.  Rename the rest to...
6436         (emit_save_or_restore_regs_global_fp_regs): ...this.
6437         (emit_save_or_restore_regs_local_in_regs): New function.
6438         (gen_create_flat_frame_[123]): New functions.
6439         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
6440         (sparc_flat_expand_prologue): New function.
6441         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
6442         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
6443         (sparc_flat_expand_epilogue): New function.
6444         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
6445         (output_return): Likewise.
6446         (output_sibcall): Likewise.
6447         (sparc_output_mi_thunk): Likewise.
6448         (sparc_frame_pointer_required): Likewise.
6449         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
6450         function optimization.
6451         * config/sparc/sparc.md (flat): New attribute.
6452         (prologue): Add TARGET_FLAT handling.
6453         (save_register_window): Disable if TARGET_FLAT.
6454         (create_flat_frame_[123]): New patterns.
6455         (epilogue): Add TARGET_FLAT handling.
6456         (sibcall_epilogue): Likewise.
6457         (eh_return): New expander.
6458         (eh_return_internal): New insn and splitter.
6459         (return_internal): Add TARGET_FLAT handling.
6460         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
6461         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
6462         (nonlocal_goto): Add TARGET_FLAT handling.
6463         * config/sparc/t-elf: Add -mflat multilib.
6464         * config/sparc/t-leon: Likewise.
6465
6466 2011-06-10  Jan Hubicka  <jh@suse.cz>
6467
6468         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
6469         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
6470         (self_recursive_p): Use cgraph_function_node.
6471         (propagate_pure_const): Likewise.
6472         (propagate_nothrow): Likewise.
6473         * ipa-reference.c (ipa_reference_get_not_read_global): Use
6474         cgraph_function_node.
6475         (propagate_bits): Likewise.
6476         (propagate): Likewise.
6477
6478 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6479             Richard Earnshaw  <rearnsha@arm.com>
6480
6481         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
6482         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
6483         (*thumb2_movdi_vfp): Delete.
6484         (*arm_movdi_vfp_cortexa8): Delete.
6485         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
6486         (*movdi_vfp_cortexa8): Likewise.
6487
6488 2011-06-10  Richard Guenther  <rguenther@suse.de>
6489
6490         * stor-layout.c (initialize_sizetypes): Give names to all
6491         sizetype kinds.
6492
6493 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
6494
6495         PR tree-optimization/49318
6496         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
6497         irrelevant pattern statements.
6498
6499 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
6500
6501         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
6502
6503         PR bootstrap/49354
6504         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
6505         to last assignment.
6506
6507 2011-06-09  Jan Hubicka  <jh@suse.cz>
6508
6509         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
6510         do not recompute reachable flag.
6511         (cgraph_finalize_function, cgraph_analyze_functions): Set
6512         redefined_extern_inline here.
6513
6514 2011-06-09  Jan Hubicka  <jh@suse.cz>
6515
6516         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
6517         (cgraph_only_called_directly_p): ... this one; bring offline.
6518         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
6519         varpool_used_from_object_file_p): Drop names from the declaratoin.
6520         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
6521         collect_callers_of_node): New.
6522         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
6523         (cgraph_edge_recursive_p): Use cgraph_function_node.
6524         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
6525         (cgraph_node_cannot_be_local_p_1): Break out from ...
6526         (cgraph_node_can_be_local_p): ... here; walk aliases.
6527         (cgraph_for_node_thunks_and_aliases): New function.
6528         (cgraph_for_node_and_aliases): New function.
6529         (cgraph_make_node_local_1): Break out from ...
6530         (cgraph_make_node_local) ... here; use
6531         cgraph_for_node_thunks_and_aliases.
6532         (cgraph_set_nothrow_flag_1): Break out from ...
6533         (cgraph_set_nothrow_flag) ... here;
6534         use cgraph_for_node_thunks_and_aliases.
6535         (cgraph_set_const_flag_1): Break out from ...
6536         (cgraph_set_const_flag) ... here;
6537         use cgraph_for_node_thunks_and_aliases.
6538         (cgraph_set_pure_flag_1): Break out from ...
6539         (cgraph_set_pure_flag) ... here;
6540         use cgraph_for_node_thunks_and_aliases.
6541         (cgraph_propagate_frequency_1): Break out from ...
6542         (cgraph_propagate_frequency) ... here; use
6543         cgraph_for_node_thunks_and_aliases.
6544         (cgraph_used_from_object_file_p): Do not care about aliases.
6545         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
6546         New functions.
6547         (collect_callers_of_node_1, collect_callers_of_node): New functions.
6548
6549 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
6550
6551         PR rtl-optimization/49154
6552         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
6553         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
6554         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
6555         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
6556         * config/cris/cris.h (cris_register_move_cost): Remove
6557         !TARGET_V32 code.  Tweak comments.
6558
6559 2011-06-09  Jan Hubicka  <jh@suse.cz>
6560
6561         * cgraphbuild.c (record_eh_tables): Mark personality function as having
6562         address taken.
6563
6564 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
6565
6566         PR rtl-optimization/49154
6567         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
6568         is a matching slot in the hashtable, assign it to classes_ptr.
6569
6570         PR rtl-optimization/49154
6571         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
6572         register classes.
6573         * doc/tm.texi: Regenerate.
6574
6575 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
6576
6577         PR target/49307
6578         * config/sh/sh.md (UNSPEC_CHKADD): New.
6579         (chk_guard_add): New define_insn_and_split.
6580         (symGOT_load): Use chk_guard_add instead of blockage.
6581
6582 2011-06-09  Kai Tietz  <ktietz@redhat.com>
6583
6584         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
6585
6586 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
6587
6588         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
6589
6590 2011-06-09  Wei Guozhi  <carrot@google.com>
6591
6592         PR target/46975
6593         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
6594         (peephole2 for conditional move): Generate 16 bit instructions.
6595
6596 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
6597
6598         * config/i386/i386.md (*movdi_internal_rex64): Merge
6599         alternatives 6 and 8.
6600
6601 2011-06-09  David Li  <davidxl@google.com>
6602
6603         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6604         * passes.c (passr_eq): New function.
6605         (create_pass_tab): New function.
6606         (pass_traverse): New function.
6607         (dump_one_pass): New function.
6608         (dump_pass_list): New function.
6609         (dump_passes): New function.
6610
6611 2011-06-09  David Li  <davidxl@google.com>
6612
6613         * tree-complex.c (tree_lower_complex): Gate cleanup.
6614         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
6615         (execute_optimize_stdarg): Ditto.
6616         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
6617         (execute_cleanup_eh_1): Ditto.
6618         (execute_cleanup_eh): Ditto.
6619         * gcse.c (gate_rtl_pre): Ditto.
6620         (execute_rtl_pre): Ditto.
6621         * except.c (finish_eh_generation): Ditto.
6622         (convert_to_eh_region_ranges): Ditto.
6623         * cprop.c (one_cprop_pass): Ditto.
6624
6625 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
6626
6627         PR target/48673
6628         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
6629         in all basic blocks.
6630
6631 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6632
6633         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
6634         (HAVE_ENABLE_EXECUTE_STACK): Define.
6635         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
6636         (HAVE_ENABLE_EXECUTE_STACK): Define.
6637         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
6638         (HAVE_ENABLE_EXECUTE_STACK): Define.
6639         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
6640         (ENABLE_EXECUTE_STACK): Remove.
6641         (HAVE_ENABLE_EXECUTE_STACK): Define.
6642         [IN_LIBGCC2]: Don't include <windows.h>.
6643         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6644         (HAVE_ENABLE_EXECUTE_STACK): Define.
6645         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
6646         (HAVE_ENABLE_EXECUTE_STACK): Define.
6647         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
6648         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
6649         (HAVE_ENABLE_EXECUTE_STACK): Define.
6650         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
6651         (HAVE_ENABLE_EXECUTE_STACK): Define.
6652         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
6653         (HAVE_ENABLE_EXECUTE_STACK): Define.
6654         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6655         (HAVE_ENABLE_EXECUTE_STACK): Define.
6656         * config/alpha/alpha.c (alpha_trampoline_init): Test
6657         HAVE_ENABLE_EXECUTE_STACK.
6658         * config/i386/i386.c (ix86_trampoline_init): Likewise.
6659         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
6660         (sparc64_initialize_trampoline): Likewise.
6661         * libgcc2.c [L_enable_execute_stack]: Remove.
6662         * system.h (ENABLE_EXECUTE_STACK): Poison.
6663         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
6664         * doc/tm.texi: Regenerate.
6665         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
6666
6667 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
6668
6669         PR middle-end/49308
6670         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
6671         variable.  After resetting and rescanning insn continue with previous
6672         statement.
6673
6674 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6675
6676         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
6677         (gcc_cv_ld_hidden): Likewise.
6678         * configure: Regenerate.
6679         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
6680         (ix86_stack_protect_fail): Mark unused.
6681         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
6682         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
6683         [TARGET_MACHO]: Don't define.
6684         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
6685         (TARGET_STACK_PROTECT_FAIL): Likewise.
6686         (rs6000_stack_protect_fail): Mark unused.
6687         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
6688         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
6689
6690 2011-06-08  Andi Kleen  <ak@linux.intel.com>
6691
6692         * varasm.c (get_section): Print location of other conflict
6693         for section conflicts.
6694
6695 2011-06-08  Andi Kleen  <ak@linux.intel.com>
6696
6697         * config/i386/driver-i386.c (host_detect_local_cpu):
6698         Add model 0x2d Intel CPU.
6699
6700 2011-06-08  Andi Kleen  <ak@linux.intel.com>
6701
6702         * reginfo.c (global_regs_decl): Add.
6703         (globalize_reg): Add decl parameter. Compute location.  Pass location
6704         to warnings and add inform. Store decl in global_regs_decl.
6705         * rtl.h (globalize_reg): Update prototype.
6706         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
6707
6708 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
6709
6710         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
6711
6712 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
6713
6714         PR target/49305
6715         * config/sh/predicates.md (general_movsrc_operand): Check
6716         mode for memory with indexed address for QI and HImode.
6717         (general_movdst_operand): Likewise.
6718
6719 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
6720
6721         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
6722
6723 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
6724
6725         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
6726         (num_ssa_operands): Likewise.
6727         (op_iter_init_phiuse): Forward-declare.
6728         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
6729
6730 2011-06-08  Nick Clifton  <nickc@redhat.com>
6731
6732         * doc/invoke.texi (ARM Options): Update description of
6733         -mthumb-interwork.
6734
6735 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
6736
6737         * config/i386/driver-i386.c (host_detect_local_cpu): Support
6738         unknown Intel family 0x6 CPUs.
6739
6740 2011-06-08  Martin Jambor  <mjambor@suse.cz>
6741
6742         * tree-sra.c (mark_rw_status): Removed.
6743         (analyze_access_subtree): New parameter parent instead of
6744         mark_read and mark_write, propagate from that.
6745
6746 2011-06-08  Julian Brown  <julian@codesourcery.com>
6747
6748         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
6749         for double-precision helper functions in hard-float mode if only
6750         single-precision arithmetic is supported in hardware.
6751
6752 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
6753
6754         PR rtl-optimization/49303
6755         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
6756         code_motion_path_driver returned 0 or 1.
6757         (sel_region_finish): Clear h_d_i_d.
6758
6759 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
6760
6761         * config/sh/sh.c (prepare_move_operands): Set pic register
6762         appropriately for global and local dynamic tls models even
6763         if flag_pic is unset.
6764
6765 2011-06-07  Jason Merrill  <jason@redhat.com>
6766
6767         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
6768
6769 2011-06-07  Xinliang David Li  <davidxl@google.com>
6770         * passes.c (enable_disable_pass): Handle assembler name.
6771         (is_pass_explicitly_enabled_or_disabled): Ditto.
6772
6773 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6774
6775         PR tree-optimization/48497
6776         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
6777
6778 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6779
6780         PR tree-optimization/46728
6781         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
6782         to use gimple_val_nonnegative_real_p.
6783         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
6784         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
6785
6786 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
6787
6788         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
6789
6790 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
6791
6792         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
6793         constant vectors.
6794
6795 2011-06-07  Richard Guenther  <rguenther@suse.de>
6796
6797         * stor-layout.c (initialize_sizetypes): Initialize all
6798         sizetypes based on target definitions.
6799         (set_sizetype): Remove.
6800         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
6801         * tree.h (set_sizetype): Remove.
6802
6803 2011-06-07  Nick Clifton  <nickc@redhat.com>
6804
6805         * config.gcc: Unify V850 architecture options and add support for
6806         newer V850 architectures.
6807         * config/v850/t-v850e: Delete.
6808
6809 2011-06-07  Richard Guenther  <rguenther@suse.de>
6810
6811         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
6812         Call set_sizetype from here.
6813
6814 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
6815
6816         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
6817         (*maddhisi4tb, *maddhisi4tt): New define_insns.
6818
6819 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
6820             Andrew Stubbs  <ams@codesourcery.com>
6821
6822         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
6823         multiplies.
6824         * doc/md.texi (Canonicalization of Instructions): Document widening
6825         multiply canonicalization.
6826
6827 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
6828
6829         PR gcov-profile/49299
6830         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
6831
6832 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
6833
6834         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
6835         a pointer.
6836         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
6837         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
6838         vect_recog_pow_pattern): Likewise.
6839         (vect_pattern_recog_1): Remove declaration.
6840         (widened_name_p): Remove declaration.  Add new argument to specify
6841         whether to check that both types are either signed or unsigned.
6842         (vect_recog_widen_mult_pattern): Update documentation.  Handle
6843         unsigned patterns and multiplication by constants.
6844         (vect_pattern_recog_1): Update vect_recog_func references.  Use
6845         statement information from the statement returned from pattern
6846         detection functions.
6847         (vect_pattern_recog): Update vect_recog_func reference.
6848         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
6849         multiplication by a constant use the type of the other operand.
6850
6851 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
6852
6853         PR rtl-optimization/49145
6854         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
6855
6856 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
6857
6858         PR debug/49262
6859         * dwarf2out.c (native_encode_initializer): Decrement count in each
6860         iteration.
6861
6862         PR debug/49294
6863         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
6864         non-MODE_INT modes.
6865
6866         PR c++/49264
6867         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
6868         if stmt folded into nothing.
6869         * tree-inline.c (fold_marked_statements): If a builtin at the end of
6870         a bb folded into nothing, just update cgraph edges and move to next bb.
6871         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
6872         to be NULL.  Don't compute count and frequency if new_call is NULL.
6873
6874 2011-06-04  Diego Novillo  <dnovillo@google.com>
6875
6876         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
6877         (cgraph.o): Likewise.
6878         (cgraphunit.o): Likewise.
6879         * cgraphunit.c: Include lto-streamer.h
6880         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
6881         if LTO is enabled.
6882         * lto-streamer-in.c (unpack_value_fields): Call
6883         streamer_hooks.unpack_value_fields if set.
6884         (lto_materialize_tree): For unhandled nodes, first try to
6885         call lto_streamer_hooks.alloc_tree, if it exists.
6886         (lto_input_ts_decl_common_tree_pointers): Move reading of
6887         DECL_INITIAL to lto_streamer_read_tree.
6888         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
6889         (lto_streamer_read_tree): New.
6890         (lto_reader_init): Rename from lto_init_reader.
6891         Move initialization code to lto/lto.c.
6892         * lto-streamer-out.c (pack_value_fields): Call
6893         streamer_hooks.pack_value_fields if set.
6894         (lto_output_tree_ref): For tree nodes that are not normally indexable,
6895         call streamer_hooks.indexable_with_decls_p before giving up.
6896         (lto_output_ts_decl_common_tree_pointers): Move handling
6897         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
6898         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
6899         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
6900         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
6901         (lto_streamer_write_tree): New.
6902         (lto_output): Call lto_streamer_init directly.
6903         (lto_writer_init): Remove.
6904         * lto-streamer.c (streamer_hooks): New.
6905         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
6906         instead of lto_preload_common_nodes.
6907         (lto_is_streamable): Move from lto-streamer.h
6908         (lto_streamer_hooks_init): New.
6909         (streamer_hooks): New.
6910         (streamer_hooks_init): New.
6911         * lto-streamer.h (struct output_block): Forward declare.
6912         (struct lto_input_block): Likewise.
6913         (struct data_in): Likewise.
6914         (struct bitpack_d): Likewise.
6915         (struct streamer_hooks): Declare.
6916         (streamer_hooks): Declare.
6917         (lto_streamer_hooks_init): Declare.
6918         (lto_streamer_write_tree): Declare.
6919         (lto_streamer_read_tree): Declare.
6920         (streamer_hooks_init): Declare.
6921         (lto_is_streamable): Move to lto-streamer.c
6922
6923 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6924
6925         * longlong.h (smul_ppmm): The resulting register pair contains the
6926         higher order word first.
6927
6928 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6929
6930         PR tree-optimization/46728
6931         * builtins.c (powi_table): Remove.
6932         (powi_lookup_cost): Remove.
6933         (powi_cost): Remove.
6934         (expand_powi_1): Remove.
6935         (expand_powi): Remove.
6936         (expand_builtin_pow_root): Remove.
6937         (expand_builtin_pow): Remove.
6938         (expand_builtin_powi): Eliminate handling of constant exponent.
6939         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
6940
6941 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6942
6943         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
6944
6945 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6946
6947         * dce.c (reset_unmarked_insns_debug_uses): New.
6948         (delete_unmarked_insns): Skip debug insns.
6949         (prescan_insns_for_dce): Likewise.
6950         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
6951         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
6952         active reg can be found.
6953         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
6954         (convert_regs_1): Use it.
6955
6956 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6957
6958         * tree-pretty-print.c (dump_function_header): Add flags.
6959         Don't dump decl_uid with nouid.
6960         * tree-pretty-print.h (dump_function_header): Adjust.
6961         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
6962         * passes.c (pass_init_dump_file): Pass dump_flags on.
6963         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
6964
6965 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6966
6967         PR bootstrap/49270
6968         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
6969
6970 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
6971
6972         PR tree-optimization/49243
6973         * calls.c (setjmp_call_p): Also check if fndecl has the
6974         returns_twice attribute.
6975
6976 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6977
6978         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
6979         -ffast-math etc.
6980
6981 2011-06-06  Richard Henderson  <rth@redhat.com>
6982             Georg-Johann Lay  <avr@gjlay.de>
6983
6984         PR target/42210
6985         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
6986         New predicates.
6987         * config/avr/avr.md ("insv"): New insn expander.
6988         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
6989         "*insv.not.io", "*insv.reg"): New insns.
6990
6991 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
6992
6993         PR target/49285
6994         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
6995         to nonimmediate_operand from memory_operand for the operand that is to
6996         be forced to memory by the expander.  Lose the constraints.
6997
6998 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
6999
7000         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
7001         EH return when delayed branches are disabled.
7002
7003 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
7004
7005         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
7006         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
7007         calculation.
7008         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
7009         Simplify MODE_V1DF and MODE_V2SF handling.
7010         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
7011         Simplify MODE_SF handling.
7012
7013 2011-06-04  Jan Hubicka  <jh@suse.cz>
7014
7015         PR tree-optimization/48893
7016         PR tree-optimization/49091
7017         PR tree-optimization/49179
7018         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
7019         Bounds check.
7020
7021 2011-06-04  Jan Hubicka  <jh@suse.cz>
7022
7023         PR lto/48954
7024         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
7025         bitmaps.
7026
7027 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
7028
7029         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
7030
7031 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
7032
7033         PR target/49281
7034         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
7035         to be strictly smaller than 1 << shiftcount.
7036
7037 2011-06-04  Jan Hubicka  <jh@suse.cz>
7038
7039         PR tree-optimize/48929
7040         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
7041         of empty predicate.
7042
7043 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
7044
7045         PR debug/48333
7046         * calls.c (emit_call_1): Prefer the __builtin declaration of
7047         builtin functions.
7048
7049 2011-06-03   Diego Novillo  <dnovillo@google.com>
7050
7051         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
7052         (lto_input_tree_pointers): Likewise.
7053         * lto-streamer-out.c (pack_value_fields): Likewise.
7054         (lto_output_tree_pointers): Likewise.
7055         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
7056         and OPTIMIZATION_NODE.
7057
7058 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7059
7060         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
7061         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
7062         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
7063         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
7064         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
7065         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
7066         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
7067         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
7068         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
7069         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
7070         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
7071         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
7072         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
7073         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
7074         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
7075         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
7076         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
7077         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
7078         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
7079         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
7080         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
7081         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
7082         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
7083         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
7084         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
7085         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
7086         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
7087         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
7088         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
7089         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
7090         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
7091         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
7092         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
7093         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
7094         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
7095         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
7096         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
7097         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
7098         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
7099         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
7100         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
7101         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
7102         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
7103         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
7104         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
7105         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
7106         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
7107         * system.h (MD_UNWIND_SUPPORT): Poison.
7108         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
7109         * doc/tm.texi: Regenerate.
7110         * unwind-dw2.c: Include md-unwind-support.h instead of
7111         MD_UNWIND_SUPPORT.
7112         * config/ia64/unwind-ia64.c: Likewise.
7113         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7114
7115 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
7116
7117         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
7118
7119 2011-06-03  Richard Henderson  <rth@redhat.com>
7120             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7121
7122         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
7123         (sigill_hdlr): Correct insn, insn size.
7124         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
7125
7126 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7127
7128         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
7129         t-slibgcc-dummy.
7130         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
7131         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
7132         * config/mips/t-iris: Remove.
7133         * config/mips/t-irix6: New file.
7134         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
7135
7136 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7137
7138         * Makefile.in (LIB2ADDEHDEP): Remove.
7139         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
7140         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
7141         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
7142         * config/t-darwin (LIB2ADDEHDEP): Remove.
7143         * config/t-freebsd (LIB2ADDEHDEP): Remove.
7144         * config/t-linux (LIB2ADDEHDEP): Remove.
7145
7146 2011-06-03  Diego Novillo  <dnovillo@google.com>
7147
7148         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
7149         (lto_register_var_decl_in_symtab): Likewise.
7150         (lto_register_function_decl_in_symtab): Likewise.
7151         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
7152         logic to uniquify_nodes.
7153
7154 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7155
7156         * config/alpha/t-osf5: Remove.
7157         * config/alpha/t-osf-pthread: Remove.
7158         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
7159         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
7160
7161 2011-06-03  Julian Brown  <julian@codesourcery.com>
7162
7163         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
7164         (strongarm1110): Use strongarm tuning.
7165         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
7166         * config/arm/arm.c (arm_strongarm_tune): New.
7167         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7168         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
7169         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
7170         setting, using previous defaults or 1 for Cortex-A5.
7171         (arm_option_override): Set max_insns_skipped from current tuning.
7172
7173 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
7174
7175         * doc/install.texi (Options specification): Document --with-specs.
7176
7177 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7178
7179         * config/arm/neon.md (orndi3_neon): Actually split it.
7180
7181 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
7182
7183         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
7184         * var-tracking.c (reverse_op): Limite recurse depth to 5.
7185
7186 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
7187
7188         PR debug/47590
7189         * target.def (delay_sched2, delay_vartrack): New.
7190         * doc/tm.texi.in: Update.
7191         * doc/tm.texi: Rebuild.
7192         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
7193         * var-tracking.c (gate_handle_var_tracking): Likewise.
7194         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
7195         (bfin_flag_var_tracking): Drop.
7196         (output_file_start): Don't save and override flag_var_tracking.
7197         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
7198         (bfin_reorg): Test original variables.
7199         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7200         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
7201         (ia64_flag_var_tracking): Drop.
7202         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7203         (ia64_file_start): Don't save and override flag_var_tracking.
7204         (ia64_override_options_after_change): Ditto
7205         flag_schedule_insns_after_reload.
7206         (ia64_reorg): Test original variables.
7207         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
7208         (picochip_flag_var_tracking): Drop.
7209         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7210         (picochip_option_override): Don't save and override
7211         flag_schedule_insns_after_reload.
7212         (picochip_asm_file_start): Ditto flag_var_tracking.
7213         (picochip_reorg): Test original variables.
7214         * config/spu/spu.c (spu_flag_var_tracking): Drop.
7215         (TARGET_DELAY_VARTRACK): Define.
7216         (spu_var_tracking): New.
7217         (spu_machine_dependent_reorg): Call it.
7218         (asm_file_start): Don't save and override flag_var_tracking.
7219
7220 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
7221
7222         PR target/49163
7223         * config/sh/predicates.md (general_movsrc_operand): Return 0
7224         for memory and memory subreg of which address is an invalid
7225         indexed address for QI and HImode.
7226         (general_movdst_operand): Likewise.
7227
7228 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
7229
7230         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
7231         edges only, when there is a non-local label in the function.
7232         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
7233
7234 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
7235
7236         * config/i386/constraints.md (Y3): New register constraint.
7237         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
7238         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
7239         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
7240         *sse2_interleave_lowv2df.
7241
7242 2011-06-02  Julian Brown  <julian@codesourcery.com>
7243
7244         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
7245         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
7246         (arm_cortex_a5_tune): New.
7247
7248 2011-06-02  Julian Brown  <julian@codesourcery.com>
7249
7250         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
7251         * config/arm/arm.c (arm_default_branch_cost): New.
7252         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7253         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
7254         (arm_fa726_tune): Set branch_cost field using
7255         arm_default_branch_cost.
7256         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
7257         current_tune structure.
7258         * dojump.c (tm_p.h): Include file.
7259
7260 2011-06-02  Julian Brown  <julian@codesourcery.com>
7261
7262         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
7263         tuning.
7264         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
7265         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
7266         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
7267         field.
7268         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
7269         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
7270         (arm_fa726te_tune): Add prefer_constant_pool setting.
7271         (arm_v6t2_tune, arm_cortex_tune): New.
7272         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
7273         prefer_constant_pool setting.
7274
7275 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
7276
7277         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
7278         switch statement.
7279         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
7280         (*movdf_internal) <case 6,7,8>: Ditto.
7281
7282         * config/i386/constraints.md (Y4): New register constraint.
7283         * config/i386/sse.md (vec_set<mode>_0): Merge with
7284         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
7285         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
7286         *vec_extractv2di_1_sse.
7287         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
7288         and *vec_concatv2di_rex64_sse.
7289
7290 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
7291
7292         PR target/48807
7293         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
7294         of cgraph_local_info for null before attempting to use it.
7295
7296 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
7297
7298         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
7299         (current_function_dynamic_alloc_count): Delete.
7300         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
7301         (expand_builtin_nonlocal_goto): Remove obsolete comment.
7302         (expand_builtin_update_setjmp_buf): Remove dead code.
7303         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
7304         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
7305         support.
7306         * function.c (instantiate_virtual_regs): Likewise.
7307         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
7308         for a block with a single abnormal incoming edge.
7309         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
7310         (SETJMP_VIA_SAVE_AREA): Delete.
7311         * config/sparc/sparc-protos.h (load_got_register): Declare.
7312         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7313         (load_got_register): Make global.
7314         (sparc_frame_pointer_required): Add 'static'.
7315         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
7316         (sparc_builtin_setjmp_frame_value): New function.
7317         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
7318         (save_stack_nonlocal): New expander.
7319         (restore_stack_nonlocal): Likewise.
7320         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
7321         (nonlocal_goto_internal): New insn.
7322         (goto_handler_and_restore): Delete.
7323         (builtin_setjmp_setup): Likewise.
7324         (do_builtin_setjmp_setup): Likewise.
7325         (setjmp): Likewise.
7326         (builtin_setjmp_receiver): New expander.
7327
7328 2011-06-01  David Li  <davidxl@google.com>
7329
7330         PR middle-end/49261
7331         * tree-pretty-print.c (dump_function_header): Format cleanup.
7332
7333 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
7334
7335         PR target/49238
7336         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
7337         needed when original operands are used for msw_skip comparison.
7338
7339 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
7340
7341         PR debug/49250
7342         * var-tracking.c (add_uses, add_stores): Don't call
7343         cselib_subst_to_values on ENTRY_VALUE.
7344
7345 2011-06-01  Diego Novillo  <dnovillo@google.com>
7346
7347         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
7348         output_record_start with LTO_null instead of output_zero.
7349         (lto_output_ts_binfo_tree_pointers): Likewise.
7350         (lto_output_tree): Likewise.
7351         (output_eh_try_list): Likewise.
7352         (output_eh_region): Likewise.
7353         (output_eh_lp): Likewise.
7354         (output_eh_regions): Likewise.
7355         (output_bb): Likewise.
7356         (output_function): Likewise.
7357         (output_unreferenced_globals): Likewise.
7358         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
7359         instead of NUM_TREE_CODES.
7360         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
7361         (lto_output_int_in_range): Change << to >> when shifting VAL.
7362
7363 2011-06-01  Diego Novillo  <dnovillo@google.com>
7364
7365         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
7366         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
7367
7368 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
7369
7370         PR target/45074
7371         * optabs.h (valid_multiword_target_p): Declare.
7372         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
7373         doing multi-word operations.
7374         * optabs.c (expand_binop): Likewise.
7375         (expand_doubleword_bswap): Likewise.
7376         (expand_absneg_bit): Likewise.
7377         (expand_unop): Likewise.
7378         (expand_copysign_bit): Likewise.
7379         (multiword_target_p): New function.
7380
7381 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
7382
7383         PR rtl-optimization/48830
7384         PR rtl-optimization/48808
7385         PR rtl-optimization/48792
7386         * reload.c (push_reload): Check contains_reg_of_mode.
7387         * reload1.c (strip_paradoxical_subreg): New function.
7388         (gen_reload_chain_without_interm_reg_p): Use it to handle
7389         paradoxical subregs.
7390         (emit_output_reload_insns, gen_reload): Likewise.
7391
7392 2011-06-01  David Li  <davidxl@google.com>
7393
7394         * predict.c : Change pass name
7395         * ipa.c: Ditto.
7396         * dce.c: Ditto.
7397         * tree-profile.c: Ditto.
7398         * except.c: Ditto.
7399
7400 2011-06-01  David Li  <davidxl@google.com>
7401
7402         * tree-pretty-print.c (dump_function_header): New function.
7403         * final.c (rest_of_clean_state): Use header dumper.
7404         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
7405         * passes.c (pass_init_dump_file): Use header dumper.
7406
7407 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
7408
7409         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
7410         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
7411         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
7412         New functions.
7413         (mem_loc_descriptor): Use them.
7414
7415         * var-tracking.c (create_entry_value): New function.
7416         (vt_add_function_parameter): Use it.
7417
7418 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7419
7420         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
7421         Include <signal.h>, <ucontext.h>.
7422         (sigill_caught): Define.
7423         (sigill_hdlr): New function.
7424         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
7425         insns can be executed.
7426         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
7427         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
7428
7429 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7430
7431         * config/t-slibgcc-darwin: Move to ...
7432         * config/t-slibgcc-dummy: ... this.  Clarify comments.
7433         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
7434         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
7435         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
7436         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
7437         Remove i386/t-crtstuff from tmake_file.
7438         (i[34567]86-*-solaris2*): Remove t-svr4,
7439         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
7440         t-slibgcc-dummy.
7441         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
7442         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
7443         sparc/t-crtfm from tmake_file.
7444         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
7445         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
7446         Remove extra_parts.
7447         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
7448         * config/i386/t-nwld (SHLIB_LINK): Remove.
7449         * config/i386/t-rtems-i386: Rename to ...
7450         * config/i386/t-rtems: ... this.
7451         ($(T)crti.o, $(T)crtn.o): Remove.
7452         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
7453         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
7454         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
7455         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
7456         EXTRA_MULTILIB_PARTS): Remove.
7457         * config/sparc/t-sol2-64: Likewise.
7458         * config/sparc/t-sol2: Remove.
7459         * config/sparc/t-crtin: Remove.
7460         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
7461         * config/i386/gmon-sol2.c: Remove.
7462         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
7463         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
7464         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
7465         * config/i386/sol2-gc1.asm: Remove.
7466         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
7467         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
7468         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
7469         * config/t-slibgcc-sld: Remove.
7470
7471 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
7472
7473         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
7474         base_type_for_mode with op_mode instead of mode.
7475
7476 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
7477
7478         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
7479         Cortex-A15.
7480         * config/arm/arm-tune.md: Regenerate.
7481         * config/arm/arm-tables.opt: Regenerate.
7482         * config/arm/arm.c (FL_DIV): Rename...
7483         (FL_THUMB_DIV): ... to this.
7484         (FL_ARM_DIV): Define.
7485         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
7486         (arm_arch_hwdiv): Remove.
7487         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
7488         (arm_issue_rate): Add cortexr5.
7489         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
7490         __ARM_ARCH_EXT_IDIV__.
7491         (TARGET_IDIV): Define.
7492         (arm_arch_hwdiv): Remove.
7493         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
7494         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
7495         (divsi3, udivsi3): New patterns.
7496         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
7497         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
7498
7499 2011-06-01  Martin Jambor  <mjambor@suse.cz>
7500
7501         * ipa-utils.c (ipa_dfs_info): New field scc_no.
7502         * ipa-utils.c (searchc): Set scc_no.
7503
7504 2011-06-01  Martin Jambor  <mjambor@suse.cz>
7505
7506         * ipa-utils.c (searchc_env): New field allow_overwritable.
7507         (searchc): do not ignore edges to overwritable nodes if indicated
7508         by env->allow_overwritable.
7509         (ipa_reduced_postorder): Set env.allow_overwritable.
7510
7511 2011-06-01  Richard Guenther  <rguenther@suse.de>
7512
7513         * tree.c (free_lang_data): Do not reset boolean_type_node nor
7514         char_type_node.
7515         * lto-streamer.c (lto_record_common_node): Take node pointer,
7516         do not register types.
7517         (lto_preload_common_nodes): Explicitly skip preloading nodes
7518         that differ between frontends.
7519
7520 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
7521
7522         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
7523         NON_FLOAT_REGS.
7524
7525 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
7526
7527         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
7528         parameter value for dump. Dump cost on outermost call only.
7529         (rs6000_memory_move_cost): Dump cost on outermost call only.
7530
7531 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
7532
7533         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
7534         DW_OP_GNU_convert ops.
7535
7536         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
7537         cselib_preserve_constants.
7538         (cselib_lookup_1): If cselib_preserve_constants,
7539         a new VALUE is being created for REG and there is a VALUE for the
7540         same register in wider mode, add another loc with lowpart SUBREG of
7541         the wider VALUE.
7542         (cselib_subst_to_values): Handle ENTRY_VALUE.
7543         * var-tracking.c  (replace_expr_with_values): Return NULL for
7544         ENTRY_VALUE too.
7545         * dwarf2out.c (convert_descriptor_to_signed): New function.
7546         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
7547         instead of two shifts.
7548         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
7549         the right mode if needed.
7550         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
7551         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
7552         convert_descriptor_to_signed.
7553         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
7554         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
7555
7556         PR target/48688
7557         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
7558
7559 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
7560
7561         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
7562         of X87MODEI12 and SWI48x instead of SSEMODEI24.
7563         (SWI248x): New mode iterator, rename from X87MODEI.
7564         (X87MODEI): Remove mode iterator.
7565         (X87MODEI12): Ditto.
7566         (SSEMODEI24): Ditto.
7567
7568 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
7569
7570         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
7571         * doc/invoke.texi: Document max-vartrack-expr-depth.
7572         * var-tracking.c (EXPR_DEPTH): New.
7573         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
7574
7575 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
7576
7577         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
7578         * config/i386/sse.md: Add n to negated FMA pattern names.
7579
7580 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
7581
7582         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
7583
7584 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
7585
7586         * gengtype-state.c (read_state_params_structs): Initialize previous.
7587
7588 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
7589
7590         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
7591         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
7592
7593 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
7594
7595         * config/i386/i386.md (*movtf_internal): Avoid allocating general
7596         registers.  Penalize F*r->o alternative to prevent partial memory
7597         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
7598         CONST_DOUBLE immediates when optimizing function for size.  Do not move
7599         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
7600         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
7601         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
7602         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
7603         alternatives.
7604         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
7605
7606         (fp_register_operand splitters): Use fp_register_operand
7607         constraint.  Do not use FP_REG_P in insn condition.
7608         (any_fp_register_operand splitters): Use any_fp_register_operand
7609         constraint.  Do not use ANY_FP_REG_P in insn condition.
7610
7611 2011-05-31  Jan Hubicka  <jh@suse.cz>
7612
7613         * cgraph.h (cgraph_inline_failed_t): Give enum a name
7614         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
7615         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
7616         (lto_output_edge): Use output_enum and var_len_unsigned.
7617         (lto_output_varpool_node): Likewise.
7618         (input_overwrite_node): Do not take resolution parameter;
7619         extract it from a bitpack.
7620         (input_node): Do not read resolution; use input_enum and
7621         var_len_unsigned.
7622         (input_varpool_node): Likewise.
7623         (input_edge): Likewise.
7624         (input_cgraph_1): Likewise.
7625
7626 2011-05-31  Richard Guenther  <rguenther@suse.de>
7627
7628         * gimple.c (gimple_register_canonical_type): Do not register
7629         any types via gimple_register_type.
7630
7631 2011-05-31  Jan Hubicka  <jh@suse.cz>
7632
7633         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
7634         of thunks.
7635
7636 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
7637
7638         PR rtl-optimization/49235
7639         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
7640         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
7641
7642 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
7643
7644         PR tree-optimization/49093
7645         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
7646         data references.
7647
7648 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
7649
7650         PR debug/49047
7651         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
7652         for concrete functions containing the code of cloned functions.
7653
7654 2011-05-31  Richard Guenther  <rguenther@suse.de>
7655
7656         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
7657         to ...
7658         (forward_propagate_into_comparison_1): ... this.
7659         (forward_propagate_comparison): Rename to ...
7660         (forward_propagate_into_comparison): ... this.  Split out
7661         real forward propagation code to ...
7662         (forward_propagate_comparison): ... this.
7663         (forward_propagate_into_gimple_cond): Remove looping.
7664         (forward_propagate_into_cond): Likewise.
7665         (simplify_not_neg_expr): Return whether we have done something.
7666         (simplify_gimple_switch): Likewise.
7667         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
7668         (ssa_forward_propagate_and_combine): ... this.  Re-structure
7669         to do a forward forward-propagation walk on BBs and a backward
7670         stmt combining walk on BBs.  Consistently re-scan changed statements.
7671         (pass_forwprop): Adjust.
7672
7673 2011-05-30  Ian Lance Taylor  <iant@google.com>
7674
7675         * godump.c (go_format_type): Correct length of name added to
7676         obstack for anonymous field.
7677
7678 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
7679
7680         PR target/49186
7681         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
7682         part of the second operand is 0.
7683
7684 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
7685
7686         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
7687         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
7688         to memory for !TARGET_MEMORY_MISMATCH_STALL.
7689         (*movdf_internal_rex64): Do not penalize F->r alternative.
7690         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
7691         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
7692         when optimizing function for size.  Do not move CONST_DOUBLEs
7693         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
7694         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
7695         SUBREGs.  Do not check for MEM_P operands in the insn condition,
7696         check for ANY_FP_REGNO_P instead.
7697         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
7698         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
7699         function for speed.
7700         * config/i386/i386.c (ix86_option_override_internal): Do not
7701         set TARGET_INTEGER_DFMODE_MOVES here.
7702
7703 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
7704
7705         PR target/49168
7706         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
7707
7708 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
7709
7710         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
7711         DW_TAG_rvalue_reference_type even for
7712         -gdwarf-4 -fno-debug-types-section.
7713
7714 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7715
7716         PR tree-optimization/46728
7717         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
7718         (build_and_insert_binop): New.
7719         (gimple_expand_builtin_pow): Reorder args for
7720         build_and_insert_call; use build_and_insert_binop; add more
7721         optimizations for fractional exponents.
7722
7723 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
7724
7725         PR bootstrap/49190
7726
7727         Revert:
7728         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
7729
7730         * tree.h (struct tree_identifier): Inherit from tree_typed, not
7731         tree_common.
7732         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
7733         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
7734         TS_BASE instead of TS_COMMON.
7735         * varasm.c (assemble_name): Remove assert.
7736
7737 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
7738
7739         * config.gcc: Keep obselete list sorted.
7740
7741 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
7742             Eric Botcazou  <ebotcazou@adacore.com>
7743
7744         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
7745         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
7746         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
7747         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
7748         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
7749
7750 2011-05-30  Richard Guenther  <rguenther@suse.de>
7751
7752         * gimple.c (gimple_types_compatible_p_1): Compare record
7753         and union type members properly.
7754
7755 2011-05-30  Richard Guenther  <rguenther@suse.de>
7756
7757         PR tree-optimization/49210
7758         * ipa-split.c (split_function): Care for the case where the call
7759         result is not trivially convertible to the result holding variable.
7760
7761 2011-05-30  Richard Guenther  <rguenther@suse.de>
7762
7763         PR tree-optimization/49218
7764         * tree-vrp.c (adjust_range_with_scev): Properly check whether
7765         overflow occured.
7766
7767 2011-05-30  Richard Guenther  <rguenther@suse.de>
7768
7769         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
7770         New function split out from ...
7771         (forward_propagate_into_gimple_cond): ... here.  Adjust.
7772         (forward_propagate_into_cond): Likewise.
7773         (forward_propagate_comparison): Also propagate into
7774         comparisons on assignment RHS.  Change return value to
7775         behave similar to forward_propagate_into_cond.
7776         (tree_ssa_forward_propagate_single_use_vars): Handle
7777         strict-overflow warnings properly for forward_propagate_comparison.
7778
7779 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7780
7781         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
7782         from plugin linker.
7783         * configure: Regenerate.
7784
7785 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
7786
7787         PR tree-optimization/49199
7788         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
7789         non-reduction operands are either defined in the loop or by induction.
7790
7791 2011-05-29  Xinliang David Li  <davidxl@google.com>
7792
7793         * opts-global.c (handle_common_deferred_options): Handle new options.
7794         * passes.c (register_one_dump_file): Call register_pass_name.
7795         (execute_one_pass): Check explicit enable/disable flag.
7796         (passr_hash): New function.
7797         (passr_eq): Ditto.
7798         (register_pass_name): Ditto.
7799         (get_pass_by_name): Ditto.
7800         (pass_hash): Ditto.
7801         (pass_eq): Ditto.
7802         (enable_pass): Ditto.
7803         (disable_pass): Ditto.
7804         (is_pass_explicitly_enabled_or_disabled): Ditto.
7805
7806 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
7807
7808         * config/i386/i386.md (*movoi_internal_avx): Use
7809         standard_sse_constant_opcode for alternative 0.
7810         (*movti_internal_sse): Ditto.
7811         (*movti_internal_rex64): Use standard_sse_constant_opcode for
7812         alternative 2.
7813         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
7814         sselog1 type moves.
7815         (*movsi_internal): Ditto.
7816         (*movdi_internal): Ditto.  Add ssecvt type moves.
7817
7818 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
7819
7820         PR target/48830
7821         * rtlanal.c (simplify_subreg_regno): Adjust comment.
7822
7823 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
7824
7825         PR rtl-optimization/49095
7826         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
7827         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
7828
7829 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
7830
7831         PR target/43995
7832         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
7833         recurse_p argument.  Only follow register copies if it is set,
7834         and prevent mips_find_pic_call_symbol from recursing.
7835         (mips_find_pic_call_symbol): Add a recurse_p argument.
7836         Pass it to mips_pic_call_symbol_from_set.
7837         (mips_annotate_pic_calls): Update accordingly.
7838
7839 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
7840
7841         * emit-rtl.c (try_split): Use a loop to search for
7842         NOTE_INSN_CALL_ARG_LOCATIONs.
7843
7844 2011-05-29  Richard Guenther  <rguenther@suse.de>
7845
7846         PR tree-optimization/49217
7847         * ipa-pure-const.c (propagate_pure_const): Fix typos.
7848
7849 2011-05-28  Jan Hubicka  <jh@suse.cz>
7850
7851         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
7852         length.
7853         (string_slot_free): Remove
7854         (create_output_block): Initialize obstack.
7855         (destroy_output_block): Free obstack.
7856         (lto_string_index): Add PERSISTENT parameter; do not duplicate
7857         the string unless it needs to be added into the hash.
7858         (lto_output_string_with_length): Add persistent attribute;
7859         handle NULL strings.
7860         (lto_output_string): Add PERSISTENT parameter.
7861         (output_string_cst, output_identifier): Simplify.
7862         (lto_output_location_bitpack): Update.
7863         (lto_output_builtin_tree): Update.
7864         * lto-streamer.h (struct output_block): Add obstack.
7865         (lto_output_string, lto_output_string_with_length): Remove
7866         declarations; functions are static now.
7867
7868 2011-05-28  Jan Hubicka  <jh@suse.cz>
7869
7870         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
7871         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
7872         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
7873         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
7874         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
7875         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
7876         unpack_ts_decl_with_vis_value_fields,
7877         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
7878         lto_get_builtin_tree): Use enum and variable length i/o.
7879         * basic-block.h (profile_status_d): Add PROFILE_LAST.
7880         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
7881         New functions.
7882         (bp_pack_enum, bp_unpack_enum): New macros.
7883
7884 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7885
7886         * genrecog.c: Remove redundant forward declarations.
7887
7888 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7889
7890         * config.gcc: Deprecate mips*-*-openbsd*.
7891
7892 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7893
7894         PR bootstrap/49195
7895         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
7896         for match_op_dup.
7897
7898 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
7899
7900         PR middle-end/48981
7901         * gengtype.c (vec_prefix_type): New function.
7902         (note_def_vec): Use vec_prefix_type and change the length
7903         attribute to be based on the prefix.
7904         * vec.c: Include coretypes.h before vec.h.
7905         (struct vec_prefix): Remove.
7906         (vec_gc_p_reserve): Change the offsetof to sizeof.
7907         (vec_gc_p_reserve_exact): Likewise.
7908         (vec_heap_p_reserve): Likewise.
7909         (vec_heap_p_reserve_exact): Likewise.
7910         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
7911         (vec_stack_p_reserve): Change the offsetof to sizeof.
7912         (vec_stack_p_reserve_exact): Likewise.
7913         * vec.h (struct vec_prefix): New struct definition.
7914         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
7915         (VEC_T_GTY(T,B)): Likewise.
7916         (DEF_VEC_FUNC_P(T)): Use prefix field.
7917         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
7918         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
7919
7920 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7921
7922         PR tree-optimization/46728
7923         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
7924         (powi_as_mults): Add gimple_set_location.
7925         (build_and_insert_call): New.
7926         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
7927         0.5, 0.25, 0.75, 1./3., or 1./6.
7928
7929 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
7930
7931         * doc/contrib.texi: Update copyright years.
7932         (Contributors): Add Zdenek Sojka.
7933
7934 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
7935
7936         * c-decl.c (c_push_function_context): Copy the current statement
7937         list stack.
7938         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
7939         (finish_struct): Call building_stmt_list_p instead of checking
7940         cur_stmt_list.
7941         * c-parser.c (c_parser_postfix_expression): Likewise.
7942         * c-typeck.c (c_end_compound_stmt): Likewise.
7943         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
7944         * tree-iterator.c (stmt_list_cache): Change to a VEC.
7945         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
7946         (free_stmt_list): Likewise.
7947         * tree.h (struct tree_statement_list): Include typed_tree instead
7948         of tree_common.
7949         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
7950         as TS_TYPED instead of TS_COMMON.
7951
7952 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7953             Uros Bizjak  <ubizjak@gmail.com>
7954
7955         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
7956         (HAVE_AS_IX86_TLSGDPTL): Define.
7957         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
7958         (HAVE_AS_IX86_TLSLDMPLT): Define.
7959         * configure: Regenerate.
7960         * config.in: Regenerate.
7961         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
7962         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
7963         TARGET_SUN_TLS, use @tlsgdplt or @plt.
7964         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
7965         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
7966         @tlsldmplt or @plt.
7967         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
7968
7969 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
7970
7971         * sched-int.h (struct _haifa_deps_insn_data): New members cond
7972         and reverse_cond.
7973         (INSN_COND, INSN_REVERSE_COND): New macros.
7974         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
7975         once.
7976         (sched_get_condition_with_rev): Cache the results, and look them up
7977         if possible.
7978         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
7979         are clobbered by the current insn.
7980         * target.def (exposed_pipline): New sched data hook.
7981         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
7982         * doc/tm.texi: Regenerate.
7983
7984 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7985
7986         PR tree-optimization/49170
7987         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
7988         sincos or cexp.
7989
7990 2011-05-27  Richard Guenther  <rguenther@suse.de>
7991
7992         PR middle-end/49189
7993         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
7994         of comparisons.
7995
7996 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
7997
7998         * haifa-sched.c (sched_scan_info): Remove.
7999         (schedule_block): Call sched_extend_luids rather than sched_init_luids
8000         with NULL args.
8001         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
8002         Remove functions.
8003         (sched_scan): Remove.
8004         (sched_extend_luids): Renamed from luids_extend_insn and no longer
8005         static.  All callers changed.
8006         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
8007         static.  All callers changed.
8008         (sched_init_luids): Remove all arguments except the first.  All
8009         callers changed.  Don't use sched_scan.
8010         (haifa_init_h_i_d): Likewise.
8011         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
8012         manually rather than using sched_init_luids.  Likewise with
8013         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
8014         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
8015         rather than sched_init_luids with NULL args.
8016         * sel-sched-ir.c (new_insns): Remove variable.
8017         (sched_scan): New static function, previously in haifa-sched.c.  Remove
8018         all arguments but the first two; all callers changed.
8019         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
8020         rather than sched_init_luids.
8021         (sel_init_bbs): Remove second argument.  All callers changed.
8022         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
8023         with NULL arguments.
8024         (create_insn_rtx_from_pattern): Likewise.
8025         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
8026         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
8027         (sched_init_insn_luid, sched_extend_luids): Declare.
8028         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
8029         declarations.
8030
8031 2011-05-27  Richard Guenther  <rguenther@suse.de>
8032
8033         PR middle-end/49177
8034         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
8035         A CMP B ? (T) true : (T) false for non-integral types T again.
8036
8037 2011-05-27  Jan Hubicka  <jh@suse.cz>
8038
8039         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
8040         so 0 means NULL string.
8041         (lto_output_string_with_length): ... here.
8042         (lto_output_string, output_string_cst, output_identifier): Update
8043         handling of NULL strings.
8044         (lto_output_location_bitpack): New function.
8045         (lto_output_location): Use it.
8046         (lto_output_tree_ref): Use output_record_start.
8047         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
8048         len values.
8049         * lto-streamer-in.c (string_for_index): Break out from ...; offset
8050         values by 1.
8051         (input_string_internal): ... here;
8052         (input_string_cst, input_identifier, lto_input_string): Update handling
8053         of NULL strings.
8054         (lto_input_location_bitpack): New function
8055         (lto_input_location): Use it.
8056         (unpack_ts_type_common_value_fields): Pack align & alias in var len
8057         values.
8058         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
8059         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
8060         (bp_pack_value): Sanity check the value range.
8061         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
8062         New functions.
8063         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
8064         New functions.
8065
8066 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
8067
8068         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
8069         call_arg_location instructions down the floor.
8070
8071 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
8072
8073         PR rtl-optimization/49154
8074         * ira.c (setup_pressure_classes): Process class without sublcasses
8075         as a candidate for pressure classes.
8076
8077 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
8078
8079         PR rtl-optimization/48575
8080         * genrecog.c (position_type): New enum.
8081         (position): New structure.
8082         (decision): Use position structure instead of a string.
8083         (root_pos, peep2_insn_pos_list): New variables.
8084         (next_position, compare_positions): New functions.
8085         (new_decision): Use position structures instead of strings.
8086         (maybe_both_true): Likewise.
8087         (change_state): Likewise.
8088         (write_tree): Likewise.
8089         (make_insn_sequence): Likewise.
8090
8091 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
8092
8093         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
8094         TS_BASE instead of TS_COMMON.
8095         (find_decls_types_r): Check for TS_TYPED structure before looking at
8096         TREE_TYPE.
8097         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
8098         Add chain field.
8099         (BLOCK_CHAIN): Use new chain field.
8100
8101 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
8102
8103         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
8104         moves expensive on Power7 also.
8105
8106 2011-05-26  Richard Guenther  <rguenther@suse.de>
8107
8108         * fold-const.c (fold_unary_loc): Remove bogus code.
8109
8110 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
8111
8112         * tree.h (struct tree_identifier): Inherit from tree_typed, not
8113         tree_common.
8114         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
8115         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
8116         TS_BASE instead of TS_COMMON.
8117         * varasm.c (assemble_name): Remove assert.
8118
8119 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
8120
8121         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
8122         substituted first.
8123         * libgcc-std.ver: Delete file.
8124
8125 2011-05-26  Richard Guenther  <rguenther@suse.de>
8126
8127         PR tree-optimization/48702
8128         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
8129         only when we know the base address is within bounds.
8130         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
8131         assume the base address of TARGET_MEM_REFs is in bounds.
8132
8133 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8134
8135         PR target/49099
8136         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
8137         declaration in TARGET_SOLARIS.
8138
8139 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
8140
8141         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
8142         The instruction is then expanded explicitly.
8143         (supported_compare): Callable instruction.
8144         (compare): Likewise.
8145
8146 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
8147
8148         PR c++/49165
8149         * gimplify.c (shortcut_cond_r): Don't special case
8150         COND_EXPRs if they have void type on one of their arms.
8151
8152 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
8153
8154         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
8155         to reduce duplication, and to achieve a slightly more logical order
8156         of operations.
8157
8158 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
8159
8160         PR tree-optimization/49161
8161         * tree-vrp.c (struct case_info): New type.
8162         (compare_case_labels): Sort case_info structs instead of
8163         trees, and not primarily by CASE_LABEL uids but by
8164         label_for_block indexes.
8165         (find_switch_asserts): Put case labels into struct case_info
8166         array instead of TREE_VEC, adjust sorting, compare label_for_block
8167         values instead of CASE_LABELs.
8168
8169 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8170
8171         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
8172         ("orndi3_neon"): Likewise.
8173         ("bic<mode>3_neon"): Likewise.
8174
8175 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
8176
8177         PR tree-optimization/49038
8178         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
8179         Ensure at least one epilogue iteration if required by data
8180         accesses with gaps.
8181         * tree-vectorizer.h (struct _loop_vec_info): Add new field
8182         to mark loops that require peeling for gaps.
8183         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
8184         (vect_get_known_peeling_cost): Take peeling for gaps into
8185         account.
8186         (vect_transform_loop): Generate epilogue if required by data
8187         access with gaps.
8188         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
8189         loop as requiring an epilogue if there are gaps in the end of
8190         the strided group.
8191
8192 2011-05-25  Ian Lance Taylor  <iant@google.com>
8193
8194         * godump.c (go_format_type): Output the first field with a usable
8195         Go type, if any.
8196
8197 2011-05-25  Ian Lance Taylor  <iant@google.com>
8198
8199         * godump.c (go_format_type): Check for invalid type names, pointer
8200         target types, and struct field types.
8201
8202 2011-05-25  Jason Merrill  <jason@redhat.com>
8203
8204         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
8205
8206 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
8207
8208         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
8209
8210 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8211
8212         * config/i386/i386.md (*movqi_extv_1)): Put back
8213         "register_operand" check in "type" calculation.
8214         (*movqi_extzv_2): Likewise.
8215
8216 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8217
8218         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
8219
8220 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
8221
8222         PR bootstrap/49160
8223         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
8224         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
8225         __divxc3, __divtc3): Wrap definitions in #ifndef.
8226
8227 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8228
8229         PR target/49142
8230         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
8231         "register_operand" check and replace q_regs_operand with
8232         QIreg_operand in "type" calculation.
8233         (*movqi_extv_1): Likewise.
8234         (*movqi_extzv_2_rex64): Likewise.
8235         (*movqi_extzv_2): Likewise.
8236
8237         * config/i386/predicates.md (QIreg_operand): New.
8238
8239 2011-05-25  Richard Guenther  <rguenther@suse.de>
8240
8241         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
8242         type-based offset disambiguation, streamline MEM_REF and
8243         TARGET_MEM_REF handling.
8244
8245 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8246
8247         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
8248         (bdesc_special_args): Add pause intrinsic.
8249
8250         * config/i386/i386.md (UNSPEC_PAUSE): New.
8251         (pause): Likewise.
8252         (*pause): Likewise.
8253         * config/i386/ia32intrin.h (__pause): Likewise.
8254
8255         * doc/extend.texi (X86 Built-in Functions): Add documentation for
8256         pause intrinsic.
8257
8258 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8259
8260         PR tree-optimization/46728
8261         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
8262         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
8263
8264 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
8265
8266         * tree.h (struct tree_exp): Inherit from struct tree_typed.
8267         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
8268         instead of TS_COMMON.
8269
8270 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
8271
8272         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
8273         LIBGCC2_GNU_PREFIX is defined.
8274         (__N): New macro.
8275         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
8276         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
8277         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
8278         __clz_tab): Define using __N.
8279         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
8280         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
8281         * target.def (libfunc_gnu_prefix): New hook.
8282         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
8283         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
8284         * doc/tm.texi: Regenerate.
8285         * system.h (LIBGCC2_GNU_PREFIX): Poison.
8286         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
8287         account.
8288         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
8289         (init_optabs): Likewise for the bswap libfuncs.
8290         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
8291         and divide.
8292         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
8293         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
8294         * libgcc-std.ver: Remove.
8295         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
8296         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
8297         libgcc-std.ver.
8298         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8299         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
8300         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
8301         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
8302         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
8303         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8304         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8305         * config/fixed-bit.h (FIXED_OP): Define differently depending on
8306         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
8307         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
8308
8309 2011-05-25  Jan Hubicka  <jh@suse.cz>
8310
8311         * lto-streamer-out.c (output_record_start): Use lto_output_enum
8312         (lto_output_tree): Use output_record_start.
8313         * lto-streamer-in.c (input_record_start): Use lto_input_enum
8314         (lto_get_pickled_tree): Use input_record_start.
8315         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
8316         (lto_value_range_error): New function.
8317         * lto-streamer.h (lto_value_range_error): Declare.
8318         (lto_output_int_in_range, lto_input_int_in_range): New functions.
8319         (lto_output_enum, lto_input_enum): New macros.
8320
8321 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8322
8323         * common.opt (flag_stack_usage_info): New variable.
8324         (-Wstack-usage): New option.
8325         * doc/invoke.texi (Warning options): Document -Wstack-usage.
8326         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
8327         <OPT_fstack_usage>: Likewise.
8328         * toplev.c (output_stack_usage): Handle -Wstack-usage.
8329         * calls.c (expand_call): Test flag_stack_usage_info variable instead
8330         of flag_stack_usage.
8331         (emit_library_call_value_1): Likewise.
8332         * explow.c (allocate_dynamic_stack_space): Likewise.
8333         * function.c (instantiate_virtual_regs ): Likewise.
8334         (prepare_function_start): Likewise.
8335         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
8336         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
8337         * config/arm/arm.c (arm_expand_prologue): Likewise.
8338         (thumb1_expand_prologue): Likewise.
8339         * config/avr/avr.c (expand_prologue): Likewise.
8340         * config/i386/i386.c (ix86_expand_prologue): Likewise.
8341         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8342         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
8343         * config/mips/mips.c (mips_expand_prologue): Likewise.
8344         * config/pa/pa.c (hppa_expand_prologue): Likewise.
8345         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8346         * config/s390/s390.c (s390_emit_prologue): Likewise.
8347         * config/sh/sh.c (sh_expand_prologue): Likewise.
8348         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
8349         * config/spu/spu.c (spu_expand_prologue): Likewise.
8350
8351 2011-05-25  Richard Guenther  <rguenther@suse.de>
8352
8353         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
8354         (gimple_canonical_types_compatible_p): Likewise.
8355
8356 2011-05-25  Jan Hubicka  <jh@suse.cz>
8357
8358         PR middle-end/49062
8359         * ipa.c (function_and_variable_visibility): Only add to same
8360         comdat group list if DECL_ONE_ONLY.
8361
8362 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
8363
8364         PR rtl-optimization/49014
8365         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
8366
8367 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
8368
8369         PR target/49128
8370         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
8371
8372 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
8373
8374         PR rtl-optimization/48757
8375         * ira-build.c (loop_with_eh_edge_p): Rename to
8376         loop_with_complex_edge_p, check edges on complexity, make function
8377         conditional.
8378         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
8379         conditional.
8380
8381 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
8382
8383         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
8384         force flag_ira_share_save_slots to 0.
8385
8386 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
8387
8388         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
8389         (vt_initialize): Set PROLOGUE_BB unconditionally.
8390         Add block comment about CFA_BASE_RTX machinery.
8391         Reset FP_CFA_OFFSET to -1 on all invalid paths.
8392         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
8393
8394 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
8395
8396         PR objc/48187
8397         * c-parser.c (c_parser_objc_class_instance_variables): More robust
8398         parsing of syntax error in ObjC instance variable lists.  In
8399         particular, avoid an infinite loop if there is a stray ']'.
8400         Updated error message.
8401
8402 2011-05-24  Ian Lance Taylor  <iant@google.com>
8403
8404         * godump.c (go_define): Don't accept a string immediately after
8405         another operand.
8406
8407 2011-05-24  Ian Lance Taylor  <iant@google.com>
8408
8409         * godump.c (struct godump_container): Add invalid_hash field.
8410         (go_format_type): Return false if type is found in invalid_hash.
8411         (go_output_typedef): Add invalid type to invalid_hash.
8412         (go_finish): Create and delete invalid_hash.
8413
8414 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8415
8416         PR tree-optimization/46728
8417         * tree-ssa-math-opts.c (powi_table): New.
8418         (powi_lookup_cost): New.
8419         (powi_cost): New.
8420         (powi_as_mults_1): New.
8421         (powi_as_mults): New.
8422         (gimple_expand_builtin_powi): New.
8423         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
8424         (gate_cse_sincos): Remove sincos/cexp restriction.
8425
8426 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8427
8428         PR target/3746
8429         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
8430         mips-tdump native.
8431         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
8432         * mips-tdump.c: Likewise.
8433
8434 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
8435
8436         PR target/49128
8437         * config/i386/driver-i386.c (host_detect_local_cpu): Always
8438         add -mno-XXX.  Handle FMA.
8439
8440 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
8441
8442         PR rtl-optimization/48633
8443         * ira-build.c (loop_with_eh_edge_p): New function.
8444         (mark_loops_for_removal): Use it.
8445
8446 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
8447
8448         PR rtl-optimization/48971
8449         * ira.c (setup_pressure_classes): Don't check register move cost
8450         for classes with one registers.  Don't add pressure class if there
8451         is a pressure class with the same available hard registers.
8452         Check contains_reg_of_mode.  Fix a typo in collecting
8453         temp_hard_regset.  Ignore hard registers not belonging to a class.
8454
8455 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
8456
8457         PR target/49133
8458         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
8459
8460 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
8461             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8462
8463         PR gcov-profile/48845
8464         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
8465
8466 2011-05-24  Richard Guenther  <rguenther@suse.de>
8467
8468         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
8469         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
8470         (gimple_types_compatible_p_1): Adjust.
8471         (iterative_hash_canonical_type): Do not bother about complete vs.
8472         incomplete types.
8473         (gimple_canonical_types_compatible_p): Likewise.
8474
8475 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8476
8477         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
8478
8479 2011-05-24  Richard Guenther  <rguenther@suse.de>
8480
8481         PR bootstrap/49078
8482         * gimple.c (gimple_register_canonical_type): Revert
8483         previous change.
8484         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
8485         does not for a tree for the case where it matters.  Cache
8486         pointer-type alias-sets.
8487
8488 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
8489
8490         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
8491         (OBJS): Remove options.o, opts-common.o and prefix.o.
8492         (OBJS-libcommon-target): New.
8493         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
8494         (BACKEND): Include libcommon-target.a.
8495         (MOSTLYCLEANFILES): Include libcommon-target.a.
8496         (libcommon-target.a): New.
8497         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
8498         prefix.o.
8499
8500 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
8501
8502         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
8503         parts of output shared with the driver.
8504         * optc-gen.awk: Don't generate parts of output not shared with the
8505         driver.
8506         * opth-gen.awk: Remove GCC_DRIVER conditionals.
8507         * doc/options.texi (SourcerInclude): Mention options-save.c.
8508         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
8509         (OBJS): Add options-save.o.
8510         (options-save.c, options-save.o): New.
8511         (options.o): Update dependencies.
8512         (gcc-options.o): Remove.
8513         (mostlyclean): Remove options-save.c.
8514
8515 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
8516
8517         PR debug/49032
8518         * dbxout.c: Include cgraph.h.
8519         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
8520         and without value expr, return NULL if no varpool node exists for
8521         it or if it is not needed.
8522         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
8523
8524         PR c/49120
8525         * c-decl.c (start_decl): Convert expr to void_type_node.
8526
8527 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
8528
8529         PR rtl-optimization/48826
8530         * emit-rtl.c (try_split): When splitting a call that is followed
8531         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
8532
8533 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
8534
8535         * cfgexpand.c (expand_debug_expr): For unused non-addressable
8536         parameters passed in memory prefer using DECL_INCOMING_RTL over
8537         the pseudos it will be copied into.
8538
8539 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
8540
8541         PR target/47315
8542         * config/i386/i386.c (ix86_option_override_internal): Save the
8543         initial options after checking vzeroupper.
8544
8545 2011-05-23  David Li  <davidxl@google.com>
8546
8547         PR tree-optimization/48988
8548         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
8549         Initialize has_valid_pred for each pred chain.
8550
8551 2011-05-23  Richard Guenther  <rguenther@suse.de>
8552
8553         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
8554         (iterative_hash_gimple_type): Always hash type names.
8555
8556 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
8557
8558         * c-typeck.c (build_function_call_vec): Tweak call to
8559         check_function_arguments.
8560
8561 2011-05-23  Richard Guenther  <rguenther@suse.de>
8562
8563         PR tree-optimization/49115
8564         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
8565         is not necessarily carried out, do not claim it kills the ref.
8566         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
8567
8568 2011-05-23  Richard Guenther  <rguenther@suse.de>
8569
8570         PR middle-end/15419
8571         * builtins.c (fold_builtin_memory_op): Be less restrictive about
8572         what pointer types we accept for folding.
8573
8574 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8575
8576         * gthr-gnat.c: Remove.
8577         * gthr-gnat.h: Remove.
8578         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
8579         * config/t-freebsd (LIB2ADDEH): Likewise.
8580         * config/t-linux (LIB2ADDEH): Likewise.
8581         * config/t-sol2 (LIB2ADDEH): Likewise.
8582         * config/ia64/t-vms (LIB2ADDEH): Likewise.
8583         * configure.ac (target_thread_file): Remove gnat handling.
8584         * configure: Regenerate.
8585         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
8586
8587 2011-05-23  Tristan Gingold  <gingold@adacore.com>
8588             Eric Botcazou  <ebotcazou@adacore.com>
8589
8590         * gcov.c (create_file_names): If no object directory is specified,
8591         keep the directory of the file.
8592
8593 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8594
8595         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
8596         * configure: Regenerate.
8597
8598 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
8599
8600         PR middle-end/48973
8601         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
8602         failed and the comparison has a single bit signed type, use
8603         constm1_rtx instead of const1_rtx for true value.
8604         (do_store_flag): If ops->type is single bit signed type, disable
8605         signel bit test optimization and pass -1 instead of 1 as last
8606         parameter to emit_store_flag_force.
8607
8608 2011-05-23  Tom de Vries  <tom@codesourcery.com>
8609
8610         PR target/45098
8611         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
8612         function.
8613         (infer_loop_bounds_from_undefined): Use new function.
8614
8615 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
8616
8617         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
8618         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
8619         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
8620         and -O0 otherwise.
8621         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
8622
8623 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
8624
8625         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
8626         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
8627         returns true.
8628
8629 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
8630
8631         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
8632
8633 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
8634
8635         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
8636         UNSPEC_MOVE_PIC pattern.
8637
8638 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
8639
8640         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
8641         (sparc-*-rtems*): Likewise.
8642         (sparc64-*-elf*): Likewise.
8643         (sparc64-*-rtems*): Likewise.
8644         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
8645         * config/sparc/t-crtin: New file.
8646         * config/sparc/t-sol2 (crti.o): Delete rule.
8647         (crtn.o): Likewise.
8648         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
8649         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
8650         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
8651         (ENDFILE_SPEC): Add crtn.o.
8652
8653 2011-05-22  Tom de Vries  <tom@codesourcery.com>
8654
8655         PR middle-end/48689
8656         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
8657         CODE_CONTAINS_STRUCT (TS_COMMON).
8658
8659 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
8660
8661         PR middle-end/49029
8662         * expmed.c (extract_fixed_bit_field): Test whether target can be used
8663         only after deciding which mode to use.
8664
8665 2011-05-22  Tom de Vries  <tom@codesourcery.com>
8666
8667         PR target/45098
8668         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
8669         for call to get_shiftadd_cost.
8670
8671 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
8672
8673         PR target/49104
8674         * config/i386/cpuid.h (bit_MMXEXT): New define.
8675
8676 2011-05-22  Nick Clifton  <nickc@redhat.com>
8677
8678         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
8679         initialisation of non-existant args[2] element.  Use args[] array
8680         not arg[] array to pass arguments to build_function_type_list.
8681
8682 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
8683
8684         PR tree-optimization/49087
8685         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
8686
8687 2011-05-21  Jason Merrill  <jason@redhat.com>
8688
8689         PR c++/49092
8690         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
8691         static storage duration.
8692
8693 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
8694
8695         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
8696         frame pointer.
8697
8698 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
8699
8700         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
8701         false if there are call-saved registers here...
8702         (sparc_can_use_return_insn_p): ...but here instead.
8703         (save_or_restore_regs): Fix thinko.
8704         (sparc_expand_prologue): Use current_function_is_leaf.
8705         (sparc_frame_pointer_required): Likewise.
8706
8707 2011-05-21  Nick Clifton  <nickc@redhat.com>
8708
8709         PR target/49098
8710         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
8711
8712 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
8713
8714         * gengtype.c (walk_type): Implemented "atomic" GTY option.
8715         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
8716
8717 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
8718
8719         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
8720         * optc-gen.awk: Move common code to opt-read.awk.
8721         * opth-gen.awk: Likewise.
8722         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
8723
8724 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
8725
8726         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
8727
8728 2011-05-20  Tom de Vries  <tom@codesourcery.com>
8729
8730         PR target/45098
8731         * tree-ssa-loop-ivopts.c: Include expmed.h.
8732         (get_shiftadd_cost): New function.
8733         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
8734
8735 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
8736
8737         PR bootstrap/49086
8738         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
8739         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
8740
8741 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
8742
8743         * Makefile.in: Update comment referring to $(OBJS-common).
8744
8745 2011-05-20  Ian Lance Taylor  <iant@google.com>
8746
8747         * godump.c (go_output_typedef): Put enum constants in the macro
8748         hash table to avoid duplicate Go const definitions.
8749
8750 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
8751
8752         * Makefile.in (LIBDEPS): Add libcommon.a.
8753         (LIBS): Likewise.
8754         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
8755         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
8756         pretty-print.o and version.o.
8757         (OBJS-libcommon): New.
8758         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
8759         (BACKEND): Add libcommon.a.
8760         (MOSTLYCLEANFILES): Likewise.
8761         (libcommon.a): New.
8762         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
8763         (cpp$(exeext)): Likewise.
8764         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
8765         pretty-print.o and input.o.
8766         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
8767         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
8768         (errors.o): Remove.
8769         (mips-tfile): Don't explicitly use version.o.
8770         (mips-tdump): Likewise.
8771         (gcov.o): Depend on $(DIAGNOSTIC_H).
8772         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
8773         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
8774         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
8775         * gcov-dump.c: Include intl.h and diagnostic.h.
8776         (main): Initialize diagnostics.
8777         * gcov.c: Include diagnostic.h.
8778         (fnotice): Remove.
8779         (main): Initialize diagnostics.
8780         * lto-wrapper.c: Include diagnostic.h.
8781         (main): Initialize diagnostics.
8782
8783 2011-05-20  Michael Matz  <matz@suse.de>
8784
8785         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
8786
8787 2011-05-20  Michael Matz  <matz@suse.de>
8788             Richard Guenther  <rguenther@suse.de>
8789
8790         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
8791         use lto_streamer_cache_append directly instead of returning a VEC.
8792         (preload_common_node): Remove.
8793         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
8794         track seen nodes.
8795         (lto_streamer_cache_create): Call lto_preload_common_nodes.
8796
8797 2011-05-20  Richard Guenther  <rguenther@suse.de>
8798
8799         PR tree-optimization/49079
8800         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
8801         MEM_REFs correctly for the trailing array access detection.
8802         Special case constants the same way as decls for overall size
8803         constraining.
8804
8805 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
8806
8807         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
8808         argument expansion.
8809
8810 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
8811
8812         PR tree-optimization/49073
8813         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
8814         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
8815         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
8816
8817 2011-05-20  Richard Guenther  <rguenther@suse.de>
8818
8819         PR middle-end/48849
8820         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
8821         of pointer types the same way the middle-end does.
8822
8823 2011-05-20  Richard Guenther  <rguenther@suse.de>
8824
8825         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
8826         or pointer-to chains.  Delay all fixup to uniquify_nodes.
8827
8828 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
8829
8830         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
8831         (fma4_fmaddsub): Likewise
8832
8833 2011-05-19  Jan Hubicka  <jh@suse.cz>
8834
8835         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
8836         (GIMPLE_TYPE_PAIR_SIZE): New macro.
8837         (type_pair_cache): New static var.
8838         (lookup_type_pair): Use fixed sized custom hash; make inline.
8839         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
8840         calls of lookup_type_pair.
8841         (print_gimple_types_stats): Remove cache stats.
8842         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
8843         and gtc_ob.
8844
8845 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
8846
8847         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
8848         when TARGET_RDRND is active.
8849         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
8850         Generate dummy SImode target register when target is NULL.
8851
8852 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
8853
8854         * config/arm/arm-fpus.def: New.
8855         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
8856         arm-fpus.def.
8857         * config/arm/arm-tables.opt: Regenerate.
8858         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
8859         (arm_option_override): Don't decode FPU name to string here.
8860         * config/arm/arm.opt (mfpu=): Use Enum.
8861         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
8862         Update dependencies.
8863
8864 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
8865
8866         * collect2.c: Include diagnostic.h.
8867         (fatal_perror, fatal, error, fancy_abort): Remove.
8868         (main): Set progname.  Call xmalloc_set_program_name and
8869         diagnostic_initialize.
8870         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
8871         scan_libraries, resolve_lib_name): Call fatal_error instead of
8872         fatal and fatal_perror.
8873         * collect2.h (error, fatal, fatal_perror): Don't declare.
8874         * tlink.c: Include diagnostic-core.h.
8875         (recompile_files): Call fatal_error instead of fatal_perror.
8876         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
8877         pretty-print.o and input.o.
8878         (collect2.o, tlink.o): Update dependencies.
8879
8880 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8881
8882         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
8883
8884 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8885
8886         PR target/40483
8887         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
8888         COMDAT group syntax, both SPARC and x86 variants.
8889         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
8890         * configure: Regenerate.
8891         * config/sol2.h (TARGET_SOLARIS): Define.
8892         (PUSHSECTION_FORMAT): Remove.
8893         (SECTION_NAME_FORMAT): Define.
8894         * config/sol2.c: Include hashtab.h.
8895         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
8896         expansion, using SECTION_NAME_FORMAT.
8897         (solaris_comdat_htab): New variable.
8898         (struct comdat_entry): Define.
8899         (comdat_hash): New function.
8900         (comdat_eq): New function.
8901         (solaris_elf_asm_comdat_section): New function.
8902         (solaris_define_comdat_signature): New function.
8903         (solaris_code_end): New function.
8904         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
8905         (solaris_code_end): Declare.
8906         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
8907         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
8908         solaris_code_end.
8909         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
8910         Remove ATTRIBUTE_UNUSED.
8911         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
8912         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
8913         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
8914         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
8915         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
8916         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
8917         (PUSHSECTION_FORMAT): Remove.
8918         (SECTION_NAME_FORMAT): Redefine.
8919
8920 2011-05-19  Kai Tietz  <ktietz@redhat.com>
8921
8922         * tree-cfg.c (verify_gimple_assign_binary): Barf on
8923         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
8924         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
8925
8926 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
8927             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8928
8929         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
8930
8931 2011-05-19  Richard Guenther  <rguenther@suse.de>
8932
8933         PR middle-end/48985
8934         * tree-object-size.c (addr_object_size): If the pointed-to
8935         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
8936
8937 2011-05-19  Richard Guenther  <rguenther@suse.de>
8938
8939         * gimple.c (gimple_types_compatible_p_1): Compare names of
8940         the types themselves.
8941         (iterative_hash_gimple_type): And hash them that way.
8942         (gimple_register_type_1): If we register a main variant properly
8943         initialize the leader to ourselves.
8944
8945 2011-05-19  Tom de Vries  <tom@codesourcery.com>
8946
8947         PR target/45098
8948         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
8949         get_loop_invariant_expr_id.
8950         (get_loop_invariant_expr_id): Use get_expr_id.
8951         (parm_decl_cost): New function.
8952         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
8953         Improve bound cost estimation.  Use different inv_expr_id for elim and
8954         express cases.
8955
8956 2011-05-19  Tom de Vries  <tom@codesourcery.com>
8957
8958         PR target/45098
8959         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
8960         cost_base.cost == 0.
8961
8962 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
8963
8964         PR target/49002
8965         * config/i386/sse.md
8966         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
8967         load cast.
8968
8969 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
8970
8971         PR tree-optimization/49039
8972         * tree-vrp.c (extract_range_from_binary_expr): For
8973         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
8974         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
8975
8976 2011-05-18  Tom de Vries  <tom@codesourcery.com>
8977
8978         PR target/45098
8979         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
8980
8981 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
8982
8983         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
8984         (*tls_global_dynamic_64): Ditto.
8985         (*tls_local_dynamic_base_32_gnu): Ditto.
8986         (*tls_local_dynamic_base_64): Ditto.
8987         (tls_initial_exec_64_sun): Ditto.
8988
8989 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
8990
8991         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
8992         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
8993         bf592-none.
8994         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
8995         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
8996         * config/bfin/bfin.c (bfin_cpus): Add bf592.
8997         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8998         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
8999         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
9000         * config/bfin/elf.h (LIB_SPEC): Add bf592.
9001
9002 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
9003
9004         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
9005         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
9006         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
9007         target_thread_pointer, arm_structure_size_boundary, struct
9008         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
9009         struct abi_name, arm_all_abis): Remove.
9010         (arm_option_override) Don't process most enumerated option values here.
9011         Don't process target_fpe_name here.  Work with integer not string for
9012         structure size boundary; use separate diagnostics for each case.
9013         * config/arm/arm.h (enum float_abi_type, enum
9014         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
9015         to arm-opts.h.
9016         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
9017         arm_structure_size_boundary): Remove.
9018         * config/arm/arm.opt (mabi=): Use Enum and Init.
9019         (arm_abi_type): New Enum and EnumValue entries.
9020         (mfloat-abi=): Use Enum and Init.
9021         (float_abi_type): New Enum and EnumValue entries.
9022         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
9023         (mfp16-format=): Use Enum and Init.
9024         (arm_fp16_format_type): New Enum and EnumValue entries.
9025         (mstructure-size-boundary=): Use UInteger and Init.
9026         (mtp=): Use Enum and Init.
9027         (arm_tp_type): New Enum and EnumValue entries.
9028
9029 2011-05-18  Richard Guenther  <rguenther@suse.de>
9030
9031         PR tree-optimization/49018
9032         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
9033         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
9034         gimple_has_side_effects.
9035
9036 2011-05-18  Richard Guenther  <rguenther@suse.de>
9037
9038         * gimple.c (gimple_register_type_1): New function, split out from ...
9039         (gimple_register_type): ... here.  Avoid infinite recursion.
9040
9041 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
9042
9043         PR tree-optimization/41881
9044         * tree-vectorizer.h (struct _loop_vec_info): Add new field
9045         reduction_chains along with a macro for its access.
9046         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
9047         (destroy_loop_vec_info): Free reduction chains.
9048         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
9049         (vect_is_slp_reduction): New function.
9050         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
9051         (vect_create_epilog_for_reduction): Support SLP reduction chains.
9052         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
9053         definition types for reduction chains.
9054         (vect_supported_load_permutation_p): Don't allow permutations for
9055         reduction chains.
9056         (vect_analyze_slp_instance): Support reduction chains.
9057         (vect_analyze_slp): Try to build SLP instance from reduction chains.
9058         (vect_get_constant_vectors):  Handle reduction chains.
9059         (vect_schedule_slp_instance): Mark the first statement of the
9060         reduction chain as reduction.
9061
9062 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
9063
9064         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
9065         names for group elements access.
9066         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
9067         reduction chains as well.  Remove data reference and interleaving
9068         related words from the fields names.
9069         * tree-vect-loop.c (vect_transform_loop): Use new names for group
9070         elements access.
9071         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
9072         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
9073         vect_update_interleaving_chain, vect_same_range_drs,
9074         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
9075         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
9076         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
9077         vect_analyze_group_access, vect_analyze_data_ref_access,
9078         vect_create_data_ref_ptr, vect_transform_strided_load,
9079         vect_record_strided_load_vectors): Likewise.
9080         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
9081         vect_model_load_cost, vectorizable_store, vectorizable_load,
9082         vect_remove_stores, new_stmt_vec_info): Likewise.
9083         * tree-vect-slp.c (vect_build_slp_tree,
9084         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
9085
9086 2011-05-18  Richard Guenther  <rguenther@suse.de>
9087
9088         PR middle-end/48989
9089         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
9090         operand verification.
9091         (verify_gimple_assign_binary): Likewise.
9092         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
9093         to non-1-precision BOOLEAN_TYPEs.
9094
9095 2011-05-18  Tom de Vries  <tom@codesourcery.com>
9096
9097         PR target/45098
9098         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
9099
9100 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
9101
9102         PR tree-optimization/49000
9103         * tree-ssa.c (execute_update_addresses_taken): Call
9104         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
9105         be rewritten and decl has been marked for renaming, reset
9106         the debug stmt.
9107
9108 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
9109
9110         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
9111         enum_opts_set when testing if attributes have set -mfpmath=.
9112
9113 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
9114
9115         * config/mips/mips.c (mips_handle_option): Remove unused variable.
9116
9117 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
9118
9119         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
9120         info->entry with 0
9121         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
9122         id.transform_lang_insert_block with NULL.
9123
9124 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
9125
9126         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
9127         (output_fp_compare): Change args 3 and 4 to bool.
9128         (ix86_expand_call): Change arg 6 to bool.
9129         (ix86_attr_length_immediate_default): Change arg 2 to bool.
9130         (ix86_attr_length_vex_default): Change arg 3 to bool.
9131         * config/i386/i386.md: Update all uses.
9132         * config/i386/i386.c: Ditto.
9133         (ix86_flags_dependent): Change return type to bool.
9134
9135 2011-05-17  Richard Guenther  <rguenther@suse.de>
9136
9137         * gimple.c (type_hash_pair_compare): Fix comparison.
9138
9139 2011-05-17  Richard Guenther  <rguenther@suse.de>
9140
9141         * gimple.c (iterative_hash_gimple_type): Simplify singleton
9142         case some more, fix final hash value of the non-singleton case.
9143
9144 2011-05-17  Richard Guenther  <rguenther@suse.de>
9145
9146         PR bootstrap/49013
9147         Revert
9148         2011-05-16  Richard Guenther  <rguenther@suse.de>
9149
9150         * gimple.c (gimple_types_compatible_p_1): Use names of the
9151         type itself, not its main variant.
9152         (iterative_hash_gimple_type): Likewise.
9153
9154 2011-05-17  Richard Guenther  <rguenther@suse.de>
9155
9156         * gimple.c (gimple_register_canonical_type): Use the main-variant
9157         leader for computing the canonical type.
9158
9159 2011-05-17  Nick Clifton  <nickc@redhat.com>
9160
9161         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
9162         moves.
9163
9164         * config/rx/rx.md: Add peephole to remove redundant extensions
9165         after loads.
9166         (bitset_in_memory): Use rx_restricted_mem_operand.
9167         (bitinvert_in_memory): Likewise.
9168         (bitclr_in_memory): Likewise.
9169
9170 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
9171             Nick Clifton  <nickc@redhat.com>
9172
9173         * config/rx/rx.md: Add peepholes to match a register move followed
9174         by a comparison of the moved register.  Replace these with an
9175         addition of zero that does both actions in one instruction.
9176
9177 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
9178
9179         PR target/48986
9180         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
9181         predicate to allow CONST_INT.
9182         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
9183
9184 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
9185
9186         * opts-common.c (opt_enum_arg_to_value): New.
9187         * opts.h (opt_enum_arg_to_value): Declare.
9188         * config/i386/i386.opt (fpmath): Remove.
9189         (mfpmath=): Use Enum, Init and Save.
9190         (fpmath_unit): New Enum and EnumValue entries.
9191         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
9192         name for function fpmath state.
9193         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
9194         * config/i386/i386.c: Include diagnostic.h.
9195         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
9196         (ix86_target_string): Take enum fpmath_unit value instead of string.
9197         (ix86_debug_options): Update call to ix86_target_string.
9198         (ix86_option_override_internal): Don't process fpmath strings here.
9199         (x86_function_specific_save, ix86_function_specific_restore):
9200         Don't handle fpmath state specially.
9201         (ix86_function_specific_print): Pass fpmath state to
9202         ix86_target_string instead of printing in this function.
9203         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
9204         Handle enum attributes.
9205         (IX86_ATTR_ENUM, ix86_opt_enum): New.
9206         (ix86_valid_target_attribute_tree): Update option_strings
9207         handling.  Handle fpmath as enum option.
9208         (ix86_can_inline_p): Update field names for function fpmath state.
9209         (ix86_expand_builtin): Update call to ix86_target_string.
9210         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
9211         (ix86_fpmath): Remove.
9212         * config/i386/t-i386 (i386.o): Update dependencies.
9213
9214 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
9215
9216         PR preprocessor/48677
9217         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
9218         from decoded_options[0], not from itself.
9219
9220 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
9221
9222         * config/i386/constraints.md (z): New constraint.
9223         * config/i386/i386.c (c): New mode attribute.
9224         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
9225         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
9226         constraint for operand 0.
9227         (*call_vzeroupper): Ditto.
9228         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
9229         (*call_rex64_ms_sysv_vzeroupper): Ditto.
9230         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
9231         Use "lzm" constraint for operand 0.
9232         (*call_pop_vzeroupper): Ditto.
9233         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
9234         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
9235         constraint for operand 0.
9236         (*sibcall_vzeroupper): Ditto.
9237         (*sibcall_rex64_ms_sysv): Ditto.
9238         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
9239         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
9240         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
9241         (*sibcall_pop_vzeroupper): Ditto.
9242         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
9243         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
9244         mode iterator.  Use "<c>zm" constraint for operand 1.
9245         (*call_value_vzeroupper): Ditto.
9246         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
9247         for operand 1.
9248         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
9249         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
9250         *call_value_pop_1.  Use "lzm" constraint for operand 1.
9251         (*call_value_pop_vzeroupper): Ditto.
9252         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
9253         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
9254         mode iterator.  Use "Uz" constraint for operand 1.
9255         (*sibcall_value_vzeroupper): Ditto.
9256         (*sibcall_value_rex64_ms_sysv): Ditto.
9257         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
9258         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
9259         constraint for operand 1.
9260         (*sibcall_value_pop_vzeroupper): Ditto.
9261         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
9262         and "z" constraint for operand 2.
9263         (*tls_global_dynamic_32_gnu): Ditto.
9264         (*tls_local_dynamic_base_32_gnu): Ditto.
9265         (*tls_local_dynamic_base_64): Ditto.
9266         (*tls_local_dynamic_32_once): Ditto.
9267         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
9268         Update all callers.
9269         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
9270
9271 2011-05-16  Richard Guenther  <rguenther@suse.de>
9272
9273         * gimple.c (gimple_types_compatible_p_1): Use names of the
9274         type itself, not its main variant.
9275         (iterative_hash_gimple_type): Likewise.
9276
9277 2011-05-16  Richard Guenther  <rguenther@suse.de>
9278
9279         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
9280         always visit pointer target and function result and argument types.
9281
9282 2011-05-16  Jason Merrill  <jason@redhat.com>
9283
9284         PR c++/48999
9285         * tree-inline.c (copy_statement_list): Put back recursion.
9286
9287 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
9288
9289         PR target/27663
9290         PR target/41076
9291         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
9292         * config/avr/avr.md ("*ior<mode>qi.byte0",
9293         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
9294
9295 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
9296
9297         PR target/45099
9298         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
9299         register is needed for a function argument.
9300
9301 2011-05-16  Richard Guenther  <rguenther@suse.de>
9302
9303         * gimple.c (struct type_hash_pair): New type.
9304         (type_hash_pair_compare): New function.
9305         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
9306
9307 2011-05-16  Revital Eres  <revital.eres@linaro.org>
9308
9309         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
9310
9311 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
9312
9313         * config/i386/i386.md (floating point move splitters): Fix
9314         usage of standard_80387_constant_p.
9315         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
9316
9317 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
9318
9319         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
9320
9321 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
9322
9323         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
9324         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
9325         (tree_ssa_lim_finalize): Likewise.
9326
9327 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
9328
9329         * config/i386/constraint.md (Yd, Yx): New register constraints.
9330         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
9331         Yd conditional register constraint.
9332         (*movtf_internal): Use standard_sse_constant_opcode.
9333         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
9334         Yx conditional register constraint.
9335         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
9336         Yd conditional register constraint.  Use standard_sse_constant_p to
9337         check for valid SSE constants and call standard_sse_constant_opcode to
9338         output SSE insn.
9339         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
9340         constants and call standard_sse_constant_opcode to output SSE insn.
9341         * config/i386/i386.c (ix86_option_ovverride_internal): Set
9342         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
9343         optimize_size is set.
9344         (standard_sse_constant_opcode): Output conditional AVX insn templates.
9345
9346 2011-05-14  Tobias Burnus  <burnus@net-b.de>
9347
9348         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
9349
9350 2011-05-13  Martin Jambor  <mjambor@suse.cz>
9351
9352         * ipa-prop.c (ipa_cst_from_jfunc): New function.
9353         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
9354         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
9355         (evaluate_conditions_for_ipcp_clone): Removed.
9356         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
9357         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
9358         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
9359
9360 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
9361
9362         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
9363         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
9364         lieu of MAY_HAVE_DEBUG_STMTS.
9365         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
9366         debug statements if !MAY_HAVE_DEBUG_STMTS.
9367
9368 2011-05-13  Martin Thuresson  <martint@google.com>
9369
9370         PR gcov-profile/47793
9371         * libgcov.c (gcov_exit): Support relative profile paths.
9372         * doc/invoke.texi (-fprofile-dir): Update for above change.
9373
9374 2011-05-13  Richard Guenther  <rguenther@suse.de>
9375
9376         * gimple.c (gimple_canonical_types_compatible_p): Do not use
9377         type-pair caching, do not compare hashes.
9378
9379 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
9380
9381         PR middle-end/48965
9382         * tree-cfg.c (edge_to_cases_cleanup): Return true.
9383         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
9384
9385 2011-05-13  Kai Tietz  <ktietz@redhat.com>
9386
9387         * gimplify.c (gimplify_expr): Make sure operand is boolified.
9388         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
9389         compatible type for TRUTH_NOT_EXPR.
9390
9391 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
9392
9393         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
9394         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
9395         can_create_pseudo_p ().
9396
9397 2011-05-13  Richard Guenther  <rguenther@suse.de>
9398
9399         PR lto/48978
9400         * gimple.c (iterative_hash_gimple_type): Revert change in
9401         pointer target and function result and argument hashing.
9402
9403 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
9404
9405         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
9406         (*movxf_internal_nointeger): Ditto.
9407         (*movdf_internal_rex64): Ditto.
9408         (*movdf_internal): Ditto.
9409         (*movdf_internal_nointeger): Ditto.
9410         (*movsf_internal): Ditto.
9411         (sincos splitters): Use can_create_pseudo ().
9412
9413 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
9414
9415         * config/i386/i386-opts.h: New.
9416         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
9417         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
9418         ix86_section_threshold): Remove.
9419         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
9420         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
9421         OPT_mbranch_cost_.
9422         (ix86_option_override_internal): Don't decode strings for options
9423         other than -march=, -mtune= and -mfpmath=.  Don't allow for
9424         __attribute__ uses in remaining diagnostics for options with
9425         string arguments.  Don't check for integer arguments being negative.
9426         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
9427         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
9428         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
9429         ix86_branch_cost, ix86_section_threshold): Remove.
9430         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
9431         HeaderInclude.
9432         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
9433         but not Var.
9434         (masm=): Use Enum and Init.
9435         (asm_dialect): New Enum and EnumValue entries.
9436         (mbranch-cost=): Use UInteger.
9437         (mlarge-data-threshold=): Use UInteger and Init.
9438         (mcmodel=): Use Enum and Init.
9439         (cmodel): New Enum and EnumValue entries.
9440         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
9441         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
9442         mregparm=): Use UInteger.
9443         (mstringop-strategy=): Use Enum and Init.
9444         (stringop_alg): New Enum and EnumValue entries.
9445         (mtls-dialect=): Use Enum and Init.
9446         (tls_dialect): New Enum and EnumValue entries.
9447         (mabi=): Use Enum and Init.
9448         (calling_abi): New Enum and EnumValue entries.
9449         (mveclibabi=): Use Enum and Init.
9450         (ix86_veclibabi): New Enum and EnumValue entries.
9451
9452 2011-05-13  Nick Clifton  <nickc@redhat.com>
9453
9454         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
9455         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
9456
9457 2011-05-13  Kai Tietz  <ktietz@redhat.com>
9458
9459         PR middle-end/48984
9460         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
9461         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
9462         (gimple_boolify): Check for cast for boolean_type_node instead for
9463         BOOLEAN_TYPE.
9464
9465 2011-05-13  Richard Guenther  <rguenther@suse.de>
9466
9467         PR tree-optimization/48172
9468         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
9469         multiplying by number of iterations for equal step.
9470         (vect_create_cond_for_alias_checks): Likewise.
9471
9472 2011-05-13  Andreas Schwab  <schwab@redhat.com>
9473
9474         * configure.ac: Use AS_HELP_STRING throughout.
9475         * configure: Regenerate.
9476
9477 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
9478
9479         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
9480         (ix86_emit_restore_regs_using_mov): Likewise.
9481         (ix86_emit_restore_sse_regs_using_mov): Likewise.
9482
9483 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
9484
9485         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
9486         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
9487         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
9488         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
9489         RTX_OK_FOR_OLO10_P): ...here.
9490         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
9491         SYMBOLIC_CONST.
9492
9493 2011-05-12  Kai Tietz  <ktietz@redhat.com>
9494
9495         * gimplify.c (gimple_boolify): Re-boolify expression
9496         arguments even if expression type is of kind BOOLEAN_TYPE.
9497         (gimplify_boolean_expr): Removed.
9498         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
9499         and XOR. Additional take care that we keep expression's type.
9500         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
9501         of TRUTH_AND|OR|XOR_EXPR.
9502
9503 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
9504
9505         PR tree-optimization/48975
9506         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
9507         on all bbs here and free and clear ifc_bbs at the end.
9508
9509 2011-05-12  Richard Guenther  <rguenther@suse.de>
9510
9511         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
9512         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
9513         until after simple checks.
9514         (gimple_types_compatible_p): Likewise.
9515         (iterative_hash_gimple_type): Always hash pointer targets
9516         and function return and argument types.
9517         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
9518         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
9519         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
9520         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
9521         completely in the simple compare section.
9522         (gimple_register_canonical_type): Query the cache again after
9523         registering.
9524
9525 2011-05-12  Richard Guenther  <rguenther@suse.de>
9526
9527         PR tree-optimization/48172
9528         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
9529         the number of iterations from the segment size calculation.
9530         (vect_create_cond_for_alias_checks): Adjust.
9531
9532 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
9533
9534         PR debug/48967
9535         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
9536         if validate_subreg fails.
9537
9538 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
9539
9540         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
9541         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
9542         early.
9543
9544 2011-05-12  DJ Delorie  <dj@redhat.com>
9545
9546         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
9547         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
9548         created builtin into rx_builtins array.
9549         (rx_builtin_decl): New function.
9550         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
9551
9552 2011-05-12  DJ Delorie  <dj@redhat.com>
9553             Nick Clifton  <nickc@redhat.com>
9554
9555         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
9556         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
9557         (rx_is_legitimate_address): Add pre-decrement and post-increment
9558         addressing in HImode and QImode.  Fix test for out of range
9559         REG+INT addressing.
9560         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
9561         (rx_align_for_label): Test label before extracting its usage count.
9562         (rx_adjust_insn_lengths): Fix selection of insn codes.
9563         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
9564
9565 2011-05-11  Jason Merrill  <jason@redhat.com>
9566
9567         * tree.c (type_hash_canon): Use struct tree_type_non_common.
9568
9569 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
9570
9571         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
9572         reindent the subsequent block.
9573
9574 2011-05-11  Satoru Takabayashi  <satorux@google.com>
9575             Paul Pluzhnikov  <ppluzhnikov@google.com>
9576
9577         * doc/install.texi (Configuration): Document --with-linker-hash-style.
9578         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
9579         * config.in: Add LINKER_HASH_STYLE.
9580         * configure.ac: Add --with-linker-hash-style.
9581         * configure: Regenerate.
9582
9583 2011-05-11  Richard Guenther  <rguenther@suse.de>
9584
9585         PR middle-end/48964
9586         * gimple.c (iterative_hash_canonical_type): Fix typo.
9587
9588 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
9589
9590         * config/i386/i386.c (legitimize_tls_address)
9591         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
9592         expanders directly for TARGET_GNU2_TLS.  Determine pic and
9593         __tls_get_addr symbol reference here.  Update call to
9594         gen_tls_global_dynamic_{32,64} for added arguments.
9595         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
9596         expanders directly for TARGET_GNU2_TLS.  Determine
9597         __tls_get_addr symbol reference here.  Update call to
9598         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
9599         unique UNSPEC REG_EQUIV to libcall block.
9600         (ix86_tls_get_addr): Declare static.
9601         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
9602         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
9603         Do not determine pic and __tls_get_addr symbol reference here. Do not
9604         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
9605         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
9606         (tls_global_dynamic_64): Add operand 2.  Do not determine
9607         __tls_get_addr symbol reference here.  Do not call
9608         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
9609         (tls_local_dynamic_base64): Ditto for operand 1.
9610
9611 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
9612
9613         * function.c (expand_function_start): Initialize stack_check_probe_note
9614         only if the generic stack checking mechanism is used.
9615
9616 2011-05-11  Richard Guenther  <rguenther@suse.de>
9617
9618         PR tree-optimization/15256
9619         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
9620         (A & B) | C, combine (A op CST1) op CST2.
9621         (tree_ssa_forward_propagate_single_use_vars): Only bother to
9622         visit assigns that have uses.
9623
9624 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
9625
9626         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
9627         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
9628         (unpack_ts_type_common_value_fields): ...this.  Update comment.
9629         (unpack_value_fields): Adjust for renaming.
9630         (lto_input_ts_type_tree_pointers): Split into...
9631         (lto_input_ts_type_common_tree_pointer): ...this and...
9632         (lto_input_ts_type_non_common_tree_pointers): ...this.
9633         (lto_input_tree_pointers): Adjust for above split.
9634         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
9635         (pack_ts_type_common_value_fields): ...this.  Update comment.
9636         (lto_output_ts_type_tree_pointers): Split into...
9637         (lto_output_ts_type_common_tree_pointers): ...this and...
9638         (lto_output_ts_type_non_common_tree_pointers): ...this.
9639         (lto_output_tree_pointers): Adjust for above split.
9640         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
9641         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
9642         * stor-layout.c (vector_type_mode): Adjust location of mode field.
9643         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
9644         Define.
9645         (struct tree_type): Split into...
9646         (struct tree_type_common: ...this and...
9647         (struct tree_type_with_lang_specific): ...this and...
9648         (struct tree_type_non_common): ...this.  Adjust accessor macros
9649         accordingly.
9650         (TYPE_VALUES_RAW): Define.
9651         (union tree_node): Update for above changes.
9652         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
9653         TS_TYPE_NON_COMMON.
9654         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
9655         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
9656         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
9657         * treestructu.def (TS_TYPE): Remove.
9658         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
9659         Define.
9660
9661 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
9662
9663         PR debug/48159
9664         * tree-ssa.c (reset_debug_uses): New function.
9665         * tree-flow.h (reset_debug_uses): New prototype.
9666         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
9667         * tree-loop-distribution.c (generate_loops_for_partition): Call
9668         reset_debug_uses on the stmts that will be removed.  Keep around
9669         all debug stmts, don't count them as bits in partition bitmap.
9670         (generate_builtin): Don't count debug stmts or labels as bits in
9671         partition bitmap.
9672
9673 2011-05-11  Richard Guenther  <rguenther@suse.de>
9674
9675         * gimple.c (gimple_type_hash_1): Merge with ...
9676         (gimple_type_hash): ... this.
9677         (gtc_visit): Remove mode parameter and simplify accordingly.
9678         (gimple_types_compatible_p_1): Likewise.
9679         (gimple_types_compatible_p): Likewise.
9680         (iterative_hash_gimple_type): Likewise.
9681         (visit): Likewise.
9682         (gimple_type_eq): Adjust.
9683
9684 2011-05-11  Revital Eres  <revital.eres@linaro.org>
9685
9686         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
9687         enters the branch create an anti edge in the opposite direction
9688         to prevent the creation of reg-moves.
9689         * modulo-sched.c: Adjust comment to reflect the fact we are
9690         scheduling closing branch.
9691         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
9692         (stage_count): New field in struct partial_schedule.
9693         (calculate_stage_count): New function.
9694         (normalize_sched_times): Rename to reset_sched_times and handle
9695         incrementing the sched time of the nodes by a constant value
9696         passed as parameter.
9697         (duplicate_insns_of_cycles): Skip closing branch.
9698         (sms_schedule_by_order): Schedule closing branch.
9699         (ps_insn_find_column): Handle closing branch.
9700         (sms_schedule): Call reset_sched_times and adjust the code to
9701         support scheduling of the closing branch.
9702         (ps_insert_empty_row): Update calls to normalize_sched_times
9703         and rotate_partial_schedule functions.
9704
9705 2011-05-11  Richard Guenther  <rguenther@suse.de>
9706
9707         PR middle-end/48953
9708         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
9709
9710 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
9711
9712         * opts.c (finish_options): Move warning settings from process_options.
9713         * toplev.c (process_options): Move warning settings to finish_options.
9714
9715 2011-05-11  Richard Guenther  <rguenther@suse.de>
9716
9717         PR tree-optimization/18041
9718         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
9719         (simplify_bitwise_binary): ... this.  Handle operand conversions
9720         by applying them to the result instead.
9721         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
9722
9723 2011-05-11  Richard Guenther  <rguenther@suse.de>
9724
9725         * gimple.c (gimple_canonical_types_compatible_p): Split out
9726         from gimple_types_compatible_p and friends.  Do not recurse
9727         to pointed-to types.
9728         (gimple_canonical_type_eq): Use it.
9729         (iterative_hash_canonical_type): Split out from
9730         iterative_hash_gimple_type and friends.  Do not recurse
9731         to pointed-to types.
9732         (gimple_canonical_type_hash): Use it, allocate the hash here.
9733
9734 2011-05-11  Revital Eres  <revital.eres@linaro.org>
9735
9736         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
9737         recognizing doloop.
9738
9739 2011-05-11  Revital Eres  <revital.eres@linaro.org>
9740
9741         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
9742         instead of PREV_INSN.
9743
9744 2011-05-11  Revital Eres  <revital.eres@linaro.org>
9745
9746         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
9747         * loop-doloop.c (doloop_condition_get): Likewise.
9748         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
9749         (doloop_end): New.
9750         * config/arm/arm.md (*addsi3_compare0): Remove "*".
9751
9752 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
9753
9754         * tree.def (CASE_LABEL_EXPR): Add an operand.
9755         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
9756
9757 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9758
9759         * c-decl.c (c_override_global_bindings_to_false): Remove.
9760         (global_bindings_p): Don't check
9761         c_override_global_bindings_to_false.
9762         * c-tree.h (c_override_global_bindings_to_false): Remove.
9763         * c-typeck.c (composite_type): Don't set
9764         c_override_global_bindings_to_false.
9765
9766 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
9767
9768         PR target/48857, 48495
9769         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
9770         (VSX_MODE): Ditto.
9771         (VSX_MOVE_MODE): Ditto.
9772         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
9773         VSX vector types.  Add V2DImode.
9774         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
9775         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
9776         (MODES_TIEABLE_P): Ditto.
9777
9778         * config/rs6000/rs6000.c (rs6000_emit_move): Use
9779         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
9780         VSX_VECTOR_MODE.
9781         (init_cumulative_args): Ditto.
9782         (rs6000_function_arg_boundary): Ditto.
9783         (rs6000_function_arg_advance_1): Ditto.
9784         (rs6000_function_arg): Ditto.
9785         (rs6000_function_ok_for_sibcall): Ditto.
9786         (emit_frame_save): Ditto.
9787         (rs6000_function_value): Ditto.
9788         (rs6000_libcall_value): Ditto.
9789
9790 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9791
9792         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
9793         i386/darwin-lib.h to $libgcc_tm_file.
9794         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
9795
9796 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9797
9798         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
9799
9800 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9801
9802         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
9803         * config/rs6000/rs6000-tables.opt: New file (generated).
9804         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
9805         rs6000/rs6000-tables.opt to extra_options.
9806         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
9807         * config/rs6000/rs6000.c (rs6000_select): Remove.
9808         (processor_target_table): Move contents to rs6000-cpus.def.
9809         (darwin_rs6000_override_options): Check
9810         global_options_set.x_rs6000_cpu_index instead of
9811         rs6000_select[1].string.
9812         (rs6000_option_override_internal): Likewise.
9813         (rs6000_handle_option): Don't assert that global structures are in
9814         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
9815         (rs6000_default_cpu): New variable.
9816         (rs6000_file_start): Set it instead of local default_cpu.  Check
9817         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
9818         global_options_set.x_rs6000_tune_index instead of rs6000_select.
9819         (rs6000_darwin_file_start): Check rs6000_default_cpu and
9820         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
9821         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
9822         rs6000_select): Remove.
9823         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
9824         Remove.
9825         (mcpu=, mtune=): Use Var, Init, Enum and Save.
9826         * config/rs6000/t-rs6000
9827         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
9828         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9829         global_options_set.x_rs6000_cpu_index instead of
9830         rs6000_select[1].string.
9831         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9832         global_options_set.x_rs6000_cpu_index instead of
9833         rs6000_select[1].string.
9834
9835 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
9836
9837         * config.gcc (libgcc_tm_file): Define instead of including files
9838         from ../../libgcc/config/ in tm_file.
9839         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
9840         * configure: Regenerate.
9841         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
9842         libgcc_tm.h, cs-libgcc_tm.h): New.
9843         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
9844         (clean): Remove libgcc_tm.h.
9845         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
9846         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
9847         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
9848
9849 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
9850
9851         PR target/48896
9852         * config/avr/avr.c (avr_ret_register): Return unsigned int
9853         instead of int.
9854         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
9855         it to avr_libcall_value.
9856         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
9857         expand_expr.
9858         (avr_expand_binop_builtin): Ditto.
9859         (avr_expand_unop_builtin): Ditto.
9860
9861 2011-05-10  DJ Delorie  <dj@redhat.com>
9862
9863         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
9864         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
9865         * config/rx/rx.c (rx_align_for_label): Add label and
9866         uses_threshold parameters.  Do not align when the label is not
9867         used enough.
9868         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
9869
9870 2011-05-10  Richard Guenther  <rguenther@suse.de>
9871
9872         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
9873         a series of conversions and apply foldings similar to what
9874         fold-const does.
9875         (tree_ssa_forward_propagate_single_use_vars): Call it.
9876
9877 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
9878
9879         PR tree-optimization/48611
9880         PR tree-optimization/48794
9881         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
9882         referenced from RESX or EH_DISPATCH arguments.
9883
9884         PR debug/48928
9885         * dfp.c (decimal_to_decnumber): Handle conversion from
9886         dconst{1,2,m1,half}.
9887
9888 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9889
9890         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
9891         for !flag_prefer_avx128.
9892         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
9893
9894 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
9895
9896         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
9897         (fold_ternary_loc): Use expr_location_or.
9898
9899 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
9900
9901         PR debug/48853
9902         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
9903         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
9904         Pmode and mem_mode is not VOIDmode.
9905
9906 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
9907
9908         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
9909         TYPE_QUAL_RESTRICT): Convert to enum.
9910
9911 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9912
9913         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
9914         (const_pow2_1_to_8_operand): Ditto.
9915         (const_pow2_1_to_128_operand): Ditto.
9916         (const_pow2_1_to_32768_operand): Ditto.
9917         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
9918         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
9919         in insn constraint to check integer value of operand 3.
9920         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
9921
9922         (PINSR_MODE): New mode iterator.
9923         (sse2p4_1): New mode attribute.
9924         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
9925         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
9926         iterator.  Use const_int_operand instead of
9927         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
9928         exact_log2 in insn constraint to check integer value of operand 3.
9929
9930 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9931
9932         * config/i386/sse.md (blendbits): Remove mode attribute.
9933         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
9934         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
9935         Check integer value of operand 3 in insn constraint.
9936
9937 2011-05-09  Richard Guenther  <rguenther@suse.de>
9938
9939         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
9940         for diagnostics.
9941         (lto_symtab_merge): Likewise.  Do not register types here.
9942         (lto_symtab_merge_decls_2): Likewise.
9943         (lto_symtab_merge_decls_1): Likewise.
9944         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
9945         * gimple.c (enum gtc_mode): Declare.
9946         (gimple_types_compatible_p): Make static.
9947
9948 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9949
9950         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
9951         temporary register to match Pmode.
9952
9953 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9954
9955         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
9956         and *vec_concatv4si_1_avx.
9957
9958 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9959
9960         PR rtl-optimization/48927
9961         * ira-conflicts.c (commutative_constraint_p): Use
9962         recog_data.alternative_enabled_p to disable alternatives where
9963         "enabled" attribute is false.
9964         (get_dup_num): Ditto.
9965         * ira-lives.c (single_reg_class): Ditto.
9966         (ira_implicitly_set_insn_hard_regs): Ditto.
9967
9968 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
9969
9970         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
9971         (dataflow_set_preserve_mem_locs): Likewise.
9972
9973 2011-05-09  Philipp Thomas  <pth@suse.de>
9974
9975         * config/mep/mep.c (mep_validate_vliw): Syntax description
9976         should not be translated.
9977
9978 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
9979
9980         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
9981         * config/mips/mips-tables.opt: New file (generated).
9982         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
9983         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
9984         MIPS_ARCH_OPTION_NATIVE): Define.
9985         * config/mips/mips.c (mips_cpu_info_table): Move contents to
9986         mips-cpus.def.
9987         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
9988         mips_parse_cpu): Remove.
9989         (mips_cpu_info_from_opt, mips_default_arch): New.
9990         (mips_handle_option): Don't assert that global structures are in
9991         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
9992         (mips_option_override): Use new variables and functions to set
9993         state of these options.  Use strcmp to check for individual CPU names.
9994         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
9995         definition.
9996         * config/mips/mips.opt (march=): Use ToLower and Enum.
9997         (mips): Use ToLower, Enum and Var.
9998         (mtune=): Use ToLower and Enum.
9999         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
10000
10001 2011-05-08  Jan Hubicka  <jh@suse.cz>
10002
10003         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
10004         Arrange type pairs to be UID ordered.
10005         (gimple_lookup_type_leader): Make inline.
10006
10007 2011-05-09  Nick Clifton  <nickc@redhat.com>
10008
10009         PR target/48899
10010         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
10011         PROCESSOR_DEFAULT.
10012
10013         PR target/48897
10014         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
10015         variable 's'.
10016
10017 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
10018
10019         * combine.c (simplify_comparison): Abstract out parts into...
10020         (simplify_compare_const): ... new function.
10021         (try_combine): Generalize parallel arithmetic/compare combining
10022         to call simplify_compare_const() and CANONICALIZE_COMPARE().
10023
10024 2011-05-08  Jan Hubicka  <jh@suse.cz>
10025
10026         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
10027         (cgraph_create_virtual_clone): Call hooks once virtual clone
10028         is finished.
10029         * cgraph.h (cgraph_clone_node): Update prototype.
10030         * ipa-cp.c (ipcp_estimate_growth): Use
10031         estimate_ipcp_clone_size_and_time.
10032         * ipa-inline-transform.c (clone_inlined_nodes): Update.
10033         * lto-cgraph.c (input_node): Update.
10034         * ipa-inline.c (recursive_inlining): Update.
10035         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
10036         (evaluate_conditions_for_known_args): Break out from ...
10037         (evaluate_conditions_for_edge): ... here.
10038         (evaluate_conditions_for_ipcp_clone): New function.
10039         (inline_node_duplication_hook): Update clone summary based
10040         on parameter map.
10041         (estimate_callee_size_and_time): Rename to ...
10042         (estimate_node_size_and_time): take NODE instead of EDGE;
10043         take POSSIBLE_TRUTHS as argument.
10044         (estimate_callee_size_and_time): Update.
10045         (estimate_ipcp_clone_size_and_time): New function.
10046         (do_estimate_edge_time): Update.
10047
10048 2011-05-08  Richard Guenther  <rguenther@suse.de>
10049
10050         PR middle-end/48908
10051         PR middle-end/48905
10052         * expmed.c (expand_shift_1): Compute adjusted constant shift
10053         amount manually.
10054
10055 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
10056
10057         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
10058
10059 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
10060
10061         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
10062
10063 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
10064
10065         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
10066
10067 2011-05-07  Jan Hubicka  <jh@suse.cz>
10068
10069         * ipa-inline-transform.c (inline_call): Account when program size
10070         decreases.
10071         * ipa-inline.c (relative_time_benefit): New function.
10072         (edge_badness): Reorganize to be power 2 based; fix thinko when
10073         computing badness for negative growth; update comments to match
10074         reality; better dumps.
10075
10076 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
10077
10078         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
10079         type to bool and adjust comment.
10080         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
10081         (fold_mathfn_compare): Remove calls to global_bindings_p.
10082         (fold_inf_compare): Likewise.
10083         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
10084         * c-tree.h (global_bindings_p): Adjust prototype.
10085         * c-decl.c (global_bindings_p): Return bool and simplify.
10086
10087 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
10088
10089         PR tree-optimization/48837
10090         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
10091         when accumulator transformation is performed.
10092
10093 2011-05-06  Jan Hubicka  <jh@suse.cz>
10094
10095         * i386.h (ix86_tune_indices): Add
10096         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
10097         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
10098         * i386.c (initial_ix86_tune_features): Add
10099         X86_SOFTARE_PREFETCHING_BENEFICIAL.
10100         (software_prefetching_beneficial_p): Remove predicate.
10101         (ix86_option_override_internal): Use new macro.
10102
10103 2011-05-06  Jan Hubicka  <jh@suse.cz>
10104
10105         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
10106
10107 2011-05-06  Jan Hubicka  <jh@suse.cz>
10108
10109         * cgraph.c (cgraph_add_thunk): Create real function node instead
10110         of alias node; finalize it and mark needed/reachale; arrange visibility
10111         to be right and add it into the corresponding same comdat group list.
10112         (dump_cgraph_node): Dump thunks.
10113         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
10114         cgraph_function_with_gimple_body_p,
10115         cgraph_first_function_with_gimple_body,
10116         cgraph_next_function_with_gimple_body): New functions.
10117         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
10118         New macros.
10119         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
10120         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10121         * cgraphunit.c (cgraph_finalize_function): Only look into possible
10122         devirtualization when optimizing.
10123         (verify_cgraph_node): Verify thunks.
10124         (cgraph_analyze_function): Analyze thunks.
10125         (cgraph_mark_functions_to_output): Output thunks only in combination
10126         with function they are assigned to.
10127         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
10128         alias into normal node.
10129         (assemble_thunks): New functoin.
10130         (cgraph_expand_function): Use it.
10131         * lto-cgraph.c (lto_output_node): Stream thunks.
10132         (input_overwrite_node): Stream in thunks.
10133         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
10134         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
10135         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
10136         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
10137         (inline_analyze_function): Do not care about thunk jump functions.
10138         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
10139         * ipa-prop.c (ipa_prop_write_jump_functions): Use
10140         cgraph_function_with_gimple_body_p.
10141         * passes.c (do_per_function_toporder): Use
10142         cgraph_function_with_gimple_body_p.
10143         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10144         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
10145         (function_called_by_processed_nodes_p): Likewise.
10146
10147 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
10148
10149         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
10150         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
10151         entries.
10152         (mabi=): Replace with separate entries for mabi=altivec,
10153         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
10154         mabi=ieeelongdouble and mabi=ibmlongdouble.
10155         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
10156         check for -mabi=spe without SPE ABI support here.
10157         (rs6000_handle_option): Replace OPT_mabi_ handling with
10158         OPT_mabi_altivec and OPT_mabi_spe handling.
10159
10160 2011-05-06  Cary Coutant  <ccoutant@google.com>
10161
10162         * dwarf2out.c (contains_subprogram_definition): New function.
10163         (should_move_die_to_comdat): Call it.
10164
10165 2011-05-06  Jeff Law  <law@redhat.com>
10166
10167         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
10168         remove_ctrl_stmt_and_useless_edges.
10169         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
10170         (fixup_template_block, thread_single_edge): Likewise.
10171         (mark_threaded_blocks): Use THREAD_TARGET.
10172
10173 2011-05-06  Alan Modra  <amodra@gmail.com>
10174
10175         PR target/48900
10176         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
10177         const0_rtx as the arg to the dummy __tls_get_addr libcall.
10178
10179 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
10180
10181         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
10182         constraint modifier to "r".
10183
10184 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
10185
10186         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
10187         fall through for OPT_mcmodel_.
10188
10189 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10190
10191         * config/s390/s390.c (s390_asm_trampoline_template): Comment
10192         instruction sizes.
10193         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
10194
10195 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10196
10197         PR target/47930
10198         * config/arm/arm.opt (marm): Document it.
10199         (mthumb): Reject negative variant.
10200
10201 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
10202
10203         PR target/48898
10204         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
10205         Fix typo in "ccvt" variable name.
10206
10207 2011-05-06  Tristan Gingold  <gingold@adacore.com>
10208
10209         PR target/48895
10210         * config/vms/vms-ar.c (main): Remove cwd variable.
10211
10212 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
10213
10214         PR debug/48902
10215         * var-tracking.c (prepare_call_arguments): Move else before #endif.
10216
10217 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
10218
10219         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
10220         * gimplify.c (gimplify_switch_expr): Likewise.
10221         * omp-low.c (expand_omp_sections): Likewise.
10222         * tree-eh.c (lower_try_finally_switch): Likewise.
10223         (lower_eh_dispatch): Likewise.
10224         * tree.h (build_case_label): Declare.
10225         * tree.c (build_case_label): Define.
10226
10227 2011-05-05  Jason Merrill  <jason@redhat.com>
10228
10229         PR c++/40975
10230         * tree-inline.c (copy_tree_r): Use copy_statement_list.
10231         (copy_statement_list): Don't recurse.
10232         * stor-layout.c (copy_self_referential_tree_r): Don't allow
10233         STATEMENT_LIST.
10234
10235 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
10236
10237         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
10238         through from -mfpu= handling.
10239         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
10240
10241 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
10242
10243         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
10244         POST_MODIFY.
10245
10246 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
10247
10248         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
10249         for 11.31.
10250         (hppa[12]*-*-hpux11*): Ditto.
10251         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
10252         * config/ia64/hpux-unix2003.h: New.
10253         * config/pa/pa-hpux1131.opt: New.
10254         * config/pa/pa-hpux1131.h: New.
10255         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
10256         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
10257         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
10258
10259 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
10260
10261         PR debug/48853
10262         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
10263         instead of mode as 3rd argument to recursive call.
10264         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
10265         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
10266         VOIDmode.
10267         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
10268         don't give up if mode is Pmode and mem_mode is not VOIDmode.
10269         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
10270         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
10271
10272 2011-05-05  Julian Brown  <julian@codesourcery.com>
10273
10274         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
10275         parenthesis in D-register case.
10276
10277 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
10278
10279         * opt-functions.awk (var_type_struct): Handle Enum options.
10280         * optc-gen.awk: Don't check range of variables of character type.
10281         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
10282         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
10283         rs6000_sdata_name, rs6000_explicit_options): Remove.
10284         (rs6000_option_override_internal): Check for -malign-power here.
10285         Use global_options_set instead of rs6000_explicit_options.
10286         (rs6000_parse_fpu_option): Remove.
10287         (rs6000_handle_option): Access variables via opts and opts_set
10288         pointers.  Use error_at and warning_at.  Add fall-through
10289         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
10290         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
10291         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
10292         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
10293         here.  Don't use rs6000_parse_fpu_option.
10294         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
10295         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
10296         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
10297         (mrecip=): Use Var.
10298         (mspe): Use Var and Save.
10299         (mtraceback=): Use Enum and Var.
10300         (rs6000_traceback_type): New Enum and EnumValue entries.
10301         (mfloat-gprs=): Use Enum, Var and Save.
10302         (rs6000_float_gprs): New Enum and EnumValue entries.
10303         (mlong-double-): use Var and Save.
10304         (msched-costly-dep=, minsert-sched-nops=): Use Var.
10305         (malign-): Use Enum and Var.
10306         (rs6000_alignment_flags): New Enum and EnumValue entries.
10307         (mfpu=): Use Enum.
10308         (fpu_type_t): New Enum and EnumValue entries.
10309         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10310         global_options_set instead of rs6000_explicit_options.
10311         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10312         global_options_set instead of rs6000_explicit_options.
10313         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10314         global_options_set instead of rs6000_explicit_options.
10315         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10316         global_options_set instead of rs6000_explicit_options.
10317         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
10318         global_options_set instead of rs6000_explicit_options.
10319         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10320         global_options_set instead of rs6000_explicit_options.
10321         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
10322         definition.
10323         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10324         global_options_set instead of rs6000_explicit_options.
10325         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
10326         (rs6000_cmodel): New Enum and EnumValue entries.
10327         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10328         global_options_set instead of rs6000_explicit_options.
10329         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
10330         (mtls-size=): Use Enum and Var.
10331         (rs6000_tls_size): New Enum and EnumValue entries.
10332
10333 2011-05-05  Michael Matz  <matz@suse.de>
10334
10335         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
10336         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
10337         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
10338         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
10339         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
10340         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
10341         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
10342         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
10343         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
10344         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
10345         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
10346         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
10347         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
10348         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
10349         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
10350         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
10351
10352 2011-05-05  Richard Guenther  <rguenther@suse.de>
10353
10354         * expmed.c (expand_variable_shift): Rename to ...
10355         (expand_shift_1): ... this.  Take an expanded shift amount.
10356         For rotates recurse directly not building trees for the shift amount.
10357         (expand_variable_shift): Wrap around expand_shift_1.
10358         (expand_shift): Adjust.
10359
10360 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
10361
10362         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
10363
10364 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
10365
10366         * tree.h (get_pending_sizes): Remove prototype.
10367         (put_pending_size): Likewise.
10368         (put_pending_sizes): Likewise.
10369         * stor-layout.c (pending_sizes): Delete.
10370         (get_pending_sizes): Likewise.
10371         (put_pending_size): Likewise.
10372         (put_pending_sizes): Likewise.
10373         (variable_size): Do not call put_pending_size and tidy up.
10374         * function.h (struct function): Remove dont_save_pending_sizes_p.
10375         * lto-streamer-in.c (input_function): Do not stream it.
10376         * lto-streamer-out.c (output_function): Likewise.
10377         * tree-inline.c (initialize_cfun): Do not copy it.
10378         * c-decl.c (store_parm_decls): Do not set it.
10379         * omp-low.c (create_task_copyfn): Likewise.
10380         * tree-optimize.c (tree_rest_of_compilation): Likewise.
10381
10382 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
10383
10384         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
10385         conditions.
10386         (*movdf_internal): Ditto.
10387         (*movdf_internal_nointeger): Ditto.
10388         (*movsf_internal): Ditto.
10389
10390 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
10391
10392         * c-decl.c (finish_decl): Don't call get_pending_sizes.
10393         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
10394         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
10395         (c_variable_size): Remove.
10396         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
10397         call put_pending_sizes.
10398         (get_parm_info): Add parameter expr.  Use it to set
10399         arg_info->pending_sizes.
10400         (store_parm_decls): Use arg_info->pending_sizes instead or calling
10401         get_pending_sizes.
10402         * c-parser.c (c_parser_parms_declarator): Update call to
10403         c_parser_parms_list_declarator.
10404         (c_parser_parms_list_declarator): Take parameter expr.  Update
10405         call to push_parm_decl.  Update recursive call.  Don't call
10406         get_pending_sizes.  Update calls to get_parm_info.
10407         (c_parser_objc_method_definition): Update calls to
10408         c_parser_objc_method_decl and objc_start_method_definition.
10409         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
10410         (c_parser_objc_method_decl): Add parameter expr.  Update call to
10411         grokparm.
10412         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
10413         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
10414         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
10415
10416 2011-05-05  Michael Hope  <michael.hope@linaro.org>
10417
10418         PR pch/45979
10419         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
10420         __ARM_EABI__ hosts.
10421
10422 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10423
10424         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
10425         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
10426         (spu_output_mi_thunk): New function.
10427
10428 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10429
10430         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
10431         targetm.asm_out.print_operand.
10432         * config/sol2.c: Include target.h.
10433
10434 2011-05-04  Jan Hubicka  <jh@suse.cz>
10435
10436         * ipa-inline.c (reset_edge_caches): New function.
10437         (update_caller_keys): Add check_inlinablity_for; do not
10438         reset edge caches; remove now unnecesary loop.
10439         (update_callee_keys): Add comments; reset node_growth_cache of callee.
10440         (update_all_callee_keys): Likewise.
10441         (inline_small_functions): Sanity check cache; update code
10442         recomputing it.
10443
10444 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
10445
10446         PR rtl-optimization/47612
10447         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
10448         as the last insn of the sequence to be moved.
10449
10450 2011-05-04  Tobias Burnus  <burnus@net-b.de>
10451
10452         PR fortran/48864
10453         * doc/invoke.texi (Ofast): Document that it
10454         enables Fortran's -fno-protect-parens.
10455
10456 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
10457
10458         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
10459
10460 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
10461
10462         * stor-layout.c (variable_size): Do not issue errors.
10463
10464 2011-05-04  Richard Guenther  <rguenther@suse.de>
10465
10466         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
10467         for array-ref indices.
10468         (tree_coverage_counter_addr): Likewise.
10469         (build_fn_info_type): Use size_int for index types.
10470         (build_gcov_info): Likewise.
10471
10472 2011-05-04  Richard Guenther  <rguenther@suse.de>
10473
10474         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
10475         to build_int_cst.
10476         * c-typeck.c (really_start_incremental_init): Use bitsize_int
10477         for constructor indices.
10478         (push_init_level): Likewise.
10479
10480 2011-05-04  Richard Guenther  <rguenther@suse.de>
10481
10482         * explow.c (promote_mode): Move variable declarations before code.
10483
10484 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
10485
10486         * tree.h (build_function_type_array): Declare.
10487         (build_varargs_function_type_array): Declare.
10488         (build_function_type_vec, build_varargs_function_type_vec): Define.
10489         * tree.c (build_function_type_array_1): New function.
10490         (build_function_type_array): New function.
10491         (build_varargs_function_type_array): New function.
10492
10493 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
10494
10495         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
10496         before setting STMT_VINFO_TYPE.
10497
10498 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10499
10500         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
10501         instead of spu_pass_by_reference.
10502
10503 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10504
10505         * calls.c (emit_library_call_value_1): Invoke
10506         promote_function_mode hook on libcall arguments.
10507         * explow.c (promote_function_mode, promote_mode): Handle TYPE
10508         argument being NULL.
10509         * targhooks.c (default_promote_function_mode): Lisewise.
10510         * config/s390/s390.c (s390_promote_function_mode): Likewise.
10511         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
10512
10513         * doc/tm.texi: Document that TYPE argument might be NULL.
10514
10515 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
10516
10517         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
10518
10519 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
10520
10521         From Bernd Schmidt
10522         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
10523
10524 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10525
10526         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
10527         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
10528         Move ...
10529         * mips-tfile.c: ... here.
10530         Don't include coretypes.h, tm.h, filenames.h.
10531         (saber_stop): Remove definition and all calls.
10532         [__SABER__]: Remove.
10533         (__LINE__): Remove default.
10534         (Size_t, Ptrdiff_t): Remove definitions.
10535         Replace by size_t, ptrdiff_t.
10536         [!MIPS_DEBUGGING_INFO]: Remove.
10537         (SHASH_SIZE, THASH_SIZE): Remove defaults.
10538         (progname): Add const.
10539         (STATIC): Remove.
10540         Replace all uses by static.
10541         (ALIGN_SYMTABLE_OFFSET): Remove default.
10542         * mips-tdump.c: Don't include coretypes.h, tm.h.
10543         Remove !MIPS_IS_STAB guard.
10544         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
10545         $(TM_H), filenames.h dependencies.
10546         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
10547
10548 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
10549
10550         From Jie Zhang
10551         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
10552         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10553
10554 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
10555
10556         From Bernd Schmidt
10557         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
10558         account and save/restore RETS.
10559         (PROFILE_BEFORE_PROLOGUE): Define.
10560         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
10561         the push insn to use predecrement.
10562
10563 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
10564
10565         From Jie Zhang
10566         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
10567
10568 2011-05-04  Nick Clifton  <nickc@redhat.com>
10569
10570         * config/mn10300/mn10300.c: Include cfgloop.h.
10571         (DUMP): New macro.
10572         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
10573         Lcc or a FLcc insn into the instruction stream.
10574         (mn10300_block_contains_call): New function.  Returns true if the
10575         given basic block contains a CALL insn.
10576         (mn10300_loop_contains_call_insn): New function.  Returns true if
10577         the given loop contains a CALL insn.
10578         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
10579         to use the SETLB and Lcc or FLcc insns.
10580         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
10581         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
10582         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
10583         disable the SETLB optimization.
10584         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
10585         __SETLB__ or __NO_SETLB__.
10586         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
10587         (movsf_internal): Handle MDR register.
10588         (cmpsi): Make visible.
10589         (setlb): New pattern.
10590         (Lcc): New pattern.
10591         (FLcc): New pattern.
10592
10593 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
10594
10595         PR target/48860
10596         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
10597         for reg<->xmm moves.
10598         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
10599         (vec_concatv2di_rex64_sse): Ditto.
10600         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
10601         (*vec_extractv2di_1_rex64): Ditto.
10602
10603         Revert:
10604         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
10605
10606         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
10607         reg<->xmm moves.
10608         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
10609
10610 2011-05-04  Richard Guenther  <rguenther@suse.de>
10611
10612         * tree.h (int_const_binop): Remove notrunc argument.
10613         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
10614         create integer constants that are properly truncated.
10615         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
10616         (const_binop): Remove zero notrunc argument to int_const_binop.
10617         (size_binop_loc): Likewise.
10618         (fold_div_compare): Likewise.
10619         (maybe_canonicalize_comparison_1): Likewise.
10620         (fold_comparison): Likewise.
10621         (fold_binary_loc): Likewise.
10622         (multiple_of_p): Likewise.
10623         * expr.c (store_constructor): Likewise.
10624         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
10625         (maybe_fold_stmt_addition): Likewise.
10626         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
10627         * stor-layout.c (layout_type): Likewise.
10628         * tree-data-ref.c (tree_fold_divides_p): Likewise.
10629         * tree-sra.c (build_ref_for_offset): Likewise.
10630         (build_user_friendly_ref_for_offset): Likewise.
10631         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
10632         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
10633         * tree-ssa-loop-niter.c (inverse): Likewise.
10634         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10635         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
10636         * tree-switch-conversion.c (check_range): Likewise.
10637         (build_constructors): Likewise.
10638         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
10639         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
10640         (extract_range_from_assert): Likewise.
10641         (vrp_int_const_binop): Likewise.
10642         (extract_range_from_binary_expr): Likewise.
10643         (extract_range_from_unary_expr): Likewise.
10644         (check_array_ref): Likewise.
10645         (find_case_label_range): Likewise.
10646         (simplify_div_or_mod_using_ranges): Likewise.
10647         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
10648         comparing case labels for merging.
10649
10650 2011-05-03  Mark Wielaard  <mjw@redhat.com>
10651
10652         * dwarf2out.c (debug_str_hash_forced): Removed.
10653         (gen_label_for_indirect_string): Removed.
10654         (get_debug_string_label): Removed.
10655         (AT_string_form): Generate label directly.
10656         (output_indirect_string): Test indirect_string_node for
10657         DW_FORM_strp instead of checking label and refcount.
10658         (prune_indirect_string): Removed.
10659         (prune_unused_types): Don't check debug_str_hash_forced or
10660         call prune_indirect_string.
10661
10662 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
10663
10664         PR other/48093
10665         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
10666
10667 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
10668
10669         PR debug/47994
10670         PR debug/47919
10671         * combine.c (try_combine): Skip debug insns at m_split tests.
10672
10673 2011-04-26  Mark Wielaard  <mjw@redhat.com>
10674
10675         PR42288
10676         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
10677         when info_section_emitted.
10678
10679 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
10680
10681         * config/mips/mips-opts.h: New.
10682         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
10683         to mips-opts.h.
10684         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
10685         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
10686         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
10687         via opts pointer.
10688         * config/mips/mips.h (enum mips_code_readable_setting): Move to
10689         mips-opts.h.
10690         (mips_abi, mips_code_readable): Don't declare.
10691         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
10692         (mabi=): Use Enum and Var.
10693         (mips_abi): New Enum and EnumValue entries.
10694         (mcode-readable=): Use Enum and Var.
10695         (mips_code_readable_setting): New Enum and EnumValue entries.
10696         (mr10k-cache-barrier=): Use Enum and Var.
10697         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
10698
10699 2011-05-03  Jan Hubicka  <jh@suse.cz>
10700
10701         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
10702         replace hash by pointer map.
10703         (cgraph_node_set_element_def, cgraph_node_set_element,
10704         const_cgraph_node_set_element, varpool_node_set_element_def,
10705         varpool_node_set_element, const_varpool_node_set_element): Remove.
10706         (free_cgraph_node_set, free_varpool_node_set): New function.
10707         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
10708         * tree-emutls.c: Free varpool node set.
10709         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
10710         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
10711         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
10712         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
10713         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
10714         Move here from ipa.c; implement using pointer_map
10715         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
10716         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
10717         debug_cgraph_node_set, varpool_node_set_new,
10718         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
10719         dump_varpool_node_set, debug_varpool_node_set):
10720         Move to ipa-uitls.c.
10721         * passes.c (ipa_write_summaries): Update.
10722
10723 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10724
10725         From Mike Frysinger:
10726         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
10727         bf542/bf544/bf547/bf548/bf549.
10728
10729 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
10730
10731         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
10732
10733 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10734
10735         From Bernd Schmidt:
10736         * config/bfin/bfin.md (MOVCC): New mode_macro.
10737         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
10738         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
10739         comments from generated assembly.
10740
10741 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10742
10743         From Bernd Schmidt
10744         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
10745         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
10746         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
10747         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
10748         * config/bfin/lib1funcs.asm (___muldi3): New function.
10749
10750 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10751
10752         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
10753         build_function_type_list instead of build_function_type.
10754         Rearrange initialization of `args' to do so.
10755
10756 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10757
10758         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
10759         instead of build_function_type.
10760
10761 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10762
10763         * config/rs6000/rs6000.c (spe_init_builtins): Call
10764         build_function_type_list instead of build_function_type.
10765         (paired_init_builtins, altivec_init_builtins): Likewise.
10766         (builtin_function_type): Likewise.
10767
10768 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10769
10770         * config/sh/sh.c (sh_media_init_builtins): Call
10771         build_function_type_list instead of build_function_type.
10772
10773 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10774
10775         * config/sparc/sparc.c (sparc_file_end): Call
10776         build_function_type_list instead of build_function_type.
10777
10778 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10779
10780         * config/alpha/alpha.c (alpha_init_builtins): Call
10781         build_function_type_list instead of build_function_type.
10782
10783 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10784
10785         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
10786         build_function_type_list instead of build_function_type.
10787
10788 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10789
10790         * config/iq2000/i2000.c (iq2000_init_builtins): Call
10791         build_function_type_list instead of build_function_type.
10792         Delete `endlink' variable.
10793
10794 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10795
10796         * config/avr/avr.c (avr_init_builtins): Call
10797         build_function_type_list instead of build_function_type.
10798
10799 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10800
10801         * config/picochip/picochip.c (picochip_init_builtins): Call
10802         build_function_type_list instead of build_function_type.
10803         Delete `endlink' variable.
10804
10805 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
10806
10807         * config/bfin/bfin.c (bfin_init_builtins): Call
10808         build_function_type_list instead of build_function_type.
10809
10810 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10811
10812         From Bernd Schmidt
10813         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
10814         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
10815
10816 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10817
10818         From Jie Zhang:
10819         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
10820         libbffastfp overrides libgcc when -mfast-fp.
10821
10822 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10823
10824         Originally from Bernd Schmidt
10825         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
10826         * config/bfin/bfin.c (override_options): Test it and error if
10827         TARGET_FDPIC.
10828
10829 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10830
10831         Originally From Bernd Schmidt
10832         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
10833         FD-PIC.
10834
10835 2011-05-03  Jeff Law  <law@redhat.com>
10836
10837         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
10838         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
10839         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
10840         than accessing AUX field directly.  Free the AUX field before
10841         clearing it.
10842         (thread_block, thread_through_loop_header): Likewise.
10843         (thread_single_edge, mark_threaded_blocks): Likewise.
10844         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
10845         (register_jump_thread): Do not attempt to thread to a NULL edge.
10846
10847 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
10848
10849         * function.c (init_function_start): Call decide_function_section.
10850         * varasm.c (decide_function_section): New function.
10851         (assemble_start_function): When not using
10852         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
10853         or first_function_block_is_cold.
10854         * rtl.h (decide_function_section): Declare.
10855
10856 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
10857             Jakub Jelinek  <jakub@redhat.com>
10858
10859         PR target/48774
10860         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
10861         only succeed if req_mode is the same as set_mode.
10862
10863 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
10864
10865         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
10866         * genemit.c (gen_exp): Handle RETURN.
10867         * emit-rtl.c (verify_rtx_sharing): Likewise.
10868         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
10869         * rtl.c (copy_rtx): RETURN is shared.
10870         * rtl.h (enum global_rtl_index): Add GR_RETURN.
10871         (ret_rtx): New.
10872         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
10873         * config/s390/s390.c (s390_emit_epilogue): Likewise.
10874         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
10875         * config/cris/cris.c (cris_expand_return): Likewise.
10876         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
10877         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
10878         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
10879         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
10880         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
10881         Likewise.
10882         * config/v850/v850.c (expand_epilogue): Likewise.
10883         * config/bfin/bfin.c (bfin_expand_call): Likewise.
10884         * config/arm/arm.md (epilogue): Likewise.
10885         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
10886         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
10887         variable to ret_reg.
10888
10889 2011-05-03  Richard Guenther  <rguenther@suse.de>
10890
10891         PR lto/48846
10892         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
10893         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
10894         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
10895
10896 2011-05-03  Richard Guenther  <rguenther@suse.de>
10897
10898         * c-decl.c (grokdeclarator): Instead of looking at
10899         TREE_OVERFLOW check if the constant fits in the index type.
10900
10901 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
10902
10903         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
10904         (vec_store_lanes<mode><mode>): Likewise.
10905
10906 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
10907
10908         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
10909         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
10910         convert_optab_index values.
10911         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
10912         * genopinit.c (optabs): Initialize the new optabs.
10913         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
10914         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
10915         (expand_STORE_LANES): New functions.
10916         * tree.h (build_array_type_nelts): Declare.
10917         * tree.c (build_array_type_nelts): New function.
10918         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
10919         (vect_model_load_cost): Likewise.
10920         (vect_store_lanes_supported, vect_load_lanes_supported)
10921         (vect_record_strided_load_vectors): Declare.
10922         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
10923         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
10924         (vect_transform_strided_load): Split out statement recording into...
10925         (vect_record_strided_load_vectors): ...this new function.
10926         * tree-vect-stmts.c (create_vector_array, read_vector_array)
10927         (write_vector_array, create_array_ref): New functions.
10928         (vect_model_store_cost): Add store_lanes_p argument.
10929         (vect_model_load_cost): Add load_lanes_p argument.
10930         (vectorizable_store): Try to use store-lanes functions for
10931         interleaved stores.
10932         (vectorizable_load): Likewise load-lanes and loads.
10933         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
10934         to vect_model_store_cost.
10935         (vect_build_slp_tree): Likewise vect_model_load_cost.
10936
10937 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
10938
10939         * hooks.h (hook_bool_mode_uhwi_false): Declare.
10940         * hooks.c (hook_bool_mode_uhwi_false): New function.
10941         * target.def (array_mode_supported_p): New hook.
10942         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
10943         * doc/tm.texi: Regenerate.
10944         * stor-layout.c (mode_for_array): New function.
10945         (layout_type): Use it.
10946         * config/arm/arm.c (arm_array_mode_supported_p): New function.
10947         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
10948
10949 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
10950
10951         PR target/48723
10952         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
10953         for -fstack-check if the size to allocate is negative.
10954
10955 2011-05-02  Lawrence Crowl  <crowl@google.com>
10956
10957         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
10958         (timevar_cond_start): New for starting a timer only when it is not
10959         already running.
10960         (timevar_cond_stop): New for stopping a timer when it was not already
10961         running.
10962
10963         * timevar.c (timevar_stop): Enable start/stop timers to start again.
10964         (timevar_cond_start): New as above.
10965         (timevar_cond_stop): New as above.
10966
10967         * timevar.def: Add start/stop timers for compiler phases,
10968         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
10969         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
10970         and TV_PHASE_FINALIZE.
10971         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
10972         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
10973         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
10974         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
10975         Make unused TV_OVERLOAD into a start/stop timer.
10976
10977         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
10978         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
10979         to indicate that they are start/stop timers.
10980
10981         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
10982         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
10983         Move initialization to do_compile.
10984         (do_compile): Add initialization from above.
10985         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
10986
10987         * c-decl.c (c_write_global_declarations): Add start/stop of
10988         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
10989
10990         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
10991         or TV_PARSE_INLINE, as appropriate.
10992         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
10993         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
10994
10995 2011-05-02  Jason Merrill  <jason@redhat.com>
10996
10997         PR c++/40975
10998         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
10999
11000 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
11001
11002         PR c/35445
11003         * c-decl.c (finish_decl): Only create a composite if the types are
11004         compatible.
11005
11006 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
11007
11008         * config/fr30/fr30-protos.h (Mmode): Don't define.
11009         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
11010         definition where used.
11011         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
11012         define.  Expand definitions where used.
11013         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
11014         Expand definitions where used.
11015         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
11016         rx_function_arg, rx_function_arg_advance,
11017         rx_function_arg_boundary): Expand definitions of those macros.
11018         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
11019         definition where used.
11020
11021 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
11022
11023         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
11024         reg<->xmm moves.
11025         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
11026         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
11027         with *movv2sf_internal_rex64_avx.
11028         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
11029         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
11030         Use %v prefix in insn mnemonic to handle TARGET_AVX.
11031         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
11032         "vex" in "prefix" attribute calculation.
11033         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
11034
11035 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
11036
11037         PR target/47951
11038         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
11039         inputs match the output.
11040
11041 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
11042
11043         PR target/47955
11044         * config/m68k/m68k.c (m68k_expand_prologue): Set
11045         current_function_static_stack_size.
11046
11047 2011-05-02   Jan Hubicka  <jh@suse.cz>
11048
11049         * lto-streamer.c (lto_streamer_cache_insert_1,
11050         lto_streamer_cache_lookup, lto_streamer_cache_create,
11051         lto_streamer_cache_delete): Use pointer map instead of hashtable.
11052         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
11053
11054 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
11055
11056         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
11057         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
11058         config/m68k/t-opts: New files.
11059         * config/m68k/m68k-tables.opt: New file (generated).
11060         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
11061         extra_options and m68k/t-opts to tmake_file.
11062         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
11063         (all_isas): Initialize using m68k-isas.def.
11064         (all_microarchs): Initialize using m68k-microarchs.def.
11065         (m68k_find_selection): Remove.
11066         (m68k_handle_option): Don't assert that global structures are in
11067         use.  Use error_at.  Access variables via opts pointer.  Don't
11068         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
11069         directly for -m68020-40 and -m68020-60.
11070         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
11071         m68k_tune_entry here.
11072         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
11073         to m68k-opts.h.
11074         (m68k_library_id_string): Remove declaration.
11075         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
11076         (m68k_library_id_string): New Variable.
11077         (march=, mcpu=, mtune=): Use Enum and Var.
11078
11079 2011-05-02  Richard Guenther  <rguenther@suse.de>
11080
11081         * varasm.c (output_constructor_regular_field): Compute zero-based
11082         index with double-ints.  Make sure to ICE instead of producing
11083         wrong code.
11084         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
11085         in asserts.  Properly use a signed type.
11086
11087 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
11088
11089         * config/i386/sse.md (V): New mode iterator.
11090         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
11091         TARGET_SSE2.
11092         (V_256): Rename from AVX256MODE.
11093         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
11094         condition to all users.
11095         (VF1): Ditto.
11096         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
11097         condition to all users.
11098         (VF_128): Make V4SF mode unconditional.
11099         (VF_256): Rename from AVX256MODEF2P.
11100         (VI4F_128): Rename from SSEMODE4S.
11101         (VI8F_128): Rename from SSEMODE2D.
11102         (VI4F_256): Rename from AVX256MODE8P.
11103         (VI8F_256): Rename from AVX256MODE4P.
11104         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
11105         (ssescalarmodesuffix): Remove SF and DF modes.
11106         (SSEMODE124): Remove.
11107         (SSEMODE1248): Ditto.
11108         (SSEMODEF2P): Ditto.
11109         (AVXMODEF2P): Ditto.
11110         (AVXMODEFDP): Ditto.
11111         (AVXMODEFSP): Ditto.
11112         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
11113         unconditional.
11114         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
11115         unconditional.
11116         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
11117         xop_pcmov_<mode>256.  Use V mode iterator.
11118
11119         Adjust RTX patterns globally for renamed mode attributes.
11120
11121 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11122
11123         * haifa-sched.c (sched_emit_insn): Emit insn before first
11124         non-scheduled insn.  Inform back-end about new insn.  Add
11125         new insn to scheduled_insns list.
11126
11127 2011-05-02  Richard Guenther  <rguenther@suse.de>
11128
11129         PR tree-optimization/48822
11130         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
11131         (process_scc): Indicate which iteration we start.
11132
11133 2011-05-02  Jan Hubicka  <jh@suse.cz>
11134
11135         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
11136         (lto_section_overrun): New.
11137         * lto-section-out.c (append_block): Rename to ...
11138         (lto_append_block): ... this one; export.
11139         (lto_output_1_stream): Move lto lto-streamer.h
11140         (lto_output_data_stream): Update.
11141         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
11142         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
11143         functions.
11144
11145 2011-05-02  Richard Guenther  <rguenther@suse.de>
11146
11147         * tree.c (tree_code_counts): New global array.
11148         (record_node_allocation_statistics): Count individual tree codes.
11149         (dump_tree_statistics): Dump individual code stats.
11150
11151 2011-05-01  Jan Hubicka  <jh@suse.cz>
11152
11153         * ipa-inline.c (caller_growth_limits): Fix thinko when
11154         looking for largest stack frame.
11155         * ipa-inline.h (dump_inline_summary): Declare.
11156         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
11157         on stack usage.
11158         (dump_inline_summary): Export.
11159         (debug_inline_summary): Declare as DEBUG_FUNCTION.
11160
11161 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
11162
11163         * reginfo.c (memory_move_cost): Change rclass argument type form
11164         'enum reg_class' to reg_class_t.
11165         * reload.h (memory_move_cost): Update prototype.
11166         * postreload.c reload_cse_simplify_set): Change type dclass var to
11167         reg_class_t.
11168         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
11169         Update prototype.
11170         (ira_allocate_and_set_costs): Change aclass argument type form
11171         'enum reg_class' to reg_class_t.
11172         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
11173         Change aclass argument type to reg_class_t.
11174         (update_conflict_hard_reg_costs): Change type aclass and pref vars
11175         to reg_class_t.
11176         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
11177         memory_move_cost call.
11178
11179         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
11180         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
11181         Change type tmp var to reg_class_t.
11182
11183 2011-04-30  Jan Hubicka  <jh@suse.cz>
11184
11185         * ipa-inline.c (can_inline_edge_p): Disregard limits when
11186         inlining into function with flatten attribute.
11187         (want_inline_small_function_p): Be more realistic about inlining
11188         cold calls where callee size grows.
11189
11190 2011-04-30  Jan Hubicka  <jh@suse.cz>
11191
11192         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
11193         flags.
11194
11195 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
11196
11197         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
11198         PRINT_OPERAND_PUNCT_VALID_P): Remove.
11199         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
11200         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
11201         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11202         (print_operand): Rename to...
11203         (sparc_print_operand): ...this. Make static. Adjust
11204         sparc_print_operand function call.
11205         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
11206         functions.
11207
11208 2011-04-30  Jan Hubicka  <jh@suse.cz>
11209
11210         PR middle-end/48752
11211         * ipa-inline.c (early_inliner): Disable when doing late
11212         addition of function.
11213
11214 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
11215
11216         * dwarf2out.c (get_address_mode): New inline.
11217         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
11218         if not dwarf_strict emit
11219         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
11220         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
11221         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
11222         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
11223         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
11224         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
11225         mem_loc_descriptor callers.
11226         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11227         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
11228         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
11229         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
11230         (base_types): New variable.
11231         (get_base_type_offset, calc_base_type_die_sizes,
11232         base_type_for_mode, mark_base_types, base_type_cmp,
11233         move_marked_base_types): New functions.
11234         (calc_die_sizes): Assert that die_offset is 0 or equal to
11235         next_die_offset.
11236         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
11237         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
11238         callers.  If not dwarf_strict, call mem_loc_descriptor even for
11239         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
11240         (gen_subprogram_die): Don't give up on call site parameters
11241         with non-integral or large integral modes.  Adjust
11242         mem_loc_descriptor callers.
11243         (prune_unused_types): Call prune_unused_types_mark on base_types
11244         vector entries.
11245         (resolve_addr): Call mark_base_types.
11246         (dwarf2out_finish): Call move_marked_base_types.
11247
11248         PR tree-optimization/48809
11249         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
11250         type.
11251         (gen_inbound_check): Don't compute index_expr - range_min in utype
11252         again, instead reuse SSA_NAME initialized in build_arrays.
11253         Remove two useless gsi_for_stmt calls.
11254
11255 2011-04-29  Jeff Law  <law@redhat.com>
11256
11257         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
11258
11259 2011-04-29  Martin Jambor  <mjambor@suse.cz>
11260
11261         * cgraph.h (cgraph_postorder): Remove declaration.
11262         * ipa-utils.h (ipa_free_postorder_info): Declare.
11263         (ipa_reverse_postorder): Likewise.
11264         * cgraphunit.c: Include ipa-utils.h.
11265         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
11266         * ipa-inline.c: Include ipa-utils.h.
11267         (ipa_inline): Update call to ipa_reverse_postorder.
11268         * ipa-pure-const.c (propagate_pure_const): Update call to
11269         ipa_reduced_postorder and ipa_print_order.  Call
11270         ipa_free_postorder_info to clean up.
11271         (propagate_nothrow): Likewise.
11272         * ipa-reference.c (propagate): Removed a useless call to
11273         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
11274         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
11275         * ipa.c: Include ipa-utils.h.
11276         (ipa_profile): Update call to ipa_reverse_postorder.
11277         (cgraph_postorder): Moved to...
11278         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
11279         (ipa_utils_print_order): Renamed to ipa_print_order.
11280         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
11281         comments.
11282         (ipa_free_postorder_info): New function.
11283         * passes.c: Include ipa-utils.h.
11284         (do_per_function_toporder): Update call to ipa_reverse_postorder.
11285         (ipa_write_summaries): Likewise.
11286         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
11287         (cgraphunit.o): Likewise.
11288         (ipa.o): Likewise.
11289         (ipa-inline.o): Likewise.
11290
11291 2011-04-29  Jan Hubicka  <jh@suse.cz>
11292
11293         * gcc.dg/tree-ssa/inline-10.c: New testcase.
11294         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
11295         * ipa-inline.h (clause_t): Turn into unsigned int.
11296         * ipa-inline-analysis.c (add_clause): Do more simplification.
11297         (and_predicates): Shortcut more cases.
11298         (predicates_equal_p): Move forward; check that clauses are properly
11299         ordered.
11300         (or_predicates): Shortcut more cases.
11301         (edge_execution_predicate): Rewrite as...
11302         (set_cond_stmt_execution_predicate): ... this function; handle
11303         __builtin_constant_p.
11304         (set_switch_stmt_execution_predicate): New .
11305         (compute_bb_predicates): New.
11306         (will_be_nonconstant_predicate): Update TODO.
11307         (estimate_function_body_sizes): Use compute_bb_predicates
11308         and free them later, always try to estimate if stmt is constant.
11309         (estimate_time_after_inlining, estimate_size_after_inlining):
11310         Gracefully handle optimized out edges.
11311         (read_predicate): Fix off by one error.
11312
11313 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11314
11315         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
11316
11317 2011-04-27  Xinliang David Li  <davidxl@google.com>
11318
11319         * tree-profile.c (init_ic_make_global_vars): Set
11320         tls attribute on ic vars.
11321         * coverage.c (coverage_end_function): Initialize
11322         function_list with zero.
11323
11324 2011-04-29  Richard Guenther  <rguenther@suse.de>
11325
11326         * builtins.c (fold_builtin_classify_type): Use integer_type_node
11327         for the type of the result.
11328         (fold_builtin_isascii): Likewise.
11329         (fold_builtin_toascii): Use integer_type_node where appropriate.
11330         (fold_builtin_logb): Likewise.
11331         (fold_builtin_frexp): Likewise.
11332         (fold_builtin_strstr): Likewise.
11333         (fold_builtin_strpbrk): Likewise.
11334         (fold_builtin_fputs): Likewise.
11335         (fold_builtin_sprintf): Likewise.
11336         (fold_builtin_snprintf): Likewise.
11337         (fold_builtin_printf): Likewise.
11338         (do_mpfr_remquo): Use a proper type for the assigned constant.
11339         (do_mpfr_lgamma_r): Likewise.
11340         * dwarf2out.c (resolve_one_addr): Use size_int.
11341         * except.c (init_eh): Likewise.
11342         (assign_filter_values): Use integer_type_node for filter values.
11343         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
11344         indices.
11345         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
11346         for EH region numbers.
11347         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
11348         for the shift amount.
11349
11350 2011-04-29  Richard Guenther  <rguenther@suse.de>
11351
11352         * expr.h (expand_shift): Rename to ...
11353         (expand_variable_shift): ... this.
11354         (expand_shift): Take a constant shift amount.
11355         * expmed.c (expand_shift): Rename to ...
11356         (expand_variable_shift): ... this.
11357         (expand_shift): New wrapper around expand_variable_shift.
11358         * expr.c (convert_move, emit_group_load_1, emit_group_store,
11359         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
11360         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
11361         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
11362         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
11363         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
11364         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
11365         emit_store_flag_1, emit_store_flag): Likewise.
11366         * builtins.c (expand_builtin_signbit): Likewise.
11367         * calls.c (load_register_parameters): Likewise.
11368         * function.c (assign_parm_setup_block): Likewise.
11369         * lower-subreg.c (resolve_shift_zext): Likewise.
11370         * optabs.c (widen_bswap, expand_abs_nojump,
11371         expand_one_cmpl_abs_nojump, expand_float): Likewise.
11372         * spu/spu.c (spu_expand_extv): Likewise.
11373         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
11374
11375 2011-04-29  Richard Guenther  <rguenther@suse.de>
11376
11377         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
11378         for the remapped region number.
11379         * predict.c (build_predict_expr): Use integer_type_node for the
11380         predict kind.
11381         * fold-const.c (fold_binary_loc): Use integer_type_node for
11382         the shift amount.  Use a proper type for the PLUS_EXPR operand.
11383
11384 2011-04-29  Michael Matz  <matz@suse.de>
11385
11386         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
11387         other trees that just builtins.
11388         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
11389
11390 2011-04-29  Richard Guenther  <rguenther@suse.de>
11391
11392         * tree-nested.c (get_trampoline_type): Use size_int.
11393         (get_nl_goto_field): Likewise.
11394         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
11395         for all indexes.
11396         (lower_eh_constructs_2): Likewise.
11397         (lower_resx): Likewise.
11398         (lower_eh_dispatch): Likewise.
11399         * tree-mudflap.c (mf_build_string): Use size_int.
11400         (mudflap_register_call): Use integer_type_node for the flag.
11401         (mudflap_enqueue_constant): Use size_int.
11402         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
11403         instead of rebuilding it.
11404
11405 2011-04-29  Richard Guenther  <rguenther@suse.de>
11406
11407         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
11408         Handle OBJ_TYPE_REF.
11409         (find_func_aliases_for_call): Use it more consistently.
11410
11411 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
11412
11413         * haifa-sched.c (last_nondebug_scheduled_insn): New.
11414         (rank_for_schedule): Use it.
11415         (schedule_block): Set it.
11416
11417 2011-04-28  David Li  <davidxl@google.com>
11418
11419         * tree.c (crc32_string): Use crc32_byte.
11420         (crc32_byte): New function.
11421         * tree.h (crc32_byte): New function.
11422         * gcov.c (read_graph_file): Handle new cfg_cksum.
11423         (read_count_file): Ditto.
11424         * profile.c (instrument_values): Ditto.
11425         (get_exec_counts): Ditto.
11426         (read_profile_edge_counts): Ditto.
11427         (compute_branch_probabilities): Ditto.
11428         (compute_value_histograms): Ditto.
11429         (branch_prob): Ditto.
11430         (end_branch_prob): Ditto.
11431         * coverage.c (read_counts_file): Ditto.
11432         (get_coverage_counts): Ditto.
11433         (tree_coverage_counter_addr): Ditto.
11434         (coverage_checksum_string): Ditto.
11435         (coverage_begin_output): Ditto.
11436         (coverage_end_function): Ditto.
11437         (build_fn_info_type): Ditto.
11438         (build_fn_info_value): Ditto.
11439         * libgcov.c (gcov_exit): Ditto.
11440         * gcov-dump.c (tag_function): Ditto.
11441         (compute_checksum): Remove.
11442
11443 2011-04-29  Alan Modra  <amodra@gmail.com>
11444
11445         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11446         unspec plus offset.  Tidy macho code.
11447
11448 2011-04-29  Martin Jambor  <mjambor@suse.cz>
11449
11450         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
11451         node instead of a decl.  Update all callers.
11452         * cgraph.h: Update declaration.
11453
11454 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
11455
11456         PR tree-optimization/48765
11457         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
11458         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
11459         to indicate if loop aware SLP is being used.  Scan the statements
11460         and update the vectorization factor according to the type of
11461         vectorization before statement analysis.
11462         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
11463         pass it to vect_analyze_loop_operations.
11464         (vectorizable_reduction): Set number of copies to 1 in case of pure
11465         SLP statement.
11466         * tree-vect-stmts.c (vectorizable_conversion,
11467         vectorizable_assignment, vectorizable_shift,
11468         vectorizable_operation, vectorizable_type_demotion,
11469         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
11470         Likewise.
11471         (vectorizable_condition): Move the check that it is not SLP
11472         vectorization before the number of copies check.
11473         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
11474         to vectorize the loop using SLP.
11475
11476 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
11477
11478         PR middle-end/48597
11479         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
11480         inline asm.
11481
11482 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
11483
11484         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
11485         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
11486         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
11487         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
11488         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
11489         linux*.h headers.
11490         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
11491         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11492         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11493         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11494         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11495         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
11496         REG_NAME.
11497         * config/i386/linux.h (REG_NAME): Don't define.
11498         * config/i386/linux64.h (REG_NAME): Don't define.
11499         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
11500         Undefine before defining.
11501
11502 2011-04-28  Jan Hubicka  <jh@suse.cz>
11503
11504         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
11505         nonconstant_names array.
11506         (estimate_function_body_sizes): Build nonconstant_names array; handle
11507         BUILT_IN_CONSTANT_P.
11508
11509 2011-04-28  Richard Guenther  <rguenther@suse.de>
11510
11511         PR bootstrap/48804
11512         Revert
11513         2011-04-28  Richard Guenther  <rguenther@suse.de>
11514
11515         * tree-ssa-structalias.c (solve_constraints): Build succ graph
11516         as late as possible.
11517
11518 2011-04-28  Richard Guenther  <rguenther@suse.de>
11519
11520         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
11521         (debug_constraint): Do it here.
11522         (dump_constraints): And here.
11523         (rewrite_constraints): And here.
11524         (dump_constraint_edge): Remove.
11525         (dump_constraint_graph): Rewrite to produce DOT output.
11526         (solve_constraints): Build succ graph as late as possible.
11527         Dump constraint graphs before and after solving.
11528
11529 2011-04-28  Richard Guenther  <rguenther@suse.de>
11530
11531         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11532         New function split out from ...
11533         (find_func_aliases): ... here.  Call it.
11534         (find_func_aliases_for_call): Likewise.
11535
11536 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11537
11538         * internal-fn.h (internal_fn_name_array): Declare.
11539         (internal_fn_flags_array): Likewise.
11540
11541 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
11542
11543         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
11544         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
11545         Move from sse.md.
11546         (ssemodefsuffix): Remove.
11547         (ssevecmodesuffix): New mode attribute.
11548         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
11549         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
11550         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
11551         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
11552         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
11553         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
11554         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
11555         ssemodesuffix mode attribute.
11556         (float splitters): Use ssevecmodesuffix mode attribute.
11557         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
11558         (sseinsmode): Rename from avxvecmode.
11559         (avxsizesuffix): Rename from avxmodesuffix.
11560         (sseintvecmode): Rename from avxpermvecmode.
11561         (ssedoublevecmode): Rename from ssedoublesizemode.
11562         (ssehalfvecmode): Rename from avxhalfvecmode.
11563         (ssescalarmode): Rename from avxscalarmode.
11564         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
11565         templates for ssemodesuffix mode attribute.
11566         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
11567         mode attribute.
11568
11569         Adjust RTX patterns globally for renamed mode attributes.
11570
11571 2011-04-27  Jan Hubcika  <jh@suse.cz>
11572
11573         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
11574         * ipa-inline-analysis.c: Include alloc-pool.h.
11575         (edge_predicate_pool): New.
11576         (trye_predicate_p): New function
11577         (false_predicate_p): New function.
11578         (add_clause): Sanity check that false clauses are "optimized";
11579         never add clauses to predicate that is already known to be false.
11580         (and_predicate): Use flase_predicate_p.
11581         (evaulate_predicate): Rename to ...
11582         (evaluate_predicate): ... this one; update all callers; assert
11583         that false is not listed among possible truths.
11584         (dump_predicate): Use true_predicate_p.
11585         (account_size_time): Use false_predicate_p.
11586         (evaulate_conditions_for_edge): Rename to ...
11587         (evaluate_conditions_for_edge) ... this one.
11588         (edge_set_predicate): New function.
11589         (inline_edge_duplication_hook): Duplicate edge predicates.
11590         (inline_edge_removal_hook): Free edge predicates.
11591         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
11592         (dump_inline_summary): Update.
11593         (estimate_function_body_sizes): Set edge predicates.
11594         (estimate_calls_size_and_time): Handle predicates.
11595         (estimate_callee_size_and_time): Update.
11596         (remap_predicate): Add toplev_predicate; update comment.
11597         (remap_edge_predicates): New function.
11598         (inline_merge_summary): Compute toplev predicate; update.
11599         (read_predicate): New function.
11600         (read_inline_edge_summary): Use it.
11601         (inline_read_section): Likewise.
11602         (write_predicate): New function.
11603         (write_inline_edge_summary): Use it.
11604         (inline_write_summary): Likewise.
11605         (inline_free_summary): Free alloc pool and edge summary vec.
11606
11607 2011-04-27  Richard Guenther  <rguenther@suse.de>
11608
11609         * tree-ssa-structalias.c (changed_count): Remove.
11610         (changed): Use a bitmap.
11611         (unify_nodes): Adjust.
11612         (do_sd_constraint): Likewise.
11613         (do_ds_constraint): Likewise.
11614         (do_complex_constraint): Likewise.
11615         (solve_graph): Likewise.
11616
11617 2011-04-27  Jan Hubicka  <jh@suse.cz>
11618
11619         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
11620
11621 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
11622
11623         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
11624         (avx_vperm2f128_*_operand): Ditto.
11625         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
11626         Use avx_vpermilp_parallel in insn condition.
11627         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
11628         Use avx_vperm2f128_parallel in insn condition.
11629
11630 2011-04-27  Richard Guenther  <rguenther@suse.de>
11631
11632         * Makefile.in (tree-ssa-structalias.o): Remove
11633         gt-tree-ssa-structalias.h dependency.
11634         (GTFILES): Remove tree-ssa-structalias.c.
11635         * tree.c (allocate_decl_uid): New function.
11636         (make_node_stat): Use it.
11637         (copy_node_stat): Likewise.
11638         * tree.h (allocate_decl_uid): Declare.
11639         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
11640         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
11641         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
11642         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
11643         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
11644         (struct heapvar_map): Likewise.
11645         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
11646         heapvar_insert): Likewise.
11647         (make_heapvar_for): Rename to ...
11648         (make_heapvar): ... this.  Simplify.
11649         (fake_var_decl_obstack): New global var.
11650         (build_fake_var_decl): New function.
11651         (make_constraint_from_heapvar): Adjust.
11652         (handle_lhs_call): Likewise.
11653         (create_function_info_for): Likewise.
11654         (intra_create_variable_infos): Likewise.
11655         (init_alias_vars): Allocate fake_var_decl_obstack.
11656         (init_alias_heapvars, delete_alias_heapvars): Remove.
11657         (compute_points_to_sets): Do not call init_alias_heapvars.
11658         (ipa_pta_execute): Likewise.
11659         (delete_points_to_sets): Free fake_var_decl_obstack.
11660
11661 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11662
11663         * config/spu/divmovti4.c (union qword_UTItype): New data type.
11664         (si_from_UTItype, si_to_UTItype): New functions.
11665         (__udivmodti4): Use them to implement type-punning.
11666         * config/spu/multi3.c (union qword_TItype): New data type.
11667         (si_from_TItype, si_to_TItype): New functions.
11668         (__multi3): Use them to implement type-punning.
11669
11670 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11671
11672         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
11673
11674 2011-04-27  Jan Hubicka  <jh@suse.cz>
11675
11676         * ipa-prop.c (function_insertion_hook_holder): New holder.
11677         (ipa_add_new_function): New function.
11678         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
11679         Register/deregister holder.
11680
11681 2011-04-27  Richard Guenther  <rguenther@suse.de>
11682
11683         PR tree-optimization/48772
11684         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
11685
11686 2011-04-27  Richard Guenther  <rguenther@suse.de>
11687
11688         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
11689         TARGET_MEM_REF handling.
11690
11691 2011-04-27  Nick Clifton  <nickc@redhat.com>
11692
11693         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
11694         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
11695         (REG_CLASS_NAMES): Likewise.
11696         (REG_CLASS_CONTENTS): Likewise.
11697         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
11698         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
11699         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
11700         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
11701         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
11702         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
11703         duplicate register classes.
11704         (frv_class_likely_spilled_p): Likewise.
11705         (frv_register_move_cost): Likewise.
11706
11707         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
11708         end of the regno_reg_class array.
11709
11710 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
11711
11712         PR c/48742
11713         * c-typeck.c (build_binary_op): Don't wrap arguments if
11714         int_operands is true.
11715
11716 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
11717
11718         PR target/48767
11719         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
11720         targetm.calls.must_pass_in_stack for void type.
11721
11722 2011-04-26  Jan Hubicka  <jh@suse.cz>
11723
11724         * cgraphbuild.c (build_cgraph_edges): Update call
11725         of cgraph_create_edge and cgraph_create_indirect_edge.
11726         * cgraph.c (cgraph_create_edge_including_clones,
11727         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
11728         cgraph_update_edges_for_call_stmt_node): Do not take nest
11729         argument; do not initialize call_stmt_size/time.
11730         (dump_cgraph_node): Do not dump nest.
11731         (cgraph_clone_edge): Do not take loop_nest argument;
11732         do not propagate it; do not clone call_stmt_size/time.
11733         (cgraph_clone_node): Likewise.
11734         (cgraph_create_virtual_clone): Update.
11735         * cgraph.h (struct cgraph_edge): Remove
11736         call_stmt_size/call_stmt_time/loop_nest.
11737         (cgraph_create_edge, cgraph_create_indirect_edge,
11738         cgraph_create_edge_including_clones, cgraph_clone_node): Update
11739         prototype.
11740         * tree-emutls.c (gen_emutls_addr): Update.
11741         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
11742         loop_nest; handle indirect calls, too.
11743         (clone_inlined_nodes): Do not care about updating inline summaries.
11744         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
11745         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
11746         stream call_stmt_size/call_stmt_time/loop_nest.
11747         * ipa-inline.c (edge_badness): Update.
11748         (ipa_inline): dump summaries after inlining.
11749         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
11750         New.
11751         (inline_edge_summary): New function.
11752         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
11753         (inline_edge_removal_hook): Handle edge summaries.
11754         (inline_edge_duplication_hook): New hook.
11755         (inline_summary_alloc): Alloc hooks.
11756         (initialize_growth_caches): Do not register removal hooks.
11757         (free_growth_caches); Do not free removal hook.
11758         (dump_inline_edge_summary): New function.
11759         (dump_inline_summary): Use it.
11760         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
11761         (inline_update_callee_summaries): New function.
11762         (inline_merge_summary): Use it.
11763         (do_estimate_edge_time, do_estimate_edge_growth): Update.
11764         (read_inline_edge_summary): New function.
11765         (inline_read_section): Use it.
11766         (write_inline_edge_summary): New function.
11767         (inline_write_summary): Use it.
11768         (inline_free_summary): Free edge new holders.
11769         * tree-inline.c (copy_bb): Update.
11770
11771 2011-04-26  Jason Merrill  <jason@redhat.com>
11772
11773         * tree-eh.c (lower_try_finally_switch): Create the label along with
11774         the CASE_LABEL_EXPR.
11775
11776 2011-04-26  David S. Miller  <davem@davemloft.net>
11777             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11778
11779         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
11780         * configure: Regenerate.
11781
11782 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
11783
11784         PR target/48258
11785         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
11786         reduction.
11787         (VEC_reduc): New code iterator and splitters for vector reduction.
11788         (VEC_reduc_name): Ditto.
11789         (VEC_reduc_rtx): Ditto.
11790         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
11791         (reduc_<VEC_reduc_name>_v4sf): Ditto.
11792
11793         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
11794         support for extracting SF on VSX.
11795
11796         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
11797         generating xscvspdp.
11798         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
11799         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
11800         double add, minimum, maximum vector reduction.
11801         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
11802         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
11803         optimize double vector reduction.
11804         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
11805
11806 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
11807
11808         * config/fr30/fr30.h (inhibit_libc): Don't define.
11809         * config/m32r/m32r-protos.h: Correct comment.
11810         * config/v850/v850.h (GHS_default_section_names,
11811         GHS_current_section_names): Use tree, not union tree_node *.
11812
11813 2011-04-26  Xinliang David Li  <davidxl@google.com>
11814
11815         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
11816         * c-family/c-opts.c (c_common_handle_option): Set
11817         warn_maybe_uninitialized.
11818         * opts.c (common_handle_option): Ditto.
11819         * common.opt:  New option.
11820         * tree-ssa.c (warn_uninit): Add one more parameter.
11821         (warn_uninitialized_var): Pass warning code.
11822         * tree-flow.h: Interface change.
11823
11824 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11825
11826         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
11827         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
11828         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
11829
11830 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11831
11832         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
11833         * config/mips/mips.opt (mmips-tfile): Remove.
11834
11835         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
11836         mips-tdump reference to ...
11837         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
11838         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
11839         reference by Tru64 UNIX.
11840
11841 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
11842
11843         PR debug/48768
11844         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
11845         is error_mark_node, set value to NULL.
11846
11847         PR tree-optimization/48734
11848         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
11849         if return value from maybe_fold_*_comparsions isn't something
11850         the code is prepared to handle.
11851
11852 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
11853
11854         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
11855         mode check.
11856         (ext_QIreg_nomode_operands): Remove.
11857         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
11858         (*andsi_1): Ditto.
11859         (*andhi_1): Ditto.
11860
11861 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
11862
11863         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
11864
11865 2011-04-26  Richard Guenther  <rguenther@suse.de>
11866
11867         * c-typeck.c (build_unary_op): Do not expand array-refs via
11868         pointer arithmetic.  Only adjust qualifiers for function types.
11869
11870 2011-04-26  Richard Guenther  <rguenther@suse.de>
11871
11872         PR middle-end/48694
11873         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
11874         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
11875         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
11876         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
11877
11878 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
11879
11880         * doc/extend.texi: Document __underlying_type.
11881
11882 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
11883
11884         * config/rs6000/titan.md (automata_option "progress"): Remove.
11885
11886 2011-04-25  Jeff Law  <law@redhat.com>
11887
11888         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
11889
11890 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
11891
11892         * system.h (ENUM_BITFIELD): Remove.
11893
11894 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
11895             Eric Botcazou  <ebotcazou@adacore.com>
11896
11897         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
11898         for STORE_FLAG_VALUE==-1 case.
11899
11900 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
11901
11902         PR target/43804
11903         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
11904         LEGITIMATE_PIC_OPERAND_P.
11905
11906 2011-04-24  Jan Hubicka  <jh@suse.cz>
11907
11908         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
11909         WPA hack.
11910         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
11911         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
11912         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
11913         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
11914         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
11915         Sanity check predicate length.
11916         (remap_predicate): Likewise; sanity check jump functions.
11917         (inline_read_section, inline_write_summary): Sanity check
11918         predicate length.
11919
11920 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
11921
11922         PR other/48748
11923         * doc/extend.texi (Type Traits): Document __is_standard_layout,
11924         __is_literal_type, and __is_trivial; update throughout about
11925         possibly cv-qualified void types.
11926
11927 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
11928
11929         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
11930         testsuite and make it version agnostic.
11931
11932 2011-04-22  Jan Hubicka  <jh@suse.cz>
11933
11934         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
11935
11936 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
11937
11938         PR c/48685
11939         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
11940         to VOID_TYPE even around MODIFY_EXPR.
11941
11942 2011-04-22  Mike Stump  <mikestump@comcast.net>
11943
11944         * gensupport.c (read_md_rtx): Fix typo in comment.
11945         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
11946         comment.
11947
11948 2011-04-22  Jan Hubicka  <jh@suse.cz>
11949
11950         * gengtype.c (open_base_files): Add ipa-inline.h include.
11951         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
11952         ipa-prop.c; update all uses.
11953         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
11954         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
11955         merge summary of inlined function into former caller.
11956         * ipa-inline.c (max_benefit): Remove.
11957         (edge_badness): Compensate for removal of benefits.
11958         (update_caller_keys): Use
11959         reset_node_growth_cache/reset_edge_growth_cache.
11960         (update_callee_keys): Likewise.
11961         (update_all_callee_keys): Likewise.
11962         (inline_small_functions): Do not collect max_benefit; do not reset
11963         estimated_growth; call free_growth_caches and initialize_growth_caches.
11964         * ipa-inline.h (struct condition, type clause_t, struct predicate,
11965         struct size_time_entry): New structures.
11966         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
11967         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
11968         and estimated_growth.
11969         (edge_growth_cache_entry): New structure.
11970         (node_growth_cache, edge_growth_cache): New global vars.
11971         (estimate_growth): Turn into inline.
11972         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
11973         initialize_growth_caches, free_growth_caches): Declare.
11974         (estimate_edge_growth): Rewrite.
11975         (estimate_edge_time): Implement as inline cache lookup.
11976         (reset_node_growth_cache, reset_edge_growth_cache): New inline
11977         functions.
11978         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
11979         (NUM_CONDITIONS): New constant.
11980         (predicate_conditions): New enum.
11981         (IS_NOT_CONSTANT): New constant.
11982         (edge_removal_hook_holder): New var.
11983         (node_growth_cache, edge_growth_cache): New global vars.
11984         (true_predicate, single_cond_predicate, false_predicate,
11985         not_inlined_predicate, add_condition, add_clause, and_predicates,
11986         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
11987         dump_clause, dump_predicate, account_size_time,
11988         evaulate_conditions_for_edge): New functions.
11989         (inline_summary_alloc): Move to heap.
11990         (inline_node_removal_hook): Clear condition and entry vectors.
11991         (inline_edge_removal_hook): New function.
11992         (initialize_growth_caches, free_growth_caches): New function.
11993         (dump_inline_summary): Update.
11994         (edge_execution_predicate): New function.
11995         (will_be_nonconstant_predicate): New function.
11996         (estimate_function_body_sizes): Compute BB and constantness predicates.
11997         (compute_inline_parameters): Do not clear estimated_growth.
11998         (estimate_edge_size_and_time): New function.
11999         (estimate_calls_size_and_time): New function.
12000         (estimate_callee_size_and_time): New function.
12001         (remap_predicate): New function.
12002         (inline_merge_summary): New function.
12003         (do_estimate_edge_time): New function based on...
12004         (estimate_edge_time): ... this one.
12005         (do_estimate_edge_growth): New function.
12006         (do_estimate_growth): New function based on....
12007         (estimate_growth): ... this one.
12008         (inline_analyze_function): Analyze after deciding on jump functions.
12009         (inline_read_section): New function.
12010         (inline_read_summary): Use it.
12011         (inline_write_summary): Write all the new data.
12012         * ipa-prop.c (ipa_get_param_decl_index): Export.
12013         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
12014         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
12015         Declare.
12016         (ipa_get_lattice): Move here from ipa-cp.c
12017         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
12018         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
12019         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
12020         cgraph_edge_inlinable_p): Remove.
12021         * cgraphunit.c: Include ipainline.h
12022         (cgraph_process_new_functions): Update call of
12023         compute_inline_parameters.
12024
12025 2011-04-22  Richard Guenther  <rguenther@suse.de>
12026
12027         * tree.c (build_int_cst): Properly create canonicalized integer
12028         constants.
12029         (build_int_cst_type): Remove scary comments.
12030
12031 2011-04-22  Xinliang David Li  <davidxl@google.com>
12032
12033         * toplev.c (process_options): Enable -Werror=coverage-mismatch
12034         by default when -Wno-error is not specified.
12035         * opts-global.c (decode_options): Remove call to
12036         control_warning_options.
12037
12038 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
12039
12040         PR tree-optimization/48717
12041         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
12042         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
12043
12044 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
12045
12046         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
12047         definition where used.
12048
12049 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
12050
12051         PR c/48716
12052         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
12053         TREE_STATIC variables declared inside of some OpenMP construct.
12054
12055 2011-04-22  Martin Jambor  <mjambor@suse.cz>
12056
12057         PR middle-end/48585
12058         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
12059
12060 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
12061
12062         PR c/36750
12063         * c-typeck.c (pop_init_level): Do not warn about initializing
12064         with ` = {0}'.
12065
12066 2011-04-22  Alan Modra  <amodra@gmail.com>
12067
12068         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
12069         when returning call_cookie.
12070         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
12071         pointers, to functions with no more vector args than the current
12072         function, and some non-local calls for ABI_V4.
12073         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
12074         sibcall_nonlocal_aix64): Combine to ..
12075         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
12076         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
12077         (sibcall_value_nonlocal_aix<mode>): ..likewise.
12078         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
12079         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
12080         operand.
12081         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
12082         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
12083         sibcall_value_symbolic_64): Delete.
12084
12085 2011-04-21  Xinliang David Li  <davidxl@google.com>
12086
12087         * cgraph.h: Remove pid.
12088         * cgraph.c: Remove pid.
12089         * value-prof.c (init_node_map): New function.
12090         (del_node_map): New function.
12091         (find_func_by_funcdef_no): New function.
12092         (gimple_ic_transform): Call new function.
12093         * cgraphunit.c (cgraph_finalize_function): Remove pid.
12094         * function.c (get_last_funcdef_no): New function.
12095         * function.h (get_last_funcdef_no): New function.
12096         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
12097         to libgcov function.
12098         (tree-profiling): Call node map init and delete function.
12099
12100 2011-04-21  Ian Lance Taylor  <iant@google.com>
12101
12102         * godump.c (go_format_type): Use exported Go name for anonymous
12103         field name.
12104
12105 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12106
12107         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
12108         Call builtin_function_type_list instead of builtin_function_type.
12109         (UNARY, BINARY, TRINARY, QUAD): Likewise.
12110
12111 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12112
12113         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
12114         build_function_type_list instead of build_function_type.
12115         Delete variable `endlink'.
12116
12117 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12118
12119         * config/s390/s390.c (s390_init_builtins): Call
12120         build_function_type_list instead of build_function_type.
12121
12122 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12123
12124         * config/ia64/ia64.c (ia64_init_builtins): Call
12125         build_function_type_list instead of builtin_function_type.
12126
12127 2011-04-21  Easwaran Raman  <eraman@google.com>
12128
12129         * cfgexpand.c (stack_var): Remove OFFSET...
12130         (add_stack_var): ...and its reference here...
12131         (expand_stack_vars): ...and here.
12132         (stack_var_cmp): Sort by descending order of size.
12133         (partition_stack_vars): Change heuristic.
12134         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
12135         (dump_stack_var_partition): Add newline after each partition.
12136
12137 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
12138             Jeff Law  <law@redhat.com>
12139
12140         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
12141         * gengtype.c (matching_file_name_substitute): Likewise.
12142
12143 2011-04-21  Richard Guenther  <rguenther@suse.de>
12144
12145         PR lto/48703
12146         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
12147
12148 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
12149
12150         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
12151
12152 2011-04-21  Richard Guenther  <rguenther@suse.de>
12153
12154         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
12155         file name.
12156
12157 2011-04-21  Richard Guenther  <rguenther@suse.de>
12158
12159         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
12160         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
12161         Use DECL_P, not SSA_VAR_P.
12162         (ptr_derefs_may_alias_p): Likewise.
12163         (ptr_deref_may_alias_ref_p_1): Likewise.
12164         (decl_refs_may_alias_p): Likewise.
12165         (refs_may_alias_p_1): Likewise.
12166         (ref_maybe_used_by_call_p_1): Likewise.
12167         (call_may_clobber_ref_p_1): Likewise.
12168         (indirect_ref_may_alias_decl_p): Assume indirect refrences
12169         are either MEM_REF or TARGET_MEM_REF.
12170         (indirect_refs_may_alias_p): Likewise.
12171         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
12172         for MEM_EXPR of indirect calls.
12173
12174 2011-04-21  Tristan Gingold  <gingold@adacore.com>
12175
12176         * vmsdbgout.c (write_srccorr): Compute file length from the string.
12177         (dst_file_info_struct): Remove flen field.
12178         (lookup_filename): Remove code that set flen field.
12179
12180 2011-04-21  Tristan Gingold  <gingold@adacore.com>
12181
12182         * config/ia64/ia64.c (ia64_start_function): Add a guard.
12183
12184 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
12185
12186         PR target/48708
12187         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
12188         vec_extract and vec_concat for non-SSE4_1 targets.
12189
12190 2011-04-21  Richard Guenther  <rguenther@suse.de>
12191
12192         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
12193         return statements.
12194
12195 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
12196
12197         * config/i386/cygming.h (union tree_node, TREE): Don't define or
12198         undefine.
12199         (FILE): Don't undefine.
12200
12201 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
12202
12203         * config/alpha/alpha.c (struct machine_function): Use rtx, not
12204         struct rtx_def *.
12205         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
12206         struct rtx_def *.
12207         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
12208         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
12209         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
12210         rtx_def *.
12211         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
12212         definitions where used.
12213         * config/microblaze/microblaze.h (struct microblaze_args): Use
12214         rtx, not struct rtx_def *.
12215         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
12216         rtx_def *.
12217         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
12218         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
12219         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
12220         not struct rtx_def *.
12221         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
12222         struct rtx_def *.
12223         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
12224         rtx_def *.
12225         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
12226
12227 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
12228
12229         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
12230         operand_equal_p to compare DR_BASE_ADDRESSes.
12231         (vect_check_interleaving): Likewise.
12232
12233 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
12234
12235         PR target/46329
12236         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
12237         for all Neon struct constants.
12238
12239 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
12240
12241         * target.def (legitimate_constant_p): New hook.
12242         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
12243         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
12244         * doc/tm.texi: Regenerate.
12245         * hooks.h (hook_bool_mode_rtx_true): Declare.
12246         * hooks.c (hook_bool_mode_rtx_true): Define.
12247         * system.h (LEGITIMATE_CONSTANT_P): Poison.
12248         * calls.c (precompute_register_parameters): Replace uses of
12249         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
12250         (emit_library_call_value_1): Likewise.
12251         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
12252         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
12253         * ira-costs.c (scan_one_insn): Likewise.
12254         * recog.c (general_operand, immediate_operand): Likewise.
12255         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
12256         * reload1.c (init_eliminable_invariants): Likewise.
12257
12258         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
12259         mode argument.
12260         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
12261         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
12262         argument.
12263         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12264         * config/alpha/predicates.md (input_operand): Update call to
12265         alpha_legitimate_constant_p.
12266
12267         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
12268         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
12269         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
12270         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12271         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
12272         (arm_legitimate_constant_p): New functions.
12273         (arm_cannot_force_const_mem): Make static.
12274
12275         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
12276
12277         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
12278         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
12279         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
12280         instead of bfin_legitimate_constant_p.
12281         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
12282         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12283
12284         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
12285
12286         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
12287
12288         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
12289         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
12290         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12291         (frv_legitimate_constant_p): Make static.  Add a mode argument.
12292
12293         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
12294         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
12295         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
12296
12297         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
12298         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
12299         * config/i386/i386.c (legitimate_constant_p): Rename to...
12300         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
12301         argument.
12302         (ix86_cannot_force_const_mem): Update accordingly.
12303         (ix86_legitimate_address_p): Likewise.
12304         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12305         * config/i386/i386.md: Update commentary.
12306
12307         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
12308         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
12309         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12310         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
12311
12312         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
12313
12314         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
12315         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
12316         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12317         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
12318
12319         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
12320         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
12321         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
12322
12323         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
12324         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12325         (m32r_legitimate_constant_p): New function.
12326
12327         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
12328         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
12329         LEGITIMATE_CONSTANT_P.
12330         (LEGITIMATE_CONSTANT_P): Delete.
12331         * config/m68k/m68k.c (m68k_expand_prologue): Call
12332         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
12333         (m68k_legitimate_constant_p): New function.
12334         * config/m68k/m68k.md: Update comments.
12335
12336         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
12337         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12338         (mcore_legitimate_constant_p): New function.
12339
12340         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
12341         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
12342         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
12343         Add a mode argument.
12344         (mep_legitimate_address): Update accordingly.
12345         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12346
12347         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
12348         Delete.
12349         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
12350         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
12351         static.  Check OP's mode for VOIDmode.
12352         (microblaze_legitimate_constant_p): New function.
12353         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12354
12355         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
12356         * config/mips/mips.c (mips_legitimate_constant_p): New function.
12357         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
12358         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12359         * config/mips/predicates.md: Update comments.
12360
12361         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
12362         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
12363         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12364         (mmix_legitimate_constant_p): Make static, return a bool, and take
12365         a mode argument.
12366         (mmix_print_operand_address): Update accordingly.
12367
12368         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
12369         Delete.
12370         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
12371         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
12372         static.  Add a mode argument.
12373         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12374
12375         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
12376
12377         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
12378         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12379         (pa_legitimate_constant_p): New function.
12380
12381         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
12382
12383         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
12384         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12385         (pdp11_legitimate_constant_p): New function.
12386
12387         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
12388         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12389         (rs6000_legitimate_constant_p): New function.
12390
12391         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
12392         (rx_legitimate_constant_p): ...this.
12393         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
12394         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
12395         (rx_legitimate_constant_p): ...this.
12396         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12397         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
12398
12399         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
12400         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
12401         * config/s390/s390.c (legitimate_constant_p): Rename to...
12402         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
12403         and add a mode argument.
12404         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12405
12406         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
12407
12408         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
12409         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12410         (sh_legitimate_constant_p): New function.
12411
12412         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
12413         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
12414         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12415         (legitimate_constant_p): Rename to...
12416         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
12417         argument.
12418         (constant_address_p): Update accordingly.
12419
12420         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
12421         argument and return a bool.
12422         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
12423         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12424         (spu_legitimate_constant_p): Add a mode argument and return a bool.
12425         (spu_rtx_costs): Update accordingly.
12426         * config/spu/predicates.md (vec_imm_operand): Likewise.
12427
12428         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
12429
12430         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
12431         * config/v850/v850.c (v850_legitimate_constant_p): New function.
12432         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12433
12434         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
12435         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
12436         * config/vax/vax.c (legitimate_constant_p): Likewise.
12437
12438         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
12439         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12440         (xtensa_legitimate_constant_p): New function.
12441
12442 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
12443
12444         * target.def (cannot_force_const_mem): Add a mode argument.
12445         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
12446         * doc/tm.texi: Regenerate.
12447         * hooks.h (hook_bool_mode_rtx_false): Declare.
12448         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
12449         (hook_bool_mode_const_rtx_true): Likewise.
12450         (hook_bool_mode_rtx_false): New function.
12451         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
12452         to be non-VOID.  Update call to cannot_force_const_mem.
12453         (find_reloads): Update accordingly.
12454         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
12455         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
12456         argument.
12457         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
12458         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
12459         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
12460         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
12461         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
12462         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
12463         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
12464         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12465         (m68k_cannot_force_const_mem): ...this new function.
12466         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
12467         argument.
12468         (mips_const_insns, mips_legitimize_const_move): Update calls.
12469         (mips_secondary_reload_class): Likewise.
12470         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12471         (pa_cannot_force_const_mem): ...this new function.
12472         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
12473         (rs6000_cannot_force_const_mem): ...this new function.
12474         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
12475         argument.
12476         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
12477         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
12478         to...
12479         (xtensa_cannot_force_const_mem): ...this new function.
12480
12481 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
12482
12483         * config/mips/mips.c (mips16_build_function_stub): Call
12484         build_function_type_list instead of build_function_type.
12485         (mips16_build_call_stub): Likewise.
12486
12487 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
12488
12489         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
12490         instead of build_function_type.
12491
12492 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
12493
12494         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
12495         instead of build_function_type.
12496
12497 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
12498
12499         PR target/48678
12500         * config/i386/i386.md (insv): Change operand 0 constraint to
12501         "register_operand".  Change operand 1 and 2 constraint to
12502         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
12503         * config/i386/sse.md (sse4_1_pinsrb): Export.
12504         (sse2_pinsrw): Ditto.
12505         (sse4_1_pinsrd): Ditto.
12506         (sse4_1_pinsrq): Ditto.
12507         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
12508         * config/i386/i386.c (ix86_expand_pinsr): New.
12509
12510 2011-04-20  Easwaran Raman  <eraman@google.com>
12511
12512         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
12513         containing union type only with -fstrict-aliasing.
12514
12515 2011-04-20  Jim Meyering  <meyering@redhat.com>
12516
12517         Remove useless if-before-free tests.
12518         * calls.c (expand_call, save_area): Likewise.
12519         * cfgcleanup.c (try_forward_edges): Likewise.
12520         * collect2.c (collect_execute): Likewise.
12521         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
12522         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
12523         * coverage.c (coverage_checksum_string): Likewise.
12524         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
12525         * cselib.c (cselib_init): Likewise.
12526         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
12527         (df_set_clean_cfg): Likewise.
12528         * function.c (free_after_compilation): Likewise.
12529         * gcc.c (do_spec_1, main): Likewise.
12530         * gcov.c (create_file_names): Likewise.
12531         * gensupport.c (identify_predicable_attribute): Likewise.
12532         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
12533         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
12534         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
12535         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
12536         * ipa-pure-const.c (local_pure_const): Likewise.
12537         * ipa-reference.c (propagate): Likewise.
12538         * ira-costs.c (free_ira_costs): Likewise.
12539         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
12540         * matrix-reorg.c (mat_free): Likewise.
12541         * prefix.c (get_key_value): Likewise.
12542         * profile.c (compute_value_histograms): Likewise.
12543         * reload1.c (free_reg_equiv): Likewise.
12544         * sched-deps.c (free_deps): Likewise.
12545         * sel-sched-ir.c (fence_clear): Likewise.
12546         * sese.c (set_rename, if_region_set_false_region): Likewise.
12547         * tree-data-ref.c (free_rdg): Likewise.
12548         * tree-eh.c (lower_try_finally): Likewise.
12549         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
12550         * tree-ssa-live.c (delete_var_map): Likewise.
12551         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
12552         * tree-ssa-pre.c (phi_trans_add): Likewise.
12553
12554 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
12555
12556         PR tree-optimization/48611
12557         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
12558         beyond ERT_MUST_NOT_THROW region.
12559
12560 2011-04-20  Catherine Moore  <clm@codesourcery.com>
12561
12562         * config/mips/mips.opt (mfix-24k): New.
12563         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
12564         * config/mips/mips.md (length): Increase by 4 for stores if
12565         fixing 24K errata.
12566         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
12567         all noreorder if fixing 24K errata.
12568         * doc/invoke.texi: Document mfix-24k.
12569
12570 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
12571
12572         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
12573         quad-word modes, reduce to 9-bit index range when above 1016 limit.
12574
12575 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
12576
12577         * config/arm/arm.c (arm_gen_constant): Move movw support ....
12578         (const_ok_for_op): ... to here.
12579
12580 2011-04-20  Kai Tietz  <ktietz@redhat.com>
12581
12582         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
12583         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
12584
12585 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
12586
12587         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
12588
12589 2011-04-20  Richard Guenther  <rguenther@suse.de>
12590
12591         PR tree-optimization/47892
12592         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
12593         are if-convertible.
12594
12595 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
12596
12597         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
12598
12599 2011-04-20  Tristan Gingold  <gingold@adacore.com>
12600
12601         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
12602
12603 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
12604
12605         PR target/18145
12606
12607         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
12608         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
12609         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
12610         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
12611         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
12612
12613         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
12614         New prototype.
12615
12616         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
12617         (avr_asm_named_section, avr_asm_output_aligned_common,
12618         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
12619         New functions to update...
12620         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
12621         (avr_asm_init_sections): Overwrite section callbacks for
12622         data_section, bss_section.
12623         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
12624         from here to...
12625         (avr_file_end): ...here.
12626
12627 2011-04-20  Richard Guenther  <rguenther@suse.de>
12628
12629         PR middle-end/48695
12630         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
12631         objects and types here.  Adjust for their offset before comparing.
12632
12633 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
12634
12635         * tree-vect-stmts.c (vectorizable_store): Only chain one related
12636         statement per copy.
12637
12638 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
12639
12640         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
12641         (GIMPLE_H): Include $(INTERNAL_FN_H).
12642         (OBJS-common): Add internal-fn.o.
12643         (internal-fn.o): New rule.
12644         * internal-fn.def: New file.
12645         * internal-fn.h: Likewise.
12646         * internal-fn.c: Likewise.
12647         * gimple.h: Include internal-fn.h.
12648         (GF_CALL_INTERNAL): New gf_mask.
12649         (gimple_statement_call): Put fntype into a union with a new
12650         internal_fn field.
12651         (gimple_build_call_internal): Declare.
12652         (gimple_build_call_internal_vec): Likewise.
12653         (gimple_call_same_target_p): Likewise.
12654         (gimple_call_internal_p): New function.
12655         (gimple_call_internal_fn): Likewise.
12656         (gimple_call_fntype): Return null for internal calls.
12657         (gimple_call_set_fntype): Assert that the function is not internal.
12658         (gimple_call_set_fn): Likewise.
12659         (gimple_call_set_fndecl): Likewise.
12660         (gimple_call_set_internal_fn): New function.
12661         (gimple_call_addr_fndecl): Handle null functions.
12662         (gimple_call_return_type): Likewise null types.
12663         * gimple.c (gimple_build_call_internal_1): New function.
12664         (gimple_build_call_internal): Likewise.
12665         (gimple_build_call_internal_vec): Likewise.
12666         (gimple_call_same_target_p): Likewise.
12667         (gimple_call_flags): Handle calls to internal functions.
12668         (gimple_call_fnspec): New function.
12669         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
12670         (gimple_has_side_effects): Handle null functions.
12671         (gimple_rhs_has_side_effects): Likewise.
12672         (gimple_call_copy_skip_args): Handle calls to internal functions.
12673         * cfgexpand.c (expand_call_stmt): Likewise.
12674         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
12675         * gimple-fold.c (gimple_fold_call): Handle null functions.
12676         (gimple_fold_stmt_to_constant_1): Don't fold
12677         calls to internal functions.
12678         * gimple-low.c (gimple_check_call_args): Handle calls to internal
12679         functions.
12680         * gimple-pretty-print.c (dump_gimple_call): Likewise.
12681         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
12682         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
12683         (do_warn_unused_result): Likewise.
12684         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
12685         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
12686         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
12687         the target of a call.
12688         (initialize_hash_element): Update accordingly.
12689         (hashable_expr_equal_p): Use gimple_call_same_target_p.
12690         (iterative_hash_hashable_expr): Handle calls to internal functions.
12691         (print_expr_hash_elt): Likewise.
12692         * tree-ssa-pre.c (can_value_number_call): Likewise.
12693         (eliminate): Handle null functions.
12694         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
12695         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
12696         (find_func_aliases): Likewise.
12697         * value-prof.c (gimple_ic_transform): Likewise.
12698         (gimple_indirect_call_to_profile): Likewise.
12699         * lto-streamer-in.c (input_gimple_stmt): Likewise.
12700         * lto-streamer-out.c (output_gimple_stmt): Likewise.
12701
12702 2011-04-19  Jan Hubicka  <jh@suse.cz>
12703
12704         * ipa-inline-transform.c (save_inline_function_body): Add comments.
12705         * ipa-inline.c (inline_small_functions): Compute summaries first,
12706         populate heap later.
12707
12708 2011-04-19  Jan Hubicka  <jh@suse.cz>
12709
12710         * cgraph.h (save_inline_function_body): Remove.
12711         * ipa-inline-transform.c: New file, broke out of...
12712         * ipa-inline.c: ... this one; Update toplevel comment.
12713         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
12714         make global.
12715         (update_noncloned_frequencies): Move to ipa-inline-transform.c
12716         (cgraph_mark_inline_edge): Rename to inline_call; move to
12717         ipa-inline-transform.c.
12718         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
12719         move to ipa-inline-transform.c
12720         (recursive_inlining, inline_small_functions, flatten_function,
12721         ipa_inline, inline_always_inline_functions,
12722         early_inline_small_functions): Update.
12723         (inline_transform): Move to ipa-inline-transform.c.
12724         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
12725         Declare.
12726         * Makefile.in (ipa-inline-transform.o): New file.
12727         * cgraphunit.c (save_inline_function_body): Move to
12728         ipa-inline-transform.c
12729
12730 2011-04-19  DJ Delorie  <dj@redhat.com>
12731
12732         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
12733         registers if we already know there aren't any.
12734         (m32c_emit_epilogue): Don't emit a barrier here.
12735         (m32c_emit_eh_epilogue): Likewise.
12736         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
12737         operands at expand time.
12738         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
12739         int" wchar type.
12740         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
12741         duplicates.  Provide aliases instead.
12742         * config/m32c/prologue.md (eh_return): Emit a barrier here.
12743         (eh_epilogue): Add a "(return)" here as a hint to other parts of
12744         the compiler.
12745
12746 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
12747
12748         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
12749         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
12750         (general_or_i64_p, sparc_register_move_cost): New function.
12751
12752 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12753
12754         * doc/install.texi (Configuration, --enable-threads): Remove mach.
12755         Add lynx, mipssde.  Sort table.
12756
12757 2011-04-19  Xinliang David Li  <davidxl@google.com>
12758
12759         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
12760         not negative.
12761
12762 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
12763
12764         PR target/48678
12765         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
12766         is a SUBREG with non-MODE_INT mode inside of it.
12767
12768 2011-04-19  Martin Jambor  <mjambor@suse.cz>
12769
12770         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
12771         also according to actual contants.
12772         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
12773         (gimple_fold_call): Use it.
12774         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
12775
12776 2011-04-19  Martin Jambor  <mjambor@suse.cz>
12777
12778         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
12779         non-pointer assignments.
12780
12781 2011-04-19  Martin Jambor  <mjambor@suse.cz>
12782
12783         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
12784         account anc_offset and otr_type from the indirect edge info.
12785         * ipa-prop.c (get_ancestor_addr_info): New function.
12786         (compute_complex_ancestor_jump_func): Assignment analysis moved to
12787         get_ancestor_addr_info, call it.
12788         (ipa_note_param_call): Do not initialize information about polymorphic
12789         calls, return the indirect call graph edge.  Remove the last
12790         parameter, adjust all callers.
12791         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
12792         parameters.  Initialize polymorphic information in the indirect edge.
12793
12794 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
12795
12796         PR lto/48148
12797         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
12798         the types if they have different enumeration identifiers.
12799
12800 2011-04-19  Jan Hubicka  <jh@suse.cz>
12801
12802         * cgraph.h (cgraph_optimize_for_size_p): Declare.
12803         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
12804         * predict.c (cgraph_optimize_for_size_p): Break out from ...
12805         (optimize_function_for_size_p) ... here.
12806
12807 2011-04-19  Richard Guenther  <rguenther@suse.de>
12808
12809         PR lto/48207
12810         * tree.c (free_lang_data): Do not reset the decl-assembler-name
12811         langhook.
12812
12813 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
12814
12815         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
12816         if DECL_NO_INLINE_WARNING_P is set on the function.
12817
12818 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
12819
12820         PR fortran/47976
12821         * reload1.c (inc_for_reload): Return void. All callers changed.
12822         (emit_input_reload_insns): Don't try to delete previous output
12823         reloads to a register, or record spill_reg_store for autoincs.
12824
12825 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
12826
12827         * gengtype.h: Updated copyright year.
12828         (struct input_file_st): Add inpisplugin field.
12829         (type_fileloc): New function.
12830         * gengtype.c
12831         (write_typed_struct_alloc_def): Add gcc_assert.
12832         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
12833         (write_typed_alloc_defns): Don't output for plugin files.
12834         (input_file_by_name): Clear inpisplugin field.
12835         (main): Set inpisplugin field for plugin files.
12836
12837 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
12838
12839         * gengtype-state.c (string_eq): New.
12840         (read_state): Use string_eq instead of strcmp when creating the
12841         state_ident_tab.
12842
12843 2011-04-19  Wei Guozhi  <carrot@google.com>
12844
12845         PR target/47855
12846         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
12847         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
12848         linkage.
12849         * config/arm/constraints.md (Uu): New constraint.
12850         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
12851
12852 2011-04-19  Tristan Gingold  <gingold@adacore.com>
12853
12854         * config.gcc (-*-*-*vms): Added.
12855         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
12856         definitions moved.
12857         * config/vms/vms-ld.c: New file.
12858         * config/vms/vms-ar.c: New file.
12859         * config/vms/t-vmsnative: New file.
12860
12861 2011-04-18  Xinliang David Li  <davidxl@google.com>
12862
12863         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
12864
12865 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
12866
12867         PR middle-end/48661
12868         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
12869         if TREE_TYPE (v) is non-NULL.
12870
12871         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
12872         gimple_get_virt_mehtod_for_binfo.
12873         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
12874         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
12875         callers.
12876         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12877
12878 2011-04-18  Michael Matz  <matz@suse.de>
12879             Steve Ellcey  <sje@cup.hp.com>
12880
12881         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
12882         use its mode as source mode if it isn't VOIDmode.
12883
12884 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
12885
12886         * doc/passes.texi: Fill crossref nodes.
12887
12888 2011-04-18  Jim Meyering  <meyering@redhat.com>
12889
12890         Fix doubled-word typos in comments and strings
12891         * config/alpha/vms-unwind.h: s/for for/for/
12892         * config/arm/unwind-arm.h: Likewise.
12893         * config/microblaze/microblaze.c: Likewise.
12894         * config/sh/constraints.md: s/in in/in/
12895         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
12896
12897 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
12898
12899         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
12900         (AVX_FLOAT_MODE_P): Ditto.
12901         (AVX128_VEC_FLOAT_MODE_P): Ditto.
12902         (AVX256_VEC_FLOAT_MODE_P): Ditto.
12903         (AVX_VEC_FLOAT_MODE_P): Ditto.
12904         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
12905         (UNSPEC_MASKSTORE): Ditto.
12906         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
12907         Merge from <sse>_movmsk<ssemodesuffix> and
12908         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
12909         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
12910         iterator.
12911         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
12912         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
12913         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
12914
12915 2011-04-18  Jan Hubicka  <jh@suse.cz>
12916
12917         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
12918
12919         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
12920         (want_inline_function_called_once_p): Break out the logic from
12921         ipa_inline.
12922         (edge_badness): Ensure that profile is not misupdated.
12923         (lookup_recursive_calls): Prioritize by call frequencies.
12924         (inline_small_functions): Move program size estimates here;
12925         actually process whole queue even when unit growth has been
12926         met. (to properly compute inline_failed reasons and for the
12927         case unit size decrease.) Revisit comments on recursive inlining.
12928         (ipa_inline): Remove unit summary code; first inline hot calls
12929         of functions called once, cold calls next.
12930         (order, nnodes): Remove unused variables.
12931         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
12932         (GTFILES): Remove ipa-inline.c
12933         * sel-sched.c (fill_insns): Silence uninitialized var warning.
12934
12935 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
12936
12937         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
12938
12939 2011-04-18  Jie Zhang  <jie@codesourcery.com>
12940             Richard Earnshaw  <rearnsha@arm.com>
12941
12942         * arm.c (neon_builtin_type_bits): Remove.
12943         (typedef enum neon_builtin_mode): New.
12944         (T_MAX): Don't define.
12945         (typedef enum neon_builtin_datum): Remove bits, codes[],
12946         num_vars and base_fcode.  Add mode, code and fcode.
12947         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
12948         VAR10): Change accordingly.
12949         (neon_builtin_data[]): Change accordingly
12950         (arm_init_neon_builtins): Change accordingly.
12951         (neon_builtin_compare): Remove.
12952         (locate_neon_builtin_icode): Remove.
12953         (arm_expand_neon_builtin): Change accordingly.
12954
12955         * arm.h (enum arm_builtins): Move to ...
12956         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
12957
12958         * arm.c (arm_builtin_decl): Declare.
12959         (TARGET_BUILTIN_DECL): Define.
12960         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
12961         (arm_builtin_decls[]): New.
12962         (arm_init_neon_builtins): Store builtin declarations in
12963         arm_builtin_decls[].
12964         (arm_init_tls_builtins): Likewise.
12965         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
12966         (arm_builtin_decl): New.
12967
12968 2011-04-18  Richard Guenther  <rguenther@suse.de>
12969
12970         * tree.c (upper_bound_in_type): Build properly canonicalized
12971         INTEGER_CSTs.
12972         (lower_bound_in_type): Likewise.
12973
12974 2011-04-18  Richard Guenther  <rguenther@suse.de>
12975
12976         * gimple.h (gimple_call_addr_fndecl): New function.
12977         (gimple_call_fndecl): Use it.
12978         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
12979         for direct calls.
12980         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
12981         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
12982
12983 2011-04-18  Richard Guenther  <rguenther@suse.de>
12984
12985         PR middle-end/48650
12986         * tree.c (build_string): STRING_CST is now derived from tree_typed.
12987
12988 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
12989
12990         PR lto/48492
12991         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
12992         DECL_IN_CONSTANT_POOL without RTL.
12993
12994 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
12995             Ira Rosen  <ira.rosen@linaro.org>
12996
12997         PR target/48252
12998         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
12999         to match neon_vzip/vuzp/vtrn_internal.
13000         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
13001         outputs explicitly dependent on both inputs.
13002         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
13003
13004 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
13005
13006         PR tree-optimization/48616
13007         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
13008         whether the shift is by scalar or vector based on whether all SLP
13009         scalar stmts have the same rhs.
13010
13011 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
13012
13013         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
13014         memory operands.
13015
13016 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
13017
13018         PR target/43700
13019         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
13020         registers.
13021
13022 2011-04-17  Jan Hubicka  <jh@suse.cz>
13023
13024         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
13025         * cgrpahunit.c (cgraph_finalize_function): Do not set
13026         finalized_by_frontend.
13027         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13028         finalized_by_frontend.
13029
13030 2011-04-17  Jan Hubicka  <jh@suse.cz>
13031
13032         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
13033         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
13034         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
13035         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
13036         method.
13037         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
13038         gimple-fold.c
13039         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
13040
13041 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
13042
13043         PR lto/48538
13044         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
13045         is non-null before accessing it.
13046         (input_cgraph): Remove trailing spaces.
13047
13048 2011-04-17  Revital Eres  <revital.eres@linaro.org>
13049
13050         * params.def (sms-min-sc): New param flag.
13051         * modulo-sched.c (sms_schedule): Use it.
13052         * doc/invoke.texi (sms-min-sc): Document it.
13053
13054 2011-04-17  Jan Hubicka  <jh@suse.cz>
13055
13056         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
13057         present, also set gimple_call_set_cannot_inline.
13058         * ipa-inline.c: Update toplevel comment.
13059         (MAX_TIME): Remove.
13060         (cgraph_clone_inlined_nodes): Fix linebreaks.
13061         (cgraph_check_inline_limits): Restructure to ...
13062         (caller_growth_limits): ... this one; be more tolerant
13063         on growth in nested inline chains; add explanatory comment;
13064         fix stack accounting thinko introduced by previous patch.
13065         (cgraph_default_inline_p): Remove.
13066         (report_inline_failed_reason): New function.
13067         (can_inline_edge_p): New function.
13068         (can_early_inline_edge_p): New function.
13069         (leaf_node_p): Move upwards in file.
13070         (want_early_inline_function_p): New function.
13071         (want_inline_small_function_p): New function.
13072         (want_inline_self_recursive_call_p): New function.
13073         (cgraph_edge_badness): Rename to ...
13074         (edge_badness) ... this one; fix linebreaks.
13075         (update_edge_key): Update call of edge_baddness; add
13076         detailed dump about queue updates.
13077         (update_caller_keys): Use can_inline_edge_p and
13078         want_inline_small_function_p.
13079         (cgraph_decide_recursive_inlining): Rename to...
13080         (recursive_inlining): Use can_inline_edge_p and
13081         want_inline_self_recursive_call_p; simplify and remove no longer
13082         valid FIXME.
13083         (cgraph_set_inline_failed): Remove.
13084         (add_new_edges_to_heap): Use can_inline_edge_p and
13085         want_inline_small_function_p.
13086         (cgraph_decide_inlining_of_small_functions): Rename to ...
13087         (inline_small_functions): ... this one; cleanup; use
13088         can/want predicates; cleanup debug ouput; work edges till fibheap
13089         is exhausted and do not stop once unit growth is reached; remove
13090         later loop processing remaining edges.
13091         (cgraph_flatten): Rename to ...
13092         (flatten_function): ... this one; use can_inline_edge_p
13093         and can_early_inline_edge_p predicates.
13094         (cgraph_decide_inlining): Rename to ...
13095         (ipa_inline): ... this one; remove unreachable nodes before
13096         inlining functions called once; simplify the pass.
13097         (cgraph_perform_always_inlining): Rename to ...
13098         (inline_always_inline_functions): ... this one; use
13099         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
13100         (cgraph_decide_inlining_incrementally): Rename to ...
13101         (early_inline_small_functions): ... this one; simplify
13102         using new predicates; cleanup; make dumps prettier.
13103         (cgraph_early_inlining): Rename to ...
13104         (early_inliner): newer inline regular functions into always-inlines;
13105         fix updating of call stmt summaries.
13106         (pass_early_inline): Update for new names.
13107         (inline_transform): Fix formating.
13108         (gate_cgraph_decide_inlining): Rename to ...
13109         (pass_ipa_inline): ... this one.
13110         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
13111         * ipa-inline-analysis.c (dump_inline_summary): Update.
13112         (compute_inline_parameters): Do not compute disregard_inline_limits;
13113         look for mismatching arguments.
13114         (estimate_growth): Fix handlig of non-trivial self recursion.
13115         (inline_read_summary): Do not read info->disregard_inline_limits.
13116         (inline_write_summary): Do not write info->disregard_inline_limits.
13117         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
13118         and move all checks into can_inline_edge_p predicate; re-enable code
13119         comparing optimization levels.
13120         (expand_call_inline): Do not test inline_forbidden_into_p.
13121         * Makefile.in (ipa-inline.o): Update arguments.
13122
13123 2011-04-17  Revital Eres  <revital.eres@linaro.org>
13124
13125         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
13126
13127 2011-04-17  Revital Eres  <revital.eres@linaro.org>
13128
13129         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
13130
13131 2011-04-17  Michael Matz  <matz@suse.de>
13132
13133         PR tree-optimization/48622
13134         PR lto/48645
13135         * ipa-inline-analysis.c (inline_read_summary): Read size/time
13136         in same order as they're written.
13137
13138 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13139
13140         * config/pa/predicates.md: Reorganize and simplify predicates.
13141         Eliminate duplicate code checks.
13142         (arith_operand): Rename to arith14_operand
13143         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
13144         * config/pa/pa.md: Use renamed operands.
13145         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
13146         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
13147         arith11_operand, adddi3_operand, indexed_memory_operand,
13148         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
13149         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
13150         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
13151         move_dest_operand, move_src_operand, prefetch_cc_operand,
13152         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
13153         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
13154         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
13155         div_operand, int5_operand, movb_comparison_operator,
13156         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
13157         arith_double_operand, ireg_operand, lhs_lshift_operand,
13158         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
13159         integer_store_memory_operand): Likewise.
13160         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
13161         (integer_store_memory_operand, read_only_operand,
13162         function_label_operand, borx_reg_operand,
13163         non_hard_reg_operand): Likewise.
13164         (eq_neq_comparison_operator): Delete unused operator.
13165         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
13166         function_label_operand.
13167         (emit_move_sequence): Likewise.
13168
13169 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
13170
13171         * config/i386/sse.md (sseunpackmode): New mode attribute.
13172         (ssepackmode): Ditto.
13173         (vec_pack_trunc_<mode>): Macroize expander from
13174         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
13175         (vec_unpacks_lo_<mode>): Macroize expander from
13176         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13177         (vec_unpacks_hi_<mode>): Macroize expander from
13178         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13179         (vec_unpacku_lo_<mode>): Macroize expander from
13180         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13181         (vec_unpacku_hi_<mode>): Macroize expander from
13182         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13183         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
13184         ix86_expand_sse4_unpack.
13185         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
13186
13187 2011-04-16  Jan Hubicka  <jh@suse.cz>
13188
13189         * cgraphbuild.c: Include ipa-inline.h.
13190         (reset_inline_failed): Use initialize_inline_failed.
13191         * cgraph.c: Include ipa-inline.h.
13192         (cgraph_create_node_1): Do not initialize estimated_growth.
13193         (initialize_inline_failed): More to ipa-inline-analysis.c
13194         (dump_cgraph_node): Do not dump inline flags.
13195         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
13196         and disregard_inline_limits flags.
13197         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
13198         time, size, estimated_growth.
13199         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
13200         Update.
13201         * cgraphunit.c (cgraph_decide_is_function_needed): Use
13202         DECL_DISREGARD_INLINE_LIMITS.
13203         (cgraph_analyze_function): Do not initialize
13204         node->local.disregard_inline_limits.
13205         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13206         inlinable, versionable and disregard_inline_limits.
13207         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
13208         cgraph_check_inline_limits, cgraph_default_inline_p,
13209         cgraph_edge_badness, update_caller_keys, update_callee_keys,
13210         add_new_edges_to_heap): Update.
13211         (cgraph_decide_inlining_of_small_function): Update; set
13212         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
13213         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
13214         cgraph_decide_inlining_incrementally): Update.
13215         * ipa-inline.h (inline_summary): Add inlinable, versionable,
13216         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
13217         time, size and estimated_growth parameters.
13218         (estimate_edge_growth): Update.
13219         (initialize_inline_failed): Declare.
13220         * ipa-split.c: Include ipa-inline.h
13221         (execute_split_functions): Update.
13222         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
13223         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
13224         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
13225         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
13226         estimated_growth to INT_MIN.
13227         (inline_node_duplication_hook): Likewise.
13228         (dump_inline_summary): Dump new fields.
13229         (compute_inline_parameters): Update.
13230         (estimate_edge_time, estimate_time_after_inlining,
13231         estimate_size_after_inlining, estimate_growth, inline_read_summary,
13232         inline_write_summary):
13233         (initialize_inline_failed): Move here from cgraph.c.
13234         * tree-sra.c: Include ipa-inline.h.
13235         (ipa_sra_preliminary_function_checks): Update.
13236         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
13237         ipa-inline.h.
13238
13239 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
13240
13241         * config/i386/sse.md (V16): New mode iterator.
13242         (VI1, VI8): Ditto.
13243         (AVXMODEQI, AVXMODEDI): Remove.
13244         (sse2, sse3): New mode attribute.
13245         (mov<mode>): Use V16 mode iterator.
13246         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
13247         (push<mode>1): Use V16 mode iterator.
13248         (movmisalign<mode>): Ditto.
13249         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13250         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
13251         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13252         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
13253         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
13254         avx_movdqu<avxmodesuffix>.
13255         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
13256         *avx_movdqu<avxmodesuffix>.
13257         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
13258         avx_lddqu<avxmodesuffix>.
13259         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
13260         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
13261         avx_movnt<AVXMODEDI:mode>.
13262         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
13263         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
13264
13265 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
13266
13267         PR target/48629
13268         * haifa-sched.c (prune_ready_list, schedule_block): Use
13269         sched_pressure_p rather than flag_sched_pressure.
13270
13271 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
13272
13273         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13274         cgraph_get_node instead of cgraph_get_create_node.
13275
13276 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
13277
13278         * cfgexpand.c (expand_debug_expr): Use
13279         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
13280
13281 2011-04-15  Michael Matz  <matz@suse.de>
13282
13283         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
13284         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
13285         * function.c (gimplify_parameters): Ditto.
13286         * gimplify.c (gimplify_vla_decl): Ditto.
13287
13288         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
13289         (gimple_call_set_alloca_for_var): New inline function.
13290         (gimple_call_alloca_for_var_p): Ditto.
13291         * gimple.c (gimple_build_call_from_tree): Remember
13292         CALL_ALLOCA_FOR_VAR_P state.
13293         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
13294
13295         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
13296         calls if they were for VLA objects.
13297
13298 2011-04-15  Martin Jambor  <mjambor@suse.cz>
13299
13300         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
13301         of ADR_EXPRs.
13302
13303 2011-04-15  Martin Jambor  <mjambor@suse.cz>
13304
13305         PR middle-end/48601
13306         * tree-emutls.c (lower_emutls_function_body): Call
13307         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
13308         result is non-NULL.
13309
13310 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
13311
13312         * c-decl.c (detect_field_duplicates): Call
13313         objc_detect_field_duplicates instead of objc_get_interface_ivars.
13314
13315 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
13316
13317         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
13318         * gimple.c (gimple_asm_clobbers_memory_p): Define.
13319         * ipa-pure-const.c (check_stmt): Call it.
13320         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
13321
13322 2011-04-15  Richard Guenther  <rguenther@suse.de>
13323
13324         PR tree-optimization/48290
13325         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
13326         Properly decide inhibiting propagation based on the valueized
13327         operand.  Do loop-closed SSA form preserving here ...
13328         (init_copy_prop): ... not here.
13329
13330 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
13331
13332         PR target/48612
13333         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
13334         (*ieee_smax<mode>3): Likewise.
13335
13336 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13337
13338         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
13339         Replace match_operand with match_dup for the third operand in
13340         these expanders.
13341
13342 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
13343
13344         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
13345         to track processing of conditionals.  Update all callers.
13346         (try_combine, simplify_if_then_else): Update.
13347
13348 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
13349
13350         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
13351         -fsched-pressure.
13352
13353 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
13354
13355         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
13356         instead of match_operand for operand 3.
13357
13358 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
13359
13360         * recog.h (insn_operand_data): Add an "allows_mem" field.
13361         * genoutput.c (output_operand_data): Initialize it.
13362         * optabs.c (maybe_legitimize_operand_same_code): New function.
13363         (maybe_legitimize_operand): Use it when matching the original
13364         op->value.
13365
13366 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13367
13368         * gimplify.c: Fix issues in comments throughout.
13369         (voidify_wrapper_expr): Fix long line.
13370         (build_stack_save_restore): Likewise.
13371         (gimplify_loop_expr): Likewise.
13372         (gimplify_compound_lval): Likewise.
13373         (gimplify_init_ctor_eval): Likewise.
13374         (gimplify_modify_expr_rhs): Likewise.
13375         (omp_notice_threadprivate_variable): Likewise.
13376
13377 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13378
13379         * cfgexpand.c (expand_call_stmt): Convert the function type to the
13380         original one if this is not a builtin function.
13381
13382 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
13383
13384         PR target/48605
13385         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
13386         offset it as needed based on top 2 bits in operands[3], change
13387         MEM mode to SFmode and mask those 2 bits away from operands[3].
13388
13389 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
13390
13391         * c-parser.c (c_parser_objc_protocol_definition): Updated for
13392         change from objc_declare_protocols() to objc_declare_protocol().
13393
13394 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
13395
13396         * config/i386/sse.md (sse4_1): New mode attribute.
13397         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
13398         avx_blend<ssemodesuffix><avxmodesuffix> and
13399         sse4_1_blend<ssemodesuffix> using VF mode iterator.
13400         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
13401         avx_blendv<ssemodesuffix><avxmodesuffix> and
13402         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
13403         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
13404         avx_dp<ssemodesuffix><avxmodesuffix> and
13405         sse4_1_dp<ssemodesuffix> using VF mode iterator.
13406         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
13407         (sse4_1_packusdw): Merge with *avx_packusdw.
13408         (sse4_1_pblendvb): Merge with *avx_pblendvb.
13409         (sse4_1_pblendw): Merge with *avx_pblendw.
13410         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
13411         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
13412         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
13413         VF mode iterator.
13414         (sse4_1_round<ssescalarmodesuffix>): Merge with
13415         *avx_round<ssescalarmodesuffix>.
13416         (aesenc): Merge with *avx_aesenc.
13417         (aesenclast): Merge with *avx_aesenclast.
13418         (aesdec): Merge with *avx_aesdec.
13419         (aesdeclast): Merge with *avx_aesdeclast.
13420         (pclmulqdq): Merge with *pclmulqdq.
13421         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
13422         New predicate.
13423         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
13424
13425 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
13426
13427         PR middle-end/48608
13428         * cfgexpand.c (get_decl_align_unit): Renamed to ...
13429         (align_local_variable): This.  Update DECL_ALIGN.
13430         (add_stack_var): Updated.
13431         (expand_one_stack_var): Likewise.
13432
13433 2011-04-14  Richard Guenther  <rguenther@suse.de>
13434
13435         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
13436         Remove.
13437         (dse_initialize_block_local_data, dse_leave_block,
13438         record_voperand_set, get_stmt_uid): Likewise.
13439         (dse_possible_dead_store_p): Allow any kind of killing stmt.
13440         (dse_optimize_stmt): Remove voperand set handling code.
13441         Simplify and improve to handle any kind of killing stmt.
13442         (dse_record_phi): Remove.
13443         (dse_enter_block): Simplify.
13444         (tree_ssa_dse): Likewise.
13445         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
13446
13447 2011-04-14  Jan Hubicka  <jh@suse.cz>
13448
13449         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
13450         * cgraph.h (struct inline_summary): Move to ipa-inline.h
13451         (cgraph_local_info): Remove inline_summary.
13452         * ipa-cp.c: Include ipa-inline.h.
13453         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
13454         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
13455         accesor.
13456         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
13457         (input_overwrite_node): Do not set inline summary.
13458         (input_node): Do not stream inline summary.
13459         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
13460         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
13461         growth; we do not have inline parameters computed for that anyway.
13462         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
13463         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
13464         (inline_summary_t): New type and VECtor.
13465         (debug_inline_summary, dump_inline_summaries): Declare.
13466         (inline_summary): Use VOCtor.
13467         (estimate_edge_growth): Kill hack computing call stmt size directly.
13468         * lto-section-in.c (lto_section_name): Add inline section.
13469         * ipa-inline-analysis.c: Include lto-streamer.h
13470         (node_removal_hook_holder, node_duplication_hook_holder): New holders
13471         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
13472         (inline_summary_vec): Define.
13473         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
13474         dump_inline_summaries): New functions.
13475         (estimate_function_body_sizes): Properly compute size/time of outgoing
13476         calls.
13477         (compute_inline_parameters): Alloc inline_summary; do not compute
13478         size/time of incomming calls.
13479         (estimate_edge_time): Avoid missing time summary hack.
13480         (inline_read_summary): Read inline summary info.
13481         (inline_write_summary): Write inline summary info.
13482         (inline_free_summary): Free all hooks and inline summary vector.
13483         * lto-streamer.h: Add LTO_section_inline_summary section.
13484         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
13485         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
13486
13487 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
13488
13489         * tree-vectorizer.h (vect_strided_store_supported): Add a
13490         HOST_WIDE_INT argument.
13491         (vect_strided_load_supported): Likewise.
13492         (vect_permute_store_chain): Return void.
13493         (vect_transform_strided_load): Likewise.
13494         (vect_permute_load_chain): Delete.
13495         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
13496         count argument.  Check that the count is a power of two.
13497         (vect_strided_load_supported): Likewise.
13498         (vect_permute_store_chain): Return void.  Update after above changes.
13499         Assert that the access is supported.
13500         (vect_permute_load_chain): Likewise.
13501         (vect_transform_strided_load): Return void.
13502         * tree-vect-stmts.c (vectorizable_store): Update calls after
13503         above interface changes.
13504         (vectorizable_load): Likewise.
13505         (vect_analyze_stmt): Don't check for strided powers of two here.
13506
13507 2011-04-14  Richard Guenther  <rguenther@suse.de>
13508
13509         PR tree-optimization/48590
13510         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
13511         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13512         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
13513         BUILT_IN_STACK_SAVE.
13514         * tree-ssa-dce.c (propagate_necessity): Handle
13515         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13516
13517 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
13518
13519         * c-parser.c (c_parser_objc_class_declaration): Updated call to
13520         objc_declare_class.
13521
13522 2011-04-14  Richard Guenther  <rguenther@suse.de>
13523
13524         * tree.h (get_object_alignment_1): Declare.
13525         * builtins.c (get_object_alignment_1): Split out worker from ...
13526         (get_object_alignment): ... here.
13527         * fold-const.c (get_pointer_modulus_and_residue): Use
13528         get_object_alignment_1.
13529
13530 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
13531
13532         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
13533         type parameter.
13534         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
13535         parameter.  Generalise code to handle arrays as well as vectors.
13536         (vect_setup_realignment): Update accordingly.
13537         * tree-vect-stmts.c (vectorizable_store): Likewise.
13538         (vectorizable_load): Likewise.
13539
13540 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
13541
13542         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
13543         within the per-copy loop.
13544
13545 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
13546
13547         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
13548         in the dump file.
13549
13550 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
13551
13552         * doc/options.texi (Negative): Explicitly mention that the
13553         Negative chain must be circular.
13554
13555 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
13556
13557         * function.h (block_chainon): Declare.
13558         * function.c (block_chainon): Define.
13559
13560 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
13561             Eric Weddington  <eric.weddington@atmel.com>
13562             Georg-Johann Lay  <avr@gjlay.de>
13563
13564         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
13565         New Includes
13566         (avr_init_builtins, avr_expand_builtin,
13567         avr_expand_delay_cycles, avr_expand_unop_builtin,
13568         avr_expand_binop_builtin ): New functions.
13569         (avr_builtin_id): New enum
13570         (struct avr_builtin_description): New struct
13571         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
13572         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
13573
13574         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
13575         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
13576         UNSPECV_DELAY_CYCLES): new enumeration values
13577         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
13578         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
13579         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
13580         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
13581         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
13582         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
13583         "fmulsu"): New insns
13584
13585         * config/avr/avr-c.c: fix line endings
13586         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
13587         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
13588         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
13589         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
13590         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
13591
13592         * doc/extend.texi (AVR Built-in Functions): New node
13593         (Target Builtins): Add documentation of AVR
13594         built-in functions.
13595
13596 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
13597
13598         PR target/44643
13599         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
13600         alone. Error if non-const data has attribute progmem.
13601
13602 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
13603
13604         * tree.h (struct tree_constructor): Include tree_typed instead of
13605         tree_common.
13606         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
13607         TS_TYPED instead of TS_COMMON.
13608
13609 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
13610
13611         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
13612         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
13613         (sse2_psadbw): Merge with *avx_psadbw.
13614         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
13615         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
13616         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
13617         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
13618         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
13619         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
13620         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
13621         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
13622         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
13623         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
13624         (ssse3_palignrti): Merge with *avx_palignrti.
13625
13626 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
13627
13628         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
13629         * tree-ssanames.c (fini_ssanames): VEC_free it.
13630         (make_ssa_name_fn): Update for VECness of free_ssanames.
13631         (release_ssa_name, release_dead_ssa_names): Likewise.
13632         * tree.h (struct tree_ssa_name): Include tree_typed instead of
13633         tree_common.
13634         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
13635         TS_TYPED instead of TS_COMMON.
13636
13637 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
13638
13639         * postreload-gcse.c (gcse_after_reload_main): Add calls to
13640         statistics_counter_event.
13641         * tree-ssa-copyrename.c (stats): Define.
13642         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
13643         statistics_counter_event.
13644         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
13645         (bswap_stats, widen_mul_stats): Define.
13646         (insert_reciprocals): Increment rdivs_inserted.
13647         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
13648         rfuncs_inserted.  Add calls to statistics_counter_event.
13649         (execute_cse_sincos_1): Increment inserted.
13650         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
13651         statistics_counter_event.
13652         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
13653         of bswap_stats.  Add calls to statistics_counter_event.
13654         (convert_mult_to_widen): Increment widen_mults_inserted.
13655         (convert_plusminus_to_widen): Increment maccs_inserted.
13656         (convert_mult_to_fma): Increment fmas_inserted.
13657         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
13658         calls to statistics_counter_event.
13659
13660 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
13661
13662         PR rtl-optimization/48455
13663         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
13664         `temp_costs->mem_cost'.
13665
13666 2011-04-13  Jan Hubicka  <jh@suse.cz>
13667
13668         * ipa-inline.h: New file.
13669         * ipa-inline-analysis.c: New file. Broken out of ...
13670         * ipa-inline.c: ... this file; update toplevel comment;
13671         include ipa-inline.h
13672         (inline_summary): Move to ipa-inline.h
13673         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
13674         ipa-inline-analysis.c.
13675         (cgraph_estimate_time_after_inlining): Rename to
13676         estiamte_time_after_inlining; move to ipa-inline-analysis.c
13677         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
13678         to estimate_edge_growth.
13679         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
13680         rename to estimate_size_after_inlining.
13681         (cgraph_mark_inline_edge): Update for new naming convention.
13682         (cgraph_check_inline_limits): Likewise.
13683         (cgraph_edge_badness): Likewise.
13684         (cgraph_decide_recursive_inlining): Likewise.
13685         (cgraph_decide_inlining_of_small_functions): Likewise.
13686         (cgraph_decide_inlining_incrementally): Likewise.
13687         (cgraph_estimate_growth): Rename to estimate_growth; move to
13688         ipa-inline-analysis.c.
13689         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
13690         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
13691         (compute_inline_parameters): Likewise.
13692         (compute_inline_parameters_for_current): Likewise.
13693         (pass_inline_parameters): Likewise.
13694         (inline_indirect_intraprocedural_analysis): Likewise.
13695         (analyze_function): Rename to inline_analyze_function; likewise.
13696         (add_new_function): Move to ipa-inline-analysis.c.
13697         (inline_generate_summary): Likewise.
13698         (inline_read_summary): Likewise.
13699         (inline_write_summary): Likewise.
13700         * Makefile.in (ipa-inline-analysis.c): New file.
13701
13702 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13703
13704         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
13705         * configure: Regenerate.
13706
13707 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
13708
13709         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
13710         instead of tree_common.
13711         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
13712         Likewise.
13713         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
13714         TS_TYPED rather than TS_COMMON.
13715         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
13716
13717 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
13718
13719         PR target/45263
13720         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
13721         r20 around calls of __tablejump_elpm__
13722
13723 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
13724
13725         PR middle-end/48591
13726         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
13727         NULL.
13728         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
13729
13730 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
13731
13732         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
13733         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
13734         (cfi_vec): New typedef.
13735         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
13736         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
13737         (cie_cfi_vec): New static variable.
13738         (cie_cfi_head): Delete.
13739         (add_cfi): Accept a cfi_vec * as first argument. All callers and
13740         declaration changed. Use vector rather than list operations.
13741         (new_cfi): Don't initialize the dw_cfi_next field.
13742         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
13743         rather than list operations.
13744         (lookup_cfa): Use vector rather than list operations.
13745         (output_cfis): New argument upto. Accept a cfi_vec rather than
13746         a dw_cfi_ref list head as argument. All callers changed.
13747         Iterate over the vector using upto as a maximum index.
13748         (output_all_cfis): New static function.
13749         (output_fde): Use vector rather than list operations. Use the
13750         new upto argument for output_cfis rather than manipulating a
13751         list.
13752         (dwarf2out_begin_prologue): Change initializations to match
13753         new struct members.
13754         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
13755         from the vector length rather than searching for the end of a list.
13756         Use output_all_cfis.
13757         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
13758
13759 2011-04-13  Nick Clifton  <nickc@redhat.com>
13760
13761         * config/rx/rx.md (movmemsi): Do not use this pattern when
13762         volatile pointers are involved.
13763
13764 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
13765
13766         * config/i386/sse.md (pinsrbits): Remove.
13767         (sse2_packsswb): Merge with *avx_packsswb.
13768         (sse2_packssdw): Merge with *avx_packssdw.
13769         (sse2_packuswb): Merge with *avx_packuswb.
13770         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
13771         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
13772         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
13773         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
13774         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
13775         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
13776         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
13777         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
13778         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
13779         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
13780         (sse2_loadld): Merge with *avx_loadld.
13781         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
13782         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
13783         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
13784         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
13785         (vec_concatv2di): Merge with *vec_concatv2di_avx.
13786
13787 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
13788
13789         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
13790         calling TREE_CHAIN.
13791         * print-tree.c (print_node): Likewise.
13792         * tree-inline.c (copy_tree_r): Likewise.
13793         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
13794         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
13795         instead of TS_COMMON.
13796         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
13797         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
13798         (copy_node_stat): Zero TREE_CHAIN only if necessary.
13799         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
13800         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
13801         ...and these...
13802         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
13803         * tree.h: ...here.
13804         (TREE_CHAIN): Check for a TS_COMMON structure.
13805         (TREE_TYPE): Check for a TS_TYPED structure.
13806
13807 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
13808
13809         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13810         cgraph_get_create_node instead of cgraph_node.
13811
13812 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
13813
13814         * c-parser.c (c_parser_initelt): Updated call to
13815         objc_build_message_expr.
13816         (c_parser_postfix_expression): Likewise.
13817
13818 2011-04-12  Kai Tietz  <ktietz@redhat.com>
13819
13820         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
13821         MASK_MS_BITFIELD_LAYOUT bit.
13822
13823 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
13824
13825         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
13826         assert it is always true.
13827         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
13828         moves.
13829
13830 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
13831
13832         * c-parser.c (c_lex_one_token): Rewritten conditional used when
13833         compiling Objective-C to be more efficient.
13834
13835 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
13836
13837         * opts-common.c (decode_cmdline_options_to_array): Remove variable
13838         argv_copied.
13839
13840 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13841
13842         * recog.h, genoutput.c, optabs.c: Revert last patch.
13843
13844 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13845
13846         PR target/48090
13847         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
13848
13849 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13850
13851         * recog.h (insn_operand_data): Add an "allows_mem" field.
13852         * genoutput.c (output_operand_data): Initialize it.
13853         * optabs.c (maybe_legitimize_operand_same_code): New function.
13854         (maybe_legitimize_operand): Use it when matching the original
13855         op->value.
13856
13857 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13858
13859         * genpreds.c (process_define_predicate): Move most processing
13860         to gensupport.c.  Continue to validate the expression.
13861         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
13862         (process_define_predicate): Move processing to gensupport.c.
13863         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
13864         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
13865         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
13866         argument.
13867         (valid_predicate_name_p): New function, split out from old
13868         genpreds.c:process_define_predicate.
13869         (process_define_predicate): New function, combining code from
13870         old genpreds.c and genrecog.c functions.
13871         (process_rtx): Call it for DEFINE_PREDICATE and
13872         DEFINE_SPECIAL_PREDICATE.
13873
13874 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13875
13876         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
13877         size of a '%A' memory reference.
13878         (T_DREG, T_QREG): New neon_builtin_type_bits.
13879         (arm_init_neon_builtins): Assert that the load and store operands
13880         are neon_struct_operands.
13881         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
13882         (NEON_ARG_MEMORY): New builtin_arg.
13883         (neon_dereference_pointer): New function.
13884         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
13885         Handle NEON_ARG_MEMORY.
13886         (arm_expand_neon_builtin): Update after above interface changes.
13887         Use NEON_ARG_MEMORY for loads and stores.
13888         * config/arm/predicates.md (neon_struct_operand): New predicate.
13889         * config/arm/iterators.md (V_two_elem): Tweak formatting.
13890         (V_three_elem): Use BLKmode for accesses that have no associated mode.
13891         (V_four_elem): Tweak formatting.
13892         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
13893         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
13894         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
13895         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
13896         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
13897         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
13898         (neon_vst4<mode>): Replace pointer operand with a memory operand.
13899         Use %A in the output template.
13900         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
13901         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
13902         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
13903         the width of the memory access.  Remove post-increment.
13904         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
13905
13906 2011-04-12  Nick Clifton  <nickc@redhat.com>
13907
13908         * config/v850/v850.c (expand_prologue): Do not use the CALLT
13909         instruction for interrupt handlers if the target is the basic V850
13910         architecture.
13911         (expand_epilogue): Likewise.
13912
13913 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
13914
13915         PR rtl-optimization/48549
13916         * combine.c (propagate_for_debug): Also stop after BB_END of
13917         this_basic_block.  Process LAST and just stop processing after it.
13918         (combine_instructions): If last_combined_insn has been deleted,
13919         set last_combined_insn to its PREV_INSN.
13920
13921 2011-04-12  Richard Guenther  <rguenther@suse.de>
13922
13923         PR tree-optimization/46076
13924         * gimple.h (struct gimple_statement_call): Add fntype field.
13925         (gimple_call_fntype): Adjust.
13926         (gimple_call_set_fntype): New function.
13927         * gimple.c (gimple_build_call_1): Set the call function type.
13928         * gimplify.c (gimplify_call_expr): Preserve the function
13929         type the frontend used for the call.
13930         (gimplify_modify_expr): Likewise.
13931         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
13932         function type.
13933         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
13934         function type.
13935         * tree-ssa.c (useless_type_conversion_p): Function pointer
13936         conversions are useless.
13937
13938 2011-04-12  Martin Jambor  <mjambor@suse.cz>
13939
13940         * cgraph.h (cgraph_node): Remove function declaration.
13941         (cgraph_create_node): Declare.
13942         (cgraph_get_create_node): Likewise.
13943         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
13944         Updated all callers.
13945         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
13946         the decl does not already exist.  Call cgraph_get_create_node instead
13947         of cgraph_node.
13948         (cgraph_get_create_node): New function.
13949         (cgraph_same_body_alias): Update comment.
13950         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
13951         assert it does not return NULL.
13952         (cgraph_update_edges_for_call_stmt): Likewise.
13953         (cgraph_clone_edge): Likewise.
13954         (cgraph_create_virtual_clone): Likewise.
13955         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
13956         instead of cgraph_node.
13957         (cgraph_add_new_function): Call cgraph_create_node or
13958         cgraph_get_create_node instead of cgraph_node.
13959         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
13960         instead of cgraph_node.
13961         (record_eh_tables): Likewise.
13962         (mark_address): Likewise.
13963         (mark_load): Likewise.
13964         (build_cgraph_edges): Call cgraph_get_create_node instead
13965         of cgraph_node.
13966         (rebuild_cgraph_edges): Likewise.
13967         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
13968         instead of cgraph_node.
13969         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
13970         cgraph_node.
13971         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
13972         cgraph_create_node instead of cgraph_node.
13973         * c-decl.c (finish_function): Call cgraph_get_create_node instead
13974         of cgraph_node.
13975         * lto-cgraph.c (input_node): Likewise.
13976         * lto-streamer-in.c (input_function): Likewise.
13977         * varasm.c (mark_decl_referenced): Likewise.
13978         (assemble_alias): Likewise.
13979
13980 2011-04-12  Martin Jambor  <mjambor@suse.cz>
13981
13982         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
13983         instead of cgraph_node and assert it does not return NULL.
13984         * lto-streamer-in.c (lto_read_body): Likewise.
13985         * omp-low.c (new_omp_context): Likewise.
13986         (create_task_copyfn): Likewise.
13987         * tree-emutls.c (lower_emutls_function_body): Likewise.
13988         * matrix-reorg.c (transform_allocation_sites): Likewise.
13989
13990 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
13991
13992         PR c/48552
13993         * c-typeck.c (build_asm_expr): Error out on attempts to use
13994         void type outputs or inputs for constraints that allow reg or
13995         don't allow memory.
13996
13997 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
13998             Richard Earnshaw  <rearnsha@arm.com>
13999
14000         PR target/48250
14001         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
14002         to use sign-magnitude offsets. Reject unsupported unaligned
14003         cases. Add detailed description in comments.
14004         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
14005         condition from TARGET_32BIT to TARGET_ARM.
14006
14007 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
14008
14009         * tree.h (struct typed_tree): New.
14010         (struct tree_common): Include it instead of tree_base.
14011         (TREE_TYPE): Update for new location of type field.
14012         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
14013         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
14014         (union tree_node): Add typed field.
14015         * treestruct.def (TS_TYPED): New.
14016         * lto-streamer.c (check_handled_ts_structures): Handle it.
14017         * tree.c (MARK_TS_TYPED): New macro.
14018         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
14019
14020 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
14021
14022         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
14023         (force_nonfallthru): Do not alter the loop nest if no basic block
14024         was created.
14025
14026 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
14027
14028         * config/i386/sse.md (VI): New mode iterator.
14029         (SSEMODEI): Remove.
14030         (AVX256MODEI): Ditto.
14031         (AVXMODEF4P): Ditto.
14032         (avxvecpsmode): Ditto.
14033         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
14034         (sse2_andnot<mode>3): New expander.
14035         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
14036         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
14037         (<any_logic:code><mode>3): Use VI mode iterator.
14038         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
14039         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
14040         (*andnottf3): Handle AVX three-operand constraints.
14041         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
14042
14043 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14044             Robert Millan  <rmh@gnu.org>
14045
14046         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
14047         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
14048         GNU_USER_DYNAMIC_LINKER64): Define.
14049         (REG_NAME): Don't undefine.
14050         (MD_UNWIND_SUPPORT): Undefine.
14051         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
14052         (REG_NAME): Don't undefine.
14053         (MD_UNWIND_SUPPORT): Undefine.
14054         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
14055
14056 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14057
14058         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
14059         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
14060
14061 2011-04-11  Xinliang David Li  <davidxl@google.com>
14062
14063         * value-profile.c (check_ic_target): New function.
14064         (gimple_ic_transform): Sanity check indirect call target.
14065         * gimple-low.c (gimple_check_call_args): Interface change.
14066         (gimple_check_call_matching_types): New function.
14067         * tree-inline.c (tree_can_inline_p): Call new function.
14068
14069 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
14070
14071         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
14072         tree-pretty-print.h & realmpfr.h.
14073
14074 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
14075
14076         PR middle-end/48464
14077         * ira.c (setup_pressure_classes): Fix typo in loop condition.
14078         (setup_allocno_and_important_classes): Ditto.
14079
14080 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14081
14082         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
14083         GNU_USER_DYNAMIC_LINKER.
14084         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
14085         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14086         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
14087         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14088         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14089         GNU_USER_TARGET_OS_CPP_BUILTINS.
14090         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
14091         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14092         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14093         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14094         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
14095         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14096         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14097         GNU_USER_TARGET_OS_CPP_BUILTINS.
14098         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14099         GNU_USER_DYNAMIC_LINKER.
14100         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14101         GNU_USER_TARGET_OS_CPP_BUILTINS.
14102         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
14103         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14104         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
14105         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14106         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
14107         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
14108         GNU_USER_DYNAMIC_LINKER64): Remove.
14109         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
14110         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14111         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14112         GNU_USER_DYNAMIC_LINKER.
14113         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14114         GNU_USER_TARGET_OS_CPP_BUILTINS.
14115         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14116         GNU_USER_TARGET_OS_CPP_BUILTINS.
14117         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
14118         to GNU_USER_TARGET_OS_CPP_BUILTINS.
14119         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14120         GNU_USER_TARGET_OS_CPP_BUILTINS.
14121         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
14122         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
14123         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14124         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
14125         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14126         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14127         GNU_USER_DYNAMIC_LINKER.
14128         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14129         GNU_USER_TARGET_OS_CPP_BUILTINS.
14130         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
14131         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14132         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14133         GNU_USER_DYNAMIC_LINKER.
14134         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14135         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14136         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
14137         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14138         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14139         GNU_USER_DYNAMIC_LINKER.
14140         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
14141         GNU_USER_DYNAMIC_LINKERN32.
14142         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
14143         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
14144         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
14145         GNU_USER_DYNAMIC_LINKER32.
14146         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
14147         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14148         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14149         GNU_USER_DYNAMIC_LINKER.
14150         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14151         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14152         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
14153         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14154         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14155         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
14156         GNU_USER_DYNAMIC_LINKER32.
14157         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14158         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
14159         GNU_USER_DYNAMIC_LINKER.
14160         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
14161         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14162         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14163         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
14164         GNU_USER_DYNAMIC_LINKER64.
14165         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
14166         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14167         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14168         GNU_USER_DYNAMIC_LINKER.
14169         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
14170         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14171         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14172         GNU_USER_DYNAMIC_LINKER.
14173         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
14174         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14175         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14176         GNU_USER_DYNAMIC_LINKER32.
14177         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14178         GNU_USER_DYNAMIC_LINKER64.
14179         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14180         GNU_USER_DYNAMIC_LINKER64.
14181         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
14182         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14183         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
14184         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14185         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14186
14187 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14188
14189         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
14190         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
14191         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
14192         GNU_USER_DYNAMIC_LINKER.
14193         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14194         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
14195         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
14196         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
14197         GNU_USER_DYNAMIC_LINKER64.
14198         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14199         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
14200         GNU_USER_LINK_EMULATION.
14201         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
14202         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
14203         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
14204         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
14205         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
14206         CPP_SPEC, CC1_SPEC): Remove.
14207         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
14208         (GNU_USER_DYNAMIC_LINKER): Define.
14209         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
14210         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
14211         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
14212         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
14213         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
14214         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
14215         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14216         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
14217         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
14218         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
14219         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
14220         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
14221         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
14222         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
14223         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
14224         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14225         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14226         GNU_USER_DYNAMIC_LINKER.
14227         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14228         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
14229         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14230         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
14231         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14232         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
14233         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
14234         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
14235         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
14236         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
14237
14238 2011-04-11  Kai Tietz  <ktietz@redhat.com>
14239
14240         PR target/9601
14241         PR target/11772
14242         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
14243         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
14244         comment.
14245         (ix86_is_msabi_thiscall): Removed.
14246         (ix86_is_type_thiscall): Likewise.
14247         (ix86_get_callcvt): New function.
14248         (ix86_comp_type_attributes): Simplify check.
14249         (ix86_function_regparm): Use ix86_get_callcvt for calling
14250         convention attribute checks.
14251         (ix86_return_pops_args): Likewise.
14252         (ix86_static_chain): Likewise.
14253         (x86_this_parameter): Likewise.
14254         (x86_output_mi_thunk): Likewise.
14255         (ix86_function_type_abi): Optimize check for types without attributes.
14256         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
14257         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
14258         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
14259         by flag-values.
14260         (IX86_BASE_CALLCVT): Helper macro.
14261         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
14262         Use ix86_get_callcvt for calling convention attribute checks and avoid
14263         symbol-decoration for stdcall in TARGET_RTD case.
14264         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
14265         Likewise.
14266         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
14267         for declaration.
14268
14269 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
14270
14271         * config/i386/sse.md (VI_128): New mode iterator.
14272         (VI12_128): Rename from SSEMODE12.
14273         (VI14_128): Rename from SSEMODE14.
14274         (VI124_128): New mode iterator.
14275         (VI24_128): Rename from SSEMODE248.
14276         (VI248_128): Rename from SSEMODE248.
14277         (SSEMODE124C8): Remove.
14278         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14279         (*sse2_<plusminus_insn><mode>3): Merge with
14280         *avx_<plusminus_insn><mode>3.
14281         (*mulv8hi3): Merge with *avx_mulv8hi3.
14282         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
14283         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
14284         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
14285         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
14286         (ashr<mode>3): Merge with *avx_ashr<mode>3.
14287         (lshr<mode>3): Merge with *avx_lshr<mode>3.
14288         (ashl<mode>3): Merge with *avx_ashl<mode>3.
14289         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
14290         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
14291         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14292         (*<smaxmin:code>v8hi3): Ditto.
14293         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
14294         (*<smaxmin:code>v16qi3): Ditto.
14295         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
14296         (*sse2_eq<mode>3): Ditto.
14297         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
14298         (*sse2_gt<mode>3): Ditto.
14299         (vcondv2di): Split out of vcond<mode>.
14300         (vconduv2di): Split out of vcondu<mode>.
14301
14302 2011-04-11  Richard Guenther  <rguenther@suse.de>
14303
14304         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
14305         before calling tree_low_cst.
14306
14307 2011-04-11  Richard Guenther  <rguenther@suse.de>
14308
14309         * stor-layout.c (layout_type): Compute all array index size operations
14310         in the original type.
14311         (initialize_sizetypes): Add comment.
14312         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
14313
14314 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14315
14316         * common.opt (Tbss=, Tdata=, Ttext=): New options.
14317
14318 2011-04-11  Martin Jambor  <mjambor@suse.cz>
14319
14320         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
14321         of cgraph_node, handle NULL return value.
14322         (cgraph_global_info): Likewise.
14323         (cgraph_rtl_info): Likewise.
14324         * tree-inline.c (estimate_num_insns): Likewise.
14325         * gimplify.c (unshare_body): Likewise.
14326         (unvisit_body): Likewise.
14327         (gimplify_body): Likewise.
14328         * predict.c (optimize_function_for_size_p): Likewise.
14329         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
14330         (call_may_clobber_ref_p_1): Likewise.
14331         * varasm.c (function_section_1): Likewise.
14332         (assemble_start_function): Likewise.
14333
14334 2011-04-11  Martin Jambor  <mjambor@suse.cz>
14335
14336         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
14337         of cgraph_node.
14338         * final.c (rest_of_clean_state): Likewise.
14339         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
14340         * passes.c (pass_init_dump_file): Likewise.
14341         (execute_all_ipa_transforms): Likewise.
14342         (function_called_by_processed_nodes_p): Likewise.
14343         * predict.c (maybe_hot_frequency_p): Likewise.
14344         (probably_never_executed_bb_p): Likewise.
14345         (compute_function_frequency): Likewise.
14346         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
14347         (unnest_nesting_tree_1): Likewise.
14348         (lower_nested_functions): Likewise.
14349         * tree-optimize.c (execute_fixup_cfg): Likewise.
14350         (tree_rest_of_compilation): Likewise.
14351         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
14352         * tree-sra.c (ipa_early_sra): Likewise.
14353         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
14354         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
14355         * ipa.c (record_cdtor_fn): Likewise.
14356         * ipa-inline.c (cgraph_early_inlining): Likewise.
14357         (compute_inline_parameters_for_current): Likewise.
14358         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
14359         * ipa-pure-const.c (local_pure_const): Likewise.
14360         * ipa-split.c (split_function): Likewise.
14361         (execute_split_functions): Likewise.
14362         * cgraphbuild.c (build_cgraph_edges): Likewise.
14363         (rebuild_cgraph_edges): Likewise.
14364         (cgraph_rebuild_references): Likewise.
14365         (remove_cgraph_callee_edges): Likewise.
14366         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
14367         (verify_cgraph_node): Likewise.
14368         (cgraph_analyze_functions): Likewise.
14369         (cgraph_preserve_function_body_p): Likewise.
14370         (save_inline_function_body): Likewise.
14371         (save_inline_function_body): Likewise.
14372         * tree-inline.c (copy_bb): Likewise.
14373         (optimize_inline_calls): Likewise.
14374
14375 2011-04-11  Martin Jambor  <mjambor@suse.cz>
14376
14377         PR tree-optimization/48195
14378         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
14379         ipa_check_create_edge_args.
14380         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
14381         ipa_check_create_edge_args.
14382         * ipa-inline.c (inline_generate_summary): Do not call
14383         ipa_check_create_node_params and ipa_check_create_edge_args.
14384         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
14385         ipa_check_create_edge_args.
14386
14387 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
14388
14389         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
14390         instead of loop.
14391         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
14392         * function.c (record_hard_reg_sets): Likewise.
14393         * ira.c (compute_regs_asm_clobbered): Likewise.
14394         * sched-deps.c (sched_analyze_1): Likewise.
14395         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
14396
14397 2011-04-09  Xinliang David Li  <davidxl@google.com>
14398
14399         PR tree-optimization/PR48484
14400         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
14401         has_valid_pred lazily
14402
14403 2011-04-09  Duncan Sands  <baldrick@free.fr>
14404
14405         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
14406
14407 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
14408
14409         * combine.c (combine_validate_cost): Adjust comments.  Set registered
14410         cost of I0 to zero at the end, if any.
14411
14412 2011-04-08  Xinliang David Li  <davidxl@google.com>
14413
14414         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
14415         to insane profile data.
14416
14417 2011-04-08  Xinliang David Li  <davidxl@google.com>
14418
14419         * ipa-cp.c (ipcp_update_profiling): Correct
14420          negative scale factor due to insane profile data.
14421
14422 2011-04-08  Xinliang David Li  <davidxl@google.com>
14423
14424         * final.c (dump_basic_block_info): New function.
14425         (final): Dump basic block.
14426         (final_scan_insn): Remove old dump.
14427
14428 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
14429
14430         PR target/47829
14431         * config.gcc (i386-*-freebsd): Disable unwind table generation for
14432         crtbegin/crtend.
14433
14434 2011-04-08  Michael Matz  <matz@suse.de>
14435
14436         PR middle-end/48389
14437         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
14438         functions.
14439         (rebuild_jump_labels): Call rebuild_jump_labels_1.
14440         * rtl.h (rebuild_jump_labels_chain): Declare.
14441         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
14442         insns inserted on edges.
14443
14444 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
14445
14446         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
14447         * config/arm/arm-arches.def: New.
14448         * config/arm/arm-opts.h: New.
14449         * config/arm/genopt.sh: New.
14450         * config/arm/arm-tables.opt: New (generated).
14451         * config/arm/arm.c (arm_handle_option, arm_target_help,
14452         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
14453         (all_architectures): Get most table contents from arm-arches.def.
14454         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
14455         arm_selected_tune here.
14456         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
14457         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
14458         (march=, mcpu=, mtune=): Use Enum and Var.
14459         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
14460         (arm.o): Update dependencies.
14461
14462 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
14463
14464         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
14465         of header_file.
14466         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
14467         (write_typed_alloc_defns): Likewise.
14468         (main): Calls write_typed_alloc_defns with output_header.
14469
14470 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
14471
14472         PR inline-asm/48435
14473         * ira-color.c (setup_profitable_hard_regs): Add comments.
14474         Don't take prohibited hard regs into account.
14475         (setup_conflict_profitable_regs): Rename to
14476         get_conflict_profitable_regs.
14477         (check_hard_reg_p): Check prohibited hard regs.
14478
14479 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
14480
14481         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
14482         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
14483         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
14484
14485 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14486
14487         PR target/48366
14488         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
14489         move from floating point to shift amount register.
14490         (emit_move_sequence): Remove secondary reload support for floating
14491         point to shift amount amount register copies.
14492         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
14493         amount register copies.
14494         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
14495         register, return false if mode isn't a scalar integer mode.
14496         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
14497
14498 2011-04-08  Richard Guenther  <rguenther@suse.de>
14499
14500         * gimple.c (gimple_call_flags): Remove kludge.
14501
14502 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
14503
14504         * sel-sched.c (sel_region_init): Move call to
14505         sel_setup_region_sched_flags after setup_current_loop_nest.
14506
14507 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
14508
14509         PR rtl-optimization/48272
14510         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
14511         init_insn_reg_pressure_info.  Adjust a caller.
14512         * sched-int.h (init_insn_reg_pressure_info): Declare.
14513         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
14514         when sched-pressure is enabled.
14515
14516 2011-04-08  Richard Guenther  <rguenther@suse.de>
14517
14518         * gimple.c (gimple_set_modified): Do not queue calls to
14519         MODIFIED_NORETURN_CALLS here ...
14520         * tree-ssa-operands.c (update_stmt_operands): ... but here.
14521
14522 2011-04-08  Richard Guenther  <rguenther@suse.de>
14523
14524         PR lto/48467
14525         * toplev.c (lang_dependent_init): Do not open asm_out_file
14526         in WPA mode, nor perform debug machinery initialization.
14527         (finalize): Do not unlink asm_out_file in WPA mode.
14528
14529 2011-04-08  Richard Guenther  <rguenther@suse.de>
14530
14531         * gimple.h (gimple_call_fntype): New function.
14532         (gimple_call_return_type): Use it.
14533         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
14534         * gimple-low.c (gimple_check_call_args): Likewise.
14535         * gimple.c (gimple_call_flags): Likewise.
14536         (gimple_call_arg_flags): Likewise.
14537         (gimple_call_return_flags): Likewise.
14538         * tree-cfg.c (verify_gimple_call): Likewise.
14539         (do_warn_unused_result): Likewise.
14540         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
14541         * value-prof.c (gimple_ic_transform): Fix fndecl check.
14542
14543 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
14544
14545         PR rtl-optimization/48235
14546         * sel-sched.c (code_motion_process_successors): Recompute the last
14547         insn in basic block if control flow changed.
14548         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
14549         Update condition for ilist_remove.
14550
14551 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
14552
14553         PR rtl-optimization/48302
14554         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
14555         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
14556         it to record added preheader blocks.
14557         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
14558         on to sel_add_loop_preheaders.
14559         (sel_region_init): Move call to setup_current_loop_nest after
14560         sel_init_bbs.
14561
14562 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
14563
14564         PR target/48273
14565         * cfgloop.h (loop_has_exit_edges): New helper.
14566         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
14567         non-clonable.
14568         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
14569         that have no exit edges.
14570
14571 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
14572
14573         PR rtl-optimization/48442
14574         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
14575         all callers.  Adjust assert.
14576
14577 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
14578
14579         PR tree-optimization/48377
14580         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
14581         is_packed to true even for types with smaller TYPE_ALIGN than
14582         TYPE_SIZE.
14583
14584 2011-04-08  Richard Guenther  <rguenther@suse.de>
14585
14586         PR bootstrap/48513
14587         * doc/tm.texi: Re-generate.
14588
14589 2011-04-08  Wei Guozhi  <carrot@google.com>
14590
14591         PR target/47855
14592         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
14593         * config/arm/arm.c (arm_attr_length_push_multi): New function.
14594         * config/arm/arm.md (*push_multi): Change the length computation to
14595         call a C function.
14596
14597 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
14598
14599         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
14600         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
14601         * doc/tm.texi: Regenerate.
14602         * system.h (ASM_OUTPUT_BSS): Poison.
14603         * varasm.c (asm_output_bss): Remove function.
14604         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
14605
14606         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
14607         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
14608         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
14609         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14610         Likewise.
14611         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14612         Likewise.
14613         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14614         Likewise.
14615         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
14616
14617 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
14618
14619         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
14620         EnumValue lines.
14621
14622 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
14623
14624         * config/m68k/m68k.c (m68k_handle_option): Don't handle
14625         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
14626         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
14627         OPT_mcpu32.
14628         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14629         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
14630         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
14631         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
14632         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
14633         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
14634         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
14635         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
14636         options.  Don't map other m68k options manually.  Don't handle
14637         old-style options as canonical.
14638         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
14639         * doc/install.texi (m68k-*-*): Document binutils version requirement.
14640
14641 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
14642
14643         * basic-block.h (force_nonfallthru): Move to...
14644         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
14645         (force_nonfallthru): ...here.
14646         * cfghooks.c (force_nonfallthru): New function.
14647         * cfgrtl.c (force_nonfallthru): Rename into...
14648         (rtl_force_nonfallthru): ...this.
14649         (commit_one_edge_insertion): Do not set AUX field.
14650         (commit_edge_insertions): Do not discover new basic blocks.
14651         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
14652         (cfg_layout_rtl_cfg_hooks): Likewise.
14653         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
14654         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
14655         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
14656
14657 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
14658
14659         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
14660         Remove macros.
14661
14662 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
14663
14664         * config/i386/sse.md: Update copyright year.
14665         (avxcvtvecmode): Remove.
14666         (sse_movhlps): Merge with *avx_movhlps.
14667         (sse_movlhps): Merge with *avx_movlhps.
14668         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
14669         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
14670         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
14671         (sse_loadhps): Merge with *avx_loadhps.
14672         (sse_storelps): Merge with *avx_storelps.
14673         (sse_loadlps): Merge with *avx_loadlps.
14674         (sse_movss): Merge with *avx_movss.
14675         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
14676         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
14677         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
14678         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
14679         (vec_set<mode>_0): Ditto.
14680         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
14681         (sse4_1_insertps): Merge with *avx_insertps.
14682         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
14683         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
14684         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
14685         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
14686         (sse2_storehpd): Merge with *avx_storehpd.
14687         (sse2_loadhpd): Merge with *avx_loadhpd.
14688         (sse2_loadlpd): Merge with *avx_loadlpd.
14689         (sse2_movsd): Merge with *avx_movsd.
14690         (*vec_concatv2df): Merge with *vec_concatv2df.
14691
14692 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
14693
14694         PR debug/48343
14695         * combine.c (combine_instructions): Add last_combined_insn,
14696         update it if insn is after it, pass it to all try_combine calls.
14697         (try_combine): Add last_combined_insn parameter, pass it instead of
14698         i3 to propagate_for_debug.
14699
14700 2011-04-07  Nick Clifton  <nickc@redhat.com>
14701
14702         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
14703         to handle MDR <-> data register transfers.
14704         (movhi_internal): Likewise.
14705
14706 2011-04-07  Alan Modra  <amodra@gmail.com>
14707
14708         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
14709         previous stack info.
14710
14711 2011-04-07  Tom de Vries  <tom@codesourcery.com>
14712
14713         PR target/43920
14714         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
14715         flow_find_cross_jump.  Swap variables to implement backward replacement.
14716         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
14717
14718 2011-04-07  Tom de Vries  <tom@codesourcery.com>
14719
14720         PR target/43920
14721         * cfgcleanup.c (walk_to_nondebug_insn): New function.
14722         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
14723         and bb2.
14724         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
14725         src1 or src2.  Redirect edges to the last basic block.  Update
14726         frequency and count on multiple basic blocks in case of fallthru.
14727
14728 2011-04-07  Tom de Vries  <tom@codesourcery.com>
14729
14730         PR target/43920
14731         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
14732         function.
14733         (old_insns_match_p): Change return type.  Replace return false/true
14734         with return dir_none/dir_both.  Use can_replace_by.
14735         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
14736         direction from dir_p.  Register replacement direction in dir, last_dir
14737         and afterlast_dir.  Handle new return type of old_insns_match_p using
14738         merge_dir.  Return replacement direction in dir_p.
14739         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
14740         return type of old_insns_match_p.
14741         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
14742         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
14743         flow_find_cross_jump.
14744         * basic-block.h (enum replace_direction): New type.
14745         (flow_find_cross_jump): Add parameter to declaration.
14746
14747 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
14748
14749         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
14750         (AVXMODEDCVTPS2DQ): Ditto.
14751         (VEC_FLOAT_MODE): Ditto.
14752         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
14753         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14754         (<any_logic:code><mode>3): Use VF mode iterator.
14755         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
14756         Use VF mode iterator.
14757         (copysign<mode>3): Use VF mode iterator.
14758         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
14759         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14760         (*<any_logic:code><MODEF:mode>3): Merge with
14761         *avx_<any_logic:code><MODEF:mode>3.
14762         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
14763         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
14764         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
14765         (avx_cvtdq2ps<avxmodesuffix>): Remove.
14766         (sse2_cvtdq2ps): Use %v modifier.
14767         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
14768         (avx_cvtps2dq<avxmodesuffix>): Remove.
14769         (sse2_cvtps2dq): Use %v modifier.
14770         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
14771         (avx_cvttps2dq<avxmodesuffix>): Remove.
14772         (sse2_cvttps2dq): Use %v modifier.
14773         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
14774         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
14775         (sse2_cvtsd2siq): Fix insn template.
14776         (sse2_cvtsd2siq_2): Ditto.
14777         (sse2_cvttsd2siq): Ditto.
14778         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
14779         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
14780
14781 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
14782
14783         * gcov-io.c: Use GCC Runtime Library Exception.
14784
14785 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
14786
14787         PR debug/48466
14788         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
14789         as base_reg whatever register reg has been eliminated to, instead
14790         of hardcoding STACK_POINTER_REGNUM.
14791
14792 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
14793
14794         * doc/tm.texi.in: Document C target hooks as separate from general
14795         target hooks.
14796         * doc/tm.texi: Regenerate.
14797         * genhooks.c (struct hook_desc): Add docname field.
14798         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
14799         docname field.
14800         (hook_array): Include c-target.def.
14801         (emit_documentation): Use docname field in output.
14802         (emit_init_macros): Take docname argument.  Only emit definitions
14803         for hooks matching docname.
14804         (main): Expect additional arguments in all cases.  Pass argument
14805         to emit_init_macros.
14806         * target.def: Move initial macro definitions and comments to
14807         target-hooks-macros.h.
14808         (gcc_targetcm): Move to c-family/c-target.def.
14809         * target.h (targetcm): Move declaration to c-family/c-target.h.
14810         * targhooks.c (default_handle_c_option): Move to
14811         c-family/c-opts.c.
14812         * targhooks.h (default_handle_c_option): Move declaration to
14813         c-family/c-common.h.
14814         * target-hooks-macros.h: New file.
14815         * config.gcc (target_has_targetcm): Define and use to add to
14816         c_target_objs and cxx_target_objs.
14817         * config/default-c.c: New file.
14818         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
14819         of target.h and target-def.h.
14820         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
14821         (darwin_objc_construct_string, darwin_cfstring_ref_p,
14822         darwin_check_cfstring_format_arg): Make static.
14823         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14824         TARGET_STRING_OBJECT_REF_TYPE_P,
14825         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
14826         * config/darwin-protos.h (darwin_objc_construct_string,
14827         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
14828         declare.
14829         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14830         TARGET_STRING_OBJECT_REF_TYPE_P,
14831         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
14832         * config/t-darwin (darwin-c.o): Update dependencies.
14833         * system.h (TARGET_HAS_TARGETCM): Poison.
14834         * Makefile.in (TARGET_H): Update.
14835         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
14836         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
14837         (default-c.o): New target.
14838         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
14839         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
14840         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
14841         c-target.def.
14842         (build/genhooks.o): Update dependencies.
14843
14844 2011-04-06  Richard Guenther  <rguenther@suse.de>
14845
14846         * ipa-inline.c (enum inlining_mode): Remove.
14847         (cgraph_flatten): Use some other token.
14848         (cgraph_edge_early_inlinable_p): New function, split out from ...
14849         (cgraph_perform_always_inlining): New function, split out from ...
14850         (cgraph_decide_inlining_incrementally): ... here.
14851         (cgraph_mark_inline_edge): Adjust.
14852         (cgraph_early_inlining): Re-structure.
14853         (pass_early_inline): Require SSA form.
14854
14855 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
14856             Julian Brown  <julian@codesourcery.com>
14857             Mark Shinwell  <shinwell@codesourcery.com>
14858
14859         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
14860         LO_REGS only for Thumb-1.
14861         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
14862         be used in short instructions when optimising for size on Thumb-2.
14863
14864 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
14865
14866         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
14867         associated with user returns to be preserved.
14868
14869 2011-04-06  Tristan Gingold  <gingold@adacore.com>
14870
14871         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
14872         symbol_queue_size, DBXOUT_DECR_NESTING,
14873         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
14874         if XCOFF_DEBUGGING_INFO.
14875
14876 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
14877
14878         * config/i386/i386.md (attribute isa): New.
14879         (attribute enabled): New.
14880         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
14881         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
14882         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
14883         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
14884         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
14885         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14886         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
14887         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
14888
14889         * config/i386/sse.md (VF): New mode iterator.
14890         (VF1): Ditto.
14891         (VF2): Ditto.
14892         (VF_128): Ditto.
14893         (SSEMODEF4): Remove.
14894         (attribute sse): Handle V8SF and V4DF modes.
14895         (<absneg:code><mode>2): Use VF mode iterator.
14896         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
14897         mode iterator.
14898         (<plusminus_insn><mode>3): Use VF mode iterator.
14899         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14900         Use VF mode iterator.
14901         (<sse>_vm<plusminus_insn><mode>3): Merge with
14902         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
14903         (mul<mode>3): Use VF mode iterator.
14904         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
14905         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
14906         mode iterator.
14907         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
14908         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
14909         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
14910         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
14911         mode iterator.
14912         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
14913         Use VF1 mode iterator.
14914         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
14915         (sqrt<VF2:mode>2): New expander.
14916         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
14917         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
14918         and sqrtv2df2.  Use VF mode iterator.
14919         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
14920         mode iterator.
14921         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
14922         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
14923         Use VF1 mode iterator.
14924         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
14925         (<smaxmin:code><mode>3): Use VF mode iterator.
14926         (*<smaxmin:code><mode>3_finite): Merge with
14927         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
14928         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14929         (<sse>_vm<smaxmin:code><mode>2): Merge with
14930         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
14931         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
14932         mode iterator.
14933         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
14934         mode iterator.
14935         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
14936         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
14937         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
14938         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
14939         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
14940         VF mode iterator.
14941         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
14942         Use VF_128 mode iterator.
14943         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
14944         mode iterator.
14945         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
14946         VF_128 mode iterator.
14947         (vcond<mode>): Use VF mode iterator.
14948         * config/i386/predicates.md (sse_comparison_operator): Merge with
14949         avx_comparison_float_operator.  Do not declare as special_predicate.
14950         * config/i386/i386.c (struct builtin_description): Update for renamed
14951         compare patterns.
14952         (ix86_expand_args_builtin): Ditto.
14953         (ix86_expand_sse_compare_mask): Ditto.
14954
14955 2011-04-06  Richard Guenther  <rguenther@suse.de>
14956
14957         * tree-inline.c (estimate_num_insns): For calls simply account
14958         for all passed arguments and a used return value.
14959
14960 2011-04-06  Richard Guenther  <rguenther@suse.de>
14961
14962         PR tree-optimization/47663
14963         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
14964         call_stmt_time fields.
14965         (cgraph_edge_inlinable_p): Declare.
14966         (cgraph_edge_recursive_p): New inline function.
14967         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
14968         (cgraph_clone_edge): Copy it.
14969         * ipa-inline.c (cgraph_estimate_edge_time): New function.
14970         Account for call stmt time.
14971         (cgraph_estimate_time_after_inlining): Take edge argument.
14972         (cgraph_estimate_edge_growth): Account call stmt size.
14973         (cgraph_estimate_size_after_inlining): Take edge argument.
14974         (cgraph_mark_inline_edge): Adjust.
14975         (cgraph_check_inline_limits): Likewise.
14976         (cgraph_recursive_inlining_p): Remove.
14977         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
14978         (cgraph_decide_recursive_inlining): Take edge argument and
14979         adjust.
14980         (cgraph_decide_inlining_of_small_functions): Do not avoid
14981         diags for recursive inlining here.
14982         (cgraph_flatten): Adjust.
14983         (cgraph_decide_inlining_incrementally): Likewise.
14984         (estimate_function_body_sizes): Remove call cost handling.
14985         (compute_inline_parameters): Initialize caller edge call costs.
14986         (cgraph_estimate_edge_growth): New function.
14987         (cgraph_estimate_growth): Use it.
14988         (cgraph_edge_badness): Likewise.
14989         (cgraph_check_inline_limits): Take an edge argument.
14990         (cgraph_decide_inlining_of_small_functions): Adjust.
14991         (cgraph_decide_inlining): Likewise.
14992         * tree-inline.c (estimate_num_insns): Only account for call
14993         return value if it is used.
14994         (expand_call_inline): Avoid diagnostics on recursive inline
14995         functions here.
14996         * lto-cgraph.c (lto_output_edge): Output edge call costs.
14997         (input_edge): Input edge call costs.
14998
14999 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15000
15001         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
15002
15003 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
15004
15005         * doc/invoke.texi (Spec Files): Fix typo.
15006
15007 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
15008
15009         * profile.c (branch_prob): Move declaration of local variable.  Remove
15010         obsolete ??? comment.  Expand the location explicitly instead of using
15011         the LOCATION_FILE and LOCATION_LINE macros.
15012
15013 2011-04-06  Wei Guozhi  <carrot@google.com>
15014
15015         PR target/47855
15016         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
15017         (arm_cond_branch): Likewise.
15018         (arm_cond_branch_reversed): Likewise.
15019         (arm_jump): Likewise.
15020         (push_multi): Likewise.
15021         * config/arm/constraints.md (Py): New constraint.
15022
15023 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15024
15025         PR bootstrap/48471
15026         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
15027         Move these...
15028         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
15029         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
15030         #ifdef DBX_DEBUGGING_INFO.
15031
15032 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
15033
15034         PR bootstrap/48403
15035         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
15036         if old and new states differ.
15037
15038 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
15039
15040         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
15041         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
15042         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
15043         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
15044         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
15045         mcfv4e): Use Alias.
15046         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
15047         ColdFire options to -mcpu= options.
15048
15049 2011-04-05  Jeff Law  <law@redhat.com>
15050
15051         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
15052         check if BB is a successor of LOOP->header and return
15053         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
15054
15055 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
15056
15057         * cprop.c (struct reg_use): Remove.
15058         (reg_use_table): Make an array of RTX.
15059         (find_used_regs, constprop_register, local_cprop_pass,
15060         bypass_block): Simplify users of reg_use_table.
15061         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
15062         on one of the uses found by find_used_regs.
15063
15064 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15065
15066         PR bootstrap/48469
15067         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
15068         declaration.
15069
15070 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15071
15072         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
15073         as an rtx.
15074         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
15075
15076 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
15077
15078         PR middle-end/48441
15079         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
15080
15081 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15082
15083         * combine.c: Include obstack.h.
15084         (struct insn_link): Define.
15085         (uid_log_links): Adjust type.
15086         (FOR_EACH_LOG_LINK): New macro.
15087         (insn_link_obstack): Declare.
15088         (alloc_insn_link): Define.
15089         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
15090         type of link variables.
15091         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
15092         (try_combine, record_promoted_values, distribute_notes): Likewise.
15093         (distribute_links): Likewise.  Tweak prototype.
15094         (clear_log_links): Delete.
15095         (adjust_for_new_dest): Call alloc_insn_link.
15096         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
15097
15098 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15099
15100         * gcse.c (modify_mem_list): Convert to an array of VECs.
15101         (canon_modify_mem_list, compute_transp): Tweak formatting.
15102         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
15103         (load_killed_in_block_p): Likewise.
15104         (record_last_mem_set_info): Likewise.
15105         (clear_modify_mem_tables): Likewise.
15106
15107 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15108
15109         PR middle-end/48461
15110         * function.c (emit_use_return_register_into_block): Only define if
15111         HAVE_return.
15112
15113 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
15114
15115         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
15116
15117 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
15118
15119         * config/rx/rx-opts.h: New.
15120         * config/rx/rx.c (rx_cpu_type): Remove.
15121         (rx_handle_option): Don't assert that global structures are in
15122         use.  Access variables via opts pointer.  Defer most handling of
15123         OPT_mint_register_.  Use error_at.
15124         (rx_option_override): Handle deferred OPT_mint_register_ here.
15125         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
15126         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
15127         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
15128         (rx_cpu_types): New Enum and EnumValue entries.
15129         (mint-register=): Use Defer and use Var accordingly.
15130
15131 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15132
15133         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
15134         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
15135         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
15136         Move these...
15137         (debug_free_queue, debug_nesting, symbol_queue_index):
15138         ...and these...
15139         * dbxout.c: ...to here.  Make static.
15140
15141 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15142
15143         * gcse.c (modify_pair): Define.  Define a VEC of it.
15144         (canon_modify_mem_list): Convert to an array of VECs.
15145         (free_insn_expr_list_list): Delete.
15146         (clear_modify_mem_tables): Call VEC_free instead.
15147         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
15148         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
15149         (canon_list_insert, compute_transp): Likewise.
15150
15151 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15152
15153         PR target/43920
15154         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
15155         for size.
15156
15157 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15158
15159         PR target/43920
15160         * function.c (emit_use_return_register_into_block): New function.
15161         (thread_prologue_and_epilogue_insns): Use
15162         emit_use_return_register_into_block.
15163
15164 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15165
15166         PR target/43920
15167         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
15168         insn.
15169
15170 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15171
15172         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
15173
15174 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
15175
15176         * config/arm/arm.md (define_constants for unspec): Replace with
15177         define_c_enum.
15178         (define_constants for unspecv): Replace with define_c_enum.
15179         * config/arm/neon.md (define_constants for unspec): Replace with
15180         define_c_enum.
15181
15182 2011-04-04  Richard Henderson  <rth@redhat.com>
15183
15184         PR bootstrap/48400
15185         * dwarf2out.c (output_line_info): Always emit line info from
15186         at least one section.
15187         (dwarf2out_init): Create text_section_line_info here ...
15188         (set_cur_line_info_table): ... not here.
15189
15190 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
15191
15192         PR target/48380
15193         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
15194         not called.
15195
15196         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
15197
15198 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
15199
15200         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
15201         (expr_equiv_p): Remove.
15202         (insert_set_in_table): Look at <dest, src> pair instead of expr.
15203         (hash_scan_set): Update call to insert_set_in_table.
15204         (dump_hash_table): Dump <dest, src> pair.
15205         (lookup_set): Simplify.  Lookup <dest, src> pair.
15206         (compute_transp): Remove, fold heavily simplified code into...
15207         (compute_local_properties): ...here.  Expect COMP and TRANSP
15208         unconditionally.
15209         (find_avail_set): Take set directly from struct expr.
15210         (find_bypass-set): Likewise.
15211         (bypass_block): Likewise.
15212         (cprop_insn): Likewise.  Remove redundant INSN_P test.
15213
15214         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
15215         checks on form of COND from find_implicit_sets to here.
15216         (find_implicit_sets): Cleanup control flow. Split critical edges
15217         if it exposes implicit sets.  Allocate/resize implicit_sets as
15218         necessary.
15219         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
15220         changed something.  Run df_analyze after find_implicit_sets if any
15221         edges were split.  Do not allocate implicit_sets here.
15222
15223         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
15224         (gcse_obstack): Renamed to cprop_obstack.
15225         (GNEW, GNEWVEC, GNEWVAR): Remove.
15226         (gmalloc): Remove.
15227         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
15228         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
15229         (gcse_alloc): Likewise, and rename to cprop_alloc.
15230         (alloc_gcse_men, free_gcse_mem): Remove.
15231         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
15232         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
15233         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
15234
15235         * cprop.c (oprs_not_set_p): Remove.
15236         (mark_set, mark_clobber): Remove.
15237         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
15238         (reg_not_set_p): New function.
15239         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
15240         (cprop_insn): Likewise.
15241         (cprop_jump): Use FOR_EACH_EDGE.
15242
15243 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
15244
15245         PR bootstrap/48403
15246         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
15247         (rank_for_schedule): Use scheduled_insns vector instead of
15248         last_scheduled_insn.
15249         (ok_for_early_queue_removal): Likewise.
15250         (queue_to_ready): Search forward in nonscheduled_insns_begin if
15251         we have a dbg_cnt.
15252         (choose_ready): Likewise.
15253         (commit_schedule): Use VEC_iterate.
15254         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
15255         a dbg_cnt, use it and ensure the first insn is in the ready list.
15256         (haifa_sched_init): Allocate scheduled_insns.
15257         (sched_extend_ready_list): Don't allocate it; reserve space.
15258         (haifa_sched_finish): Free it.
15259
15260 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
15261
15262         * optc-gen.awk: Always remove type from Variable entry before
15263         recording in var_seen.
15264
15265 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
15266
15267         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
15268         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
15269         call to tidy_fallthru_edges.
15270
15271 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
15272
15273         * doc/options.texi (ToLower): Document.
15274         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
15275         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
15276         * opts.h (cl_option): Add cl_tolower field.
15277         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
15278         arguments with lowercase strings.
15279         * config/rx/rx.opt (mcpu=): Add ToLower.
15280         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
15281         argument.
15282
15283 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
15284
15285         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
15286
15287 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
15288
15289         * config/vax/vax.c: Include reload.h.
15290
15291 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
15292
15293         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
15294         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
15295         (sparc_preferred_reload_class): New function.
15296
15297 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
15298
15299         PR debug/48401
15300         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15301         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
15302
15303 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
15304
15305         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
15306         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
15307
15308 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
15309
15310         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
15311         (ASM_OUTPUT_ALIGNED_BSS): Define.
15312
15313 2011-04-03  Michael Matz  <matz@suse.de>
15314
15315         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
15316         and next_slot members.
15317         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
15318         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
15319         (lto_streamer_cache_append): Declare.
15320         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
15321         unsigned index, remove offset parameter, ensure that we append
15322         or update existing entries.
15323         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
15324         parameter, update next_slot for append.
15325         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
15326         parameter.
15327         (lto_streamer_cache_insert_at): Likewise.
15328         (lto_streamer_cache_append): New function.
15329         (lto_streamer_cache_lookup): Use unsigned index.
15330         (lto_streamer_cache_get): Likewise.
15331         (lto_record_common_node): Don't test tree_node_can_be_shared.
15332         (preload_common_node): Adjust call to lto_streamer_cache_insert.
15333         (lto_streamer_cache_delete): Don't free offsets member.
15334         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
15335         (lto_output_string_with_length): Use lto_output_data_stream.
15336         (lto_output_tree_header): Remove ix parameter, don't write it.
15337         (lto_output_builtin_tree): Likewise.
15338         (lto_write_tree): Adjust callers to above, don't track and write
15339         offset, write unsigned index.
15340         (output_unreferenced_globals): Don't emit all global vars.
15341         (write_global_references): Use unsigned indices.
15342         (lto_output_decl_state_refs): Likewise.
15343         (write_symbol): Likewise.
15344         * lto-streamer-in.c (lto_input_chain): Move earlier.
15345         (input_function): Use unsigned index.
15346         (input_alias_pairs): Don't read and then ignore all global vars.
15347         (lto_materialize_tree): Remove ix_p parameter, don't read index,
15348         don't pass it back, use lto_streamer_cache_append.
15349         (lto_register_var_decl_in_symtab): Use unsigned index.
15350         (lto_register_function_decl_in_symtab): Likewise.
15351         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
15352         index.
15353         (lto_get_builtin_tree): Don't read index, use
15354         lto_streamer_cache_append.
15355         (lto_read_tree): Adjust call to lto_materialize_tree.
15356
15357         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
15358         don't use function calls in arguments to MIN.
15359
15360         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
15361         twice.
15362
15363         * gimple.c (gimple_type_leader_entry): Mark deletable.
15364
15365 2011-04-03  Alan Modra  <amodra@gmail.com>
15366
15367         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
15368
15369 2011-04-03  Michael Matz  <matz@suse.de>
15370
15371         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
15372         an integer.
15373         * tree.h (tree_decl_non_common.vindex): Adjust comment.
15374
15375 2011-04-03  Michael Matz  <matz@suse.de>
15376
15377         * cgraphbuild.c (record_reference): Canonicalize constructor values.
15378         * gimple-fold.c (canonicalize_constructor_val): Accept being called
15379         without function context.
15380         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
15381         current_function_decl and cfun.
15382
15383 2011-04-03  Michael Matz  <matz@suse.de>
15384
15385         * tree.c (decl_init_priority_insert): Don't create entry for
15386         default priority.
15387         (decl_fini_priority_insert): Ditto.
15388         (fields_compatible_p, find_compatible_field): Remove.
15389         * tree.h (fields_compatible_p, find_compatible_field): Remove.
15390         * gimple.c (gimple_compare_field_offset): Adjust block comment.
15391
15392 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
15393
15394         * combine.c (try_combine): Remove useless local variable.
15395
15396 2011-04-03  Richard Guenther  <rguenther@suse.de>
15397             Ira Rosen  <ira.rosen@linaro.org>
15398
15399         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
15400         non-variable offsets and compare the remaining bases of the two
15401         accesses instead of looking for exact same data-ref.
15402
15403 2011-04-02  Kai Tietz  <ktietz@redhat.com>
15404
15405         PR target/48416
15406         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
15407
15408         * i386.c (ix86_is_msabi_thiscall): New helper function.
15409         (ix86_is_type_thiscall): New helper function.
15410         (ix86_comp_type_attributes): Handle thiscall for method-functions
15411         special.
15412         (init_cumulative_args): Likewise.
15413         (find_drap_reg): Likewise.
15414         (ix86_static_chain): Likewise.
15415         (x86_this_parameter): Likewise.
15416         (x86_output_mi_thunk): Likewise.
15417
15418 2011-04-01  Olivier Hainque  <hainque@adacore.com>
15419             Nicolas Setton  <setton@adacore.com>
15420             Eric Botcazou  <ebotcazou@adacore.com>
15421
15422         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
15423         (add_gnat_descriptive_type_attribute): New function.
15424         (gen_array_type_die): Call it.
15425         (gen_enumeration_type_die): Likewise.
15426         (gen_struct_or_union_type_die): Likewise.
15427         (modified_type_die): Likewise.
15428         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
15429         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
15430         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
15431
15432 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
15433
15434         PR bootstrap/48148
15435         * dwarf2out.c (resolve_addr): Don't call force_decl_die
15436         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
15437
15438         Revert:
15439         2011-03-17  Richard Guenther  <rguenther@suse.de>
15440
15441         PR bootstrap/48148
15442         * lto-cgraph.c (input_overwrite_node): Clear the abstract
15443         origin for decls in other ltrans units.
15444         (input_varpool_node): Likewise.
15445
15446 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
15447
15448         PR middle-end/48335
15449         * expr.c (expand_assignment): Handle all possibilities
15450         if TO_RTX is CONCAT.
15451         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
15452         (store_split_bit_field): If SUBREG_REG (op0) or
15453         op0 itself has smaller mode than word, return it
15454         for offset 0 and const0_rtx for out-of-bounds stores.
15455         If word is const0_rtx, skip it.
15456
15457 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
15458
15459         * config/h8300/h8300.c (print_operand_address): Rename to...
15460         (h8300_print_operand_address): ...this. Make static. Adjust comments.
15461         Call h8300_print_operand and h8300_print_operand_address instead of
15462         print_operand and print_operand_address. Declare.
15463         (print_operand): Renake to...
15464         (h8300_print_operand): ...this. Make static. Adjust comments.
15465         Call h8300_print_operand instead of print_operand. Declare.
15466         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
15467         (h8300_register_move_cost): Likewise.
15468         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
15469         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
15470         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
15471         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
15472         * config/h8300/h8300-protos.h (print_operand): Delete.
15473         (print_operand_address): Delete.
15474
15475 2011-04-01  Richard Henderson  <rth@redhat.com>
15476
15477         PR 48400
15478         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
15479         in strict mode before dwarf4.  Re-order tests to early out
15480         before switching sections.
15481
15482 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
15483
15484         * config/h8300/constraints.md: New file.
15485         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
15486         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
15487         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
15488         * config/h8300/predicates.md (bit_operand): Likewise.
15489         (incdec_operand): Use satisfies_constraint_M and
15490         satisfies_constraint_O.  Don't use C code block.
15491         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
15492         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
15493         (compute_mov_length): Use satisfies_constraint_G.
15494         (fix_bit_operand): Use satisfies_constraint_U.
15495         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
15496         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
15497         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
15498         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
15499         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
15500         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
15501         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15502         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
15503         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
15504         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
15505         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
15506         (EXTRA_MEMORY_CONSTRAINT): Delete.
15507
15508 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
15509             Michael Meissner  <meissner@linux.vnet.ibm.com>
15510
15511         PR target/48262
15512         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
15513         operands, as per the specifications.
15514
15515         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
15516         (vec_extract_evenv4sf): Ditto.
15517         (vec_extract_evenv8hi): Ditto.
15518         (vec_extract_evenv16qi): Ditto.
15519         (vec_extract_oddv4si): Ditto.
15520
15521 2011-03-31  Mark Wielaard  <mjw@redhat.com>
15522
15523         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
15524         high_pc attribute if the CU has no associated code. Only output
15525         DW_AT_entry_pc for CU if not generating strict dwarf and
15526         dwarf_version < 4.
15527
15528 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
15529
15530         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
15531         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
15532         out of ...
15533         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
15534         * final.c (final_start_function): Call the new function rather
15535         than using a NULL argument for dwarf2out_frame_debug.
15536
15537         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
15538         that contains the prologue.
15539
15540         * haifa-sched.c (queue_insn): New arg REASON.  All callers
15541         changed.  Print it in debugging output.
15542
15543         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
15544
15545         * sched-ebb.c (begin_schedule_ready): Remove second argument.
15546         Split most of the code into...
15547         (begin_move_insn): ... here.  New function.
15548         (ebb_sched_info): Add a pointer to it.
15549         * haifa-sched.c (scheduled_insns): New static variable.
15550         (sched_extend_ready_list): Allocate it.
15551         (schedule_block): Use it to record the order of scheduled insns.
15552         Perform RTL changes to move insns only after all scheduling
15553         decisions have been made.
15554         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
15555         begin_move_insn field.
15556         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
15557         * sched-int.h (struct haifa_sched_info): Remove second argument
15558         from begin_schedule_ready hook.  Add new member begin_move_insn.
15559         * sched-rgn.c (begin_schedule_ready): Remove second argument.
15560         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
15561
15562         * haifa-sched.c (prune_ready_list): New function, broken out of
15563         schedule_block.
15564         (schedule_block): Use it.
15565
15566 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15567
15568         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
15569
15570 2011-04-01  Kai Tietz  <ktietz@redhat.com>
15571
15572         * config.gcc (*-*-mingw*): Allow as option the
15573         posix threading model.
15574         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
15575         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
15576         definition.
15577         (CPP_SPEC): Add pthread/no-pthread handling.
15578         (LIB_SPEC): Likewise.
15579         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
15580         (LIB_SPEC): Likewise.
15581         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
15582         flag to pass -pthread option for shared libgcc build.
15583         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
15584         for shared libgcc build.
15585         * config/i386/t-mingw-pthread: New file.
15586         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
15587         New define to enable use of library pthread by default.
15588         * config/i386/mingw.opt (pthread): New driver option.
15589         (no-pthread): New driver option.
15590         * config/i386/cygming.opt: Make sure trailing empty line is retained.
15591         * config/i386/mingw-w64.opt: Likewise.
15592
15593 2011-04-01  Gary Funck  <gary@intrepid.com>
15594
15595         * c-decl.c (grokdeclarator): Fix formatting.
15596
15597 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
15598
15599         * expr.c (emit_block_move_via_movmem): Use n_generator_args
15600         instead of n_operands.
15601         (set_storage_via_setmem): Likewise.
15602         * optabs.c (maybe_gen_insn): Likewise.
15603         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
15604         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
15605         (mips_expand_builtin_direct): Likewise.
15606         * config/spu/spu.c (expand_builtin_args): Likewise.
15607
15608 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
15609
15610         * recog.h (insn_data_d): Add n_generator_args.
15611         * genoutput.c (data): Likewise.
15612         (output_insn_data): Print it.
15613         (max_opno, num_dups): Delete.
15614         (scan_operands): Just fill in "d->operand[...]".
15615         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
15616
15617 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
15618
15619         * gensupport.h (pattern_stats): New structure.
15620         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
15621         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
15622         (max_operand_1, max_operand_vec): Delete.
15623         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
15624
15625 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
15626
15627         * emit-rtl.c (emit_pattern_after_setloc): New function.
15628         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
15629         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
15630         (emit_pattern_after): New function.
15631         (emit_insn_after, emit_jump_insn_after): Call it.
15632         (emit_call_insn_after, emit_debug_insn_after): Likewise.
15633         (emit_pattern_before_setloc): New function.
15634         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
15635         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
15636         Likewise.
15637         (emit_pattern_before): New function.
15638         (emit_insn_before, emit_jump_insn_before): Call it.
15639         (emit_call_insn_before, emit_debug_insn_before): Likewise.
15640
15641 2011-03-31  Richard Henderson  <rth@redhat.com>
15642
15643         * dwarf2out.c (dw_separate_line_info_ref): Remove.
15644         (dw_separate_line_info_entry): Remove.
15645         (enum dw_line_info_opcode): New.
15646         (dw_line_info_entry): Use it.
15647         (dw_line_info_table, dw_line_info_table_p): New.
15648         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
15649         (line_info_table, line_info_label_num): Remove.
15650         (line_info_table_in_use): Remove.
15651         (separate_line_info_table): Remove.
15652         (separate_line_info_table_allocated): Remove.
15653         (separate_line_info_table_in_use): Remove.
15654         (LINE_INFO_TABLE_INCREMENT): Remove.
15655         (line_info_label_num): New.
15656         (cur_line_info_table): New.
15657         (text_section_line_info, cold_text_section_line_info): New.
15658         (separate_line_info): New.
15659         (SEPARATE_LINE_CODE_LABEL): Remove.
15660         (print_dwarf_line_table): Remove.
15661         (debug_dwarf): Don't dump it.
15662         (output_one_line_info_table): New.
15663         (output_line_info): Use it.
15664         (new_line_info_table): New.
15665         (set_cur_line_info_table): New.
15666         (dwarf2out_switch_text_section): Use it.
15667         (dwarf2out_begin_function): Likewise.
15668         (push_dw_line_info_entry): New.
15669         (dwarf2out_source_line): Rewrite for new line info tables.
15670         (dwarf2out_init): Remove dead initailizations.
15671
15672 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
15673
15674         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
15675         various flags.
15676         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
15677         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
15678         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
15679         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
15680         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
15681         * opt-functions.awk (flag_init, switch_bit_fields): New.
15682         (switch_flags): Don't handle flags moved to bit-fields.  Don't
15683         generate CL_MISSING_OK or CL_SAVE.
15684         * optc-gen.awk: Update to generate bit-field output as well as
15685         flags field.
15686         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
15687         bit-field instead of CL_REJECT_DRIVER flag.
15688         * opts-common.c (generate_canonical_option,
15689         decode_cmdline_option): Use bit-fields instead of CL_* flags.
15690         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
15691         instead of CL_REJECT_NEGATIVE flag.
15692         * toplev.c (print_switch_values): Use cl_report bit-field instead
15693         of CL_REPORT flag.
15694
15695 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
15696
15697         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
15698         a zero minimum index only if it is redundant.
15699
15700 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
15701
15702         PR rtl-optimization/48381
15703         * ira-color.c (assign_hard_reg): Use hard reg set intersection
15704         instead of ira_class_hard_reg_index for calculating conflicting
15705         hard registers.
15706
15707 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
15708
15709         * cprop.c: Clean up hash table building.
15710         (reg_avail_info): Remove.
15711         (oprs_available_p): Remove.
15712         (record_last_reg_set_info): Remove.
15713         (record_last_set_info): Remove.
15714         (reg_available_p): New function.
15715         (gcse_constant_p): Do not treat unfolded conditions as constants.
15716         (make_set_regs_unavailable): New function.
15717         (hash_scan_set): Simplify with new reg_available_p.
15718         (compute_hash_table_work): Traverse insns stream only once.
15719         Do not compute reg_avail_info. Traverse insns in reverse order.
15720         Record implicit sets after recording explicit sets from the block.
15721
15722 2011-03-31  Michael Matz  <matz@suse.de>
15723
15724         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
15725
15726 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
15727
15728         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
15729         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
15730         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15731         (h8300_mode_dependent_address_p): New function.
15732         (h8300_get_index): Make static.
15733
15734 2011-03-31  Jeff Law  <law@redhat.com>
15735
15736         * reload1.c (elimination_effects): Fix typo in recent change.
15737
15738         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
15739         typo potentially leading to null pointer dereference.
15740
15741         * caller-save.c (new_saved_hard_reg): Eliminate return value.
15742         (setup_save_areas): Corresponding changes to avoid useless
15743         assignments.
15744
15745         * jump.c (reversed_comparison_code_parts): Avoid successive return
15746         statements when REVERSE_CONDITION is defined.
15747
15748         * expr.c (expand_assignment): Avoid useless assignments.
15749         (expand_expr_real_1): Likewise.
15750         (expand_expr_real_2): Avoid useless statements.
15751
15752         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
15753
15754         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15755
15756         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
15757         statements.
15758
15759         * stmt.c (expand_expr_stmt): Avoid useless assignment.
15760
15761 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
15762
15763         PR target/47109
15764         * doc/tm.texi.in (TARGET_VERSION): Remove.
15765         * doc/tm.texi: Regenerate.
15766         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
15767         * collect2.c (main): Don't use TARGET_VERSION.
15768         * mips-tdump.c (main): Don't use TARGET_VERSION.
15769         * mips-tfile.c (main): Don't use TARGET_VERSION.
15770         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
15771         * config/rs6000/vxworksae.h: Remove.
15772         * config/alpha/alpha.h (TARGET_VERSION): Remove.
15773         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
15774         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
15775         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
15776         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15777         * config/arm/arm.h (TARGET_VERSION): Remove.
15778         * config/arm/coff.h (TARGET_VERSION): Remove.
15779         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
15780         * config/arm/elf.h (TARGET_VERSION): Remove.
15781         * config/arm/freebsd.h (TARGET_VERSION): Remove.
15782         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
15783         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
15784         * config/arm/pe.h (TARGET_VERSION): Remove.
15785         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
15786         * config/arm/semi.h (TARGET_VERSION): Remove.
15787         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
15788         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
15789         * config/arm/vxworks.h (TARGET_VERSION): Remove.
15790         * config/avr/avr.h (TARGET_VERSION): Remove.
15791         * config/bfin/bfin.h (TARGET_VERSION): Remove.
15792         * config/fr30/fr30.h (TARGET_VERSION): Remove.
15793         * config/frv/frv.h (TARGET_VERSION): Remove.
15794         * config/h8300/h8300.h (TARGET_VERSION): Remove.
15795         * config/i386/cygwin.h (TARGET_VERSION): Remove.
15796         * config/i386/darwin.h (TARGET_VERSION): Remove.
15797         * config/i386/darwin64.h (TARGET_VERSION): Remove.
15798         * config/i386/djgpp.h (TARGET_VERSION): Remove.
15799         * config/i386/freebsd.h (TARGET_VERSION): Remove.
15800         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
15801         * config/i386/gnu.h (TARGET_VERSION): Remove.
15802         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
15803         * config/i386/i386elf.h (TARGET_VERSION): Remove.
15804         * config/i386/linux.h (TARGET_VERSION): Remove.
15805         * config/i386/linux64.h (TARGET_VERSION): Remove.
15806         * config/i386/lynx.h (TARGET_VERSION): Remove.
15807         * config/i386/mingw32.h (TARGET_VERSION): Remove.
15808         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
15809         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
15810         * config/i386/netware.h (TARGET_VERSION): Remove.
15811         * config/i386/nto.h (TARGET_VERSION): Remove.
15812         * config/i386/openbsd.h (TARGET_VERSION): Remove.
15813         * config/i386/vxworks.h (TARGET_VERSION): Remove.
15814         * config/ia64/elf.h (TARGET_VERSION): Remove.
15815         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
15816         * config/ia64/hpux.h (TARGET_VERSION): Remove.
15817         * config/ia64/linux.h (TARGET_VERSION): Remove.
15818         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15819         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
15820         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15821         * config/lm32/lm32.h (TARGET_VERSION): Remove.
15822         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
15823         * config/m32c/m32c.h (TARGET_VERSION): Remove.
15824         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
15825         * config/m32r/m32r.h (TARGET_VERSION): Remove.
15826         * config/m68k/linux.h (TARGET_VERSION): Remove.
15827         * config/m68k/m68k.h (TARGET_VERSION): Remove.
15828         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
15829         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
15830         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
15831         * config/mep/mep.h (TARGET_VERSION): Remove.
15832         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
15833         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15834         * config/mips/iris6.h (MACHINE_TYPE): Remove.
15835         * config/mips/linux.h (TARGET_VERSION): Remove.
15836         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
15837         * config/mips/vxworks.h (TARGET_VERSION): Remove.
15838         * config/mmix/mmix.h (TARGET_VERSION): Remove.
15839         * config/mn10300/linux.h (TARGET_VERSION): Remove.
15840         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
15841         * config/pa/pa.h (TARGET_VERSION): Remove.
15842         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
15843         * config/picochip/picochip.h (TARGET_VERSION): Remove.
15844         * config/rs6000/aix.h (TARGET_VERSION): Remove.
15845         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
15846         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
15847         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
15848         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
15849         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
15850         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
15851         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
15852         * config/rs6000/linux.h (TARGET_VERSION): Remove.
15853         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
15854         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
15855         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
15856         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
15857         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
15858         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
15859         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
15860         * config/s390/linux.h (TARGET_VERSION): Remove.
15861         * config/s390/s390.h (TARGET_VERSION): Remove.
15862         * config/s390/tpf.h (TARGET_VERSION): Remove.
15863         * config/score/score.h (TARGET_VERSION): Remove.
15864         * config/sh/linux.h (TARGET_VERSION): Remove.
15865         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
15866         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
15867         * config/sh/sh.h (TARGET_VERSION): Remove.
15868         * config/sh/sh64.h (TARGET_VERSION): Remove.
15869         * config/sh/superh.h (TARGET_VERSION): Remove.
15870         * config/sh/vxworks.h (TARGET_VERSION): Remove.
15871         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
15872         * config/sparc/linux.h (TARGET_VERSION): Remove.
15873         * config/sparc/linux64.h (TARGET_VERSION): Remove.
15874         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
15875         TARGET_NAME32, TARGET_NAME): Remove.
15876         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
15877         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
15878         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
15879         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
15880         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
15881         * config/spu/spu.h (TARGET_VERSION): Remove.
15882         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
15883         * config/v850/v850.h (TARGET_VERSION): Remove.
15884         * config/vax/linux.h (TARGET_VERSION): Remove.
15885         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
15886         * config/xtensa/elf.h (TARGET_VERSION): Remove.
15887         * config/xtensa/linux.h (TARGET_VERSION): Remove.
15888
15889 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
15890
15891         PR target/48142
15892         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
15893         frame-related from frame-unrelated adjustments to the stack pointer.
15894
15895 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
15896
15897         * common.opt (fdebug-types-section): Move earlier.
15898         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
15899
15900 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
15901
15902         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
15903         var.
15904
15905 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
15906
15907         * tree.h (CASE_CHAIN): Define.
15908         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
15909         (gimple_redirect_edge_and_branch): Likewise.
15910
15911 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
15912
15913         PR middle-end/48367
15914         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
15915         calculation.
15916
15917 2011-03-30  Jeff Law  <law@redhat.com>
15918
15919         * PR bootstrap/48371
15920         * reload1.c (reload): Fix botch in last change.
15921
15922         * reload.h (struct reload): Fix typo introduced in last change.
15923
15924 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
15925
15926         * config/arm/arm.opt (mhard-float, msoft-float): Mark
15927         Undocumented.  Remove help text.
15928         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
15929         -mhard-float.
15930
15931 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
15932
15933         * doc/options.texi (NegativeAlias): Document.
15934         (Alias): Mention NegativeAlias.
15935         * opt-functions.awk: Handle NegativeAlias.
15936         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
15937         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
15938         * opts.h (CL_NEGATIVE_ALIAS): Define.
15939         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
15940         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
15941         OPT_mspe_.
15942         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
15943         Alias entries.
15944         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
15945         mno-spe and mno-isel instead of mspe=no and -misel=no.
15946
15947 2011-03-29  Mark Wielaard  <mjw@redhat.com>
15948
15949         * common.opt (fdebug-types-section): New flag.
15950         * doc/invoke.texi: Document new -fno-debug-types-section flag.
15951         * dwarf2out.c (use_debug_types): New define.
15952         (struct die_struct): Mark die_id with GTY desc use_debug_types.
15953         (print_die): Guard output of type unit signatures using
15954         use_debug_types.
15955         (build_abbrev_table): Replace assert of dwarf_version >= 4
15956         with assert on use_debug_types.
15957         (size_of_die): Likewise.
15958         (unmark_dies): Likewise.
15959         (value_format): Decide AT_ref_external form on use_debug_types.
15960         (output_die): Replace dwarf_version version check guard with
15961         use_debug_types where appropriate.
15962         (modified_type_die): Likewise.
15963         (gen_reference_type_die): Likewise.
15964         (dwarf2out_start_source_file): Likewise.
15965         (dwarf2out_end_source_file): Likewise.
15966         (prune_unused_types_walk_attribs): Likewise.
15967         (dwarf2out_finish): Likewise.
15968
15969 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
15970
15971         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
15972
15973 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
15974
15975         PR rtl-optimization/48332
15976         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
15977         mode of input operand N and modeN to its actual mode.
15978
15979 2011-03-30  Jeff Law  <law@redhat.com>
15980
15981         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
15982         define accessor macro.
15983         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
15984         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
15985         (reg_equiv_init): Likewise.
15986         (reg_equivs_size): New variable.
15987         (reg_equiv_init_size): Remove.
15988         (allocate_initial_values): Move prototype to here from....
15989         * integrate.h (allocate_initial_values): Remove prototype.
15990         * integrate.c: Include reload.h.
15991         (allocate_initial_values): Corresponding changes.
15992         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
15993         (fix_reg_equiv_init, no_equiv): Corresponding changes.
15994         (update_equiv_regs): Corresponding changes.
15995         (ira): Corresponding changes.
15996         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
15997         (push_secondary_reload): Corresponding changes.
15998         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
15999         (make_memloc, find_reloads_address): Corresponding changes.
16000         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
16001         (find_reloads_address_1): Corresponding changes.
16002         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
16003         (refers_to_regno_for_reload_p): Corresponding changes.
16004         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
16005         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
16006         * reload1.c: Include ggc.h.
16007         (grow_reg_equivs): New function.
16008         (replace_pseudos_in, reload): Corresponding changes.
16009         (calculate_needs_all_insns, alter_regs): Corresponding changes.
16010         (eliminate_regs_1, elimination_effects): Corresponding changes.
16011         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
16012         (delete_output_reload): Likewise.
16013         * caller-save.c (mark_referenced_regs): Corresponding changes.
16014         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
16015         * frv/predicates.md (frv_load_operand): Corresponding changes.
16016         * microblaze/microblaze.c (double_memory_operand): Corresponding
16017         changes.
16018         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
16019         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
16020         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
16021         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
16022         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
16023         changes.
16024         * pa/pa.c (emit_move_sequence): Corresponding changes.
16025         * vax/vax.c (nonindexed_address_p): Corresponding changes.
16026
16027 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
16028
16029         PR target/47551
16030         * config/arm/arm.c (coproc_secondary_reload_class): Handle
16031         structure modes.  Don't check neon_vector_mem_operand for
16032         vector or structure modes.
16033
16034 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
16035             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16036
16037         PR target/43590
16038         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
16039         operand 1 and reshuffle the operands to match.
16040         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
16041
16042 2011-03-30  Christian Schüler  <cschueler@gmx.de>
16043
16044         PR driver/48208
16045         * config/c.opt (F): Added 'Driver' to -F option.
16046
16047         PR driver/48260
16048         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
16049           handler function.
16050         * config/darwin.opt: Added '-arch' option.
16051
16052 2011-03-30  Nick Clifton  <nickc@redhat.com>
16053
16054         * config/rx/rx.md: Add peepholes and patterns to combine
16055         extending loads and simple arithmetic instructions.
16056         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
16057         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
16058         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
16059         modes to use pre-decrement and post-increment addressing.
16060         (rx_is_restricted_memory_address): Add range checking of REG+INT
16061         addresses.
16062         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
16063         (rx_memory_move_cost): Adjust cost of stores.
16064         (rx_adjust_insn_length): New function.
16065
16066 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
16067
16068         PR c/48305
16069         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
16070         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
16071         matching arg00/arg01 types.
16072
16073 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
16074
16075         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
16076         last_location to UNKNOWN_LOCATION.
16077
16078 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
16079
16080         PR target/48349
16081         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
16082         FLOAT_SSE_REGS.
16083
16084 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
16085             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16086
16087         PR bootstrap/48337
16088         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
16089         Init(PROCESSOR_V7).
16090         (sparc_cpu): Likewise.
16091         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
16092         PROCESSOR_V7.
16093
16094 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
16095
16096         PR target/48336
16097         PR middle-end/48342
16098         PR rtl-optimization/48345
16099         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
16100         hard regs for given mode from profitable regs when doing secondary
16101         allocation.
16102
16103 2011-03-29  Jeff Law  <law@redhat.com>
16104
16105         PR bootstrap/48327
16106         * tree-ssa-threadupdate.c (struct redirection_data): Remove
16107         do_not_duplicate field.
16108         (lookup_redirection_data): Corresponding changes.
16109         (create_duplicates): Always create a template block.
16110         (redirect_edges): Remove code which reused the original block
16111         when it was going to become unreachable code.
16112         (thread_block): Don't set do_not_duplicate field.
16113
16114 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
16115
16116         * lto-opts.c (register_user_option_p, lto_register_user_option):
16117         Make type argument unsigned.
16118         * lto-streamer.h (lto_register_user_option): Make type argument
16119         unsigned.
16120         * opth-gen.awk: Make CL_* macros unsigned.
16121         * opts-common.c (find_opt): Make lang_mask argument unsigned.
16122         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
16123         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
16124         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
16125         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
16126         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
16127         (find_opt): Make lang_mask argument unsigned.
16128
16129 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
16130
16131         PR rtl-optimization/48331
16132         PR rtl-optimization/48334
16133         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
16134         for any used algorithm.
16135
16136 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
16137
16138         * ira-conflicts.c (build_object_conflicts): Add unused attribute
16139         to parent_max.
16140
16141 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
16142
16143         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
16144         (alpha_option_override): Don't set alpha_sr_alias_set.
16145         (emit_frame_store_1): Use gen_frame_mem rather than calling
16146         set_mem_alias_set.
16147         (alpha_expand_epilogue): Ditto.
16148
16149 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
16150
16151         PR tree-optimization/48290
16152         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
16153         vectorization, check that relevant phis in the basic block after
16154         the inner loop are really inner loop's exit phis.
16155
16156 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
16157
16158         PR debug/48190
16159         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
16160         (cached_dw_loc_list_def): New structure.
16161         (cached_dw_loc_list): New typedef.
16162         (cached_dw_loc_list_table): New variable.
16163         (cached_dw_loc_list_table_hash): New function.
16164         (cached_dw_loc_list_table_eq): Likewise.
16165         (add_location_or_const_value_attribute): Take a bool cache_p.
16166         Cache the list when the parameter is true.
16167         (gen_formal_parameter_die): Update caller.
16168         (gen_variable_die): Likewise.
16169         (dwarf2out_finish): Likewise.
16170         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
16171         while generating debug info for the decl.
16172         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
16173         (dwarf2out_init): Initialize cached_dw_loc_list_table.
16174         (resolve_addr): Cache the result of resolving a chain of
16175         location lists.
16176
16177 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
16178
16179         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
16180         conflict object hard regset nodes have intersecting hard reg sets.
16181
16182         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
16183         after regstat_init_n_sets_and_refs.
16184
16185         * ira.c: Add more comments at the top.
16186         (setup_stack_reg_pressure_class, setup_pressure_classes):
16187         Add comments how we compute the register pressure classes.
16188         (setup_allocno_and_important_classes): Add more comments.
16189         (setup_class_translate_array, reorder_important_classes)
16190         (setup_reg_class_relations): Add comments.
16191
16192         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
16193         start of the file.
16194
16195         * ira-color.c: Add 2011 to the Copyright line.
16196         (assign_hard_reg):  Add more comments.
16197         (improve_allocation): Ditto.
16198
16199         * ira-costs.c: Add 2011 to the Copyright line.
16200         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
16201         comments.
16202         (setup_regno_cost_classes_by_mode): Ditto.
16203
16204         Initial patches from ira-improv branch:
16205
16206         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
16207
16208         * ira-build.c (ira_create_object): Remove initialization of
16209         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
16210         (ira_create_allocno): Remove initialization of
16211         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
16212         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
16213         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16214         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
16215         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
16216         Initialize ALLOCNO_ADD_DATA.
16217         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
16218         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
16219         ALLOCNO_REG.
16220         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
16221         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
16222
16223         * ira.c (ira_reallocate): Remove.
16224         (setup_pressure_classes): Call
16225         ira_init_register_move_cost_if_necessary.  Use
16226         ira_register_move_cost instead of ira_get_register_move_cost.
16227         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
16228         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
16229
16230         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
16231         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16232         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
16233         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
16234         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
16235         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
16236         Fix formatting.
16237         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
16238         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
16239         (struct allocno_color_data): New.
16240         (allocno_color_data_t): New typedef.
16241         (allocno_color_data): New definition.
16242         (ALLOCNO_COLOR_DATA): New macro.
16243         (struct object_color_data): New.
16244         (object_color_data_t): New typedef.
16245         (object_color_data): New definition.
16246         (OBJECT_COLOR_DATA): New macro.
16247         (update_copy_costs, calculate_allocno_spill_cost): Call
16248         ira_init_register_move_cost_if_necessary.  Use
16249         ira_register_move_cost instead of ira_get_register_move_cost.
16250         (move_spill_restore, update_curr_costs): Ditto.
16251         (allocno_spill_priority): Make it inline.
16252         (color_pass): Allocate and free allocno_color_dat and object_color_data.
16253         (struct coalesce_data, coalesce_data_t): New.
16254         (allocno_coalesce_data): New definition.
16255         (ALLOCNO_COALESCE_DATA): New macro.
16256         (merge_allocnos, coalesced_allocno_conflict_p): Use
16257         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
16258         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
16259         (coalesce_allocnos): Ditto.
16260         (setup_coalesced_allocno_costs_and_nums): Ditto.
16261         (collect_spilled_coalesced_allocnos): Ditto.
16262         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
16263         (setup_slot_coalesced_allocno_live_ranges): Ditto.
16264         (coalesce_spill_slots): Ditto.
16265         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
16266         free allocno_coalesce_data.
16267
16268         * ira-conflicts.c: Fix formatting.
16269         (process_regs_for_copy): Call
16270         ira_init_register_move_cost_if_necessary.  Use
16271         ira_register_move_cost instead of ira_get_register_move_cost.
16272         (build_object_conflicts): Optimize.
16273
16274         * ira-costs.c (record_reg_classes): Optimize.  Call
16275         ira_init_register_move_cost_if_necessary.  Use
16276         ira_register_move_cost, ira_may_move_in_cost, and
16277         ira_may_move_out_cost instead of ira_get_register_move_cost and
16278         ira_get_may_move_cost.
16279         (record_address_regs): Ditto.
16280         (scan_one_insn): Optimize.
16281         (find_costs_and_classes): Optimize.
16282         (process_bb_node_for_hard_reg_moves): Call
16283         ira_init_register_move_cost_if_necessary.  Use
16284         ira_register_move_cost instead of ira_get_register_move_cost.
16285
16286         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
16287         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
16288         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
16289         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
16290         definitions.
16291         (ira_initiate_emit_data, ira_finish_emit_data)
16292         (create_new_allocno): New functions.
16293         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
16294         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
16295         Use ira_register_move_cost instead of ira_get_register_move_cost.
16296
16297         * ira-int.h: Fix some comments.
16298         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
16299         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
16300         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
16301         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
16302         add_data.
16303         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
16304         bitfield after mode.  Make hard_regno a short int.  Make
16305         hard_regno short.  Remove first_coalesced_allocno and
16306         next_coalesced_allocno.  Move mem_optimized_dest_p,
16307         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
16308         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
16309         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
16310         temp, colorable_p.  Add new member add_data.
16311         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
16312         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
16313         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
16314         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
16315         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
16316         (ALLOCNO_ADD_DATA): New macro.
16317         (ira_emit_data_t): New typedef.
16318         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
16319         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
16320         from struct ira_allocno.
16321         (ALLOCNO_EMIT_DATA): New macro.
16322         (ira_allocno_emit_data, allocno_emit_reg): New.
16323         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
16324         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
16325         (OBJECT_ADD_DATA): New macro.
16326         (ira_reallocate): Remove.
16327         (ira_initiate_emit_data, ira_finish_emit_data): New.
16328         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
16329         (ira_init_register_move_cost_if_necessary): New.
16330         (ira_object_conflict_iter_next): Merge into
16331         ira_object_conflict_iter_cond.
16332         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
16333
16334         * ira-live.c (process_single_reg_class_operands): Call
16335         ira_init_register_move_cost_if_necessary.  Use
16336         ira_register_move_cost instead of ira_get_register_move_cost.
16337
16338         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
16339
16340         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
16341
16342         * ira-costs.c: Fix formatting.
16343         (cost_classes, cost_classes_num): Remove.
16344         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
16345         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
16346         (cost_classes_del, cost_classes_htab): New.
16347         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
16348         (initiate_regno_cost_classes, setup_cost_classes): New.
16349         (setup_regno_cost_classes_by_aclass): New.
16350         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
16351         (record_reg_classes): Use regno_cost_classes instead of
16352         cost_classes.  Move checking opposite operand up.
16353         (record_address_regs): Use regno_cost_classes
16354         instead of cost_classes.
16355         (scan_one_insn): Ditto.  Use always general register.
16356         (print_allocno_costs): Use regno_cost_classes instead of
16357         cost_classes.
16358         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
16359         (find_costs_and_classes): Set up cost classes for each registers.
16360         Use also their mode for this.  Use regno_cost_classes instead of
16361         cost_classes.
16362         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
16363         cost_classes.
16364         (free_ira_costs, ira_init_costs): Don't use cost_classes.
16365         (ira_costs, ira_set_pseudo_classes): Call
16366         initiate_regno_cost_classes and finish_regno_cost_classes.
16367
16368         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
16369
16370         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
16371
16372         * target.def (ira_cover_classes): Remove.
16373
16374         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
16375
16376         * doc/tm.texi.in: Ditto.
16377
16378         * ira-conflicts.c: Remove mentioning cover classes from the file.
16379         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
16380         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
16381
16382         * targhooks.c (default_ira_cover_classes): Remove.
16383
16384         * targhooks.h (default_ira_cover_classes): Ditto.
16385
16386         * haifa-sched.c: Remove mentioning cover classes from the file.
16387         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
16388         ira_pressure_classes and ira_pressure_classes_num instead of
16389         ira_reg_class_cover_size and ira_reg_class_cover.  Use
16390         sched_regno_pressure_class instead of sched_regno_cover_class.
16391         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
16392         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16393
16394         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
16395         classes from the file.
16396         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
16397         (struct object_hard_regs, struct object_hard_regs_node): New.
16398         (struct ira_object): New members profitable_hard_regs,
16399         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
16400         (struct ira_allocno): Rename cover_class to aclass.  Rename
16401         cover_class_cost and updated_cover_class_cost to class_cost and
16402         updated_class_cost.  Remove splay_removed_p and
16403         left_conflict_size.  Add new members colorable_p.
16404         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
16405         (ALLOCNO_COLORABLE_P): New macro.
16406         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
16407         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
16408         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
16409         (OBJECT_...): Rename parameter C to O.
16410         (OBJECT_PROFITABLE_HARD_REGS): New macro.
16411         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
16412         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
16413         (struct target_ira_int): New members x_ira_max_memory_move_cost,
16414         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
16415         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
16416         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
16417         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
16418         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
16419         x_ira_reg_class_subunion.
16420         (ira_max_memory_move_cost, ira_max_register_move_cost)
16421         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
16422         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
16423         (ira_important_class_nums, ira_reg_class_superunion): New macros.
16424         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
16425         (ira_reg_class_union): Rename to ira_reg_class_subunion.
16426         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16427         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16428         (ira_tune_allocno_costs_and_cover_classes): Rename to
16429         ira_tune_allocno_costs.
16430         (ira_debug_hard_regs_forest): New.
16431         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
16432         (ira_object_conflict_iter_next): Fix comments.
16433         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
16434         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
16435         cover_class to aclass.
16436         (ira_allocate_and_accumulate_costs): Ditto.
16437         (ira_allocate_and_set_or_copy_costs): Ditto.
16438
16439         * opts.c (decode_options): Remove ira_cover_class check.
16440
16441         * ira-color.c: Remove mentioning cover classes from the file.  Use
16442         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
16443         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
16444         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
16445         (splay-tree.h): Remove include.
16446         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
16447         before copy_freq_compare_func.
16448         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
16449         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
16450         New definitions.
16451         (hard_regs_roots, hard_regs_node_vec): Ditto.
16452         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
16453         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
16454         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
16455         (create_new_object_hard_regs_node): Ditto.
16456         (add_new_object_hard_regs_node_to_forest): Ditto.
16457         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
16458         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
16459         Ditto.
16460         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
16461         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
16462         (remove_unused_object_hard_regs_nodes): Ditto.
16463         (enumerate_object_hard_regs_nodes): Ditto.
16464         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
16465         (object_hard_regs_subnode_t): Ditto.
16466         (struct object_hard_regs_subnode): Ditto.
16467         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
16468         (setup_object_hard_regs_subnode_index): Ditto.
16469         (get_object_hard_regs_subnodes_num): Ditto.
16470         (form_object_hard_regs_nodes_forest): Ditto.
16471         (finish_object_hard_regs_nodes_tree): Ditto.
16472         (finish_object_hard_regs_nodes_forest): Ditto.
16473         (allocnos_have_intersected_live_ranges_p): Rename to
16474         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
16475         (pseudos_have_intersected_live_ranges_p): Rename to
16476         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
16477         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
16478         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
16479         (update_copy_costs): Remove assert.  Skip cost update if the hard
16480         reg does not belong the class.
16481         (assign_hard_reg): Process only profitable hard regs.
16482         (uncolorable_allocnos_num): Make it scalar.
16483         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
16484         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
16485         and ira_reg_class_max_nregs.
16486         (bucket_allocno_compare_func): Check frequency first.
16487         (sort_bucket): Add compare function as a parameter.
16488         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
16489         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
16490         (push_allocno_to_stack): Rewrite for checking new allocno
16491         colorability.
16492         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
16493         (push_only_colorable): Pass new parameter to sort_bucket.
16494         (push_allocno_to_spill): Remove.
16495         (allocno_spill_priority_compare): Make it inline and rewrite.
16496         (splay_tree_allocate, splay_tree_free): Remove.
16497         (allocno_spill_sort_compare): New function.
16498         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
16499         build and use splay tree.  Choose first allocno in uncolorable
16500         allocno bucket to spill.  Remove setting spill cost.
16501         (all_conflicting_hard_regs): Remove.
16502         (setup_allocno_available_regs_num): Check only profitable hard
16503         regs.  Print info about hard regs nodes.
16504         (setup_allocno_left_conflicts_size): Remove.
16505         (put_allocno_into_bucket): Don't call
16506         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
16507         (improve_allocation): New.
16508         (color_allocnos): Call setup_profitable_hard_regs,
16509         form_object_hard_regs_nodes_forest, improve_allocation,
16510         finish_object_hard_regs_nodes_forest.  Setup spill cost.
16511         (print_loop_title): Use pressure classes.
16512         (color_allocnso): Ditto.
16513         (do_coloring): Remove allocation and freeing splay_tree_node_pool
16514         and allocnos_for_spilling.
16515         (ira_sort_regnos_for_alter_reg): Don't setup members
16516         {first,next}_coalesced_allocno.
16517         (color): Remove allocating and freeing removed_splay_allocno_vec.
16518         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
16519         prohibited_class_mode_regs.
16520
16521         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
16522         formatting.
16523         (update_allocno_pressure_excess_length): Use pressure classes.
16524         (inc_register_pressure, dec_register_pressure): Check for pressure
16525         class.
16526         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
16527         pressure class.  Use ira_reg_class_nregs instead of
16528         ira_reg_class_max_nregs.
16529         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
16530         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
16531         (single_reg_class): Use ira_reg_class_nregs instead of
16532         ira_reg_class_max_nregs.
16533         (process_bb_node_lives): Use pressure classes.
16534
16535         * ira-emit.c: Remove mentioning cover classes from the file.  Use
16536         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
16537         (change_loop): Use pressure classes.
16538         (modify_move_list): Call ira_set_allocno_class instead of
16539         ira_set_allocno_cover_class.
16540
16541         * ira-build.c: Remove mentioning cover classes from the file.  Use
16542         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
16543         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
16544         ALLOCNO_UPDATED_CLASS_COST instead of
16545         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
16546         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
16547         (ira_create_allocno): Remove initialization of
16548         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
16549         ALLOCNO_COLORABLE_P.
16550         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16551         Update conflict regs for the objects.
16552         (create_cap_allocno): Remove assert.  Don't propagate
16553         ALLOCNO_AVAILABLE_REGS_NUM.
16554         (ira_free_allocno_costs): New function.
16555         (finish_allocno): Change a part of code into call of
16556         ira_free_allocno_costs.
16557         (low_pressure_loop_node_p): Use pressure classes.
16558         (object_range_compare_func): Don't compare classes.
16559         (setup_min_max_conflict_allocno_ids): Ditto.
16560
16561         * loop-invariant.c: Remove mentioning cover classes from the file.
16562         Use ira_pressure_classes and ira_pressure_classes_num instead of
16563         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
16564         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
16565         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16566         Use reg_allocno_class instead of reg_cover_class.
16567         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
16568         STACK_REG_COVER_CLASS.
16569         (get_regno_cover_class): Rename to get_regno_pressure_class.
16570         (move_loop_invariants): Initialize and finalize regstat.
16571
16572         * ira.c: Remove mentioning cover classes from the file.  Add
16573         comments about coloring without cover classes.  Use ALLOCNO_CLASS
16574         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
16575         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
16576         setup_class_subset_and_memory_move_costs.
16577         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
16578         (setup_cover_and_important_classes): Rename to
16579         setup_allocno_and_important_classes.
16580         (setup_class_translate_array): New.
16581         (setup_class_translate): Call it for allocno and pressure classes.
16582         (cover_class_order): Rename to allocno_class_order.
16583         (comp_reg_classes_func): Use ira_allocno_class_translate instead
16584         of ira_class_translate.
16585         (reorder_important_classes): Set up ira_important_class_nums.
16586         (setup_reg_class_relations): Set up ira_reg_class_superunion.
16587         (print_class_cover): Rename to print_classes.  Add parameter.
16588         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16589         Print pressure classes too.
16590         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
16591         setup_reg_subclasses.
16592         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
16593         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16594         (setup_prohibited_class_mode_regs): Use
16595         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
16596         (clarify_prohibited_class_mode_regs): New function.
16597         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
16598         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
16599         (ira_init_once): Initialize them.
16600         (free_register_move_costs): Process them.
16601         (ira_init): Move calls of find_reg_classes and
16602         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
16603         Call clarify_prohibited_class_mode_regs.
16604         (ira_no_alloc_reg): Remove.
16605         (too_high_register_pressure_p): Use pressure classes.
16606
16607         * sched-deps.c: Remove mentioning cover classes from the file.
16608         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
16609         ira_pressure_classes and ira_pressure_classes_num instead of
16610         ira_reg_class_cover_size and ira_reg_class_cover.
16611         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
16612         sched_regno_pressure_class instead of sched_regno_cover_class.
16613         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
16614         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16615
16616         * ira.h: Add 2010 to Copyright.
16617         (ira_no_alloc_reg): Remove external.
16618         (struct target_ira): Rename x_ira_hard_regno_cover_class,
16619         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
16620         x_ira_class_translate to x_ira_hard_regno_allocno_class,
16621         x_ira_allocno_classes_num, x_ira_allocno_classes, and
16622         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
16623         x_ira_pressure_classes, x_ira_pressure_class_translate, and
16624         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
16625         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
16626         x_ira_no_alloc_regs.
16627         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
16628         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
16629         ira_allocno_classes_num and ira_allocno_classes.
16630         (ira_class_translate): Rename to ira_allocno_class_translate.
16631         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
16632         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
16633         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16634         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
16635         (ira_no_alloc_regs): New.
16636
16637         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
16638         classes from the file.  Use ALLOCNO_CLASS instead of
16639         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
16640         ALLOCNO_COVER_CLASS_COST.
16641         (regno_cover_class): Rename to regno_aclass.
16642         (record_reg_classes): Use ira_reg_class_subunion instead of
16643         ira_reg_class_union.
16644         (record_address_regs): Check overflow.
16645         (scan_one_insn): Ditto.
16646         (print_allocno_costs): Print total mem cost fore regional allocation.
16647         (print_pseudo_costs): Use REG_N_REFS.
16648         (find_costs_and_classes): Use classes intersected with them on the
16649         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
16650         ira_reg_class_union.  Use ira_allocno_class_translate and
16651         regno_aclass instead of ira_class_translate and regno_cover_class.
16652         Modify code for finding regno_aclass.  Setup preferred classes for
16653         the next pass.
16654         (setup_allocno_cover_class_and_costs): Rename to
16655         setup_allocno_class_and_costs.  Use regno_aclass instead of
16656         regno_cover_class.  Use ira_set_allocno_class instead of
16657         ira_set_allocno_cover_class.
16658         (init_costs, finish_costs): Use regno_aclass instead of
16659         regno_cover_class.
16660         (ira_costs): Use setup_allocno_class_and_costs instead of
16661         setup_allocno_cover_class_and_costs.
16662         (ira_tune_allocno_costs_and_cover_classes): Rename to
16663         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
16664         by processing objects.  Use ira_reg_class_max_nregs instead of
16665         ira_reg_class_nregs.
16666
16667         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
16668
16669         * sched-int.h: Remove mentioning cover classes from the file.
16670         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
16671
16672         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
16673         classes from the file.
16674         (struct reg_pref): Rename coverclass into allocnoclass.
16675         (reg_cover_class): Rename to reg_allocno_class.
16676
16677         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
16678
16679         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
16680
16681         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
16682
16683         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
16684
16685         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
16686
16687         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
16688
16689         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
16690
16691         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
16692
16693         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
16694
16695         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
16696
16697         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
16698         (i386_ira_cover_classes): Ditto.
16699
16700         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
16701
16702         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
16703
16704         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
16705
16706         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
16707
16708         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
16709
16710         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
16711
16712         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
16713         (mips_ira_cover_classes): Ditto.
16714
16715         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
16716
16717         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
16718
16719         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
16720
16721         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
16722
16723         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
16724
16725         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
16726         (IRA_COVER_CLASSES_VSX): Ditto.
16727
16728         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
16729         (rs6000_ira_cover_classes): Ditto.
16730
16731         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
16732
16733         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
16734
16735         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
16736
16737         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
16738
16739         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
16740
16741         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
16742
16743         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
16744
16745         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
16746
16747         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
16748
16749         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
16750
16751 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
16752
16753         PR debug/48253
16754         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
16755         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
16756         dw_fde_unlikely_section_end_label, cold_in_std_section,
16757         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
16758         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
16759         fields.
16760         (output_fde): Use dw_fde_second_{begin,end} if second is
16761         true, otherwise dw_fde_{begin,end}.
16762         (output_call_frame_info): Test dw_fde_second_begin != NULL
16763         instead of dw_fde_switched_sections.
16764         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
16765         fields, initialize new fields.  Initialize in_std_section
16766         unconditionally from the first partition.
16767         (dwarf2out_end_epilogue): Don't override dw_fde_end when
16768         dw_fde_second_begin is non-NULL.
16769         (dwarf2out_switch_text_section): Stop initializing removed
16770         dw_fde_struct fields, initialize new fields, initialize
16771         also dw_fde_end here.  Set dw_fde_switch_cfi even when
16772         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
16773         (struct var_loc_list_def): Add last_before_switch field.
16774         (arange_table, arange_table_allocated, arange_table_in_use,
16775         ARANGE_TABLE_INCREMENT, add_arange): Removed.
16776         (size_of_aranges): Count !in_std_section and !second_in_std_section
16777         hunks in fdes, instead of looking at arange_table_in_use.
16778         (output_aranges): Add aranges_length argument, don't call
16779         size_of_aranges here.  Instead of using aranges_table*
16780         emit ranges for fdes when !in_std_section resp.
16781         !second_in_std_section.
16782         (dw_loc_list): Break ranges crossing section switch.
16783         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
16784         use dw_fde_second_end instead of dw_fde_end as end of last range.
16785         (gen_subprogram_die): Don't call add_arange.  Use
16786         dw_fde_{begin,end} for first partition and if switched
16787         section dw_fde_second_{begin,end} for the second.
16788         (var_location_switch_text_section_1,
16789         var_location_switch_text_section): New functions.
16790         (dwarf2out_begin_function): Initialize cold_text_section even
16791         when function_section () isn't text_section.
16792         (prune_unused_types): Don't walk arange_table.
16793         (dwarf2out_finish): Don't needlessly test
16794         flag_reorder_blocks_and_partition when testing cold_text_section_used.
16795         If info_section_emitted, call size_of_aranges and if it indicates
16796         non-empty .debug_aranges, call output_aranges with the computed
16797         size.  Stop using removed dw_fde_struct fields, use
16798         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
16799         for second.
16800
16801         PR debug/48203
16802         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
16803         create ENTRY_VALUE if incoming or address of incoming's MEM
16804         is a hard REG.
16805         * dwarf2out.c (mem_loc_descriptor): Don't emit
16806         DW_OP_GNU_entry_value of DW_OP_fbreg.
16807         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
16808         on ENTRY_VALUE is able to find the canonical parameter VALUE.
16809         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
16810         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
16811         ENTRY_VALUE_EXPs.
16812         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
16813         is a REG_P or MEM_P with REG_P address, compute hash directly
16814         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
16815         (preserve_only_constants): Don't clear VALUES forwaring
16816         ENTRY_VALUE to some other VALUE.
16817
16818 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
16819
16820         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
16821         instead of GEN_INT.
16822
16823 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
16824
16825         * cfgexpand.c (expand_gimple_cond): Always set the source location and
16826         block before expanding the statement.
16827         (expand_gimple_stmt_1): Likewise.  Set them here...
16828         (expand_gimple_stmt): ...and not here.  Tidy.
16829         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
16830         unknown.
16831
16832 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
16833
16834         * Makefile.in: New rule for cprop.o.
16835         * gcse.c: Move constant/copy propagation to cprop.c.
16836         (compute_local_properties): Only handle expression tables.
16837         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
16838         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
16839         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
16840         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
16841         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
16842         compute_cprop_data, find_used_regs, try_replace_reg,
16843         find_avail_set, cprop_jump, constprop_register, cprop_insn,
16844         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
16845         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
16846         find_bypass_set, reg_killed_on_edge, bypass_block,
16847         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
16848         execute_rtl_cprop, pass_rtl_cprop): Move to...
16849         * cprop.c: ...here.  New file, constant/copy propagation for RTL
16850         moved from gcse.c to here with minor cleanups in duplicated code.
16851
16852 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
16853
16854         * config/i386/i386.c (flag_opts): Fix a typo in
16855         -mavx256-split-unaligned-store.
16856
16857 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
16858
16859         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
16860         LIBCALL_VALUE): Remove macros.
16861         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16862         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16863         (h8300_function_value, h8300_libcall_value,
16864         h8300_function_value_regno_p): New functions.
16865
16866 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
16867
16868         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
16869
16870 2011-03-28  Jeff Law  <law@redhat.com>
16871
16872         * tree-ssa-threadupdate.c (redirect_edges): Call
16873         create_edge_and_update_destination_phis as needed.
16874         (create_edge_and_update_destination_phis): Accept new BB argument.
16875         All callers updated.
16876         (thread_block): Do not update the profile when threading around
16877         intermediate blocks.
16878         (thread_single_edge): Likewise.
16879         (determine_bb_domination_status): If BB is not a successor of the
16880         loop header, return NONDOMINATING.
16881         (register_jump_thread): Note when we register a jump thread around
16882         an intermediate block.
16883         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
16884         (thread_across_edge): Use it.
16885
16886 2011-03-28  Tristan Gingold  <gingold@adacore.com>
16887
16888         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
16889         when for_return is 2.
16890
16891 2011-03-28  Jeff Law  <law@redhat.com>
16892
16893         * var-tracking.c (canonicalize_values_mark): Delete unused
16894         lhs assignment.
16895         (canonicalize_values_star, set_variable_part): Likewise.
16896         (clobber_variable_part, delete_variable_part): Likewise.
16897
16898 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
16899
16900         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
16901
16902 2011-03-28  Martin Jambor  <mjambor@suse.cz>
16903
16904         * tree-inline.c (expand_call_inline): Do not check that destination
16905         node is analyzed.
16906         (optimize_inline_calls): Assert that destination node is analyzed.
16907         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
16908         not call tree_lowering_passes.
16909         * cgraph.h (cgraph_analyze_function): Declare.
16910         * cgraphunit.c (cgraph_analyze_function): Make public.
16911
16912 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
16913
16914         * config/sparc/sparc-opts.h: New.
16915         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
16916         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
16917         (sparc_option_override): Store processor_type enumeration rather
16918         than string in cpu_default.  Remove name and enumeration from
16919         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
16920         without using sparc_select.  Use target_flags_explicit instead of
16921         fpu_option_set.
16922         * config/sparc/sparc.h (enum processor_type): Move to
16923         sparc-opts.h.
16924         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
16925         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
16926         HeaderInclude entry.
16927         (mcpu=, mtune=): Use Var and Enum.
16928         (sparc_processor_type): New Enum and EnumValue entries.
16929
16930 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16931             Iain Sandoe  <iains@gcc.gnu.org>
16932
16933         PR target/48245
16934         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
16935
16936 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
16937
16938         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
16939         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
16940         Insert new statements at it in lieu of STMT.
16941         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
16942         * tree-vect-stmts.c (vectorizable_store): Likewise.
16943         (vectorizable_load): Likewise.
16944
16945 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
16946
16947         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
16948         (divtf3): Ditto.
16949         (multf3): Ditto.
16950         (subtf3): Ditto.
16951
16952 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16953
16954         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
16955         unaligned 256bit load/store.
16956         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
16957         (*avx_movdqu<avxmodesuffix>): Likewise.
16958
16959 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16960
16961         PR target/48288
16962         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
16963         * config/pa/pa.md (iordi3): Use new predicate in expander.
16964         (iorsi3): Likewise.
16965
16966 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
16967
16968         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
16969         FUNCTION_VALUE_REGNO_P): Remove macros.
16970         * config/mips/mips-protos.h (mips_function_value): Remove.
16971         * config/mips/mips.c (mips_function_value): Rename to...
16972         (mips_function_value_1): ... this. Make static.  Handle receiving
16973         the function type in 'fn_decl_or_type' argument.
16974         (mips_function_value, mips_libcall_value,
16975         mips_function_value_regno_p): New function.
16976         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16977         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16978
16979 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16980
16981         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
16982         and -mavx256-split-unaligned-store.
16983         (ix86_option_override_internal): Split 32-byte AVX unaligned
16984         load/store by default.
16985         (ix86_avx256_split_vector_move_misalign): New.
16986         (ix86_expand_vector_move_misalign): Use it.
16987
16988         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
16989         -mavx256-split-unaligned-store.
16990
16991         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
16992         256bit load/store.  Generate unaligned store on misaligned memory
16993         operand.
16994         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
16995         256bit load/store.
16996         (*avx_movdqu<avxmodesuffix>): Likewise.
16997
16998         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
16999         -mavx256-split-unaligned-store.
17000
17001 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
17002
17003         PR target/38598
17004         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
17005         Update commentary.
17006
17007 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
17008
17009         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
17010         opno arguments with an expand_operand.  Use create_input_operand.
17011         (mips_prepare_builtin_target): Delete.
17012         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
17013         functions.
17014         (mips_expand_builtin_direct): Use create_output_operand and
17015         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
17016         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
17017         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
17018
17019 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
17020
17021         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
17022         function.
17023         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
17024
17025 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
17026
17027         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
17028         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
17029         basic blocks and call commit_edge_insertions directly.
17030         (fixup_abnormal_edges): Move from here to...
17031         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
17032         on the edges and return whether some have actually been inserted.
17033         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
17034         compensation code.
17035
17036 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
17037
17038         PR rtl-optimization/48144
17039         * sel-sched-ir.c (merge_history_vect): Factor out from ...
17040         (merge_expr_data): ... here.
17041         (av_set_intersect): Rename to av_set_code_motion_filter.
17042         Update all callers.  Call merge_history_vect when an expression
17043         is found in both sets.
17044         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
17045
17046 2011-03-26  Alan Modra  <amodra@gmail.com>
17047
17048         * config/rs6000/predicates.md (word_offset_memref_op): Handle
17049         cmodel medium addresses.
17050         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
17051         64-bit gpr loads and stores.
17052         (rs6000_secondary_reload_ppc64): New function.
17053         * config/rs6000/rs6000-protos.h: Declare it.
17054         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
17055
17056 2011-03-26  Alan Modra  <amodra@gmail.com>
17057
17058         PR target/47487
17059         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
17060         GNU Go in traceback table.
17061
17062 2011-03-25  Richard Henderson  <rth@redhat.com>
17063
17064         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
17065         if there are exactly 6 operands.
17066         (set_storage_via_setmem): Similarly.
17067
17068 2011-03-25  Kai Tietz  <ktietz@redhat.com>
17069
17070         * collect2.c (write_c_file_stat): Handle backslash
17071         as right-hand directory separator.
17072         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
17073         checking just for slash.
17074         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
17075         instead of checking for trailing slash.
17076         * gcc.c (record_temp_file): Use filename_cmp instead
17077         of strcmp.
17078         (do_spec_1): Likewise.
17079         (replace_outfile_spec_function): Likewise.
17080         (is_directory): Use filename_ncmp instead of strncmp.
17081         (print_multilib_info): Likewise.
17082         * gcov.c (find_source): Use filename_cmp instead
17083         instead of strcmp.
17084         (make_gcov_file_name): Fix order of slash/backslash
17085         checks.
17086         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
17087         (add_standard_paths): Likewise.
17088         * mips-tfile.c (saber_stop): Handle backslash.
17089         * prefix.c (update_path): Use filename_ncmp instead of
17090         strncmp.
17091         * profile.c (output_location): Use filename_cmp instead
17092         of strcmp.
17093         * read-md.c (handle_toplevel_file): Handle backslash.
17094         * tlink.c (frob_extension):  Likewise.
17095         * tree-cfg.c (same_line_p): Use filename_cmp instead of
17096         strcmp.
17097         * tree-dump.c (dequeue_and_dump): Handle backslash.
17098         * tree.c (get_file_function_name): Likewise.
17099         * gengtype.c (read_input_list): Likewise.
17100         (get_file_realbasename): Likewise.
17101         (get_output_file_with_visibility): Use filename_cmp
17102         instead of strcmp.
17103
17104 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
17105
17106         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
17107         case to VFPv1.
17108
17109 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
17110
17111         * fold-const.c (expr_location_or): New function.
17112         (fold_truth_not_expr): Call it.
17113
17114 2011-03-25  Jeff Law  <law@redhat.com>
17115
17116         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
17117         va_end.
17118         * c-family/c-common.c (def_fn_type): Likewise.
17119         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
17120         * emit-rtl.c (gen_rtvec): Likewise.
17121         * lto/lto-lang.c (def_fn_type): Likewise.
17122
17123 2011-03-25  Richard Guenther  <rguenther@suse.de>
17124
17125         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
17126         also generate copies.
17127         (fini_copy_prop): Handle constant values properly.
17128
17129 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
17130
17131         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
17132         mode size instead of bitsize with DWARF2_ADDR_SIZE.
17133         (hash_loc_operands, compare_loc_operands): Handle
17134         DW_OP_GNU_entry_value.
17135
17136 2011-03-25  Kai Tietz  <ktietz@redhat.com>
17137
17138         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
17139         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
17140         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
17141         comment and use macro TARGET_64BIT_MS_ABI instead.
17142         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
17143         and change default behavior for 32-bit MS_ABI.
17144         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
17145         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
17146         32-bit, too.
17147         (ix86_cfun_abi): Likewise.
17148         (ix86_maybe_switch_abi): Adjust comment.
17149         (init_cumulative_args): Check for bit-ness in MS_ABI case.
17150         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
17151         instead of checking for SYSV_ABI.
17152         (ix86_nsaved_sseregs): Likewise.
17153         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
17154         to 16 bytes.
17155         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
17156         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
17157         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
17158         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
17159         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
17160
17161 2011-03-25  Richard Guenther  <rguenther@suse.de>
17162
17163         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
17164         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17165         (verify_gimple): Remove.
17166         * tree-cfg.c (verify_gimple_call): Merge verification
17167         from verify_stmts.
17168         (verify_gimple_phi): Merge verification from verify_stmts.
17169         (verify_gimple_label): New function.
17170         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
17171         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17172         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
17173         (verify_stmts): Rename to verify_gimple_in_cfg.
17174         (verify_gimple_in_cfg): New function.
17175         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
17176         * tree-ssa.c (verify_ssa): Likewise.
17177         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
17178
17179 2011-03-25  Richard Guenther  <rguenther@suse.de>
17180
17181         * passes.c (init_optimization_passes): Add FRE pass after
17182         early SRA.
17183
17184 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
17185             Andrew Stubbs  <ams@codesourcery.com>
17186
17187         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
17188         for Cortex-A8.
17189         (arm_movdi_vfp_cortexa8): New pattern.
17190         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
17191         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
17192         instructions when tuning for Cortex-A8.  Set attribute "arch".
17193         * config/arm/arm.md: Move include arm-tune.md up a bit.
17194         (define_attr "arch"): Add "onlya8" and "nota8" values.
17195         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
17196
17197 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
17198
17199         PR bootstrap/48282
17200         Revert:
17201         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
17202
17203         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17204         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
17205         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17206         * passes.c (init_optimization_passes): Move
17207         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17208
17209 2011-03-25  Kai Tietz  <ktietz@redhat.com>
17210
17211         * c-typeck.c (comptypes_internal): Replace target
17212         hook call of comp_type_attributes by version in tree.c file.
17213         * gimple.c (gimple_types_compatible_p_1): Likewise.
17214         * tree-ssa.c (useless_type_conversion_p): Likewise.
17215         * tree.c (build_type_attribute_qual_variant): Likewise.
17216         (attribute_value_equal): New static helper function.
17217         (comp_type_attributes): New function.
17218         (merge_attributes): Use attribute_value_equal for comparison.
17219         (attribute_list_contained): Likewise.
17220         * tree.h (comp_type_attributes): New prototype.
17221
17222 2011-03-25  Richard Guenther  <rguenther@suse.de>
17223
17224         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
17225         of complex types at -O0.
17226         (verify_gimple_assign_binary): Likewise.
17227         (verify_gimple_assign_ternary): Likewise.
17228
17229 2011-03-24  Mark Wielaard  <mjw@redhat.com>
17230
17231         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
17232         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
17233
17234 2011-03-24  Mark Wielaard  <mjw@redhat.com>
17235
17236         PR debug/48041
17237         * dwarf2out.c (output_abbrev_section): Only write table when
17238         abbrev_die_table_in_use > 1.
17239
17240 2011-02-24  Richard Henderson  <rth@redhat.com>
17241
17242         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
17243         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
17244         (alpha_expand_unaligned_load_words): Use extql.
17245         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
17246         (emit_insxl): Handle all modes for consistency.
17247
17248 2011-02-24  Richard Henderson  <rth@redhat.com>
17249
17250         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
17251         (alpha_expand_unaligned_load): Likewise.
17252         (alpha_expand_unaligned_store): Likewise.
17253         (alpha_expand_unaligned_load_words): Likewise.
17254         (alpha_expand_unaligned_store_words): Likewise.
17255         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
17256         (alpha_split_lock_test_and_set_12): Likewise.
17257         (print_operand, alpha_fold_builtin_extxx): Likewise.
17258         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
17259         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
17260         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
17261         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
17262         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
17263         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
17264         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
17265         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
17266         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
17267         (extwl, extll, extql): Similarly.
17268         (inswh, inslh, insqh): Similarly.
17269         (mskbl, mskwl, mskll, mskql): Similarly.
17270         (mskwh, msklh, mskqh): Similarly.
17271
17272 2011-02-24  Richard Henderson  <rth@redhat.com>
17273
17274         * config/alpha/alpha.md (attribute isa): Add er, ner.
17275         (attribute enabled): Handle them.
17276         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
17277
17278 2011-02-24  Richard Henderson  <rth@redhat.com>
17279
17280         * config/alpha/alpha.md (attribute isa): Add vms.
17281         (attribute enabled): Handle it.
17282         (*movsf): Merge *movsf_{nofix,fix,nofp}.
17283         (*movdf): Merge *movdf_{nofix,fix,nofp}.
17284         (*movtf): Rename from *movtf_internal for consistency.
17285         (*movsi): Merge with *movsi_nt_vms.
17286         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
17287         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
17288         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
17289         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
17290
17291 2011-02-24  Richard Henderson  <rth@redhat.com>
17292
17293         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
17294         (extendqisi2, extendhisi2): Likewise.
17295         (extendqidi2): Simplify BWX/non-BWX expansions.
17296         (extendhidi2): Similarly.
17297
17298 2011-02-24  Richard Henderson  <rth@redhat.com>
17299
17300         * config/alpha/alpha.md (attribute isa): New.
17301         (attribute enabled): New.
17302         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
17303         (zero_extendqisi2, zero_extendqidi2): Similarly.
17304         (zero_extendhisi2, zero_extendhidi2): Similarly.
17305         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
17306
17307 2011-02-24  Richard Henderson  <rth@redhat.com>
17308
17309         * config/alpha/predicates.md (input_operand): Revert last change;
17310         update comment to mention 32-bit VMS rather than Windows.
17311
17312 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
17313
17314         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17315         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
17316         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17317         * passes.c (init_optimization_passes): Move
17318         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17319
17320 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
17321
17322         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
17323
17324 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
17325
17326         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
17327         correctly.
17328
17329 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
17330
17331         PR debug/48204
17332         * simplify-rtx.c (simplify_const_unary_operation): Call
17333         real_convert when changing mode class with FLOAT_EXTEND.
17334
17335 2011-03-24  Nick Clifton  <nickc@redhat.com>
17336
17337         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
17338         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
17339         * config/rx/rx.c (rx_option_override): Set align_jumps,
17340         align_loops and align_labels if not set by the user.
17341         (rx_align_for_label): New function.
17342         (rx_max_skip_for_label): New function.
17343         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
17344         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
17345         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
17346         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
17347         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
17348
17349 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
17350
17351         PR rtl-optimization/48263
17352         * optabs.c (expand_binop_directly): Reinstate convert_modes code
17353         and original commutative_p handling.  Use maybe_gen_insn.
17354
17355 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17356
17357         * reload.c (find_reloads_subreg_address): Add address_reloaded
17358         parameter and return true there if the full address has been
17359         reloaded.
17360         (find_reloads_toplev): Pass address_reloaded flag.
17361         (find_reloads_address_1): Don't use address_reloaded parameter.
17362
17363 2011-03-24  Jeff Law  <law@redhat.com>
17364
17365         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
17366         unused variable "ann".
17367         (remove_unused_locals): Likewise.
17368
17369         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
17370         statement.
17371
17372         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
17373         after it is freed.
17374
17375 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17376
17377         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
17378         for invalid symbolic addresses.
17379         (s390_secondary_reload): Don't use s390_check_symref_alignment for
17380         larl operands.
17381
17382 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
17383
17384         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
17385         the argument in calls to fold_truth_not_expr.
17386
17387 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
17388
17389         * tree.c (record_node_allocation_statistics): New function.
17390         (make_node_stat, copy_node_stat, build_string): Call it.
17391         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
17392         (build1_stat, build_omp_clause): Likewise.
17393
17394 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
17395
17396         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
17397         last commit.
17398
17399 2011-03-24  Richard Guenther  <rguenther@suse.de>
17400
17401         PR tree-optimization/48271
17402         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
17403         blocks that still exist.
17404
17405 2011-03-24  Richard Guenther  <rguenther@suse.de>
17406
17407         PR tree-optimization/48270
17408         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
17409         not free datarefs before ddrs.
17410
17411 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
17412
17413         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
17414         from the address built for a reference with variable offset.
17415
17416 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
17417
17418         PR target/48237
17419         * config/i386/i386.md (*movdf_internal_rex64): Do not split
17420         alternatives that can be handled with movq or movabsq insn.
17421         (*movdf_internal): Disable for !TARGET_64BIT.
17422         (*movdf_internal_nointeger): Ditto.
17423         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
17424
17425 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
17426
17427         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17428         (FUNCTION_ARG_ADVANCE): Likewise.
17429         * tm.texi.in: Change references to them to hook references.
17430         * tm.texi: Regenerate.
17431         * targhooks.c (default_function_arg): Eliminate check for target macro.
17432         (default_function_incoming_arg): Likewise.
17433         (default_function_arg_advance): Likewise.
17434         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
17435         (function_arg_advance): Likewise.
17436         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17437
17438 2011-03-24  Richard Guenther  <rguenther@suse.de>
17439
17440         PR middle-end/48269
17441         * tree-object-size.c (addr_object_size): Do not double-account
17442         for MEM_REF offsets.
17443
17444 2011-03-24  Diego Novillo  <dnovillo@google.com>
17445
17446         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
17447         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
17448         (lto_input_data_block): Move from lto-opts.c.  Make extern.
17449         Update all users.
17450         (lto_input_string): Rename from input_string.  Make extern.
17451         Update all users.
17452         * lto-streamer-out.c (lto_output_string_with_length): Rename from
17453         output_string_with_length.
17454         Output 0 to indicate a non-NULL string.  Update all callers to
17455         not emit 0.
17456         (lto_output_string): Rename from output_string.  Make extern.
17457         Update all users.
17458         (lto_output_decl_state_streams): Make extern.
17459         (lto_output_decl_state_refs): Make extern.
17460         * lto-streamer.h (lto_input_string): Declare.
17461         (lto_input_data_block): Declare.
17462         (lto_output_string): Declare.
17463         (lto_output_string_with_length): Declare.
17464         (lto_output_decl_state_streams): Declare.
17465         (lto_output_decl_state_refs): Declare.
17466
17467 2011-03-24  Richard Guenther  <rguenther@suse.de>
17468
17469         PR tree-optimization/46562
17470         * tree.c (build_invariant_address): New function.
17471         * tree.h (build_invariant_address): Declare.
17472         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
17473         a renamed function moved ...
17474         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
17475         Take valueization callback parameter.
17476         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
17477         * gimple-fold.h: New file.
17478         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
17479         (ccp_fold, fold_const_aggregate_ref,
17480         fold_ctor_reference, fold_nonarray_ctor_reference,
17481         fold_array_ctor_reference, fold_string_cst_ctor_reference,
17482         get_base_constructor): Move ...
17483         * gimple-fold.c: ... here.
17484         (gimple_fold_stmt_to_constant_1): New function
17485         split out from ccp_fold.  Take a valueization callback parameter.
17486         Valueize all operands.
17487         (gimple_fold_stmt_to_constant): New wrapper function.
17488         (fold_const_aggregate_ref_1): New function split out from
17489         fold_const_aggregate_ref.  Take a valueization callback parameter.
17490         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
17491         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
17492         invariant POINTER_PLUS_EXPRs to invariant form.
17493         (vn_valueize): New function.
17494         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
17495         * tree-vrp.c (vrp_valueize): New function.
17496         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
17497         to fold statements to constants.
17498         * tree-ssa-pre.c (eliminate): Properly guard propagation of
17499         function declarations.
17500         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
17501         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
17502
17503 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
17504
17505         * config/h8300/predicates.md (jump_address_operand): Fix register
17506         mode check.
17507
17508 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
17509
17510         * doc/invoke.texi (max-stores-to-sink): Document.
17511         * params.h (MAX_STORES_TO_SINK): Define.
17512         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
17513         if either vectorization or if-conversion is disabled.
17514         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
17515         tree-vect-data-refs.c vect_equal_offsets.
17516         (dr_equal_offsets_p): New function.
17517         (find_data_references_in_bb): Remove static.
17518         * tree-data-ref.h (find_data_references_in_bb): Declare.
17519         (dr_equal_offsets_p): Likewise.
17520         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
17521         (vect_drs_dependent_in_basic_block): Update calls to
17522         vect_equal_offsets.
17523         (vect_check_interleaving): Likewise.
17524         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
17525         (cond_if_else_store_replacement): Rename to...
17526         (cond_if_else_store_replacement_1): ... this.  Change arguments and
17527         documentation.
17528         (cond_if_else_store_replacement): New function.
17529         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
17530         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
17531
17532 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
17533
17534         PR target/46934
17535         * config/arm/arm.md (casesi): Use the gen_int_mode() function
17536         to subtract lower bound instead of GEN_INT().
17537
17538 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
17539
17540         PR other/48179
17541         PR other/48221
17542         PR other/48234
17543         * doc/extend.texi (Alignment): Move section to match order in TOC.
17544         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
17545         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
17546
17547 2011-03-23  Jeff Law  <law@redhat.com>
17548
17549         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
17550         before removing the edge.
17551
17552         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
17553         it may have been freed by redirect_branch_edge or
17554         redirect_edge_succ_nodup.
17555
17556 2011-03-23  Richard Guenther  <rguenther@suse.de>
17557
17558         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
17559         (check_va_list_escapes): Likewise.
17560         (check_all_va_list_escapes): Likewise.
17561
17562 2011-03-23  Richard Guenther  <rguenther@suse.de>
17563
17564         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
17565         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
17566         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
17567         (alias.o): Likewise.
17568         (ipa-type-escape.o): Remove.
17569         (ipa-struct-reorg.o): Likewise.
17570         (GTFILES): Remove ipa-struct-reorg.c.
17571         * alias.c: Do not include ipa-type-escape.h.
17572         * tree-ssa-alias.c: Likewise.
17573         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
17574         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
17575         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
17576         and ipa-type-escape passes.
17577         * tree-pass.h (pass_ipa_type_escape): Remove.
17578         (pass_ipa_struct_reorg): Likewise.
17579         * ipa-struct-reorg.h: Remove.
17580         * ipa-struct-reorg.c: Likewise.
17581         * ipa-type-escape.h: Likewise.
17582         * ipa-type-escape.c: Likewise.
17583         * doc/invoke.texi (-fipa-struct-reorg): Remove.
17584         (--param struct-reorg-cold-struct-ratio): Likewise.
17585         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17586         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17587         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
17588
17589 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17590
17591         * config/s390/2084.md: Enable all insn reservations also for z9_ec
17592         cpu attribute value.
17593         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
17594         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
17595         * config/s390/s390.c (processor_flags_table): New constant array.
17596         (s390_handle_arch_option): Remove.
17597         (s390_handle_option): Remove s390_handle_arch_option invocations
17598         and OPT_mwarn_framesize_ handling.
17599         (s390_option_override): Remove s390_handle_arch_option invocation.
17600         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
17601         warnings.
17602         * config/s390/s390.md (cpu attribute): Add z9_ec value.
17603         * config/s390/s390.opt (s390_tune, s390_arch)
17604         (march=): Replace s390_arch_option enum and values with
17605         processor_type.  Set variable name to s390_arch.  Set
17606         initialization value.
17607         (mtune=): Replace s390_arch_option with processor_type.  Set
17608         variable name to s390_tune.  Set initialization value.
17609
17610 2011-03-23  Julian Brown  <julian@codesourcery.com>
17611
17612         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
17613         accesses which are not naturally aligned.
17614
17615 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
17616
17617         PR target/47553
17618         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
17619
17620 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
17621
17622         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
17623         parameter from "int" to "enum insn_code".
17624         (expand_operand_type): New enum.
17625         (expand_operand): New structure.
17626         (create_expand_operand): New function.
17627         (create_fixed_operand, create_output_operand): Likewise
17628         (create_input_operand, create_convert_operand_to): Likewise.
17629         (create_convert_operand_from, create_address_operand): Likewise.
17630         (create_integer_operand): Likewise.
17631         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
17632         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17633         (expand_insn, expand_jump_insn): Likewise.
17634         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
17635         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
17636         (expand_movstr, expand_builtin___clear_cache): Likewise.
17637         (expand_builtin_lock_release): Likewise.
17638         * explow.c (allocate_dynamic_stack_space): Likewise.
17639         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
17640         and use the default handling in that case.
17641         * expmed.c (check_predicate_volatile_ok): Delete.
17642         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
17643         (emit_cstore): Likewise.
17644         * expr.c (emit_block_move_via_movmem): Likewise.
17645         (set_storage_via_setmem, expand_assignment): Likewise.
17646         (emit_storent_insn, try_casesi): Likewise.
17647         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
17648         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
17649         (expand_vec_shift_expr, expand_binop_directly): Likewise.
17650         (expand_twoval_unop, expand_twoval_binop): Likewise.
17651         (expand_unop_direct, emit_indirect_jump): Likewise.
17652         (emit_conditional_move, vector_compare_rtx): Likewise.
17653         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
17654         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
17655         (expand_sync_lock_test_and_set): Likewise.
17656         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
17657         (emit_unop_insn): Likewise.
17658         (expand_copysign_absneg): Change icode to an insn_code.
17659         (create_convert_operand_from_type): New function.
17660         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
17661         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17662         (expand_insn, expand_jump_insn): Likewise.
17663         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
17664         than const_int_operand for operand 2.
17665
17666 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17667
17668         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
17669         if possible.
17670
17671 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
17672
17673         * emit-rtl.c (emit_pattern_before_noloc): New function.
17674         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
17675         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
17676         (emit_pattern_after_noloc): New function.
17677         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
17678         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
17679
17680 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
17681
17682         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
17683         (__ffsDI2): Likewise.
17684
17685 2011-03-22  Richard Henderson  <rth@redhat.com>
17686
17687         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
17688         of !TARGET_ABI_OPEN_VMS.
17689         (alpha_trampoline_init, alpha_start_function): Likewise.
17690         (alpha_expand_epilogue, alpha_file_start): Likewise.
17691         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
17692         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
17693         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
17694         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
17695         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
17696
17697 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17698
17699         * config/s390/s390-opts.h: New.
17700         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
17701         s390_arch_flags, s390_warn_framesize, s390_stack_size,
17702         s390_stack_guard): Remove.
17703         (s390_handle_arch_option): Return void.  Take enum
17704         s390_arch_option value instead of string and searching array.
17705         (s390_handle_option): Don't assert that global structures are in
17706         use.  Access variables via opts pointer.  Use error_at.  Don't use
17707         sscanf for -mstack-guard= or -mstack-size=.  Update call to
17708         s390_handle_arch_option.
17709         (s390_option_override): Update call to s390_handle_arch_option.
17710         (s390_emit_prologue): Use %d format for s390_stack_size in
17711         diagnostic.  Use %wd for HOST_WIDE_INT.
17712         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
17713         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
17714         * config/s390/s390.opt (config/s390/s390-opts.h): New
17715         HeaderInclude entry.
17716         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
17717         s390_arch_flags, s390_warn_framesize): New Variable entries.
17718         (s390_arch_option): New Enum and EnumValue entries.
17719         (march=): Use Enum instead of Var.
17720         (mstack-guard=, mstack-size=): Use UInteger and Var.
17721         (mtune=): Use Enum.
17722
17723 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17724
17725         * config/score/score.c (score_handle_option): Don't assert that
17726         global structures are in use.  Access target_flags via opts
17727         pointer.  Use value of -march= option to determine target_flags
17728         settings.
17729         * config/score/score.opt (march=): Use Enum.
17730         (score_arch): New Enum and EnumValue entries.
17731
17732 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17733
17734         * config/mep/mep.c (option_mtiny_specified): Remove.
17735         (mep_option_override): Move register handling for -mivc2 from
17736         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
17737         instead of option_mtiny_specified.
17738         (mep_handle_option): Access target_flags via opts pointer.  Don't
17739         assert that global structures are in use.  Defer part of -mivc2
17740         handling and move it to mep_option_override.
17741         * config/mep/mep.opt (IVC2): New Mask entry.
17742         (mivc2): Use Var and Defer instead of Mask.
17743
17744 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17745
17746         * config/v850/v850-opts.h: New.
17747         * config/v850/v850.c (small_memory): Replace with
17748         small_memory_physical_max array.  Make that array static const.
17749         (v850_handle_memory_option): Take integer value of argument.  Take
17750         gcc_options pointer, option text and location.  Return void.
17751         Update for changes to small memory structures.
17752         (v850_handle_option): Access target_flags via opts pointer.  Don't
17753         assert that global structures are in use.  Update calls to
17754         v850_handle_memory_option.
17755         (v850_encode_data_area): Update references to small memory settings.
17756         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
17757         (enum small_memory_type): Move to v850-opts.h.
17758         * config/v850/v850.opt (config/v850/v850-opts.h): New
17759         HeaderInclude entry.
17760         (small_memory_max): New Variable entry.
17761         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
17762         (mtda, mzda): Likewise.
17763
17764 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17765
17766         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
17767         pointer.  Don't assert that global structures are in use.
17768
17769 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17770
17771         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
17772         via opts pointer.  Don't assert that global structures are in use.
17773
17774 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17775
17776         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
17777         (munix=93): Use Var.
17778         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
17779         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
17780         * config/pa/pa-opts.h: New.
17781         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
17782         (pa_handle_option): Don't assert that global structures are in
17783         use.  Access target_flags via opts pointer.  Don't handle
17784         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
17785         OPT_munix_98 here.
17786         (pa_option_override): Handle deferred OPT_mfixed_range_.
17787
17788 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17789
17790         * config/mn10300/mn10300-opts.h: New.
17791         * config/mn10300/mn10300.c (mn10300_processor,
17792         mn10300_tune_string): Remove.
17793         (mn10300_handle_option): Don't assert that global structures are
17794         in use.  Access mn10300_processor via opts pointer.  Don't handle
17795         OPT_mtune_ here.
17796         * config/mn10300/mn10300.h (enum processor_type): Move to
17797         mn10300-opts.h.
17798         (mn10300_processor): Remove.
17799         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
17800         HeaderInclude entry.
17801         (mn10300_processor): New Variable entry.
17802         (mtune=): Use Var.
17803
17804 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17805
17806         * config/microblaze/microblaze.c: Don't include opts.h.
17807         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
17808         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
17809         (mno-clearbss): Use Var and Warn.
17810
17811 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17812
17813         * config/m32r/m32r-opts.h: New.
17814         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
17815         (m32r_handle_option): Don't assert that global structures are in
17816         use.  Access target_flags and m32r_cache_flush_func via opts
17817         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
17818         OPT_mno_flush_trap here.
17819         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
17820         include of m32r-opts.h.
17821         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
17822         HeaderInclude entry.
17823         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
17824         (mmodel=): Use Enum and Var.
17825         (m32r_model): New Enum and EnumValue entries.
17826         (mno-flush-trap): Use Var.
17827         (msdata=): Use Enum and Var.
17828         (m32r_sdata): New Enum and EnumValue entries.
17829
17830 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17831
17832         * config/m32c/m32c.c: Don't include opts.h.
17833         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
17834         m32c_handle_option): Remove.
17835         (m32c_option_override): Check global_options_set.x_target_memregs
17836         instead of target_memregs_set.
17837         * config/m32c/m32c.h (target_memregs): Remove.
17838         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
17839         variable.
17840
17841 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17842
17843         * config/iq2000/iq2000-opts.h: New.
17844         * config/iq2000/iq2000.c: Don't include opts.h.
17845         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
17846         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
17847         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
17848         HeaderInclude entry.
17849         (iq2000_tune): New Variable entry.
17850         (march=): Add comment.  Use Enum.
17851         (iq2000_arch): New Enum and EnumValue entries.
17852         (mcpu=): Use Enum and Var.
17853         (iq2000_tune): New Enum and EnumValue entries.
17854
17855 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17856
17857         * config/ia64/ia64-opts.h: New.
17858         * config/ia64/ia64.c (ia64_tune): Remove.
17859         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
17860         here.  Use error_at.
17861         (ia64_option_override): Handle deferred OPT_mfixed_range_.
17862         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
17863         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
17864         HeaderInclude entry.
17865         (ia64_tune): New Variable entry.
17866         (mfixed-range=): Use Defer and Var.
17867         (mtune=): Use Enum and Var.
17868         (ia64_tune): New Enum and EnumValue entries.
17869
17870 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17871
17872         * config/frv/frv-opts.h: New.
17873         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
17874         frv-opts.h.
17875         (frv_cpu_type): Remove.
17876         * config/frv/frv.c: Don't include opts.h.
17877         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
17878         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
17879         (frv_cpu_type): New Variable entry.
17880         (frv_cpu): New Enum and EnumValue entries.
17881
17882 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17883
17884         * config/cris/cris.c (cris_handle_option): Access target_flags via
17885         opts pointer.  Don't assert that global structures are in use.
17886         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
17887         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
17888
17889 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17890
17891         * config/bfin/bfin-opts.h: New.
17892         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
17893         bfin_si_revision, bfin_workarounds): Remove.
17894         (bfin_cpus): Make static const.
17895         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
17896         not bfin_lib_id_given.
17897         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
17898         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
17899         pointer. Use error_at.  Don't assert that global structures are in use.
17900         * config/bfin/bfin.h: Include bfin-opts.h.
17901         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
17902         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
17903         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
17904         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
17905         entries.
17906
17907 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17908
17909         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
17910         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
17911         or -msoft-float here.
17912         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
17913         -msoft-float and -mhard-float.
17914         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
17915         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17916         msoft-float.
17917         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
17918         -msoft-float.
17919         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
17920         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
17921         not mhard-float.
17922         (LIBGCC_SPEC): Don't handle -msoft-float.
17923         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
17924         -mhard-float.
17925         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17926         msoft-float.
17927         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
17928         -mfloat-abi=*, not -msoft-float and -mhard-float.
17929         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
17930         -msoft-float.
17931         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
17932         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
17933         mhard-float and msoft-float.
17934         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
17935         mfloat-abi=soft in comments, not mhard-float and msoft-float.
17936         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17937         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
17938         mhard-float.
17939         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
17940         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
17941         msoft-float.
17942         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
17943         not mhard-float.
17944         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
17945         not msoft-float.
17946
17947 2011-03-22  Richard Henderson  <rth@redhat.com>
17948
17949         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
17950         TARGET_ABI_WINDOWS_NT.
17951         (alpha_output_function_end_prologue): Likewise.
17952         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
17953         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
17954         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
17955         (trap, *movsi_nt_vms): Likewise.
17956         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
17957         (*tablejump_osf_nt_internal): Remove.
17958         * config/alpha/predicates.md (input_operand): Only test Pmode.
17959
17960 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17961
17962         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
17963         via opts pointer.  Use error_at.  Don't assert that global
17964         structures are in use.
17965
17966 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17967
17968         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
17969         (ix86_handle_option): Access ix86_isa_flags and
17970         ix86_isa_flags_explicit via opts pointer.  Don't assert that
17971         global structures are in use.
17972         (ix86_function_specific_save, ix86_function_specific_restore):
17973         Update ix86_isa_flags_explicit field name.
17974         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
17975         (ix86_isa_flags_explicit): Rename TargetSave entry to
17976         x_ix86_isa_flags_explicit.
17977
17978 2011-03-22  Richard Henderson  <rth@redhat.com>
17979
17980         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
17981         (alpha_option_override, direct_return): Likewise.
17982         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
17983         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
17984         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
17985         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
17986         (alpha_expand_epilogue, alpha_end_function): Likewise.
17987         (alpha_init_libfuncs): Likewise.
17988         (struct machine_function): Remove unicosmk members.
17989         (print_operand) ['t']: Remove.
17990         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
17991         unicosmk_output_module_name, unicosmk_output_common,
17992         current_section_align, unicosmk_output_text_section_asm_op,
17993         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
17994         unicosmk_section_type_flags, unicosmk_unique_section,
17995         unicosmk_asm_named_section, unicosmk_insert_attributes,
17996         unicosmk_output_align, unicosmk_defer_case_vector,
17997         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
17998         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
17999         unicosmk_output_ssib, unicosmk_add_call_info_word,
18000         unicosmk_extern_head, unicosmk_output_default_externs,
18001         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
18002         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
18003         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
18004         * config/alpha/alpha-protos.h: Update.
18005         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
18006         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
18007         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
18008         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
18009         (*mulsi_se, mulvsi3): Likewise.
18010         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
18011         (*divmodsi_internal, call, call_value, realign): Likewise.
18012         (moddi3, umoddi3): Likewise; remove duplicate expander.
18013         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
18014         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
18015         (*movdi_nofix): Remove r/U alternative.
18016         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
18017         * config/alpha/constraints.md ("U"): Remove.
18018         * config/alpha/predicates.md (call_operand"): Don't test
18019         TARGET_ABI_UNICOSMK.
18020
18021 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18022
18023         * target.def (handle_option): Take gcc_options and
18024         cl_decoded_option pointers and location_t.
18025         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
18026         * doc/tm.texi: Regenerate.
18027         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
18028         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
18029         * lto-opts.c (lto_reissue_options): Generate option structure for
18030         targetm.handle_option call.
18031         * opts.c (target_handle_option): Update call to
18032         targetm.handle_option.  Remove assertions about values now passed
18033         down to hook.
18034         * targhooks.c (default_target_handle_option): New.
18035         * targhooks.h (default_target_handle_option): Declare.
18036         * config/alpha/alpha.c: Include opts.h.
18037         (alpha_handle_option): Update to new hook interface.
18038         * config/arm/arm.c: Include opts.h.
18039         (arm_handle_option): Update to new hook interface.
18040         * config/arm/t-arm (arm.o): Update dependencies.
18041         * config/bfin/bfin.c: Include opts.h.
18042         (bfin_handle_option): Update to new hook interface.
18043         * config/cris/cris.c: Include opts.h.
18044         (cris_handle_option): Update to new hook interface.
18045         * config/frv/frv.c: Include opts.h.
18046         (frv_handle_option): Update to new hook interface.
18047         * config/i386/i386.c: Include opts.h.
18048         (ix86_handle_option): Update to new hook interface.
18049         (ix86_valid_target_attribute_inner_p): Generate option structure
18050         for call to ix86_handle_option.
18051         * config/i386/t-i386 (i386.o): Update dependencies.
18052         * config/ia64/ia64.c: Include opts.h.
18053         (ia64_handle_option): Update to new hook interface.
18054         * config/ia64/t-ia64 (ia64.o): Update dependencies.
18055         * config/iq2000/iq2000.c: Include opts.h.
18056         (iq2000_handle_option): Update to new hook interface.
18057         * config/m32c/m32c.c: Include opts.h.
18058         (m32c_handle_option): Update to new hook interface.
18059         * config/m32r/m32r.c: Include opts.h.
18060         (m32r_handle_option): Update to new hook interface.
18061         * config/m68k/m68k.c: Include opts.h.
18062         (m68k_handle_option): Update to new hook interface.
18063         * config/mep/mep.c: Include opts.h.
18064         (mep_handle_option): Update to new hook interface.
18065         * config/microblaze/microblaze.c: Include opts.h.
18066         (microblaze_handle_option): Update to new hook interface.
18067         * config/mips/mips.c: Include opts.h.
18068         (mips_handle_option): Update to new hook interface.
18069         * config/mn10300/mn10300.c: Include opts.h.
18070         (mn10300_handle_option): Update to new hook interface.
18071         * config/pa/pa.c: Include opts.h.
18072         (pa_handle_option): Update to new hook interface.
18073         * config/pdp11/pdp11.c: Include opts.h.
18074         (pdp11_handle_option): Update to new hook interface.
18075         * config/rs6000/rs6000.c: Include opts.h.
18076         (rs6000_handle_option): Update to new hook interface.
18077         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
18078         * config/rx/rx.c: Include opts.h.
18079         (rx_handle_option): Update to new hook interface.
18080         * config/s390/s390.c: Include opts.h.
18081         (s390_handle_option): Update to new hook interface.
18082         * config/score/score.c: Include opts.h.
18083         (score_handle_option): Update to new hook interface.
18084         * config/sh/sh.c: Include opts.h.
18085         (sh_handle_option): Update to new hook interface.
18086         * config/sparc/sparc.c: Include opts.h.
18087         (sparc_handle_option): Update to new hook interface.
18088         * config/v850/v850.c: Include opts.h.
18089         (v850_handle_option): Update to new hook interface.
18090
18091 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18092
18093         * gcc.c (driver_unknown_option_callback): Only permit and save
18094         unknown -Wno- options.
18095         (driver_wrong_lang_callback): Save options directly instead of via
18096         driver_unknown_option_callback.
18097
18098 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
18099
18100         * combine.c (simplify_set): Try harder to find the best CC mode when
18101         simplifying a nested COMPARE on the RHS.
18102
18103 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18104
18105         * config/alpha/gnu.h: Remove.
18106         * config/arc: Remove directory.
18107         * config/arm/netbsd.h: Remove.
18108         * config/arm/t-pe: Remove.
18109         * config/crx: Remove directory.
18110         * config/i386/netbsd.h: Remove.
18111         * config/m68hc11: Remove directory.
18112         * config/m68k/uclinux-oldabi.h: Remove.
18113         * config/mcore/mcore-pe.h: Remove.
18114         * config/mcore/t-mcore-pe: Remove.
18115         * config/netbsd-aout.h: Remove.
18116         * config/rs6000/gnu.h: Remove.
18117         * config/sh/sh-symbian.h: Remove.
18118         * config/sh/symbian-base.c: Remove.
18119         * config/sh/symbian-c.c: Remove.
18120         * config/sh/symbian-cxx.c: Remove.
18121         * config/sh/symbian-post.h: Remove.
18122         * config/sh/symbian-pre.h: Remove.
18123         * config/sh/t-symbian: Remove.
18124         * config/svr3.h: Remove.
18125         * config/vax/netbsd.h: Remove.
18126         * config.build: Don't handle i[34567]86-*-pe.
18127         * config.gcc: Remove handling of deprecations for most deprecated
18128         targets.
18129         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
18130         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
18131         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
18132         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
18133         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
18134         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
18135         Remove cases.
18136         * config.host: Don't handle i[34567]86-*-pe.
18137         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
18138         (ASM_SPEC32): Don't handle -mcall-gnu.
18139         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
18140         -mcall-gnu.
18141         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
18142         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
18143         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
18144         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
18145         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
18146         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
18147         conditional on SYMBIAN.
18148         * configure.ac: Don't handle powerpc*-*-gnu*.
18149         * configure: Regenerate.
18150         * doc/extend.texi (interrupt attribute): Don't mention CRX.
18151         * doc/install-old.texi (m6811, m6812): Don't mention.
18152         * doc/install.texi (arc-*-elf*): Don't document multilib option.
18153         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
18154         (m68k-uclinuxoldabi): Don't mention.
18155         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
18156         Remove.
18157         (-mcall-gnu): Remove.
18158         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
18159         families): Remove constraint documentation.
18160
18161 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
18162
18163         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
18164         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
18165         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
18166
18167 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
18168
18169         PR target/48226
18170         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
18171         vector when peeking at the next token for vector, don't expand the
18172         keywords.
18173
18174 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
18175
18176         * config/avr/avr-protos.h (expand_epilogue): Change prototype
18177         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
18178         * config/avr/avr.c (init_cumulative_args)
18179         (avr_function_arg_advance): Use it.
18180         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
18181         sibcall epilogues.
18182         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
18183         (avr_function_ok_for_sibcall): ...this new function.
18184         (avr_lookup_function_attribute1): New static Function.
18185         (avr_naked_function_p, interrupt_function_p)
18186         (signal_function_p, avr_OS_task_function_p)
18187         (avr_OS_main_function_p): Use it.
18188         * config/avr/avr.md ("sibcall", "sibcall_value")
18189         ("sibcall_epilogue"): New expander.
18190         ("*call_insn", "*call_value_insn"): New insn.
18191         ("call_insn", "call_value_insn"): Remove
18192         ("call", "call_value", "epilogue"): Change expander to handle
18193         sibling calls.
18194
18195 2011-03-21  Nick Clifton  <nickc@redhat.com>
18196
18197         * doc/invoke.texi (Overall Options): Move closing brace to end of
18198         options list.
18199         (Optimization Options): Add missing @gol.
18200         (Directory Options): Likewise.
18201         (i386 and x86-64 Options): Likewise.
18202         (RS6000 and PowerPC Options): Likewise.
18203         (i386 and x86-64 Windows Options): Likewise.
18204         (V850 Options): Add text missing from descriptions.
18205
18206 2011-03-22  Richard Henderson  <rth@redhat.com>
18207
18208         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
18209         (avr_incoming_return_addr_rtx): New.
18210         (emit_push_byte): New.
18211         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
18212         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
18213         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
18214         (emit_pop_byte): New.
18215         (expand_epilogue): Use it.  Pop frame pointer by bytes.
18216         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
18217         (INCOMING_RETURN_ADDR_RTX): New.
18218         (INCOMING_FRAME_SP_OFFSET): New.
18219         (ARG_POINTER_CFA_OFFSET): New.
18220         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
18221         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
18222         (pophi): Remove.
18223
18224         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
18225
18226 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
18227
18228         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
18229         (FUNCTION_ARG_ADVANCE): Likewise.
18230         * tm.texi.in: Change references to them to hook references.
18231         * tm.texi: Regenerate.
18232         * targhooks.c (default_function_arg): Eliminate check for target
18233         macro.
18234         (default_function_incoming_arg): Likewise.
18235         (default_function_arg_advance): Likewise.
18236         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
18237         (function_arg_advance): Likewise.
18238         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
18239
18240 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
18241
18242         * tree.c (build_call_1): New function.
18243         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
18244
18245 2011-03-22  Richard Guenther  <rguenther@suse.de>
18246
18247         PR tree-optimization/48228
18248         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
18249         for single-arg PHIs.
18250
18251 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
18252
18253         PR rtl-optimization/48143
18254         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
18255         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
18256         sse2_cvtps2pd): Likewise.
18257
18258 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18259
18260         * recog.c (canonicalize_change_group): Use validate_unshare_change.
18261
18262 2011-03-22  Richard Guenther  <rguenther@suse.de>
18263
18264         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
18265         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
18266         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
18267         and REALIGN_LOAD_EXPR.
18268         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
18269         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
18270         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
18271         DOT_PROD_EXPR case ...
18272         (expand_expr_real_2): ... here.
18273         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
18274         and REALIGN_LOAD_EXPR.
18275         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
18276         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
18277         (vect_create_epilog_for_reduction): Likewise.
18278         (vectorizable_reduction): Likewise.
18279         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
18280         * tree-vect-stmts.c (vectorizable_load): Likewise.
18281
18282 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
18283
18284         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
18285
18286 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18287
18288         * config/s390/s390.c (s390_delegitimize_address): Fix offset
18289         handling for PLTOFF/GOTOFF.
18290
18291 2011-03-22  Nick Clifton  <nickc@redhat.com>
18292
18293         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
18294         trailing backslash from the end of the macro definition.
18295
18296 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18297
18298         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
18299         and PLT unspecs.
18300
18301 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
18302
18303         * expr.h (prepare_operand): Move to...
18304         * optabs.h (prepare_operand): ...here and change the insn code
18305         parameter from "int" to "enum insn_code".
18306         (insn_operand_matches): Declare.
18307         * expr.c (init_expr_target): Use insn_operand_matches.
18308         (compress_float_constant): Likewise.
18309         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
18310         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
18311         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
18312         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
18313         Likewise.
18314         (gen_cond_trap): Likewise.
18315         (prepare_operand): Likewise.  Change icode to an insn_code.
18316         (insn_operand_matches): New function.
18317         * reload.c (find_reloads_address_1): Use insn_operand_matches.
18318         * reload1.c (gen_reload): Likewise.
18319         * targhooks.c (default_secondary_reload): Likewise.
18320
18321 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
18322
18323         * config/alpha/alpha.md (unspec): New define_c_enum.
18324         (unspecv): Ditto.
18325
18326 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
18327
18328         PR debug/48214
18329         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
18330         between a call and its CALL_ARG_LOCATION note.
18331
18332 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
18333
18334         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
18335
18336 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
18337
18338         PR c/42544
18339         PR c/48197
18340         * c-common.c (shorten_compare): If primopN is first sign-extended
18341         to opN and then zero-extended to result type, set primopN to opN.
18342
18343 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
18344
18345         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
18346         for barrier handlers.
18347
18348 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
18349
18350         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
18351         UNSPEC constants to be in the unspec enumeration, and redefine
18352         all UNSPECV constants to be in the unspecv enumeration, so that
18353         dumps print which unspec/unspec_volatile this is.
18354         * config/rs6000/vector.md (UNSPEC_*): Ditto.
18355         * config/rs6000/paired.md (UNSPEC_*): Ditto.
18356         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
18357         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
18358         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
18359
18360         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
18361         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
18362         UNSPECV_LWSYNC, since these are used as unspec_volatile.
18363         * config/rs6000/sync.md (isync, lwsync): Ditto.
18364
18365 2011-03-21  Richard Guenther  <rguenther@suse.de>
18366
18367         * params.def (lto-min-partition): Fix typo.
18368
18369 2011-03-21  Richard Guenther  <rguenther@suse.de>
18370
18371         PR c/47939
18372         * c-decl.c (grokdeclarator): Drop to the main variant only
18373         for array types.  Drop flag_gen_aux_info check.
18374
18375 2011-03-21  Richard Guenther  <rguenther@suse.de>
18376
18377         PR translation/47911
18378         * params.def (lto-partitions): Fix typo.
18379         (lto-min-partition): Fix wording.
18380
18381 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
18382
18383         * config/rs6000/t-freebsd: Remove duplication from file.
18384
18385 2011-03-21  Richard Guenther  <rguenther@suse.de>
18386
18387         PR middle-end/47661
18388         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
18389
18390 2011-03-21  Richard Guenther  <rguenther@suse.de>
18391
18392         PR lto/48210
18393         * params.def (lto-partitions): Require at least 1 partition.
18394
18395 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18396
18397         * gthr-solaris.h: Remove.
18398         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
18399         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
18400         (LIB_SPEC): Likewise.
18401         * config/sol2.opt (threads): Remove.
18402         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
18403         (sparc*-*-solaris2*): Likewise.
18404         * configure.ac (enable_threads): Enable solaris support.
18405         * configure: Regenerate.
18406         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
18407         * doc/install.texi (Configuration, --enable-threads=lib): Remove
18408         solaris.
18409
18410 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18411
18412         * config.gcc: Obsolete *-*-solaris2.8*.
18413         * doc/install.texi (Specific, *-*-solaris2*): Document it.
18414
18415 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18416
18417         PR bootstrap/48135
18418         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
18419         reference.  Solaris 8 perl works.
18420
18421 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18422
18423         PR bootstrap/48135
18424         * doc/install.texi (Prerequisites): Move jar etc. up.
18425         Explain support library version requirements.
18426
18427 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18428
18429         PR bootstrap/48135
18430         * doc/install.texi (Prerequisites): Move Perl to build
18431         requirements.  Always necessary on Solaris 2 with Sun ld.
18432
18433 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18434
18435         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
18436         binutils 2.21.
18437         (Specific, i?86-*-solaris2.[89]): Likewise.
18438         (Specific, i?86-*-solaris2.10): Likewise.
18439         (Specific, mips-sgi-irix6): Likewise.
18440         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
18441         Update for binutils 2.21.
18442
18443 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18444
18445         * configure.ac (gcc_cv_lto_plugin): Fix typo.
18446         Allow -fuse-linker-plugin for non-default plugin linker.
18447         * configure: Regenerate.
18448
18449 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
18450
18451         PR bootstrap/48167
18452         * gengtype.c (files_rules): Added rule for cp/parser.h.
18453
18454 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
18455
18456         PR target/48213
18457         * config/s390/s390.c (s390_delegitimize_address): Don't call
18458         lowpart_subreg if orig_x has BLKmode.
18459
18460 2011-03-21  Kai Tietz  <ktietz@redhat.com>
18461
18462         PR target/12171
18463         * doc/plugins.texi: Adjust documentation for plugin register_callback.
18464         * tree.h (attribute_spec): Add new member affects_type_identity.
18465         * attribs.c (empty_attribute_table): Adjust attribute_spec
18466         initializers.
18467         * config/alpha/alpha.c: Likewise.
18468         * config/arc/arc.c: Likewise.
18469         * config/arm/arm.c: Likewise.
18470         * config/avr/avr.c: Likewise.
18471         * config/bfin/bfin.c: Likewise.
18472         * config/crx/crx.c: Likewise.
18473         * config/darwin.h: Likewise.
18474         * config/h8300/h8300.c: Likewise.
18475         * config/i386/cygming.h: Likewise.
18476         * config/i386/i386.c: Likewise.
18477         * config/ia64/ia64.c: Likewise.
18478         * config/m32c/m32c.c: Likewise.
18479         * config/m32r/m32r.c: Likewise.
18480         * config/m68hc11/m68hc11.c: Likewise.
18481         * config/m68k/m68k.c: Likewise.
18482         * config/mcore/mcore.c: Likewise.
18483         * config/mep/mep.c: Likewise.
18484         * config/microblaze/microblaze.c: Likewise.
18485         * config/mips/mips.c: Likewise.
18486         * config/rs6000/rs6000.c: Likewise.
18487         * config/rx/rx.c: Likewise.
18488         * config/sh/sh.c: Likewise.
18489         * config/sol2.h: Likewise.
18490         * config/sparc/sparc.c: Likewise.
18491         * config/spu/spu.c: Likewise.
18492         * config/stormy16/stormy16.c: Likewise.
18493         * config/v850/v850.c: Likewise.
18494
18495 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
18496
18497         * simplify-rtx.c (simplify_binary_operation_1): Handle
18498         (xor (and A B) C) case when B and C are both constants.
18499
18500 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
18501
18502         * tree-dfa.c (add_referenced_var): Fix typo in comment.
18503
18504 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
18505
18506         PR bootstrap/48168
18507         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
18508
18509 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
18510
18511         PR rtl-optimization/48156
18512         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
18513         assume df and df_lr are not NULL.
18514
18515 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18516
18517         PR debug/48023
18518         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
18519         between a call and its CALL_ARG_LOCATION note.
18520
18521 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
18522
18523         PR debug/48178
18524         * config/sh/sh.c (find_barrier): Don't emit a constant pool
18525         between a call and its corresponding CALL_ARG_LOCATION note.
18526
18527 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
18528
18529         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
18530         instead of loop. Use HARD_REGISTER_NUM_P predicate.
18531         * haifa-sched.c (setup_ref_regs): Ditto.
18532         * caller-save.c (add_used_regs_1): Ditto.
18533         * dse.c (look_for_hardregs): Ditto.
18534         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
18535         * sched-rgn.c (check_live_1): Ditto.
18536
18537 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
18538
18539         * c-decl.c (diagnose_mismatched_decls): Give an error for
18540         redefining a typedef with variably modified type.
18541
18542 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
18543
18544         * c-decl.c (grokfield): Don't allow typedefs for structures or
18545         unions with no tag by default.
18546         * doc/extend.texi (Unnamed Fields): Update.
18547
18548 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
18549
18550         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
18551         Rewrite using indirect functions.
18552         (lwp_slwpcb): Ditto.
18553         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
18554         (avx_vinsertf128<mode>): Ditto.
18555
18556 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18557
18558         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
18559         unspecs.
18560
18561 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18562
18563         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
18564         splitting between a call and its corresponding CALL_ARG_LOCATION note.
18565
18566 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
18567
18568         PR rtl-optimization/48170
18569         * gcse.c (hoist_code): Remove bogus asserts.
18570
18571 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
18572
18573         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
18574         computation for prologue/epilogue.
18575
18576 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18577
18578         * Makefile.in (check-consistency): Remove.
18579
18580 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
18581
18582         PR debug/48176
18583         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
18584         arange_table_in_use is 0, but either text_section_used or
18585         cold_text_section_used is true.  Don't call it if
18586         !info_section_emitted.
18587
18588 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
18589
18590         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
18591         FUNCTION_VALUE_REGNO_P): Remove.
18592         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
18593         Remove.
18594         * config/avr/avr.c (avr_ret_register): Make static inline.
18595         (avr_function_value_regno_p): New function.
18596         (avr_libcall_value): Make static. Add 'func' argument.
18597         (avr_function_value): Make static. Rename 'func' argument to
18598         'fn_decl_or_type', forward it to avr_libcall_value. Call
18599         avr_ret_register function instead of RET_REGISTER macro.
18600         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
18601
18602 2011-03-18  Jason Merrill  <jason@redhat.com>
18603
18604         PR c++/23372
18605         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
18606
18607 2011-03-18  Richard Guenther  <rguenther@suse.de>
18608
18609         * doc/install.texi (--enable-gold): Remove.
18610         (--with-plugin-ld): Document.
18611         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
18612
18613 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
18614
18615         PR middle-end/47790
18616         * expr.c (optimize_bitfield_assignment_op): Revamp to work
18617         again after expansion changes.
18618
18619 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
18620
18621         * combine.c (try_combine): Do simplification only call of
18622         subst() on i2 even when i1 is present. Update comments.
18623
18624 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
18625
18626         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
18627         and UNSPEC_PCREL_SYMOFF.
18628
18629 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18630
18631         * config/s390/s390.md: Use define_c_enum for the unspec constant
18632         definitions.
18633
18634 2011-03-18  Richard Henderson  <rth@redhat.com>
18635             Jakub Jelinek  <jakub@redhat.com>
18636
18637         PR bootstrap/48161
18638         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
18639         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
18640
18641 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
18642
18643         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18644         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
18645         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
18646         Change return type to bool.
18647         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18648
18649 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
18650
18651         PR debug/48163
18652         * var-tracking.c (prepare_call_arguments): If CALL target
18653         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
18654         pc instead of looking it up using cselib_lookup and use
18655         Pmode for it if x has VOIDmode.
18656         * dwarf2out.c (gen_subprogram_die): If also both first and
18657         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
18658
18659         PR debug/48163
18660         * function.c (assign_parms): For data.passed_pointer parms
18661         use MEM of data.entry_parm instead of data.entry_parm itself
18662         as DECL_INCOMING_RTL.
18663         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
18664         also when passed and declared mode is the same, DECL_RTL
18665         is a MEM with pseudo as address and DECL_INCOMING_RTL is
18666         a MEM too.
18667
18668 2011-03-16  Jeff Law  <law@redhat.com>
18669
18670         PR rtl-optimization/37273
18671         * ira-costs.c (scan_one_insn): Detect constants living in memory and
18672         handle them like argument loads from stack slots.  Do not double
18673         count memory for memory constants and argument loads from stack slots.
18674
18675 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
18676
18677         PR debug/48160
18678         * var-tracking.c (prepare_call_arguments): Check SUBREG.
18679
18680 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
18681
18682         PR target/48171
18683         * config/i386/i386.opt: Add Save to -mavx and -mfma.
18684
18685 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
18686
18687         PR bootstrap/48153
18688         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
18689         if dwarf_strict.
18690         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
18691         Clear call_arg_locations and call_arg_loc_last always.
18692
18693         PR middle-end/48152
18694         * var-tracking.c (prepare_call_arguments): If argument needs to be
18695         passed by reference, adjust argtype and mode.
18696
18697 2011-03-17  Richard Guenther  <rguenther@suse.de>
18698
18699         PR middle-end/48134
18700         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
18701         a value make sure to fold the statement.
18702
18703 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
18704
18705         PR target/43872
18706         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
18707         return condition with !cfun->calls_alloca.
18708
18709 2011-03-17  Richard Guenther  <rguenther@suse.de>
18710
18711         PR bootstrap/48148
18712         * lto-cgraph.c (input_overwrite_node): Clear the abstract
18713         origin for decls in other ltrans units.
18714         (input_varpool_node): Likewise.
18715
18716 2011-03-17  Richard Guenther  <rguenther@suse.de>
18717
18718         PR middle-end/48165
18719         * tree-object-size.c (compute_object_offset): Properly return
18720         the offset operand of MEM_REFs as sizetype.
18721
18722 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
18723
18724         PR rtl-optimization/48141
18725         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
18726         * dse.c: Include params.h.
18727         (active_local_stores_len): New variable.
18728         (add_wild_read, dse_step1): Clear it when setting active_local_stores
18729         to NULL.
18730         (record_store, check_mem_read_rtx): Decrease it when removing
18731         from the chain.
18732         (scan_insn): Likewise.  Increase it when adding to chain, if it
18733         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
18734         set active_local_stores to NULL before the addition.
18735         * Makefile.in (dse.o): Depend on $(PARAMS_H).
18736
18737         PR rtl-optimization/48141
18738         * dse.c (record_store): If no positions are needed in an insn
18739         that cannot be deleted, at least unchain it from active_local_stores.
18740
18741 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
18742
18743         PR debug/47510
18744         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
18745         (lookup_type_die_strip_naming_typedef): ... here.
18746         (get_context_die): Use it.
18747         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
18748         the anonymous struct named by the naming typedef.
18749
18750 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
18751
18752         PR target/48154
18753         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
18754         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18755
18756 2011-03-16  Jeff Law  <law@redhat.com>
18757
18758         * tree-vrp.c (identify_jump_threads): Slightly simplify type
18759         check for operands of conditional.  Allow type to be a pointer.
18760
18761 2011-03-16  Richard Guenther  <rguenther@suse.de>
18762
18763         PR tree-optimization/48149
18764         * fold-const.c (fold_binary_loc): Fold
18765         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
18766
18767 2011-03-16  Richard Guenther  <rguenther@suse.de>
18768
18769         PR tree-optimization/26134
18770         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
18771         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
18772         (non_rewritable_mem_ref_base): Handle complex type component
18773         accesses, constrain offsets for vector and complex extracts
18774         more properly.
18775
18776 2011-03-16  Richard Guenther  <rguenther@suse.de>
18777
18778         PR tree-optimization/48146
18779         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
18780         operands avoiding the need for renaming.
18781
18782 2011-03-16  Richard Guenther  <rguenther@suse.de>
18783
18784         * gimple-fold.c (maybe_fold_reference): Open-code relevant
18785         constant folding.  Move MEM_REF canonicalization first.
18786         Rely on fold_const_aggregate_ref for initializer folding.
18787         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
18788
18789 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
18790
18791         PR middle-end/48136
18792         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
18793         arg0/arg1 or their arguments are always fold converted to matching
18794         types.
18795
18796         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
18797         to nargs.
18798
18799 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18800
18801         PR lto/46944
18802         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
18803         Handle in-tree gold.
18804         (ld_vers): Extract binutils version for gold.
18805         (gcc_cv_ld_hidden): Handle gold here.
18806         (gcc_cv_lto_plugin): Determine level of linker plugin support.
18807         * configure: Regenerate.
18808         * config.in: Regenerate.
18809         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
18810         -fuse-linker-plugin otherwise.
18811         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
18812         (LINK_COMMAND_SPEC): Use it.
18813         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
18814
18815 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
18816
18817         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
18818         * calls.c: Remove debug.h include.
18819         (emit_call_1): Don't call virtual_call_token debug hook.
18820         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
18821         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
18822         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
18823         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
18824         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
18825         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
18826         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
18827         dwarf2out_virtual_call): Remove.
18828         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
18829         copy_call_info and virtual_call hooks.
18830         (dwarf2out_init): Don't initialize vcall_insn_table,
18831         debug_dcall_section and debug_vcall_section.
18832         (prune_unused_types): Don't mark nodes from dcall_table.
18833         (dwarf2out_finish): Don't output dcall or vcall tables.
18834         * final.c (final_scan_insn): Don't call direct_call or
18835         virtual_call debug hooks.
18836         * debug.h (struct gcc_debug_hooks): Remove direct_call,
18837         virtual_call_token, copy_call_info and virtual_call hooks.
18838         (debug_nothing_uid): Remove prototype.
18839         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
18840         copy_call_info and virtual_call hooks.
18841         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
18842         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
18843         * debug.c (do_nothing_debug_hooks): Likewise.
18844         (debug_nothing_uid): Remove.
18845         * doc/invoke.texi (-fenable-icf-debug): Remove.
18846         * common.opt (-fenable-icf-debug): Likewise.
18847
18848         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
18849         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
18850         call's MEM.  Handle functions returning aggregate through a hidden
18851         first pointer.  For virtual calls add clobbered pc to call arguments
18852         chain.
18853         * dwarf2out.c (gen_subprogram_die): Emit
18854         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
18855         can't be emitted.
18856
18857         PR debug/45882
18858         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
18859         * rtl.h (ENTRY_VALUE_EXP): Define.
18860         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
18861         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
18862         * print-rtl.c (print_rtx): Likewise.
18863         * gengtype.c (adjust_field_rtx_def): Likewise.
18864         * var-tracking.c (vt_add_function_parameter): Adjust
18865         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
18866         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
18867         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
18868         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
18869         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
18870
18871         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
18872         Call var_location debug hook even on CALL_INSNs.
18873         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
18874         * rtl.def (ENTRY_VALUE): New.
18875         * dwarf2out.c: Include cfglayout.h.
18876         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18877         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
18878         (struct call_arg_loc_node): New type.
18879         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
18880         tail_call_site_count): New variables.
18881         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
18882         DW_TAG_GNU_call_site_parameter.
18883         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
18884         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
18885         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
18886         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
18887         and DW_AT_GNU_all_source_call_sites.
18888         (mem_loc_descriptor): Handle ENTRY_VALUE.
18889         (add_src_coords_attributes): Don't add enything if
18890         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
18891         (dwarf2out_abstract_function): Save and clear call_arg_location,
18892         call_site_count and tail_call_site_count around dwarf2out_decl call.
18893         (gen_call_site_die): New function.
18894         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
18895         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
18896         (dwarf2out_function_decl): Clear call_arg_locations,
18897         call_arg_loc_last, set call_site_count and tail_call_site_count
18898         to -1 and free block_map.
18899         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
18900         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
18901         followed by any real instructions.
18902         (dwarf2out_begin_function): Set call_site_count and
18903         tail_call_site_count to 0.
18904         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
18905         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
18906         attempt to force a DIE for it and worst case remove the attribute.
18907         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
18908         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
18909         the decl itself.
18910         * var-tracking.c: Include tm_p.h.
18911         (vt_stack_adjustments): For calls call note_register_arguments.
18912         (argument_reg_set): New variable.
18913         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
18914         ensure the VALUE is resolved.
18915         (call_arguments): New variable.
18916         (prepare_call_arguments): New function.
18917         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
18918         (struct expand_loc_callback_data): Add ignore_cur_loc field.
18919         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
18920         always use the best expression.
18921         (vt_expand_loc): Add ignore_cur_loc argument.
18922         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
18923         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
18924         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
18925         note for all calls.
18926         (vt_add_function_parameter): Use cselib_lookup_from_insn.
18927         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
18928         argument.  Don't call cselib_preserve_only_values and
18929         cselib_reset_table.
18930         (note_register_arguments): New function.
18931         (vt_initialize): Compute argument_reg_set.  Call
18932         vt_add_function_parameters before processing basic blocks instead of
18933         afterwards.  For calls call prepare_call_arguments before calling
18934         cselib_process_insn.
18935         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
18936         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
18937         (var-tracking.o): Depend on $(TM_P_H).
18938         * cfglayout.h (insn_scope): New prototype.
18939         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
18940         * cfglayout.c (insn_scope): No longer static.
18941         * insn-notes.def (CALL_ARG_LOCATION): New.
18942         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
18943         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
18944         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
18945         nothing for DECL_EXTERNAL BLOCK_VARS.
18946
18947 2011-03-16  Alan Modra  <amodra@gmail.com>
18948
18949         PR target/45844
18950         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
18951         create invalid offset address for vsx splat insn.
18952         * config/rs6000/predicates.md (splat_input_operand): New.
18953         * config/rs6000/vsx.md (vsx_splat_*): Use it.
18954
18955 2011-03-15  Xinliang David Li  <davidxl@google.com>
18956
18957         PR c/47837
18958         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
18959         (normalize_preds): New function.
18960         (is_use_properly_guarded): Normalize def predicates.
18961
18962 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18963
18964         PR target/46788
18965         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
18966         in the output template.
18967
18968 2011-03-15  Richard Guenther  <rguenther@suse.de>
18969
18970         PR middle-end/47650
18971         * tree-pretty-print.c (dump_function_declaration): Properly
18972         dump unprototyped and varargs function types.
18973
18974 2011-03-15  Richard Guenther  <rguenther@suse.de>
18975
18976         PR tree-optimization/13954
18977         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
18978         and friends.
18979
18980 2011-03-15  Richard Guenther  <rguenther@suse.de>
18981
18982         PR tree-optimization/48037
18983         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
18984         selects into BIT_FIELD_REFs.
18985         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
18986         vector select.
18987
18988 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
18989
18990         PR tree-optimization/48129
18991         * builtins.c (fold_builtin_snprintf): Convert to type of
18992         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
18993         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
18994
18995 2011-03-15  Richard Guenther  <rguenther@suse.de>
18996
18997         PR tree-optimization/41490
18998         * tree-ssa-dce.c (propagate_necessity): Handle returns without
18999         value but with VUSE.
19000         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
19001         return statements.
19002         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
19003         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
19004         * tree-tailcall.c (find_tail_calls): Ignore returns.
19005
19006 2011-03-15  Richard Guenther  <rguenther@suse.de>
19007
19008         PR middle-end/48031
19009         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
19010         or variable-indexed array accesses when in gimple form.
19011
19012 2011-03-15  Richard Guenther  <rguenther@suse.de>
19013
19014         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
19015
19016 2011-03-15  Alan Modra  <amodra@gmail.com>
19017
19018         PR target/48032
19019         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
19020         presume symbol_refs without a symbol_ref_decl are suitably
19021         aligned, nor other trees we may see here.  Handle anchor symbols.
19022         (legitimate_constant_pool_address_p): Comment.  Add mode param.
19023         Check cmodel=medium addresses.  Adjust all calls.
19024         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
19025         creating cmodel=medium optimized access to locals.
19026         * config/rs6000/constraints.md (R): Pass QImode to
19027         legitimate_constant_pool_address_p.
19028         * config/rs6000/predicates.md (input_operand): Pass mode to
19029         legitimate_constant_pool_address_p.
19030         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
19031         Update prototype.
19032
19033 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
19034
19035         PR target/48053
19036         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
19037         64-bit constants being loaded into registers other than GPRs such
19038         as loading 0 into a VSX register.
19039
19040 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19041
19042         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
19043
19044 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
19045
19046         PR middle-end/47917
19047         * builtins.c (fold_builtin_snprintf): New function.
19048         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
19049         (fold_builtin_4): Likewise.
19050
19051         PR middle-end/38878
19052         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
19053         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
19054         and C - X == X also strip nops from +/-/p+ operand.
19055         When optimizing -X == C, fold C to arg0's type.
19056
19057         PR debug/47946
19058         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
19059         emit it as add_AT_int instead of add_AT_unsigned.
19060
19061 2011-03-14  Tom Tromey  <tromey@redhat.com>
19062
19063         * unwind-dw2.c: Include sys/sdt.h if it exists.
19064         (_Unwind_DebugHook): Use STAP_PROBE2.
19065         * config.in, configure: Rebuild.
19066         * configure.ac: Check for sys/sdt.h.
19067
19068 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
19069
19070         * config/i386/i386.md (ROUND_FLOOR): New constant.
19071         (ROUND_CEIL): Ditto.
19072         (ROUND_TRUNC): Ditto.
19073         (ROUND_MXCSR): Ditto.
19074         (ROUND_NO_EXC): Ditto.
19075         (rint<mode>2): Use new defines instead of numerical constants.
19076         (floor<mode>2): Ditto.
19077         (ceil<mode>2): Ditto.
19078         (btrunc<mode>2): Ditto.
19079         * config/i386/i386-builtin-types.def: Define ROUND function type
19080         aliases.
19081         * config/i386/i386.c (enum ix86_builtins): Add
19082         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
19083         (struct builtin_description): Add
19084         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
19085         (ix86_expand_sse_round): New static function.
19086         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
19087         function types.
19088         (ix86_builtin_vectorized_function): Handle
19089         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
19090
19091 2011-03-14  Tom Tromey  <tromey@redhat.com>
19092
19093         * c-parser.c (c_parser_asm_string_literal): Clear
19094         warn_overlength_strings.
19095
19096 2011-03-14  Tom Tromey  <tromey@redhat.com>
19097
19098         * c-parser.c (disable_extension_diagnostics): Save
19099         warn_overlength_strings.
19100         (restore_extension_diagnostics): Restore warn_overlength_strings.
19101
19102 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
19103
19104         * BASE-VER: Change to 4.7.0.
19105
19106 2011-03-14  Richard Guenther  <rguenther@suse.de>
19107
19108         PR middle-end/48098
19109         * tree.c (build_vector_from_val): Adjust assert to requirements
19110         and reality.
19111
19112 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
19113
19114         PR bootstrap/48102
19115         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
19116
19117 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
19118
19119         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
19120         terms of target_flags_explicit. Adjust copyright year.
19121
19122         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
19123         * config/rs6000/t-freebsd: New file. Add override for
19124         LIB2FUNCS_EXTRA.
19125
19126 2011-03-13  Chris Demetriou  <cgd@google.com>
19127
19128         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
19129         (-fno-diagnostics-show-option): this, to reflect current default.
19130         (-Werror=): Update text about -fno-diagnostics-show-option.
19131
19132 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
19133
19134         PR target/48053
19135         * config/rs6000/predicates.md (easy_vector_constant_add_self,
19136         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
19137         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
19138         mode is not V2DImode or V2DFmode.
19139         (vspltis_constant): Do not handle V2DImode and V2DFmode.
19140         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
19141         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
19142         registers to 0.
19143         (movdi_internal64): Likewise.
19144
19145 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
19146
19147         PR tree-optimization/47127
19148         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
19149         parameter.
19150         (set_cloog_options): Same.
19151         (scop_to_clast): Same.
19152         (print_clast_stmt): Do not call cloog_state_malloc and
19153         cloog_state_free.
19154         (print_generated_program): Same.
19155         (gloog): Same.
19156         * graphite-clast-to-gimple.h (cloog_state): Declared.
19157         (scop_to_clast): Adjust declaration.
19158         * graphite.c (cloog_state): Defined here.
19159         (graphite_initialize): Call cloog_state_malloc.
19160         (graphite_finalize): Call cloog_state_free.
19161
19162 2011-03-11  Jason Merrill  <jason@redhat.com>
19163
19164         * attribs.c (lookup_attribute_spec): Take const_tree.
19165         * tree.h: Adjust.
19166
19167 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
19168
19169         * config/sparc/sparc.c (sparc_option_override): Use
19170         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
19171
19172 2011-03-11  Richard Guenther  <rguenther@suse.de>
19173
19174         PR tree-optimization/48067
19175         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
19176         multiplication result will be only used once on the target
19177         stmt.
19178
19179 2011-03-11  Richard Guenther  <rguenther@suse.de>
19180
19181         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
19182
19183 2011-03-11  Richard Guenther  <rguenther@suse.de>
19184
19185         PR lto/48073
19186         * tree.c (find_decls_types_r): Do not walk types only reachable
19187         from IDENTIFIER_NODEs.
19188
19189 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
19190
19191         PR middle-end/48044
19192         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
19193         all vnode->force_output nodes as needed.
19194
19195 2011-03-11  Jason Merrill  <jason@redhat.com>
19196
19197         PR c++/48069
19198         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
19199         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
19200
19201 2011-03-11  Martin Jambor  <mjambor@suse.cz>
19202
19203         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
19204         cgraph_node.
19205
19206 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
19207
19208         PR tree-optimization/48063
19209         * ipa-inline.c (cgraph_decide_inlining): Don't try to
19210         inline functions called once if !tree_can_inline_p (node->callers).
19211
19212 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
19213
19214         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
19215         extra_objs.
19216         * config/score/score3.c: Delete.
19217         * config/score/score3.h: Delete.
19218         * config/score/mul-div.S: Delete.
19219         * config/score/sfp-machine.h: Add new file.
19220         * config/score/constraints.md: Add new file.
19221         * config/score/t-score-softfp: Add new file.
19222         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
19223         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
19224         (score7_extra_constraint): Delete.
19225         (score7_option_override): Remove unused code.
19226         * config/score/score.c: Remove score3 and score5 define and code.
19227         * config/score/score.h: Remove score3 and score5 define and code.
19228         * config/score/score.md: Remove score3 template and unusual insn.
19229         * config/score/score.opt: Remove score3 and score5 options.
19230
19231 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19232
19233         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
19234         when _HPUX_SOURCE is defined.
19235         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
19236
19237 2011-03-10  Jason Merrill  <jason@redhat.com>
19238
19239         PR c++/48029
19240         * stor-layout.c (layout_type): Don't set structural equality
19241         on arrays of incomplete type.
19242         * tree.c (type_hash_eq): Handle comparing them properly.
19243
19244 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
19245
19246         PR debug/48043
19247         * config/s390/s390.c (s390_delegitimize_address): Make sure the
19248         result mode matches original rtl mode.
19249
19250 2011-03-10  Nick Clifton  <nickc@redhat.com>
19251
19252         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
19253         (andsi3, andsi3_flags): Fix timings for three operand alternative.
19254
19255 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
19256
19257         PR rtl-optimization/47866
19258         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
19259         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
19260         if target wasn't scalar.
19261         * function.c (assign_stack_temp_for_type): Assert that neither
19262         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
19263         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
19264         macro.
19265         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
19266
19267 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19268
19269         * config/s390/s390-protos.h (s390_label_align): New prototype.
19270         * config/s390/s390.c (s390_label_align): New function.
19271         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
19272
19273 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19274
19275         PR target/47755
19276         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
19277         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
19278         (output_vec_const_move): Ditto.
19279
19280 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
19281
19282         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
19283         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
19284         * config/mips/mips.c (mips_preferred_reload_class): Make static.
19285         Change 'rclass' argument and result type to reg_class_t.
19286         (TARGET_PREFERRED_RELOAD_CLASS): Define.
19287
19288 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
19289
19290         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
19291         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
19292         (TARGET_MEMORY_MOVE_COST): Define.
19293         (avr_register_move_cost, avr_memory_move_cost): New Functions.
19294
19295 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
19296
19297         PR debug/47881
19298         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
19299         removed anything.
19300
19301         PR tree-optimization/48022
19302         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
19303         for EQ/NE_EXPR.
19304
19305 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
19306
19307         PR debug/47991
19308         * var-tracking.c (find_use_val): Return NULL for
19309         cui->sets && cui->store_p BLKmode MEMs.
19310
19311 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
19312
19313         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
19314         Remove.
19315         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
19316         xstormy16_print_operand_address): Remove.
19317         * config/stormy16/stormy16.c (xstormy16_print_operand,
19318         xstormy16_print_operand_address): Make static.
19319         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19320
19321 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
19322
19323         PR target/47862
19324         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
19325         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
19326         before definition.
19327
19328 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
19329
19330         PR bootstrap/48000
19331         * cfgloopmanip.c (fix_bb_placements): Return immediately
19332         if FROM is BASE_LOOP's header.
19333
19334 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
19335
19336         * gimplify.c (gimplify_function_tree): Fix building calls
19337         to __builtin_return_address.
19338
19339 2011-03-07  Alan Modra  <amodra@gmail.com>
19340
19341         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
19342         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
19343         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
19344         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
19345         return_mode args.
19346         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
19347         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
19348         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
19349         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
19350         * config/rs6000/rs6000.c
19351         (rs6000_elf_end_indicate_exec_stack): Rename to..
19352         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
19353         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
19354         (rs6000_file_start): ..here.
19355         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
19356         file scope variables.
19357         (call_ABI_of_interest): New function.
19358         (init_cumulative_args): Set above vars when function return value
19359         is a float, vector, or small struct.
19360         (rs6000_function_arg_advance_1): Likewise for function args.
19361         (rs6000_va_start): Set rs6000_passes_float if variable arg function
19362         references float args.
19363
19364 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
19365
19366         * doc/cfg.texi: Remove "See" before @ref.
19367         * doc/invoke.texi: Likewise.
19368
19369 2011-03-05  Jason Merrill  <jason@redhat.com>
19370
19371         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
19372
19373 2011-03-05  Anthony Green  <green@moxielogic.com>
19374
19375         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
19376
19377 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
19378
19379         PR rtl-optimization/47899
19380         * cfgloopmanip.c (fix_bb_placements): Fix first argument
19381         to flow_loop_nested_p when moving the loop upward.
19382
19383 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
19384
19385         PR target/47719
19386         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
19387
19388 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
19389
19390         PR tree-optimization/47967
19391         * ipa-cp.c (build_const_val): Return NULL instead of creating
19392         VIEW_CONVERT_EXPR for mismatching sizes.
19393         (ipcp_create_replace_map): Return NULL if build_const_val failed.
19394         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
19395         give up on versioning.
19396
19397 2011-03-05  Alan Modra  <amodra@gmail.com>
19398
19399         PR target/47986
19400         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19401         full cmodel medium/large lo_sum + high addresses.
19402
19403 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19404
19405         * config/s390/s390.c (s390_decompose_address): Reject non-literal
19406         pool references in UNSPEC_LTREL_OFFSET.
19407
19408 2011-03-04  Jan Hubicka  <jh@suse.cz>
19409
19410         PR lto/47497
19411         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
19412         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
19413         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
19414         Add node pointers.
19415         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
19416         cgraph_add_thunk): Add node pointers.
19417         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
19418         associated to right node.
19419         (input_node): Update use of cgraph_same_body_alias
19420         and cgraph_add_thunk.
19421
19422 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
19423
19424         * config/i386/i386.opt (mprefer-avx128): New flag.
19425         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
19426         modes when the flag -mprefer-avx128 is on.
19427
19428 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
19429
19430         * dwarf2out.c (compare_loc_operands): Fix address handling.
19431
19432 2011-03-04  Alan Modra  <amodra@gmail.com>
19433
19434         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
19435
19436 2011-03-04  Richard Guenther  <rguenther@suse.de>
19437
19438         PR middle-end/47968
19439         * expmed.c (extract_bit_field_1): Prefer vector modes that
19440         vec_extract patterns can handle.
19441
19442 2011-03-04  Richard Guenther  <rguenther@suse.de>
19443
19444         PR middle-end/47975
19445         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
19446
19447 2011-03-04  Richard Henderson  <rth@redhat.com>
19448
19449         * explow.c (emit_stack_save): Remove 'after' parameter.
19450         (emit_stack_restore): Likewise.
19451         * expr.h: Update to match.
19452         * builtins.c, calls.c, stmt.c: Likewise.
19453         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
19454         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
19455         * function.c (expand_function_end): Insert the emit_stack_save
19456         sequence before parm_birth_insn instead of after.
19457
19458 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
19459
19460         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
19461         (ssse3_pmaddubsw128): Ditto.
19462         (ssse3_pmaddubsw): Ditto.
19463
19464 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
19465
19466         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
19467
19468 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
19469
19470         PR c/47963
19471         * gimplify.c (omp_add_variable): Only call omp_notice_variable
19472         on TYPE_SIZE_UNIT if it is a DECL.
19473
19474         PR debug/47283
19475         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
19476         first operand is not is_gimple_mem_ref_addr, try to fold it.
19477         If the operand still isn't is_gimple_mem_ref_addr, clear
19478         MEM_EXPR on op0.
19479
19480 2011-03-03  Richard Guenther  <rguenther@suse.de>
19481
19482         PR middle-end/47283
19483         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
19484         match comment.
19485         (refs_may_alias_p_1): For release branches return true if
19486         we are confused by our input.
19487
19488 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19489
19490         * config/s390/s390.c (s390_function_value): Rename to ...
19491         (s390_function_and_libcall_value): ... this.
19492         (s390_function_value): New function.
19493         (s390_libcall_value): New function.
19494         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
19495         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
19496         target macro definitions.
19497         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
19498
19499 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
19500
19501         * config/i386/freebsd64.h (CC1_SPEC): Define.
19502         * config/i386/linux64.h (CC1_SPEC): Define.
19503         * config/i386/x86-64.h (CC1_SPEC): Don't define.
19504
19505 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
19506
19507         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19508         Remove.
19509         * config/stormy16/stormy16.c: Include reload.h.
19510         (xstormy16_memory_move_cost): New function.
19511         (TARGET_MEMORY_MOVE_COST): Define.
19512
19513 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
19514
19515         PR rtl-optimization/47925
19516         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
19517         with side effects.  Remove the more-specific check for volatile asms.
19518
19519 2011-03-02  Alan Modra  <amodra@gmail.com>
19520
19521         PR target/47935
19522         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
19523         toc relative addresses for valid offsets.
19524
19525 2011-03-01  Richard Guenther  <rguenther@suse.de>
19526
19527         PR tree-optimization/47890
19528         * tree-vect-loop.c (get_initial_def_for_induction): Set
19529         related stmt properly.
19530
19531 2011-03-01  Richard Guenther  <rguenther@suse.de>
19532
19533         PR lto/47924
19534         * lto-streamer.c (lto_record_common_node): Also register
19535         the canonical type.
19536
19537 2011-03-01  Richard Guenther  <rguenther@suse.de>
19538
19539         PR lto/46911
19540         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19541         Do not stream DECL_ABSTRACT_ORIGIN.
19542         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19543         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19544         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19545         Do not stream DECL_ABSTRACT_ORIGIN.
19546         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19547         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19548
19549 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
19550
19551         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
19552         FUNCTION_VALUE_REGNO_P): Remove.
19553         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
19554         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
19555         Add 'outgoing' argument.
19556         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
19557         function.
19558         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19559         TARGET_FUNCTION_VALUE_REGNO_P): Define.
19560
19561 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
19562
19563         PR debug/28047
19564         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
19565         (lookup_filename): Likewise.
19566         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
19567
19568 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
19569             Jakub Jelinek  <jakub@redhat.com>
19570
19571         PR middle-end/47893
19572         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
19573         (assign_stack_local_1): Change last argument type to int.
19574         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
19575         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
19576         don't record padding space into frame_space_list nor use those areas.
19577         (assign_stack_local): Adjust caller.
19578         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
19579         of assign_stack_local, pass 0 as last argument.
19580         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
19581         callers.
19582
19583 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
19584
19585         PR debug/47283
19586         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
19587         Use target address_mode and pointer_mode hooks instead of hardcoded
19588         Pmode and ptr_mode.  Handle some simple cases of extending if
19589         POINTERS_EXTEND_UNSIGNED < 0.
19590         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
19591         Call convert_debug_memory_address.
19592         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
19593         convert_debug_memory_address.
19594
19595         PR middle-end/46790
19596         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
19597         * configure: Regenerated.
19598         * config.in: Regenerated.
19599         * varasm.c (default_function_section): Return NULL
19600         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
19601
19602 2011-02-28  Martin Jambor  <mjambor@suse.cz>
19603
19604         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
19605         the description to match the printed values.
19606
19607 2011-02-28  Richard Guenther  <rguenther@suse.de>
19608
19609         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
19610         of the copied scope tree.
19611
19612 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19613
19614         * doc/extend.texi (Function Attributes): Avoid deeply (and
19615         wrongly) nested tables.
19616
19617 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
19618
19619         PR middle-end/47903
19620         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
19621         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
19622         r isn't op0 nor op1.
19623
19624 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
19625
19626         * config/avr/avr.md: Remove magic comment for emacs.
19627
19628 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
19629
19630         PR target/45261
19631         * config/avr/avr.c (avr_option_override): Use error on bad options.
19632         (avr_help): New function.
19633         (TARGET_HELP): Define.
19634
19635 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
19636
19637         PR target/42240
19638         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
19639         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
19640
19641 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
19642
19643         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
19644         (ARM Options): Ditto.
19645         (i386 and x86-64 Options): Ditto.
19646         (RX Options): Ditto.
19647         (SPARC Options): Ditto.
19648
19649 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
19650
19651         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
19652         FreeBSD 6 and later.  Generally use cpu generic.
19653
19654 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
19655
19656         * doc/cpp.texi: Update copyright years.
19657
19658 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
19659
19660         PR target/46898
19661         * config/lm32/lm32.md (ashrsi3): Added needed variable.
19662
19663 2011-02-25  Jon Beniston  <jon@beniston.com>
19664
19665         PR target/46898
19666         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
19667         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
19668         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
19669         (lm32_block_move_inline): Add type cast to remove warning.
19670         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
19671         (gen_int_relational): Move declarations to start of function.
19672
19673 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
19674
19675         PR tree-optimization/45470
19676         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
19677         can throw internally only.
19678         * tree-vect-stmts.c (vectorizable_call): Likewise.
19679
19680 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
19681
19682         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
19683         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
19684         * config/stormy16/stormy16-protos.h
19685         (xstormy16_preferred_reload_class): Remove.
19686         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
19687         static. Change 'rclass' argument and return type to reg_class_t.
19688         (TARGET_PREFERRED_RELOAD_CLASS,
19689         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
19690
19691 2011-02-24  Richard Guenther  <rguenther@suse.de>
19692
19693         * lto-streamer-in.c (input_bb): Do not find referenced vars
19694         in debug statements.
19695
19696 2011-02-23  Jason Merrill  <jason@redhat.com>
19697
19698         * common.opt (fabi-version): Document v5 and v6.
19699
19700 2011-02-23  Richard Guenther  <rguenther@suse.de>
19701
19702         PR tree-optimization/47849
19703         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
19704
19705 2011-02-23  Jie Zhang  <jie@codesourcery.com>
19706
19707         * opts-common.c (decode_cmdline_option): Print empty string
19708         argument as "" in decoded->orig_option_with_args_text.
19709         * gcc.c (execute): Print empty string argument as ""
19710         in the verbose output.
19711         (do_spec_1): Keep empty string argument.
19712
19713 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
19714
19715         * config.gcc: Declare score-* and crx-* obsolete.
19716
19717 2011-02-23  Jie Zhang  <jie@codesourcery.com>
19718
19719         PR rtl-optimization/47763
19720         * web.c (web_main): Ignore naked clobber when replacing register.
19721
19722 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
19723
19724         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
19725         Remove.
19726
19727 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
19728
19729         PR doc/47848
19730         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
19731
19732 2011-02-22  Mike Stump  <mikestump@comcast.net>
19733
19734         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
19735         assembler.
19736         * configure: Regenerate.
19737
19738 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
19739
19740         PR rtl-optimization/46002
19741         * ira-color.c (update_copy_costs): Change class intersection
19742         test to reg_class_contents[] test of 'hard_regno'.
19743
19744 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
19745
19746         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
19747         than Driver option.
19748         * config/hpux11.opt (mt): Likewise.
19749         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
19750         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
19751         * config/vax/elf.opt (mno-asm-pic): Likewise.
19752         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
19753
19754 2011-02-21  Mike Stump  <mikestump@comcast.net>
19755
19756         PR target/47822
19757         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
19758         tree so we can get save the type.
19759         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
19760         for CFString instead of trying to use past the end of the builtins.
19761         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
19762         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
19763         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
19764         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
19765         Rename to darwin_builtin_cfstring.
19766         (darwin_init_cfstring_builtins): Return the built type.
19767
19768 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
19769
19770         PR target/47840
19771         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
19772         (_mm256_insert_epi64): Use _mm_insert_epi64.
19773
19774 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
19775
19776         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19777         * config/stormy16/stormy16-protos.h
19778         (xstormy16_mode_dependent_address_p): Remove.
19779         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
19780         Make static. Change return type to bool. Change argument type to
19781         const_rtx. Remove dead code.
19782         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19783
19784 2011-02-21  Richard Guenther  <rguenther@suse.de>
19785
19786         PR lto/47820
19787         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19788         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19789         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
19790         TUs context.
19791         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19792         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19793
19794 2011-02-20  Richard Guenther  <rguenther@suse.de>
19795
19796         PR lto/47822
19797         * tree.c (free_lang_data_in_decl): Clean builtins from
19798         the TU decl BLOCK_VARS.
19799
19800 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
19801
19802         PR debug/47620
19803         PR debug/47630
19804         * haifa-sched.c (fix_tick_ready): Skip tick computation
19805         for debug insns.
19806
19807 2011-02-19  Richard Guenther  <rguenther@suse.de>
19808
19809         PR lto/47647
19810         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
19811         Remove lazy BLOCK_VARS streaming.
19812         (lto_input_ts_block_tree_pointers): Likewise.
19813         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
19814
19815 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
19816
19817         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
19818
19819 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
19820
19821         * config/i386/biarch32.h, config/i386/mach.h,
19822         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
19823
19824 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
19825
19826         PR target/47800
19827         * config/i386/i386.md (peephole2 for shift and plus): Use
19828         operands[1] original mode in the first insn.
19829
19830 2011-02-18  Mike Stump  <mikestump@comcast.net>
19831
19832         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
19833
19834 2011-02-18  Jan Hubicka  <jh@suse.cz>
19835
19836         PR middle-end/47788
19837         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
19838         to zero when the function is not inlinable at all.
19839
19840 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19841
19842         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
19843         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
19844         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
19845         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
19846         * config/pa/t-pa64: Likewise.
19847         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
19848
19849 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
19850
19851         PR driver/47787
19852         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
19853
19854 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19855
19856         PR target/47792
19857         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
19858
19859 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
19860
19861         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
19862         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
19863         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
19864         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
19865         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
19866         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
19867         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
19868         m32r_load_postinc_p, m32r_store_preinc_predec_p,
19869         m32r_legitimate_address_p): New functions.
19870         * config/m32r/constraints.md (constraint "S"): Don't use
19871         STORE_PREINC_PREDEC_P.
19872         (constraint "U"): Don't use LOAD_POSTINC_P.
19873
19874 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
19875
19876         PR rtl-optimization/46178
19877         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
19878         compute ira_hard_regno_cover_class[].
19879
19880 2011-02-18  Richard Guenther  <rguenther@suse.de>
19881
19882         PR lto/47798
19883         * lto-streamer.h (lto_global_var_decls): Declare.
19884         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
19885         statics for global var processing.
19886
19887 2011-02-18  Richard Guenther  <rguenther@suse.de>
19888
19889         PR tree-optimization/47737
19890         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
19891         edge dominance check.
19892
19893 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
19894
19895         PR debug/47780
19896         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
19897         avoid invalid rtx sharing.
19898
19899 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
19900
19901         * doc/cpp.texi (Obsolete Features): Add background on the
19902         origin of assertions.
19903
19904 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
19905
19906         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
19907         objc_abi == 2.
19908         * config/darwin.c (output_objc_section_asm_op): Added support for
19909         ABI v1 and v2.
19910         (is_objc_metadata): New.
19911         (darwin_objc2_section): New.
19912         (darwin_objc1_section): New.
19913         (machopic_select_section): Added support for ABI v1 and v2.
19914         (darwin_emit_objc_zeroed): New.
19915         (darwin_output_aligned_bss): Detect objc metadata and treat it
19916         appropriately.
19917         (darwin_asm_output_aligned_decl_common): Same.
19918         (darwin_asm_output_aligned_decl_local): Same.
19919         * config/darwin-sections.def: Updated for ABI v1 and v2.
19920         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
19921         compiling Objective-C code for the NeXT runtime, default to using
19922         ABI version 0 for 32-bit, and version 2 for 64-bit.
19923
19924 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19925
19926         * common.opt (optimize_fast): New Variable.
19927         * opts.c (default_options_optimization): Use opts->x_optimize_fast
19928         instead of local variable ofast.
19929
19930 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
19931
19932         * doc/invoke.texi (fobjc-abi-version): Documented.
19933         (fobjc-nilcheck): Documented.
19934         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
19935         version.
19936
19937 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19938
19939         PR driver/47390
19940         * common.opt (export-dynamic): New Driver option.
19941         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
19942
19943 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19944
19945         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
19946
19947 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
19948             Jan Hubicka  <jh@suse.cz>
19949
19950         PR debug/47106
19951         PR debug/47402
19952         * cfgexpand.c (account_used_vars_for_block): Remove.
19953         (estimated_stack_frame_size): Use referenced vars.
19954         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
19955         that were referenced in the original function.  Test src_fn
19956         rather than cfun.  Drop redundant get_var_ann.
19957         (setup_one_parameter): Drop redundant get_var_ann.
19958         (declare_return_variable): Likewise.
19959         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
19960         (copy_arguments_for_versioning): Drop redundant get_var_ann.
19961         * ipa-inline.c (compute_inline_parameters): Do not compute
19962         disregard_inline_limits here.
19963         (compute_inlinable_for_current, pass_inlinable): New.
19964         (pass_inline_parameters): Require PROP_referenced_vars.
19965         * cgraphunit.c (cgraph_process_new_functions): Don't run
19966         compute_inline_parameters explicitly unless function is in SSA form.
19967         (cgraph_analyze_function): Set .disregard_inline_limits.
19968         * tree-sra.c (convert_callers): Compute inliner parameters
19969         only for functions already in SSA form.
19970
19971 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19972
19973         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
19974         -mlittle-endian-data.
19975
19976 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19977
19978         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
19979         -mno-fpu, not -fpu and -no-fpu.
19980         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
19981         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
19982
19983 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
19984
19985         PR target/43653
19986         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
19987         input reload with PLUS RTX.
19988
19989 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19990
19991         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
19992         of InverseVar(MDMX).
19993
19994 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19995
19996         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
19997         --m4-340.
19998
19999 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20000
20001         * config/mn10300/mn10300.opt (mno-crt0): New.
20002
20003 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20004
20005         * config/m68k/uclinux.opt (static-libc): New Driver option.
20006
20007 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20008
20009         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
20010
20011 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20012
20013         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
20014         %{muser-extend-enabled}.
20015
20016 2011-02-16  Richard Guenther  <rguenther@suse.de>
20017
20018         PR tree-optimization/47738
20019         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
20020         the TODO from tree_predictive_commoning.
20021
20022 2011-02-15  Jeff Law  <law@redhat.com>
20023
20024         Revert
20025         2011-01-25  Jeff Law  <law@redhat.com>
20026
20027         PR rtl-optimization/37273
20028         * ira-costs.c (scan_one_insn): Detect constants living in memory and
20029         handle them like argument loads from stack slots.  Do not double
20030         count memory for memory constants and argument loads from stack slots.
20031
20032 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
20033
20034         PR target/47755
20035         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
20036         mode for vector constants.  Remove code that checks for TImode.
20037
20038 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20039
20040         PR debug/47106
20041         PR debug/47402
20042         * cgraph.h (compute_inline_parameters): Return void.
20043         * ipa-inline.c (compute_inline_parameters): Adjust.
20044
20045 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20046
20047         PR debug/47106
20048         PR debug/47402
20049         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
20050         rather than decl.
20051         * cfgexpand.c (estimated_stack_frame_size): Likewise.
20052         * ipa-inline.c (compute_inline_parameters): Adjust.
20053
20054 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20055
20056         PR debug/47106
20057         PR debug/47402
20058         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
20059         Adjust all users.  Pass FN to...
20060         * tree-flow-inline.h (first_referenced_var): ... this.  Add
20061         fn argument.
20062         * ipa-struct-reorg.c: Adjust.
20063         * tree-dfa.c: Adjust.
20064         * tree-into-ssa.c: Adjust.
20065         * tree-sra.c: Adjust.
20066         * tree-ssa-alias.c: Adjust.
20067         * tree-ssa-live.c: Adjust.
20068         * tree-ssa.c: Adjust.
20069         * tree-ssanames.c: Adjust.
20070         * tree-tailcall.c: Adjust.
20071
20072 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20073
20074         PR debug/47106
20075         PR debug/47402
20076         * tree-flow.h (referenced_var_lookup): Add fn parameter.
20077         Adjust all callers.
20078         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
20079         * tree-flow-inline.h: Adjust.
20080         * gimple-pretty-print.c: Adjust.
20081         * tree-into-ssa.c: Adjust.
20082         * tree-ssa.c: Adjust.
20083         * cfgexpand.c: Adjust.
20084
20085 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
20086
20087         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
20088         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20089         (EXTRA_CONSTRAINT): Delete.
20090         * config/iq2000/constraints.md: New file.
20091         * config/iq2000/iq2000.md: Include it.
20092         (define_insn ""): Delete.
20093         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
20094         unsupported constraint letters from patterns.
20095         (call_value, call_value_internal1): Likewise.
20096         (call_value_multiple_internal1): Likewise.
20097
20098 2011-02-15  Nick Clifton  <nickc@redhat.com>
20099
20100         * config/mn10300/mn10300.c: Include tm-constrs.h.
20101         (struct liw_data): New data structure describing an LIW candidate
20102         instruction.
20103         (extract_bundle): Use struct liw_data.  Allow small integer
20104         operands for some instructions.
20105         (check_liw_constraints): Use struct liw_data.  Remove swapped
20106         parameter.  Add comments describing the checks.  Fix bug when
20107         assigning the source of liw1 to the source of liw2.
20108         (liw_candidate): Delete.  Code moved into extract_bundle.
20109         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
20110         before swapping.
20111         * config/mn10300/predicates.md (liw_operand): New predicate.
20112         Allows registers and small integer constants.
20113         * config/mn10300/constraints.md (O): New constraint.  Accetps
20114         integers in the range -8 to +7 inclusive.
20115         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
20116         for moving a small integer into a register.  Give this alternative
20117         LIW attributes.
20118         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
20119         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
20120         using the J,K,L and M constraints,
20121         (liw): Remove SI mode on second operands to allow for HI and QI
20122         mode values.
20123         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
20124         instruction.
20125
20126 2011-02-15  Richard Guenther  <rguenther@suse.de>
20127
20128         PR tree-optimization/47743
20129         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
20130         for a non-type-compatible VN lookup bail out.
20131
20132 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
20133
20134         * config/fr30/constraints.md: New file.
20135         * config/fr30/fr30.md: Include it.
20136         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
20137         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20138         (EXTRA_CONSTRAINT): Delete.
20139
20140 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
20141
20142         * config/frv/constraints.md: New file.
20143         * config/frv/predicates.md: Include it.
20144         * config/frv/frv.c (reg_class_from_letter): Delete.
20145         (frv_option_override): Don't initialize it.
20146         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
20147         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
20148         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
20149         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20150         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
20151         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20152         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
20153         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
20154         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
20155         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
20156         (REG_CLASS_FROM_CONSTRAINT): Delete.
20157
20158 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
20159
20160         PR middle-end/47581
20161         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
20162         if frame size is 0 in a leaf function.
20163
20164 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20165
20166         PR pch/14940
20167         * config/alpha/host-osf.c: New file.
20168         * config/alpha/x-osf: New file.
20169         * config.host (alpha*-dec-osf*): Use it.
20170
20171 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
20172
20173         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20174         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
20175         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
20176         (rx_mode_dependent_address_p): ...this. Make static. Change argument
20177         type to const_rtx.
20178         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20179
20180 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
20181
20182         * config/stormy16/constraints.md: New file.
20183         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
20184         Use satisfies_constraint_Q and satisfies_constraint_R.
20185         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
20186         Delete.
20187         (xstormy16_legitiamte_address_p): Declare.
20188         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
20189         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20190         (EXTRA_CONSTRAINT): Delete.
20191         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
20192         Un-staticize.
20193         (xstormy16_extra_constraint_p): Delete.
20194
20195 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
20196
20197         PR tree-optimization/46494
20198         * loop-unroll.c (split_edge_and_insert): Adjust comment.
20199         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
20200         (pass_rtl_loop_done): Add TODO_verify_flow.
20201         * fwprop.c (pass_rtl_fwprop): Likewise.
20202         * modulo-sched.c (pass_sms): Likewise.
20203         * tree-ssa-dom.c (pass_dominator): Likewise.
20204         * tree-ssa-loop-ch.c (pass_ch): Likewise.
20205         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
20206         (pass_tree_loop_done): Likewise.
20207         * tree-ssa-pre.c (execute_pre): Likewise.
20208         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
20209         * tree-ssa-sink.c (pass_sink_code): Likewise.
20210         * tree-vrp.c (pass_vrp): Likewise.
20211
20212 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
20213
20214         * config/v850/constraints.md: New file.
20215         * config/v850/v850.md: Include it.
20216         * config/v850/predicates.md (reg_or_0_operand): Use
20217         satisfies_constraint_G.
20218         (special_symbolref_operand): Use satisfies_constraint_K.
20219         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
20220         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
20221         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
20222         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20223         (EXTRA_CONSTRAINT): Delete.
20224         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
20225         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
20226         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
20227
20228 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
20229
20230         PR target/47696
20231         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
20232         description.
20233
20234 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
20235
20236         * config/mcore/constraints.md: New file.
20237         * config/mcore/mcore.md: Include it.
20238         * config/mcore/mcore.c (reg_class_from_letter): Delete.
20239         * config/mcore/mcore.h (reg_class_from_letter): Delete.
20240         (REG_CLASS_FROM_LETTER): Delete.
20241         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
20242         insn_const_int_ok_for_constraint.
20243         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
20244         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
20245         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20246         (EXTRA_CONSTRAINT): Delete.
20247
20248 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20249
20250         PR ada/41929
20251         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
20252         (IS_SIGHANDLER): Define.
20253         (sparc64_is_sighandler): New function, split off from
20254         sparc64_fallback_frame_state.
20255         (sparc_is_sighandler): New function, split off from
20256         sparc_fallback_frame_state.
20257         (sparc64_fallback_frame_state): Merge with ...
20258         (sparc_fallback_frame_state): ... this into ...
20259         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
20260         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
20261         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
20262         stack instead of hardcoded offsets.
20263
20264 2011-02-14  Andriy Gapon  <avg@freebsd.org>
20265
20266         PR target/45808
20267         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
20268
20269 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20270
20271         * configure: Regenerate.
20272
20273 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
20274
20275         PR driver/45731
20276         * gcc.c (asm_options): Correct spec matching --target-help.
20277
20278 2011-02-12  Martin Jambor  <mjambor@suse.cz>
20279
20280         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
20281         to gimple call error.
20282
20283 2011-02-12  Mike Stump  <mikestump@comcast.net>
20284
20285         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
20286         comments in backslash regions.
20287
20288 2011-02-12  Mike Stump  <mikestump@comcast.net>
20289             Jakub Jelinek  <jakub@redhat.com>
20290             Iain Sandoe  <iains@gcc.gnu.org>
20291
20292         PR target/47324
20293         * dwarf2out.c (output_cfa_loc): When required, apply the
20294         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
20295         (output_loc_sequence): Likewise.
20296         (output_loc_operands_raw): Likewise.
20297         (output_loc_sequence_raw): Likewise.
20298         (output_cfa_loc): Likewise.
20299         (output_loc_list): Suppress register number adjustment when
20300         calling output_loc_sequence()
20301         (output_die): Likewise.
20302
20303 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
20304
20305         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20306         Remove macros.
20307         * config/xtensa/xtensa.c (xtensa_register_move_cost,
20308         xtensa_memory_move_cost): New functions.
20309         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
20310
20311 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
20312
20313         PR lto/47225
20314         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
20315         in the current directory.
20316         * configure: Rebuilt.
20317
20318 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
20319
20320         * config/darwin.c (darwin_override_options): Add a hunk missed
20321         from the commit of r168571.  Trim comment line lengths and
20322         correct indents of the preceding block.
20323
20324 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
20325
20326         * gcc.c (driver_handle_option): Concatenate the argument to -F with
20327         the switch.
20328
20329 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
20330
20331         * common.opt (nostartfiles): New Driver option.
20332
20333 2011-02-11  Xinliang David Li  <davidxl@google.com>
20334
20335         PR tree-optimization/47707
20336         * tree-chrec.c (convert_affine_scev): Keep type precision.
20337
20338 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
20339
20340         PR tree-optimization/47420
20341         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
20342
20343 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
20344
20345         PR rtl-optimization/47614
20346         * rtl.h (check_for_inc_dec): Declare.
20347         * dse.c (check_for_inc_dec): Externalize...
20348         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
20349         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
20350
20351 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
20352
20353         PR driver/47678
20354         * gcc.c (main): Do not compile inputs if there were errors in
20355         option handling.
20356         * opts-common.c (read_cmdline_option): Check for wrong language
20357         after other error checks.
20358
20359 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
20360
20361         * cgraph.c: Fix comment typos.
20362         * cgraph.h: Likewise.
20363         * cgraphunit.c: Likewise.
20364         * ipa-cp.c: Likewise.
20365         * ipa-inline.c: Likewise.
20366         * ipa-prop.c: Likewise.
20367         * ipa-pure-const.c: Likewise.
20368         * ipa-ref.c: Likewise.
20369         * ipa-reference.c: Likewise.
20370
20371 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
20372
20373         PR debug/47684
20374         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
20375
20376 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20377
20378         PR testsuite/47400
20379         * doc/sourcebuild.texi (Require Support): Document
20380         dg-require-ascii-locale.
20381
20382 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
20383
20384         * doc/lto.texi (Write summary): Fix missing parentheses.
20385
20386 2011-02-10  DJ Delorie  <dj@redhat.com>
20387
20388         * config/m32c/m32c.c (m32c_option_override): Disable
20389         -fcombine-stack-adjustments until flag value tracking and compare
20390         optimization can be rewritten.
20391
20392 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
20393
20394         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
20395         PROCESSOR_POWER7.
20396         (PROCESSOR_DEFAULT64): Likewise.
20397
20398 2011-02-10  Richard Henderson  <rth@redhat.com>
20399
20400         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
20401         change from 2011-02-03.
20402         * config/rx/rx.c (flags_from_code): Likewise.
20403         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
20404         is valid, n/pz otherwise.
20405         (rx_select_cc_mode): Return CCmode if Y is not zero.
20406
20407 2011-02-10  Richard Guenther  <rguenther@suse.de>
20408
20409         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
20410
20411 2011-02-10  Richard Guenther  <rguenther@suse.de>
20412
20413         PR tree-optimization/47677
20414         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
20415
20416 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
20417
20418         PR target/47665
20419         * combine.c (make_compound_operation): Only change shifts into
20420         multiplication for SCALAR_INT_MODE_P.
20421
20422 2011-02-10  Jie Zhang  <jie@codesourcery.com>
20423
20424         PR testsuite/47622
20425         Revert
20426         2011-02-05  Jie Zhang  <jie@codesourcery.com>
20427         PR debug/42631
20428         * web.c (entry_register): Don't clobber the number of the
20429         first uninitialized reference in used[].
20430
20431 2011-02-09  Richard Guenther  <rguenther@suse.de>
20432
20433         PR tree-optimization/47664
20434         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
20435         all edges again.
20436
20437 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
20438
20439         PR target/46481
20440         PR target/47032
20441         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
20442         PROCESSOR_POWER7.
20443         (PROCESSOR_DEFAULT64): Same.
20444         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
20445
20446 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20447
20448         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
20449
20450 2011-02-09  Martin Jambor  <mjambor@suse.cz>
20451
20452         PR middle-end/45505
20453         * tree-sra.c (struct access): New flags grp_scalar_read and
20454         grp_scalar_write.  Changed description of assignment read and write
20455         flags.
20456         (dump_access): Dump new flags, reorder all of them.
20457         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
20458         to detect multiple scalar reads.
20459         (analyze_access_subtree): Use the new scalar read write flags instead
20460         of the old flags.  Adjusted comments.
20461
20462 2011-02-08  DJ Delorie  <dj@redhat.com>
20463
20464         PR target/47548
20465         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
20466         patterns.
20467
20468 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20469
20470         * config/m68k/uclinux.opt: New.
20471         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
20472
20473 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20474
20475         * config/cris/elf.opt (sim): New Driver option.
20476
20477 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20478
20479         * config/xtensa/elf.opt: New.
20480         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
20481
20482 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20483
20484         * config/vax/elf.opt: New.
20485         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
20486
20487 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20488
20489         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
20490
20491 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20492
20493         * config/gnu-user.opt: New.
20494         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
20495         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
20496         *-*-uclinux*): Use gnu-user.opt.
20497
20498 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
20499
20500         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
20501         * config/i386/gnu.h (CPP_SPEC): Likewise.
20502
20503 2011-02-08  Ian Lance Taylor  <iant@google.com>
20504
20505         * common.opt (fcx-limited-range): Add SetByCombined flag.
20506         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
20507         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
20508         (fassociative-math, freciprocal-math): Likewise.
20509         (funsafe-math-optimizations): Likewise.
20510         * opth-gen.awk: Handle SetByCombined.
20511         * optc-gen.awk: Likewise.
20512         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
20513         (set_unsafe_math_optimizations_flags): Likewise.
20514         * doc/options.texi (Option properties): Document SetByCombined.
20515
20516 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20517
20518         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
20519         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
20520         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
20521         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
20522         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
20523
20524 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
20525
20526         PR tree-optimization/46834
20527         PR tree-optimization/46994
20528         PR tree-optimization/46995
20529         * graphite-sese-to-poly.c (used_outside_reduction): New.
20530         (detect_commutative_reduction): Call used_outside_reduction.
20531         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
20532         translate_scalar_reduction_to_array only when at least one
20533         loop-phi/close-phi tuple has been detected.
20534
20535 2011-02-08  Richard Guenther  <rguenther@suse.de>
20536
20537         PR middle-end/47639
20538         * tree-vect-generic.c (expand_vector_operations_1): Update
20539         stmts here ...
20540         (expand_vector_operations): ... not here.  Cleanup EH info
20541         and the CFG if required.
20542
20543 2011-02-08  Richard Guenther  <rguenther@suse.de>
20544
20545         PR tree-optimization/47641
20546         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
20547         require type compatibility.
20548
20549 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20550
20551         * gimple-low.c (lower_function_body): Don't remove the location of
20552         the return statement here.
20553         (lower_gimple_return): Do it here instead but only if the return
20554         statement is actually used twice.
20555
20556 2011-02-08  Richard Guenther  <rguenther@suse.de>
20557
20558         PR tree-optimization/47632
20559         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
20560         unused up_to_stmt parameter, return whether cfg-cleanup is
20561         necessary, remove EH info properly.
20562         (forward_propagate_into_gimple_cond): Adjust caller.
20563         (forward_propagate_into_cond): Likewise.
20564         (forward_propagate_comparison): Likewise.
20565         (tree_ssa_forward_propagate_single_use_vars): Make
20566         forward_propagate_comparison case similar to the two others.
20567
20568 2011-02-08  Nick Clifton  <nickc@redhat.com>
20569
20570         * config/mn10300/mn10300.opt (mliw): New command line option.
20571         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
20572         (liw_bundling): New automaton.
20573         (liw): New attribute.
20574         (liw_op): New attribute.
20575         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
20576         (movsi_internal): Add LIW attributes.
20577         (andsi3): Likewise.
20578         (iorsi3): Likewise.
20579         (xorsi3): Likewise.
20580         (addsi3): Separate register and immediate alternatives.
20581         Add LIW attributes.
20582         (subsi3): Likewise.
20583         (cmpsi): Likewise.
20584         (aslsi3): Likewise.
20585         (lshrsi3): Likewise.
20586         (ashrsi3): Likewise.
20587         (liw): New pattern.
20588         * config/mn10300/mn10300.c (liw_op_names): New
20589         (mn10300_print_operand): Handle 'W' operand descriptor.
20590         (extract_bundle): New function.
20591         (check_liw_constraints): New function.
20592         (liw_candidate): New function.
20593         (mn10300_bundle_liw): New function.
20594         (mn10300_reorg): New function.
20595         (TARGET_MACHINE_DEPENDENT_REORG): Define.
20596         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
20597         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
20598         __LIW__ or __NO_LIW__.
20599         * doc/invoke.texi: Describe the -mliw command line option.
20600
20601 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20602
20603         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
20604         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
20605         pthread_mutex_unlock): Remove.
20606         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
20607         * config/pa/t-pa64: Likewise.
20608         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
20609         shared libc if not linking against libpthread.
20610         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20611
20612 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
20613
20614         PR target/47558
20615         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
20616         on 10.6 and later to ensure that we always use the unwinder from
20617         the system.  Only add -no_compact_unwind when tarteting darwin
20618         10.6 or later.
20619
20620 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
20621
20622         PR target/46997
20623         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
20624         (vec_interleave_lowv2sf): Ditto.
20625         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
20626         (vec_extract_oddv2sf): Ditto.
20627
20628 2011-02-07  Mike Stump  <mikestump@comcast.net>
20629
20630         PR target/42333
20631         Add __ieee_divdc3 entry point.
20632         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
20633         entry point.
20634         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
20635         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
20636         * config/darwin.c (darwin_rename_builtins): Add.
20637         * config/darwin-protos.h (darwin_rename_builtins): Add.
20638
20639 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
20640
20641         PR target/47636
20642         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
20643         for the condition.
20644
20645 2011-02-07  Mike Stump  <mikestump@comcast.net>
20646
20647         * config/darwin.opt (mmacosx-version-min): Update default OS version.
20648
20649 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
20650
20651         PR target/47534
20652         * config/avr/libgcc.S (exit): Move .endfunc
20653
20654 2011-02-07  Richard Guenther  <rguenther@suse.de>
20655
20656         PR tree-optimization/47615
20657         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
20658         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
20659         (run_scc_vn): Initialize it.
20660         (visit_reference_op_load): Use it.
20661         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
20662
20663 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20664
20665         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
20666         DImode trapping arithmetic libfuncs.
20667
20668 2011-02-07  Richard Guenther  <rguenther@suse.de>
20669
20670         PR tree-optimization/47621
20671         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
20672         two duplicates ...
20673         (execute_update_addresses_taken): ... here.  Make it more
20674         conservative in what we accept.
20675
20676 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
20677
20678         * config/sparc/freebsd.h (ASM_SPEC): Define.
20679         * config/sparc/vxworks.h (ASM_SPEC): Define.
20680
20681 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
20682
20683         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
20684
20685 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
20686
20687         * doc/invoke.texi: Remove reference to compiler internals from
20688         user documentation.
20689
20690         * reg-notes.def: Remove REG_VALUE_PROFILE.
20691         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
20692
20693 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
20694
20695         PR middle-end/47610
20696         * varasm.c (default_section_type_flags): If decl is NULL,
20697         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
20698
20699 2011-02-05  Jie Zhang  <jie@codesourcery.com>
20700
20701         PR debug/42631
20702         * web.c (entry_register): Don't clobber the number of the
20703         first uninitialized reference in used[].
20704
20705 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
20706
20707         PR tree-optimization/46194
20708         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
20709         (build_classic_dist_vector_1): Do not represent classic distance
20710         vectors when the access functions are variating in different loops.
20711
20712 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
20713
20714         * config/mips/iris6.opt: New.
20715         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
20716
20717 2011-02-04  Richard Henderson  <rth@redhat.com>
20718             Steve Ellcey  <sje@cup.hp.com>
20719
20720         PR target/46997
20721         * config/ia64/predicates.md (mux1_brcst_element): New.
20722         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
20723         * config/ia64/ia64.c (ia64_unpack_assemble): New.
20724         (ia64_unpack_sign): New.
20725         (ia64_expand_unpack): Rewrite using new routines.
20726         (ia64_expand_widen_sum): Ditto.
20727         (ia64_expand_dot_prod_v8qi): Ditto.
20728         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
20729         routines, add endian check.
20730         (pmpy2_even): Rename from pmpy2_r, add endian check.
20731         (pmpy2_odd): Rename from pmpy2_l, add endian check.
20732         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
20733         (vec_widen_smult_hi_v4hi): Ditto.
20734         (vec_widen_umult_lo_v4hi): Ditto.
20735         (vec_widen_umult_hi_v4hi): Ditto.
20736         (mulv2si3): Change endian checks.
20737         (sdot_prodv4hi): Rewrite with new calls.
20738         (udot_prodv4hi): New.
20739         (vec_pack_ssat_v4hi): Add endian check.
20740         (vec_pack_usat_v4hi): Ditto.
20741         (vec_pack_ssat_v2si): Ditto.
20742         (max1_even): Rename from max1_r, add endian check.
20743         (max1_odd): Rename from max1_l, add endian check.
20744         (*mux1_rev): Format change.
20745         (*mux1_mix): Ditto.
20746         (*mux1_shuf): Ditto.
20747         (*mux1_alt): Ditto.
20748         (*mux1_brcst_v8qi): Use new predicate.
20749         (vec_extract_evenv8qi): Remove endian check.
20750         (vec_extract_oddv8qi): Ditto.
20751         (vec_interleave_lowv4hi): Format change.
20752         (vec_interleave_highv4hi): Ditto.
20753         (mix2_even): Rename from mix2_r, add endian check.
20754         (mix2_odd): Rename from mux2_l, add endian check.
20755         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
20756         (vec_extract_evenodd_helper): Format change.
20757         (vec_extract_evenv4hi): Remove endian check.
20758         (vec_extract_oddv4hi): Remove endian check.
20759         (vec_interleave_lowv2si): Format change.
20760         (vec_interleave_highv2si): Format change.
20761         (vec_initv2si): Remove endian check.
20762         (vecinit_v2si): Add endian check.
20763         (reduc_splus_v2sf): Add endian check.
20764         (reduc_smax_v2sf): Ditto.
20765         (reduc_smin_v2sf): Ditto.
20766         (vec_initv2sf): Remove endian check.
20767         (fpack): Add endian check.
20768         (fswap): Add endian check.
20769         (vec_interleave_highv2sf): Add endian check.
20770         (vec_interleave_lowv2sf): Add endian check.
20771         (fmix_lr): Add endian check.
20772         (vec_setv2sf): Format change.
20773         (*vec_extractv2sf_0_be): Use shift to extract operand.
20774         (*vec_extractv2sf_1_be): New.
20775         (vec_pack_trunc_v4hi): Add endian check.
20776         (vec_pack_trunc_v2si): Format change.
20777
20778 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
20779
20780         PR inline-asm/23200
20781         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
20782         do bb, locus and block comparison and disallow loads if it is not set.
20783         (stmt_is_replaceable_p): New function.
20784         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
20785         callers.
20786         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
20787         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
20788         SSA_NAME_DEF_STMT.
20789         * tree-flow.h (stmt_is_replaceable_p): New prototype.
20790
20791 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
20792
20793         * config/rs6000/xilinx.opt: New.
20794         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
20795
20796 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
20797
20798         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
20799
20800 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
20801
20802         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
20803         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
20804         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
20805         secondary_reload_info, xtensa_secondary_reload): Remove.
20806         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
20807         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
20808         (xtensa_preferred_reload_class): Make static. Change return and
20809         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
20810         Use CONST_DOUBLE_P predicate.
20811         (xtensa_preferred_output_reload_class): New function.
20812         (xtensa_secondary_reload): Make static.
20813
20814 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
20815
20816         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
20817         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
20818         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
20819
20820 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
20821
20822         PR middle-end/31490
20823         * output.h (SECTION_RELRO): Define.
20824         (SECTION_MACH_DEP): Adjust.
20825         (get_variable_section): New prototype.
20826         * varpool.c (varpool_finalize_named_section_flags): New function.
20827         (varpool_assemble_pending_decls): Call it.
20828         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
20829         * cgraphunit.c (cgraph_output_in_order): Call
20830         varpool_finalize_named_section_flags.
20831         * varasm.c (get_section): Allow section flags conflicts between
20832         relro and read-only sections if the section hasn't been declared yet.
20833         Set SECTION_OVERRIDE after diagnosing section type conflict.
20834         (get_variable_section): No longer static.
20835         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
20836         readonly sections that need relocations.
20837         (decl_readonly_section_1): New function.
20838         (decl_readonly_section): Use it.
20839
20840         Revert:
20841         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
20842                     Steve Ellcey  <sje@cup.hp.com>
20843
20844         PR middle-end/31490
20845         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
20846         if section attribute used.
20847
20848 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
20849
20850         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
20851         * config/darwin.c (SECTION_NO_ANCHOR): Define.
20852         (darwin_init_sections): Remove assertion.
20853
20854 2011-02-03  Nick Clifton  <nickc@redhat.com>
20855
20856         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
20857         lt and ge.
20858         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
20859         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
20860         instead of "n" and "pz".
20861         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
20862         CC_FLAG_S.
20863
20864 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
20865
20866         PR target/47312
20867         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
20868         fma, expand FMA_EXPR as fma{,f,l} call.
20869
20870         PR lto/47274
20871         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
20872         copy them into a unsigned char variable and pass address of it to
20873         lto_output_data_stream.
20874
20875         PR target/47564
20876         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
20877         around backend_init_target and lang_dependent_init_target calls.
20878         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
20879         (verify_cgraph_node): Don't call set_cfun here.  Use
20880         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
20881         Set error_found for incorrectly represented calls to thunks.
20882
20883 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
20884
20885         PR debug/43092
20886         PR rtl-optimization/43494
20887         * rtl.h (for_each_inc_dec_fn): New type.
20888         (for_each_inc_dec): Declare.
20889         * rtlanal.c (struct for_each_inc_dec_ops): New type.
20890         (for_each_inc_dec_find_inc_dec): New fn.
20891         (for_each_inc_dec_find_mem): New fn.
20892         (for_each_inc_dec): New fn.
20893         * dse.c (struct insn_size): Remove.
20894         (replace_inc_dec, replace_inc_dec_mem): Remove.
20895         (emit_inc_dec_insn_before): New fn.
20896         (check_for_inc_dec): Use it, along with for_each_inc_dec.
20897         (canon_address): Pass mem modes to cselib_lookup.
20898         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
20899         (cselib_lookup_from_insn): Likewise.
20900         (cselib_subst_to_values): Likewise.
20901         * cselib.c (find_slot_memmode): New var.
20902         (cselib_find_slot): New fn.  Use it instead of
20903         htab_find_slot_with_hash everywhere.
20904         (entry_and_rtx_equal_p): Use find_slot_memmode.
20905         (autoinc_split): New fn.
20906         (rtx_equal_for_cselib_p): Rename and implement in terms of...
20907         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
20908         Deal with autoinc.  Special-case recursion into MEMs.
20909         (cselib_hash_rtx): Likewise.
20910         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
20911         address and MEM modes.
20912         (cselib_subst_to_values): Add memmode, pass it on.
20913         Deal with autoinc.
20914         (cselib_lookup): Add memmode argument, pass it on.
20915         (cselib_lookup_from_insn): Add memmode.
20916         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
20917         (struct cselib_record_autoinc_data): New.
20918         (cselib_record_autoinc_cb): New fn.
20919         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
20920         mode to cselib_lookup.  Reset autoinced REGs here instead of...
20921         (cselib_process_insn): ... here.
20922         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
20923         to cselib_lookup.
20924         (add_uses): Likewise, also to cselib_subst_to_values.
20925         (add_stores): Likewise.
20926         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
20927         cselib_subst_to_values.
20928         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
20929         * gcse.c (do_local_cprop): Adjusted.
20930         * postreload.c (reload_cse_simplify_set): Adjusted.
20931         (reload_cse_simplify_operands): Adjusted.
20932         * sel-sched-dump (debug_mem_addr_value): Pass mode.
20933
20934 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
20935
20936         PR tree-optimization/45122
20937         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
20938         unsafe assumptions when there's more than one loop exit.
20939
20940 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
20941
20942         PR target/47272
20943         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
20944         Document using vector double with the load/store builtins, and
20945         that the load/store builtins always use Altivec instructions.
20946
20947         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
20948         to use altivec memory instructions, even on VSX.
20949         (vector_altivec_store_<mode>): Ditto.
20950
20951         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
20952         function.
20953
20954         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20955         V2DF, V2DI support to load/store overloaded builtins.
20956
20957         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
20958         altivec load/store builtins for V2DF/V2DI types.
20959
20960         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
20961         set avoid indexed addresses on power6 if -maltivec.
20962         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
20963         vector_altivec_load/vector_altivec_store builtins.
20964         (altivec_expand_st_builtin): Ditto.
20965         (altivec_expand_builtin): Add VSX memory builtins.
20966         (rs6000_init_builtins): Add V2DI types to internal types.
20967         (altivec_init_builtins): Add support for V2DF/V2DI altivec
20968         load/store builtins.
20969         (rs6000_address_for_altivec): Insure memory address is appropriate
20970         for Altivec.
20971
20972         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
20973         vec_vsx_ld and vec_vsx_st.
20974         (vsx_store_<mode>): Ditto.
20975
20976         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
20977         variables to hold long long types for VSX vector memory builtins.
20978         (RS6000_BTI_unsigned_long_long): Ditto.
20979         (long_long_integer_type_internal_node): Ditti.
20980         (long_long_unsigned_type_internal_node): Ditti.
20981
20982         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
20983         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
20984         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
20985
20986         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
20987         short cuts.
20988         (vec_vsx_st): Ditto.
20989
20990 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
20991
20992         * config/pa/pa-hpux10.opt: New.
20993         * config/hpux11.opt (pthread): New Driver option.
20994         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
20995         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
20996
20997 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
20998
20999         * config/ia64/vms.opt: New.
21000         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
21001
21002 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
21003
21004         PR target/47580
21005         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
21006         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
21007         generator functions.
21008         (vsx_floatuns<VSi><mode>2): Ditto.
21009         (vsx_fix_trunc<mode><VSi>2): Ditto.
21010         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
21011
21012 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
21013
21014         * config/i386/djgpp.opt (posix): New Driver option.
21015
21016 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
21017
21018         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
21019         Move to the unsupported targets list.
21020
21021 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
21022
21023         PR rtl-optimization/47525
21024         * df-scan.c: Update copyright years.
21025         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
21026         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
21027
21028 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21029
21030         * config/i386/sysv4.h (TARGET_VERSION): Remove.
21031         (SUBTARGET_RETURN_IN_MEMORY): Remove.
21032         (ASM_OUTPUT_ASCII): Remove.
21033         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
21034
21035 2011-02-02  Jeff Law  <law@redhat.com>
21036
21037         PR middle-end/47543
21038         * reload.c (find_reloads_address): Handle reg+d address where both
21039         components are invalid by reloading the entire address.
21040
21041 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
21042             Richard Guenther  <rguenther@suse.de>
21043
21044         PR tree-optimization/40979
21045         PR bootstrap/47044
21046         * passes.c (init_optimization_passes): After LIM call copy_prop
21047         and DCE to clean up.
21048         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
21049
21050 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
21051
21052         PR tree-optimization/47576
21053         PR tree-optimization/47555
21054         * doc/invoke.texi (scev-max-expr-complexity): Documented.
21055         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21056         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
21057         * tree-scalar-evolution.c (follow_ssa_edge): Use
21058         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
21059
21060 2011-02-02  Richard Guenther  <rguenther@suse.de>
21061
21062         PR tree-optimization/47566
21063         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
21064
21065 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
21066
21067         PR debug/47106
21068         PR debug/47402
21069         * tree-inline.c (declare_return_variable): Remove unused caller
21070         variable.
21071
21072         PR debug/47106
21073         PR debug/47402
21074         * tree-flow-inline.h (clear_is_used, is_used_p): New.
21075         * cfgexpand.c (account_used_vars_for_block): Use them.
21076         * tree-nrv.c (tree_nrv): Likewise.
21077         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
21078         (dump_scope_block): Likewise.
21079         (remove_unused_locals): Likewise.
21080
21081         PR debug/47106
21082         PR debug/47402
21083         * tree-inline.c (declare_return_variable): Add result decl to
21084         local decls only once.
21085         * gimple-low.c (record_vars_into): Mark newly-created variables
21086         as referenced.
21087
21088 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
21089
21090         PR debug/47498
21091         PR debug/47501
21092         PR debug/45136
21093         PR debug/45130
21094         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21095         debug insns.
21096         (no_real_insns_p, schedule_block, set_priorities): Drop special
21097         treatment of boundary debug insns.
21098         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
21099         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
21100         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21101         (BOUNDARY_DEBUG_INSN_P): Likewise.
21102         (SCHEDULE_DEBUG_INSN_P): Likewise.
21103         * sched-rgn.c (init_ready_list): Drop special treatment of
21104         boundary debug insns.
21105         * final.c (rest_of_clean_state): Clear notes' BB.
21106
21107 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21108
21109         * config/openbsd.opt (assert=): New Driver option.
21110
21111 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21112
21113         * config/i386/nto.opt: New.
21114         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
21115
21116 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21117
21118         * config/i386/netware.opt: New.
21119         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
21120
21121 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21122
21123         * config/interix.opt (posix): New Driver option.
21124
21125 2011-02-01  DJ Delorie  <dj@redhat.com>
21126
21127         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
21128
21129         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
21130         class for A0/A1.
21131
21132 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
21133
21134         PR tree-optimization/47561
21135         * toplev.c (process_options): Print the Graphite flags.  Add
21136         flag_loop_flatten to the list of options requiring Graphite.
21137
21138 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21139
21140         * config/i386/cygming.opt (posix): New Driver option.
21141
21142 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21143
21144         * config/arm/vxworks.opt: New.
21145         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
21146
21147 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21148
21149         * config/alpha/elf.opt: New.
21150         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
21151         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
21152
21153 2011-02-01  Richard Guenther  <rguenther@suse.de>
21154
21155         PR tree-optimization/47559
21156         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
21157         store-motion on references that can throw.
21158
21159 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
21160
21161         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
21162         * tree-pass.h (TDF_CSELIB): New macro.
21163         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
21164         cselib_lookup): Check for it rather than for TDF_DETAILS.
21165
21166 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
21167
21168         PR driver/47547
21169         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
21170         is HOST_BIT_BUCKET.
21171
21172         * opts.c (finish_options): Don't add x_aux_base_name if it is
21173         HOST_BIT_BUCKET.
21174
21175 2011-02-01  Richard Guenther  <rguenther@suse.de>
21176
21177         PR tree-optimization/47555
21178         Revert
21179         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
21180
21181         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21182
21183 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
21184
21185         PR gcc/46692
21186         * config/lm32/t-lm32: Add multilib for all CPU options.
21187
21188 2011-02-01  Richard Guenther  <rguenther@suse.de>
21189
21190         PR tree-optimization/47541
21191         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
21192         sure to have a field at offset zero.
21193
21194 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
21195
21196         * config/arc/arc.opt (EB, EL): New Driver options.
21197
21198 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
21199
21200         * config/alpha/osf5.opt: New.
21201         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
21202
21203 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
21204
21205         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
21206
21207 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
21208
21209         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
21210         -floop-interchange.
21211         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
21212         is an alias of -floop-interchange and that it requires the
21213         Graphite infrastructure.
21214         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
21215         flag_loop_interchange based on the value of flag_tree_loop_linear.
21216
21217 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
21218             Richard Guenther  <rguenther@suse.de>
21219
21220         PR tree-optimization/47538
21221         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
21222         type instead of r1type, except for comparisons.  For right
21223         shifts and comparisons punt if there are mismatches in
21224         sizetype vs. non-sizetype types.
21225
21226 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21227
21228         * doc/sourcebuild.texi (Effective-Target Keywords): Document
21229         avx_runtime.
21230
21231 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21232
21233         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
21234         version number.
21235         * configure: Regenerate.
21236
21237 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21238
21239         * configure.ac (gcc_cv_ld_static_option): Define.
21240         (gcc_cv_ld_dynamic_option): Define.
21241         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
21242         instead.
21243         (HAVE_LD_STATIC_DYNAMIC): Update message.
21244         (LD_STATIC_OPTION): Define.
21245         (LD_DYNAMIC_OPTION): Define.
21246         * configure: Regenerate.
21247         * config.in: Regenerate.
21248         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
21249         HAVE_LD_STATIC_DYNAMIC]: Use them.
21250
21251 2011-01-31  Nick Clifton  <nickc@redhat.com>
21252
21253         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
21254         registers inside interrupt handlers if the handler is not a leaf
21255         function.
21256
21257 2011-01-31  Nick Clifton  <nickc@redhat.com>
21258
21259         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
21260         reg_renumber returning an INVALID_REGNUM.
21261
21262 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
21263
21264         PR libgcj/44341
21265         * doc/install.texi: Document host options discarded when cross
21266         configuring target libraries.
21267
21268 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
21269
21270         Reverted:
21271         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
21272         PR debug/45136
21273         PR debug/45130
21274         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21275         debug insns.
21276         (no_real_insns_p, schedule_block, set_priorities): Drop special
21277         treatment of boundary debug insns.
21278         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
21279         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21280         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21281         (BOUNDARY_DEBUG_INSN_P): Likewise.
21282         (SCHEDULE_DEBUG_INSN_P): Likewise.
21283         * sched-rgn.c (init_ready_list): Drop special treatment of
21284         boundary debug insns.
21285         * final.c (rest_of_clean-state): Clear notes' BB.
21286
21287 2011-01-31  Alan Modra  <amodra@gmail.com>
21288
21289         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
21290         toc relative expressions as we do in print_operand_address.
21291
21292 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
21293
21294         * doc/extend.texi: Follow spelling conventions.
21295         * doc/invoke.texi: Fix a typo.
21296
21297 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
21298
21299         * config/hpux11.opt: New.
21300         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
21301         ia64*-*-hpux*): Use hpux11.opt.
21302
21303 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
21304
21305         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
21306         to tmake_file.
21307
21308 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
21309
21310         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
21311         support sites.
21312
21313 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
21314
21315         * doc/install.texi (Binaries): Remove outdated reference for
21316         Motorola 68HC11/68HC12 downloads.
21317
21318 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
21319
21320         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
21321         Drepper's paper.
21322
21323 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
21324
21325         PR bootstrap/47147
21326         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
21327         used by NetBSD.
21328
21329 2011-01-28  Ahmad Sharif  <asharif@google.com>
21330
21331         * value-prof.c (check_counter): Corrected error message.
21332
21333 2011-01-29  Jie Zhang  <jie@codesourcery.com>
21334
21335         * config/arm/arm.c (arm_legitimize_reload_address): New.
21336         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
21337         arm_legitimize_reload_address.
21338         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
21339
21340 2011-01-28  Ian Lance Taylor  <iant@google.com>
21341
21342         * godump.c (go_define): Ignore macros whose definitions include
21343         two adjacent operands.
21344
21345 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
21346
21347         PR target/42894
21348         * varasm.c (force_const_mem): Store copy of x in desc->constant
21349         instead of x itself.
21350         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
21351         itself into REG_EQUAL note.
21352
21353 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
21354
21355         * config/freebsd.opt (posix, rdynamic): New Driver options.
21356
21357 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21358
21359         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
21360         -Bstatic/-Bdynamic.
21361         * configure: Regenerate.
21362
21363 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
21364
21365         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
21366         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
21367
21368 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
21369
21370         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
21371         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
21372         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
21373         (s390_preferred_reload_class): Make static. Change return and
21374         'rclass' argument type to reg_class_t.
21375
21376 2011-01-27  Jan Hubicka  <jh@suse.cz>
21377
21378         PR middle-end/46949
21379         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
21380         (process_function_and_variable_attributes): Check defined weakrefs.
21381
21382 2011-01-27  Martin Jambor  <mjambor@suse.cz>
21383
21384         PR tree-optimization/47228
21385         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
21386         build_ref_for_offset.
21387
21388 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21389
21390         * config/spu/spu-elf.h (ASM_SPEC): Remove.
21391
21392 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
21393
21394         PR rtl-optimization/46856
21395         * postreload.c (reload_combine_recognize_const_pattern): Do not
21396         separate cc0 setter and user on cc0 targets.
21397
21398 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
21399
21400         PR c/43082
21401         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
21402         passed a VOID_TYPE expression, immediately emit an error and
21403         return error_mark_node.
21404
21405 2011-01-26  Jeff Law  <law@redhat.com>
21406
21407         PR rtl-optimization/47464
21408         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
21409         rather than may_trap_p as needed.
21410
21411 2011-01-26  DJ Delorie  <dj@redhat.com>
21412
21413         PR rtl-optimization/46878
21414         * combine.c (insn_a_feeds_b): Check for the implicit cc0
21415         setter/user dependency as well.
21416
21417 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
21418
21419         PR rtl-optimization/44469
21420         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
21421         after removing trivially dead basic blocks.
21422
21423 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
21424
21425         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
21426         * config/frv/frv.h (LINK_SPEC): Likewise.
21427         * config/i386/netware.h (LINK_SPEC): Likewise.
21428         * config/m68k/linux.h (ASM_SPEC): Likewise.
21429         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
21430         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21431         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21432         * config/sparc/linux.h (ASM_SPEC): Likewise.
21433         * config/sparc/linux64.h (ASM_SPEC): Likewise.
21434         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21435
21436 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
21437
21438         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
21439         * config/frv/frv.h (ASM_SPEC): Likewise.
21440         * config/m68k/linux.h (ASM_SPEC): Likewise.
21441         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21442         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
21443         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21444         * config/sparc/linux.h (ASM_SPEC): Likewise.
21445         * config/sparc/linux64.h (ASM_SPEC): Likewise.
21446         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21447
21448 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
21449
21450         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
21451         * config/frv/frv.h (LINK_SPEC): Likewise.
21452         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21453
21454 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
21455
21456         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
21457         * config/frv/frv.h (ASM_SPEC): Likewise.
21458         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
21459         * config/m68k/linux.h (ASM_SPEC): Likewise.
21460         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21461         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
21462         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21463         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
21464         * config/sparc/linux.h (ASM_SPEC): Likewise.
21465         * config/sparc/linux64.h (ASM_SPEC): Likewise.
21466         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21467         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
21468
21469 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
21470
21471         PR target/46997
21472         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
21473         (*mux2): Ditto.
21474         (vec_extract_evenodd_help): Ditto.
21475         (vec_extract_evenv4hi): Ditto.
21476         (vec_extract_oddv4hi): Ditto.
21477         (vec_interleave_lowv2si): Ditto.
21478         (vec_interleave_highv2si): Ditto.
21479         (vec_extract_evenv2si): Ditto.
21480         (vec_extract_oddv2si: Ditto.
21481         (vec_pack_trunc_v2si): Ditto.
21482
21483 2011-01-22  Jan Hubicka  <jh@suse.cz>
21484
21485         PR target/47237
21486         * cgraph.h (cgraph_local_info): New field can_change_signature.
21487         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
21488         signature can change.
21489         (ipcp_estimate_growth): Call sequence simplify only if calle signature
21490         can change.
21491         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
21492         (cgraph_function_versioning): We can not change signature of functions
21493         that don't allow that.
21494         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
21495         (lto_input_node): Likewise.
21496         * ipa-inline.c (compute_inline_parameters): Compute
21497         local.can_change_signature.
21498         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
21499         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
21500         functions that can not change signature.
21501         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
21502         init_cumulative_args): Do not use local calling conventions
21503         for functions that can not change signature.
21504
21505 2011-01-22  Jan Hubicka  <jh@suse.cz>
21506
21507         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
21508
21509 2011-01-26  Richard Guenther  <rguenther@suse.de>
21510
21511         PR tree-optimization/47190
21512         * cgraphunit.c (process_common_attributes): New function.
21513         (process_function_and_variable_attributes): Use it.
21514
21515 2011-01-26  Richard Guenther  <rguenther@suse.de>
21516
21517         PR lto/47423
21518         * cgraphbuild.c (record_eh_tables): Record reference to personality
21519         function.
21520
21521 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
21522
21523         PR debug/45454
21524         * sel-sched.c (moveup_expr): Don't let debug insns prevent
21525         non-debug insns from moving up.
21526
21527 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
21528
21529         PR target/40125
21530         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
21531         t-dlldir{,-x} fragment for build and add it to tmake_file.
21532         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
21533         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
21534         * config/i386/t-dlldir: New file.
21535         (SHLIB_DLLDIR): Define.
21536         * config/i386/t-dlldir-x: New file.
21537         (SHLIB_DLLDIR): Define.
21538         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
21539         (SHLIB_INSTALL): Use it.
21540
21541 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
21542
21543         PR target/47246
21544         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
21545         lower bound of the allowed Thumb-2 coprocessor load/store
21546         index range to -256. Add explaining comment.
21547
21548 2011-01-25  Ian Lance Taylor  <iant@google.com>
21549
21550         * godump.c (go_define): Improve lexing of macro expansion to only
21551         accept expressions which match Go spec.
21552
21553 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
21554
21555         PR c++/43601
21556         * tree.c (handle_dll_attribute): Handle it.
21557         * doc/extend.texi (@item dllexport): Mention it.
21558         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
21559
21560 2011-01-25  Ian Lance Taylor  <iant@google.com>
21561
21562         PR tree-optimization/26854
21563         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
21564         (decl_jump_unsafe): Move higher in file, with no other change.
21565         (bind): Set has_jump_unsafe_decl if appropriate.
21566         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
21567         (check_earlier_gotos): Likewise.
21568         (c_check_switch_jump_warnings): Likewise.
21569
21570 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
21571
21572         * doc/invoke.texi (Warning Options): Add missing hyphen.
21573         (-fprofile-dir): Minor grammatical fixes.
21574         (-fbranch-probabilities): Likewise.
21575
21576 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
21577
21578         PR debug/45136
21579         PR debug/45130
21580         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21581         debug insns.
21582         (no_real_insns_p, schedule_block, set_priorities): Drop special
21583         treatment of boundary debug insns.
21584         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
21585         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21586         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21587         (BOUNDARY_DEBUG_INSN_P): Likewise.
21588         (SCHEDULE_DEBUG_INSN_P): Likewise.
21589         * sched-rgn.c (init_ready_list): Drop special treatment of
21590         boundary debug insns.
21591         * final.c (rest_of_clean-state): Clear notes' BB.
21592
21593 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21594
21595         * Makefile.in (LAMBDA_H): Removed.
21596         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
21597         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
21598         lambda-trans.o, and tree-loop-linear.o.
21599         (lto-symtab.o): Remove dependence on LAMBDA_H.
21600         (tree-loop-linear.o): Remove rule.
21601         (lambda-mat.o): Same.
21602         (lambda-trans.o): Same.
21603         (lambda-code.o): Same.
21604         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
21605         (tree-vect-slp.o): Same.
21606         * hwint.h (gcd): Moved here.
21607         (least_common_multiple): Same.
21608         * lambda-code.c: Removed.
21609         * lambda-mat.c: Removed.
21610         * lambda-trans.c: Removed.
21611         * lambda.h: Removed.
21612         * tree-loop-linear.c: Removed.
21613         * lto-symtab.c: Do not include lambda.h.
21614         * omega.c (gcd): Removed.
21615         * passes.c (init_optimization_passes): Remove pass_linear_transform.
21616         * tree-data-ref.c (print_lambda_vector): Moved here.
21617         (lambda_vector_copy): Same.
21618         (lambda_matrix_copy): Same.
21619         (lambda_matrix_id): Same.
21620         (lambda_vector_first_nz): Same.
21621         (lambda_matrix_row_add): Same.
21622         (lambda_matrix_row_exchange): Same.
21623         (lambda_vector_mult_const): Same.
21624         (lambda_vector_negate): Same.
21625         (lambda_matrix_row_negate): Same.
21626         (lambda_vector_equal): Same.
21627         (lambda_matrix_right_hermite): Same.
21628         * tree-data-ref.h: Do not include lambda.h.
21629         (lambda_vector): Moved here.
21630         (lambda_matrix): Same.
21631         (dependence_level): Same.
21632         (lambda_transform_legal_p): Removed declaration.
21633         (lambda_collect_parameters): Same.
21634         (lambda_compute_access_matrices): Same.
21635         (lambda_vector_gcd): Same.
21636         (lambda_vector_new): Same.
21637         (lambda_vector_clear): Same.
21638         (lambda_vector_lexico_pos): Same.
21639         (lambda_vector_zerop): Same.
21640         (lambda_matrix_new): Same.
21641         * tree-flow.h (least_common_multiple): Removed declaration.
21642         * tree-parloops.c (lambda_trans_matrix): Moved here.
21643         (LTM_MATRIX): Same.
21644         (LTM_ROWSIZE): Same.
21645         (LTM_COLSIZE): Same.
21646         (LTM_DENOMINATOR): Same.
21647         (lambda_trans_matrix_new): Same.
21648         (lambda_matrix_vector_mult): Same.
21649         (lambda_transform_legal_p): Same.
21650         * tree-pass.h (pass_linear_transform): Removed declaration.
21651         * tree-ssa-loop.c (tree_linear_transform): Removed.
21652         (gate_tree_linear_transform): Removed.
21653         (pass_linear_transform): Removed.
21654         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
21655         flag_loop_interchange.
21656
21657 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
21658
21659         PR tree-optimization/47265
21660         PR tree-optimization/47443
21661         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
21662         if name still has some uses.
21663
21664 2011-01-25  Martin Jambor  <mjambor@suse.cz>
21665
21666         PR tree-optimization/47382
21667         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
21668         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
21669
21670 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
21671
21672         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
21673         sjlj_except_unwind_info.
21674
21675 2011-01-25  Richard Guenther  <rguenther@suse.de>
21676
21677         PR tree-optimization/47426
21678         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
21679         visible functions results escape.
21680
21681 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
21682
21683         PR target/45701
21684         * config/arm/arm.c (any_sibcall_uses_r3): New function.
21685         (arm_get_frame_offsets): Use it.
21686
21687 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21688             Jakub Jelinek  <jakub@redhat.com>
21689
21690         PR tree-optimization/47271
21691         * tree-if-conv.c (bb_postdominates_preds): New.
21692         (if_convertible_bb_p): Call bb_postdominates_preds.
21693         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
21694         (predicate_scalar_phi): Call bb_postdominates_preds.
21695
21696 2011-01-25  Nick Clifton  <nickc@redhat.com>
21697
21698         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
21699         * config/rx/rx.c (rx_function_value): Likewise.
21700         (rx_promote_function_mode): Likewise.
21701         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
21702         in order to make it legitimate.
21703         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
21704         make sure that the first operand is the same as the result register.
21705         (addsi3_unspec): Delete.
21706         (subdi3): Do not accept immediate operands.
21707         (subdi3_internal): Likewise.
21708
21709 2011-01-25  Jeff Law  <law@redhat.com>
21710
21711         PR rtl-optimization/37273
21712         * ira-costs.c (scan_one_insn): Detect constants living in memory and
21713         handle them like argument loads from stack slots.  Do not double
21714         count memory for memory constants and argument loads from stack slots.
21715
21716 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
21717
21718         PR tree-optimization/47427
21719         PR tree-optimization/47428
21720         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
21721         coalesce if the new root var would be TREE_READONLY.
21722
21723 2011-01-25  Richard Guenther  <rguenther@suse.de>
21724
21725         PR middle-end/47414
21726         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
21727         correct type for TBAA.
21728
21729 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21730
21731         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
21732         (close_phi_written_to_memory): Call for_each_index with
21733         dr_indices_valid_in_loop.
21734
21735 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21736
21737         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
21738         when it is initialized.
21739
21740 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21741
21742         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
21743         call to graphite_find_data_references_in_stmt.
21744         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
21745         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
21746         call to graphite_find_data_references_in_stmt.
21747         (analyze_drs_in_stmts): Same.
21748         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
21749         in which the scalar analysis of indices is performed.
21750         (create_data_ref): Same.  Update call to dr_analyze_indices.
21751         (find_data_references_in_stmt): Update call to create_data_ref.
21752         (graphite_find_data_references_in_stmt): Same.
21753         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
21754         declaration.
21755         (create_data_ref): Same.
21756         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
21757         call to create_data_ref.
21758
21759 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21760
21761         * graphite-sese-to-poly.c (build_poly_scop): Move
21762         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
21763
21764 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21765
21766         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
21767         VAR_DECL, PARM_DECL, and RESULT_DECL.
21768
21769 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21770
21771         * graphite-dependences.c (reduction_dr_1): Allow several reductions
21772         in a reduction PBB.
21773         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
21774         that have already been marked as PBB_IS_REDUCTION.
21775
21776 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21777
21778         * graphite-scop-detection.c (same_close_phi_node): New.
21779         (remove_duplicate_close_phi): New.
21780         (make_close_phi_nodes_unique): New.
21781         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
21782
21783 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21784
21785         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
21786         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
21787         of both data references to be the same.
21788
21789 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21790
21791         * graphite-dependences.c (build_lexicographical_constraint): Remove
21792         the gdim parameter.
21793         (build_lexicographical_constraint): Adjust call to
21794         ppl_powerset_is_empty.
21795         (dependence_polyhedron): Same.
21796         (graphite_legal_transform_dr): Same.
21797         (graphite_carried_dependence_level_k): Same.
21798         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
21799         parameter.
21800         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
21801
21802 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21803
21804         * graphite-sese-to-poly.c
21805         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
21806         (close_phi_written_to_memory): New.
21807         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
21808         and unshare_expr.
21809
21810 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21811
21812         * doc/install.texi: Update the expected version number of PPL to 0.11.
21813         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
21814         #if PPL_VERSION_MINOR < 11.
21815
21816 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21817
21818         * graphite-dependences.c: Include graphite-cloog-util.h.
21819         (new_poly_ddr): Inlined into dependence_polyhedron.
21820         (free_poly_ddr): Moved close by new_poly_ddr.
21821         (dependence_polyhedron_1): Renamed dependence_polyhedron.
21822         Early return NULL when ppl_powerset_is_empty returns true.
21823         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
21824         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
21825         (graphite_legal_transform_dr): Call new_poly_ddr.
21826         (graphite_carried_dependence_level_k): Same.
21827         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
21828         (dot_transformed_deps_stmt_1): Removed.
21829         (dot_deps_stmt_1): Call dot_deps_stmt_2.
21830         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
21831         (dot_deps_1): Call dot_deps_2.
21832         * Makefile.in (graphite-dependences.o): Add missing dependence on
21833         graphite-cloog-util.h.
21834
21835 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21836
21837         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
21838         (build_lexicographical_constraint): Same.
21839         (dependence_polyhedron_1): Same.
21840         (graphite_legal_transform_dr): Same.
21841         (graphite_carried_dependence_level_k): Same.
21842         * graphite-ppl.c (ppl_powerset_is_empty): New.
21843         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
21844         * tree-data-ref.c (dump_data_reference): Print the basic block index.
21845
21846 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21847
21848         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
21849         the "a followed by b" relation and document it.
21850
21851 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21852
21853         * graphite-dependences.c (build_lexicographical_constraint): Stop the
21854         iteration when the bag of constraints is empty.
21855
21856 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21857
21858         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
21859
21860 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21861
21862         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
21863         nest and two loop depths as parameters.
21864         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
21865         lst_perfect_nestify.
21866
21867 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21868
21869         * graphite-dependences.c (print_pddr): Call
21870         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
21871
21872 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21873
21874         * graphite-ppl.c (debug_gmp_value): New.
21875         * graphite-ppl.h (debug_gmp_value): Declared.
21876
21877 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
21878
21879         * doc/install.texi: Document availability of cloog-0.16.
21880
21881 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
21882
21883         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
21884         invalid postdominance info.
21885
21886 2011-01-24  Jan Hubicka  <jh@suse.cz>
21887
21888         PR c/21659
21889         * doc/extend.texi (weak pragma): Drop claim that it must
21890         appear before definition.
21891         * varasm.c (merge_weak, declare_weak): Only sanity check
21892         that DECL is not output at a time it is declared weak.
21893
21894 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
21895
21896         * machmode.def: Fixed comments.
21897
21898 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
21899
21900         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
21901
21902 2011-01-24  Paul Koning  <ni1d@arrl.net>
21903
21904         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
21905         WORDS_BIG_ENDIAN.
21906
21907 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
21908
21909         PR target/46519
21910         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
21911         (block_info): Add scanned and prev.
21912         (move_or_delete_vzeroupper_2): Return if the basic block
21913         has been scanned and the upper 128bit state is unchanged
21914         from the last scan.
21915         (move_or_delete_vzeroupper_1): Return true if the exit
21916         state is changed.
21917         (move_or_delete_vzeroupper): Visit basic blocks using the
21918         work-list based algorithm based on vt_find_locations in
21919         var-tracking.c.
21920
21921         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
21922
21923 2011-01-24  Nick Clifton  <nickc@redhat.com>
21924
21925         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
21926         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
21927         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
21928         then define __v850e1__.
21929         * doc/invoke.texi: Document -mv850es.
21930
21931 2011-01-24  Richard Henderson  <rth@redhat.com>
21932
21933         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
21934         compound unordered comparisons.
21935         * config/rx/rx.c (rx_split_fp_compare): Remove.
21936         * config/rx/rx-protos.h: Update.
21937         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
21938         (cbranchsf4): Don't call rx_split_fp_compare.
21939         (*cbranchsf4): Use rx_split_cbranch.
21940         (*cmpsf): Don't accept "i" constraint.
21941         (*conditional_branch): Only valid after reload.
21942         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
21943
21944 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
21945
21946         PR target/47385
21947         * config/rs6000/altivec.md (vector constant splitters): Add
21948         support for creating vector single precision constants if -mvsx is
21949         used and we would create the constant using Altivec primitives.
21950
21951 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
21952             Richard Sandiford  <rdsandiford@googlemail.com>
21953
21954         PR rtl-optimization/47166
21955         * reload1.c (emit_reload_insns): Disable the spill_reg_store
21956         mechanism for PRE_MODIFY and POST_MODIFY.
21957         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
21958         reloadreg.
21959
21960 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
21961
21962         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
21963
21964 2011-01-22  Jan Hubicka  <jh@suse.cz>
21965
21966         PR lto/47333
21967         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
21968
21969 2011-01-22  Jan Hubicka  <jh@suse.cz>
21970
21971         PR tree-optimization/43884
21972         PR lto/44334
21973         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
21974         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
21975
21976 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
21977
21978         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
21979         * config/s390/s390.c (s390_register_move_cost,
21980         s390_memory_move_cost): New.
21981         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
21982
21983 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21984
21985         PR middle-end/47401
21986         * except.c (sjlj_assign_call_site_values): Move setting the
21987         crtl->uses_eh_lsda flag to ...
21988         (sjlj_mark_call_sites): ... here.
21989         (sjlj_emit_function_enter): Support NULL dispatch label.
21990         (sjlj_build_landing_pads): In a function with no landing pads
21991         that still has must-not-throw regions, generate code to register
21992         a personality function with empty LSDA.
21993
21994 2011-01-21  Richard Henderson  <rth@redhat.com>
21995
21996         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
21997
21998         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
21999
22000         * compare-elim.c: New file.
22001         * Makefile.in (OBJS-common): Add it.
22002         (compare-elim.o): New.
22003         * common.opt (fcompare-elim): New.
22004         * opts.c (default_options_table): Add OPT_fcompare_elim.
22005         * tree-pass.h (pass_compare_elim_after_reload): New.
22006         * passes.c (init_optimization_passes): Add it.
22007         * recog.h: Protect against re-inclusion.
22008         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
22009         * doc/invoke.texi (-fcompare-elim): Document it.
22010         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
22011         * doc/tm.texi: Rebuild.
22012
22013 2011-01-22  Nick Clifton  <nickc@redhat.com>
22014
22015         * config/rx/rx.md (cstoresf4): Pass comparison operator to
22016         rx_split_fp_compare.
22017
22018 2011-01-22  Nick Clifton  <nickc@redhat.com>
22019
22020         * config/rx/rx.md (UNSPEC_CONST): New.
22021         (deallocate_and_return): Wrap the amount popped off the stack in
22022         an UNSPEC_CONST in order to stop it being rejected by
22023         -mmax-constant-size.
22024         (pop_and_return): Add a "(return)" rtx.
22025         (call): Drop the immediate operand.
22026         (call_internal): Likewise.
22027         (call_value): Likewise.
22028         (call_value_internal): Likewise.
22029         (sibcall_internal): Likewise.
22030         (sibcall_value_internal): Likewise.
22031         (sibcall): Likewise.  Generate an explicit call using
22032         sibcall_internal.
22033         (sibcall_value): Likewise.
22034         (mov<>): FAIL if a constant operand is not legitimate.
22035         (addsi3_unpsec): New pattern.
22036
22037         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
22038         (ok_for_max_constant): New function.
22039         (gen_safe_add): New function.
22040         (rx_expand_prologue): Use gen_safe_add.
22041         (rx_expand_epilogue): Likewise.
22042         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
22043         UNSPEC CONSTs.
22044
22045 2011-01-21  Jeff Law  <law@redhat.com>
22046
22047         PR tree-optimization/47053
22048         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
22049         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
22050         statements are deleted.
22051         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
22052         is nonempty, then purge dead edges and cleanup the CFG.
22053
22054 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
22055
22056         PR debug/47402
22057         Temporarily revert:
22058         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
22059         PR debug/47106
22060         * tree-dfa.c (create_var_ann): Mark variable as used.
22061
22062 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
22063
22064         PR middle-end/45566
22065         * except.c (convert_to_eh_region_ranges): Emit queued no-region
22066         notes from other section in hot/cold partitioning even if
22067         last_action is -3.  Increment call_site_base.
22068
22069         PR rtl-optimization/47366
22070         * fwprop.c (forward_propagate_into): Return bool.  If
22071         any changes are made, -fnon-call-exceptions is used and
22072         REG_EH_REGION note is present, call purge_dead_edges
22073         and return true if it purged anything.
22074         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
22075         any EH edges were purged.
22076
22077 2011-01-21  Jeff Law  <law@redhat.com>
22078
22079         PR rtl-optimization/41619
22080         * caller-save.c (setup_save_areas): Break out code to determine
22081         which hard regs are live across calls by examining the reload chains
22082         so that it is always used.
22083         Eliminate code which checked REG_N_CALLS_CROSSED.
22084
22085 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
22086
22087         PR tree-optimization/47355
22088         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
22089         NOP has non-debug uses beyond PHIs in new_bb.
22090
22091 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
22092
22093         PR debug/47106
22094         * cfgexpand.c (account_used_vars_for_block): Only account vars
22095         that are annotated as used.
22096         (estimated_stack_frame_size): Don't set TREE_USED.
22097         * tree-dfa.c (create_var_ann): Mark variable as used.
22098
22099 2011-01-21  Richard Guenther  <rguenther@suse.de>
22100
22101         PR middle-end/47395
22102         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
22103
22104 2011-01-21  Richard Guenther  <rguenther@suse.de>
22105
22106         PR tree-optimization/47365
22107         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
22108         (vn_reference_lookup_pieces): Adjust.
22109         (vn_reference_lookup): Likewise.
22110         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
22111         (vn_reference_lookup_3): Only look through kills if in
22112         VN_WALKREWRITE mode.
22113         (vn_reference_lookup_pieces): Adjust.
22114         (vn_reference_lookup): Likewise.
22115         (visit_reference_op_load): Likewise.
22116         (visit_reference_op_store): Likewise.
22117         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
22118         (compute_avail): Likewise.
22119         (eliminate): Likewise.
22120
22121 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
22122
22123         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
22124         DECL_IGNORED_P non-reg vars if they are used.
22125
22126         PR tree-optimization/47391
22127         * varpool.c (const_value_known_p): Return false if
22128         decl is volatile.
22129
22130 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
22131
22132         PR bootstrap/47215
22133         * config/i386/i386.c (ix86_local_alignment): Handle
22134         case for va_list_type_node is nil.
22135         (ix86_canonical_va_list_type): Likewise.
22136
22137 2011-01-21  Alan Modra  <amodra@gmail.com>
22138
22139         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
22140         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
22141
22142 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22143
22144         * config/arm/arm.md (define_attr type): Rename f_load
22145         and f_store to f_fpa_load and f_fpa_store. Update.
22146         (write_conflict): Deal with rename fallout.
22147         (*push_fp_multi): Likewise.
22148         * config/arm/fpa.md (f_load): Use f_fpa_load.
22149         (f_store): Use f_fpa_store.
22150         (*movsf_fpa): Likewise.
22151         (*movdf_fpa): Likewise.
22152         (*movxf_fpa): Likewise.
22153         (*thumb2_movsf_fpa): Likewise.
22154         (*thumb2_movdf_fpa): Likewise.
22155         (*thumb2_movxf_fpa): Likewise.
22156         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
22157         f_loadd and f_stored.
22158         (*thumb2_movdi_vfp): Likewise.
22159         (*thumb2_movsf_vfp): Fix attribute to f_loads.
22160         (*thumb2_movsi_vfp): Likewise.
22161         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
22162         Use f_loads instead of f_load.
22163         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
22164
22165 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
22166
22167         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22168         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
22169         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22170         (xtensa_mode_dependent_address_p): New function.
22171         (constantpool_address_p): Make static. Change return type to bool.
22172         Change argument type to const_rtx. Use CONST_INT_P predicate.
22173
22174 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
22175
22176         PR debug/46583
22177         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
22178
22179 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
22180
22181         PR debug/47283
22182         * cfgexpand.c (expand_debug_expr): Instead of generating
22183         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
22184         etc. handling.
22185
22186 2011-01-20  Richard Guenther  <rguenther@suse.de>
22187
22188         PR middle-end/47370
22189         * tree-inline.c (remap_gimple_op_r): Recurse manually for
22190         the pointer operand of MEM_REFs.
22191
22192 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
22193
22194         PR tree-optimization/46130
22195         * ipa-split.c (consider_split): If return_bb contains non-virtual
22196         PHIs other than for retval or if split_function would not adjust it,
22197         refuse to split.
22198
22199 2011-01-20  Richard Guenther  <rguenther@suse.de>
22200
22201         PR tree-optimization/47167
22202         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
22203         Revert previous change, only avoid enumeral type changes.
22204
22205 2011-01-19  Mike Stump  <mikestump@comcast.net>
22206
22207         * doc/tm.texi.in (BRANCH_COST): Englishify.
22208         * doc/tm.texi (BRANCH_COST): Likewise.
22209
22210 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
22211
22212         PR c++/47291
22213         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
22214         (gen_scheduled_generic_parms_dies): New functions.
22215         (gen_struct_or_union_type_die): Schedule template parameters DIEs
22216         generation for the end of CU compilation.
22217         (dwarf2out_finish): Generate template parameters DIEs here.
22218
22219 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
22220
22221         PR debug/46240
22222         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
22223         debug bind stmt on merge edges.
22224
22225 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
22226
22227         PR debug/47079
22228         PR debug/46724
22229         * function.c (instantiate_expr): Instantiate incoming rtl of
22230         implicit arguments, and recurse on VALUE_EXPRs.
22231         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
22232         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
22233
22234 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
22235
22236         * c-parser.c (c_parser_for_statement): Initialize
22237         collection_expression.
22238
22239 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
22240
22241         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
22242
22243 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
22244
22245         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
22246         (LINK_SHLIB_SPEC): Don't use %(link_path).
22247         (SUBTARGET_EXTRA_SPECS): Remove link_path.
22248
22249 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
22250
22251         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
22252         (NO_SHARED_LIB_SUPPORT): Remove.
22253         (LINK_SHLIB_SPEC): Remove one conditional definition.
22254
22255 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
22256
22257         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
22258         %{call_shared}.
22259         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
22260         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
22261         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
22262         %{call_shared} and conditionals on these options not being passed.
22263         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
22264         %{call_shared}.
22265
22266 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
22267
22268         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
22269         simplify.
22270
22271         * ipa-split.c: Spelling fixes.
22272
22273 2011-01-19  Richard Henderson  <rth@redhat.com>
22274
22275         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
22276         (*mulsi3): Likewise.
22277
22278         * longlong.h [__mn10300__] (count_leading_zeros): New.
22279         [__mn10300__] (umul_ppmm, smul_ppmm): New.
22280         [__mn10300__] (add_ssaaaa, subddmmss): New.
22281         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
22282         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
22283
22284 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22285
22286         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
22287
22288 2011-01-19  Richard Henderson  <rth@redhat.com>
22289
22290         * config/mn10300/mn10300.md (addsi3_flags): New.
22291         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
22292         (subsi3_flags, subc_internal, subdi3): New.
22293         (subdi3_internal, *subdi3_degenerate): New.
22294         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
22295
22296         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
22297         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
22298         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
22299         * config/mn10300/mn10300-protos.h: Update.
22300         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
22301         (return_ret): Likewise.  Rename from return_internal_regs.
22302         (return_internal): Remove.
22303
22304         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
22305         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
22306         (mn10300_legitimate_constant_p): Likewise.
22307         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
22308         (mn10300_frame_size): New.
22309         (mn10300_expand_prologue): Use it.
22310         (mn10300_expand_epilogue): Likewise.
22311         (mn10300_initial_offset): Likewise.
22312         * config/mn10300/mn10300-protos.h: Update.
22313         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
22314         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
22315         (prologue, epilogue, return_internal): Tidy output code.
22316         (mn10300_store_multiple_operation, return): Likewise.
22317         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
22318         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
22319         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
22320         (load_pic, am33_load_pic): New.
22321         (mn10300_load_pic0, mn10300_load_pic1): New.
22322
22323         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
22324         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
22325         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
22326         (cc_flags_for_mode, cc_flags_for_code): New.
22327         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
22328         overflow flag is not valid.  Validate that the flags we need
22329         for the comparison are valid.
22330         (mn10300_output_cmp): Remove.
22331         (mn10300_output_add): New.
22332         (mn10300_select_cc_mode): Use cc_flags_for_code.
22333         (mn10300_split_cbranch): New.
22334         (mn10300_match_ccmode): New.
22335         (mn10300_split_and_operand_count): New.
22336         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
22337         to the function.
22338         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
22339         (addsi3): ... here.  Use mn10300_output_add.
22340         (*addsi3_flags): New.
22341         (*am33_subsi3, *mn10300_subsi3): Merge...
22342         (subsi3): ... here.  Use attribute isa.
22343         (*subsi3_flags): New.
22344         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
22345         when possible.
22346         (*am33_andsi3, *mn10300_andsi3): Merge...
22347         (andsi3): ... here.
22348         (*andsi3_flags): New.
22349         (andsi3 splitters): New.
22350         (*am33_iorsi3, *mn10300_iorsi3): Merge...
22351         (iorsi3): ... here.
22352         (*iorsi3_flags): New.
22353         (*am33_xorsi3, *mn10300_xorsi3): Merge...
22354         (xorsi3): ... here.
22355         (*xorsi3_flags): New.
22356         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
22357         (one_cmplsi2): ... here.
22358         (*one_cmplsi2_flags): New.
22359         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
22360         instead of "dax" in constraints.  Use mn10300_split_cbranch.
22361         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
22362         use matching constraints to eliminate a self-comparison.
22363         (*integer_conditional_branch): Rename from integer_conditional_branch.
22364         Use int_mode_flags to match CC_REG.
22365         (*cbranchsi4_btst, *btstsi): New.
22366         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
22367         mn10300_split_cbranch.
22368         (*am33_cmpsf): Rename from am33_cmpsf.
22369         (*float_conditional_branch): Rename from float_conditional_branch.
22370         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
22371         (zero_extendqisi2): ... here.
22372         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
22373         (zero_extendhisi2): ... here.
22374         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
22375         (extendqisi2): ... here.
22376         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
22377         (extendhisi2): ... here.
22378         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
22379         (ashlsi3): ... here.
22380         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
22381         (lshrsi3): ... here.
22382         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
22383         (ashrsi3): ... here.
22384         (consecutive add peephole): Remove.
22385         * config/mn10300/predicates.md (label_ref_operand): New.
22386         (int_mode_flags): New.
22387         (CCZN_comparison_operator): New.
22388
22389         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
22390         (throughput_42_latency_43): New reservation.
22391         (mulsidi3, umulsidi3): New expanders.
22392         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
22393         the MDR register to allocation; separately allocate the low and
22394         high parts of the DImode result.
22395         (umulsidi3_internal): Similarly.
22396         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
22397         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
22398         (udivsi3, umodsi3): Remove.
22399         (udivmodsi4, divmodsi4): New expanders.
22400         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
22401         (*divmodsi4): Simiarly.
22402         (ext_internal): New.
22403
22404         * config/mn10300/constraints.md ("z"): New constraint.
22405         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
22406         (FIXED_REGISTERS): Don't fix MDR.
22407         (CALL_USED_REGSITERS): Reformat nicely.
22408         (REG_ALLOC_ORDER): Add MDR.
22409         (enum regclass): Add MDR_REGS.
22410         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
22411         (IRA_COVER_CLASSES): Add MDR_REGS.
22412         (REGNO_REG_CLASS): Handle MDR_REG.
22413         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
22414         (mn10300_register_move_cost): Likewise.
22415         * config/mn10300/mn10300.md (MDR_REG): New.
22416         (*movsi_internal): Handle moves to/from MDR_REGS.
22417
22418         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
22419         POST_MODIFY.
22420         (mn10300_secondary_reload): Tidy combination reload classes.
22421         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
22422         addresses for AM33.  Allow symbolic offsets for reg+imm.
22423         (mn10300_regno_in_class_p): New.
22424         (mn10300_legitimize_reload_address): New.
22425         * config/mn10300/mn10300.h (enum reg_class): Remove
22426         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
22427         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
22428         SP_OR_GENERAL_REGS.
22429         (REG_CLASS_NAMES): Update to match.
22430         (REG_CLASS_CONTENTS): Likewise.
22431         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
22432         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
22433         (REGNO_IN_RANGE_P): Remove.
22434         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
22435         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
22436         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
22437         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
22438         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
22439         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
22440         (REGNO_GENERAL_P): New.
22441         (HAVE_POST_MODIFY_DISP): New.
22442         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
22443         (LEGITIMIZE_RELOAD_ADDRESS): New.
22444         * config/mn10300/mn10300-protos.h: Update.
22445
22446         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
22447         DATA_REGS for AM33 stack-pointer destination.
22448         (mn10300_preferred_output_reload_class): Likewise.
22449         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
22450         into a form appropriate for ...
22451         (TARGET_SECONDARY_RELOAD): New.
22452         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
22453         * config/mn10300/mn10300-protos.h: Update.
22454         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
22455         reload_insi; use the "A" constraint for the scratch; handle AM33
22456         moves of sp to non-address registers.
22457
22458         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
22459         (*movqi_internal): ... here.
22460         (*am33_movhi, *mn10300_movhi): Merge into...
22461         (*movhi_internal): ... here.
22462         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
22463         as the source/destination of moves from/to SP.
22464         (movsf): Only allow for AM33-2.
22465         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
22466         any integer constant constraint.  Only allow for AM33-2.  Tidy
22467         all of the alternative outputs.
22468         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
22469         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
22470         for MN103.
22471         (udivsi3, umodsi3): New patterns for MN103 only.
22472
22473 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
22474
22475         * doc/tm.texi.in: Spell out that a lack of register class unions
22476         can lead to ICEs.
22477         * doc/tm.texi: Regenerate.
22478
22479 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
22480
22481         PR rtl-optimization/47337
22482         * dce.c (check_argument_store): New function.
22483         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
22484
22485         PR tree-optimization/47290
22486         * tree-eh.c (infinite_empty_loop_p): New function.
22487         (cleanup_empty_eh): Use it.
22488
22489 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
22490
22491         PR target/46997
22492         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
22493         (a64_expand_widen_sum): Ditto.
22494         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
22495         (vec_extract_evenodd_help): Ditto.
22496         (vec_extract_evenv4hi): Ditto.
22497         (vec_extract_oddv4hi): Ditto.
22498         (vec_extract_evenv2si): Ditto.
22499         (vec_extract_oddv2si): Ditto.
22500         (vec_extract_evenv2sf): Ditto.
22501         (vec_extract_oddv2sf): Ditto.
22502         (vec_pack_trunc_v4hi: Ditto.
22503         (vec_pack_trunc_v2si): Ditto.
22504         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
22505         (vec_interleave_highv8qi): Ditto.
22506         (mix1_r): Ditto.
22507         (vec_extract_oddv8qi): Ditto.
22508         (vec_interleave_lowv4hi): Ditto.
22509         (vec_interleave_highv4hi): Ditto.
22510         (vec_interleave_lowv2si): Ditto.
22511         (vec_interleave_highv2si): Ditto.
22512
22513 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22514
22515         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
22516         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
22517         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
22518         (pa_c_mode_for_suffix): New.
22519         (TARGET_EXPAND_BUILTIN): Define.
22520         (TARGET_C_MODE_FOR_SUFFIX): Define.
22521         (pa_builtins): Define.
22522         (pa_init_builtins): Register __float128 type and init new support
22523         builtins.
22524         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
22525         * config/pa/quadlib.c (_U_Qfcopysign): New.
22526
22527 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
22528
22529         PR middle-end/46894
22530         * explow.c (allocate_dynamic_stack_space): Do not assume more than
22531         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
22532         are defined.
22533
22534 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22535
22536         PR tree-optimization/47179
22537         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
22538         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
22539
22540 2011-01-18  Richard Guenther  <rguenther@suse.de>
22541
22542         PR rtl-optimization/47216
22543         * emit-rtl.c: Include tree-flow.h.
22544         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
22545         of replicating it with different semantics.
22546         * Makefile.in (emit-rtl.o): Adjust.
22547
22548 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22549
22550         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
22551         (cortex_a9_dp): Handle neon types correctly.
22552
22553 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
22554
22555         PR rtl-optimization/47299
22556         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
22557         subtarget.  Use normal multiplication if both operands are constants.
22558         * expmed.c (expand_widening_mult): Don't try to optimize constant
22559         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
22560         before using it.
22561
22562 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22563
22564         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
22565         spacing after 'e.g.', typos, comma, hyphenation.
22566
22567 2011-01-17  Richard Henderson  <rth@redhat.com>
22568
22569         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
22570         (rx_restricted_mem_operand): New.
22571         (rx_shift_operand): Use register_operand.
22572         (rx_source_operand, rx_compare_operand): Likewise.
22573         * config/rx/rx.md (addsi3_flags): New expander.
22574         (adddi3): Rewrite as expander.
22575         (adc_internal, *adc_flags, adddi3_internal): New patterns.
22576         (subsi3_flags): New expander.
22577         (subdi3): Rewrite as expander.
22578         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
22579
22580         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
22581         (rx_init_builtins): Remove sat builtin.
22582         (rx_expand_builtin): Likewise.
22583         * config/rx/rx.md (ssaddsi3): New.
22584         (*sat): Rename from sat.  Represent the CC_REG input.
22585
22586         * config/rx/predicates.md (rshift_operator): New.
22587         * config/rx/rx.c (rx_expand_insv): Remove.
22588         * config/rx/rx-protos.h: Update.
22589         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
22590         operand to the canonical position.
22591         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
22592         (*bitclr, *bitclr_in_memory): Similarly.
22593         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
22594         (insv): Retain the zero_extract in the expansion.
22595
22596         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
22597         (bswaphi2, bitinvert, revw): Likewise.
22598
22599         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
22600         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
22601         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
22602         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
22603         (bitset, bitset_in_memory): Likewise.
22604         (bitinvert, bitinvert_in_memory): Likewise.
22605         (bitclr, bitclr_in_memory): Likewise.
22606         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
22607         (rx_strend, rx_cmpstrn): Likewise.
22608         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
22609         (bitop peep2 patterns): Remove.
22610
22611         * config/rx/rx.c (rx_match_ccmode): New.
22612         * config/rx/rx-protos.h: Update.
22613         * config/rx/rx.md (abssi2): Clobber, don't set flags.
22614         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
22615         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
22616         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
22617         (fix_truncsfsi2, floatsisf2): Likewise.
22618         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
22619         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
22620         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
22621         (*subsi3_flags, *xorsi3_flags): New.
22622
22623         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
22624
22625         * config/rx/rx.c (rx_print_operand): Remove workaround for
22626         unsplit comparison operations.
22627
22628         * config/rx/rx.md (movsicc): Split after reload.
22629         (*movsicc): Merge *movsieq and *movsine via match_operator.
22630         (*stcc): New pattern.
22631
22632         * config/rx/rx.c (rx_float_compare_mode): Remove.
22633         * config/rx/rx.h (rx_float_compare_mode): Remove.
22634         * config/rx/rx.md (cstoresi4): Split after reload.
22635         (*sccc): New pattern.
22636
22637         * config/rx/predicates.md (label_ref_operand): New.
22638         (rx_z_comparison_operator): New.
22639         (rx_zs_comparison_operator): New.
22640         (rx_fp_comparison_operator): New.
22641         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
22642         Validate that the flags are set properly for the comparison.
22643         (rx_gen_cond_branch_template): Remove.
22644         (rx_cc_modes_compatible): Remove.
22645         (mode_from_flags): New.
22646         (flags_from_code): Rename from flags_needed_for_conditional.
22647         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
22648         (rx_select_cc_mode): Likewise.
22649         (rx_split_fp_compare): New.
22650         (rx_split_cbranch): New.
22651         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
22652         (*cbranchsi4): Use match_operator and rx_split_cbranch.
22653         (*cbranchsf4): Similarly.
22654         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
22655         match_operator and rx_split_cbranch.
22656         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
22657         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
22658         (*cmpsi): Rename from cmpsi.
22659         (*tstsi): Rename from tstsi.
22660         (*cmpsf): Rename from cmpsf; use CC_Fmode.
22661         (*conditional_branch): Rename from conditional_branch.
22662         (*reveresed_conditional_branch): Remove.
22663         (b<code>): Remove expander.
22664         * config/rx/rx-protos.h: Update.
22665
22666         * config/rx/rx.c (rx_compare_redundant): Remove.
22667         * config/rx/rx.md (cmpsi): Don't use it.
22668         * config/rx/rx-protos.h: Update.
22669
22670         * config/rx/rx-modes.def (CC_F): New mode.
22671         * config/rx/rx.c (rx_select_cc_mode): New.
22672         * config/rx/rx.h (SELECT_CC_MODE): Use it.
22673         * config/rx/rx-protos.h: Update.
22674
22675 2011-01-17  Richard Henderson  <rth@redhat.com>
22676
22677         * except.c (dump_eh_tree): Fix stray ; after for statement.
22678
22679 2011-01-17  Richard Guenther  <rguenther@suse.de>
22680
22681         PR tree-optimization/47313
22682         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
22683         handling before copying the body.  Properly deal with
22684         by-reference result in SSA form.
22685
22686 2011-01-17  Ian Lance Taylor  <iant@google.com>
22687
22688         PR target/47219
22689         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
22690         (struct_value_alias_set): Don't define.
22691         (sparc_option_override): Don't set sparc_sr_alias_set and
22692         struct_value_alias_set.
22693         (save_or_restore_regs): Use gen_frame_mem rather than calling
22694         set_mem_alias_set.
22695         (sparc_struct_value_rtx): Likewise.
22696
22697 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
22698
22699         PR target/47318
22700         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
22701         (_mm_maskstore_pd): Likewise.
22702         (_mm_maskload_ps): Likewise.
22703         (_mm_maskstore_ps): Likewise.
22704         (_mm256_maskload_pd): Change mask to __m256i.
22705         (_mm256_maskstore_pd): Likewise.
22706         (_mm256_maskload_ps): Likewise.
22707         (_mm256_maskstore_ps): Likewise.
22708
22709         * config/i386/i386-builtin-types.def: Updated.
22710         (ix86_expand_special_args_builtin): Likewise.
22711
22712         * config/i386/i386.c (bdesc_special_args): Update
22713         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
22714         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
22715         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
22716         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
22717
22718         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
22719         Use <avxpermvecmode> on mask register.
22720         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
22721
22722 2011-01-17  Olivier Hainque  <hainque@adacore.com>
22723             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
22724             Eric Botcazou  <ebotcazou@adacore.com>
22725
22726         PR target/46655
22727         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
22728         if <= USHRT_MAX in 32-bit mode.
22729
22730 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22731
22732         * doc/install.texi (Configuration, Specific): Wrap long
22733         lines in examples.  Allow line wrapping in long options
22734         and URLs where beneficial for PDF output.
22735
22736 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
22737
22738         * config/mips/mips.c (mips_classify_symbol): Don't return
22739         SYMBOL_PC_RELATIVE for nonlocal labels.
22740
22741 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
22742
22743         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
22744
22745 2011-01-15  Jan Hubicka  <jh@suse.cz>
22746
22747         PR tree-optimization/47276
22748         * ipa.c (function_and_variable_visibility): Do not try to mark alias
22749         declarations as needed.
22750
22751 2011-01-15  Martin Jambor  <mjambor@suse.cz>
22752
22753         * common.opt (fdevirtualize): New flag.
22754         * doc/invoke.texi (Option Summary): Document it.
22755         * opts.c (default_options_table): Add devirtualize flag.
22756         * ipa-prop.c (detect_type_change): Return immediately if
22757         devirtualize flag is not set.
22758         (detect_type_change_ssa): Likewise.
22759         (compute_known_type_jump_func): Likewise.
22760         (ipa_analyze_virtual_call_uses): Likewise.
22761
22762 2011-01-14  Martin Jambor  <mjambor@suse.cz>
22763
22764         PR tree-optimization/45934
22765         PR tree-optimization/46302
22766         * ipa-prop.c (type_change_info): New type.
22767         (stmt_may_be_vtbl_ptr_store): New function.
22768         (check_stmt_for_type_change): Likewise.
22769         (detect_type_change): Likewise.
22770         (detect_type_change_ssa): Likewise.
22771         (compute_complex_assign_jump_func): Check for dynamic type change.
22772         (compute_complex_ancestor_jump_func): Likewise.
22773         (compute_known_type_jump_func): Likewise.
22774         (compute_scalar_jump_functions): Likewise.
22775         (ipa_analyze_virtual_call_uses): Likewise.
22776         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
22777
22778 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22779
22780         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
22781         * config/i386/i386.opt (msse5): New Alias.
22782
22783 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22784
22785         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22786         * config/sparc/linux64.h (CC1_SPEC): Likewise.
22787         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22788         * config/sparc/sparc.h (CC1_SPEC): Likewise.
22789
22790 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22791
22792         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
22793         -mcpu options.
22794         * config/sparc/linux64.h (CC1_SPEC): Likewise.
22795         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22796         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
22797         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
22798         Likewise.
22799         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
22800
22801 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22802
22803         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
22804
22805 2011-01-14  Mike Stump  <mikestump@comcast.net>
22806
22807         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
22808         * config/fr30/fr30.md: Likweise
22809         (movsi_push): Likewise.
22810         (movsi_pop): Likewise.
22811         (enter_func): Likewise.
22812         * config/moxie/moxie.md (movsi_push): Likewise.
22813         (movsi_pop): Likewise.
22814
22815 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22816
22817         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
22818         %{no_archive} %{exact_version}.
22819         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
22820         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
22821         %{no_archive} %{exact_version}.
22822         * config/mips/openbsd.h (LINK_SPEC): Likewise.
22823         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
22824         * config/mips/vxworks.h: Likewise.
22825
22826 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22827
22828         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
22829
22830 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22831
22832         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
22833         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
22834
22835 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22836
22837         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
22838         -nodefaultlib.
22839
22840 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22841
22842         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
22843         for mcpu not cpu.
22844         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
22845         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
22846         not cpu.
22847         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
22848         Don't handle -shlib.
22849
22850 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22851
22852         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
22853         (CC1_SPEC): Don't handle -profile.
22854
22855 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22856
22857         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
22858         * config/mips/mips.h (CC1_SPEC): Likewise.
22859
22860 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22861
22862         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
22863         * config/mips/mips.h (CC1_SPEC): Likewise.
22864
22865 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22866
22867         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
22868         * config/m32r/linux.h (LINK_SPEC): Likewise.
22869         * config/mips/linux.h (LINK_SPEC): Likewise.
22870         * config/mips/linux64.h (LINK_SPEC): Likewise.
22871         * config/sparc/linux.h (LINK_SPEC): Likewise.
22872         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
22873         LINK_SPEC): Likewise.
22874         * config/xtensa/linux.h (LINK_SPEC): Likewise.
22875
22876 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22877
22878         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
22879         %{version:-v}.
22880         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
22881
22882 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22883
22884         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
22885         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
22886
22887 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22888
22889         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
22890
22891 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22892
22893         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
22894         supports -Bstatic/-Bdynamic.
22895         * configure: Regenerate.
22896
22897 2011-01-14  Jan Hubicka  <jh@suse.cz>
22898             Jack Howarth  <howarth@bromo.med.uc.edu>
22899
22900         PR target/46037
22901         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
22902         when checking debug_info_level. Test write_symbols instead of
22903         debug_hooks->var_location when setting flag_var_tracking_uninit.
22904
22905 2011-01-14  Richard Guenther  <rguenther@suse.de>
22906
22907         PR tree-optimization/47179
22908         * target.def (ref_may_alias_errno): New target hook.
22909         * targhooks.h (default_ref_may_alias_errno): Declare.
22910         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
22911         (default_ref_may_alias_errno): New function.
22912         * target.h (struct ao_ref_s): Declare.
22913         * tree-ssa-alias.c: Include target.h.
22914         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
22915         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
22916         (targhooks.o): Likewise.
22917         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
22918         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
22919
22920 2011-01-14  Richard Guenther  <rguenther@suse.de>
22921
22922         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
22923
22924 2011-01-14  Richard Guenther  <rguenther@suse.de>
22925
22926         PR tree-optimization/47280
22927         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
22928         return CFG changes.
22929         (tree_ssa_forward_propagate_single_use_vars): Deal with
22930         CFG changes from associate_plusminus.
22931
22932 2011-01-14  Richard Guenther  <rguenther@suse.de>
22933
22934         PR middle-end/47281
22935         Revert
22936         2011-01-11  Richard Guenther  <rguenther@suse.de>
22937
22938         PR tree-optimization/46076
22939         * tree-ssa.c (useless_type_conversion_p): Conversions from
22940         unprototyped to empty argument list function types are useless.
22941
22942 2011-01-14  Richard Guenther  <rguenther@suse.de>
22943
22944         PR tree-optimization/47286
22945         * tree-ssa-structalias.c (new_var_info): Register variables are global.
22946
22947 2011-01-14  Martin Jambor  <mjambor@suse.cz>
22948
22949         PR middle-end/46823
22950         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
22951
22952 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
22953
22954         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
22955         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22956         * config/xtensa/xtensa.c (xtensa_libcall_value,
22957         xtensa_function_value_regno_p): New functions.
22958         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22959
22960 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
22961
22962         PR c++/47213
22963         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
22964         PE specific hook.
22965         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
22966         New function prototype.
22967         * config/i386/winnt.c (i386_pe_assemble_visibility):
22968         Warn only if attribute was specified by user.
22969
22970 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
22971
22972         PR target/47251
22973         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
22974         floating point.
22975         (floatunsdidf2_fcfidu): Ditto.
22976
22977 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22978
22979         * config/s390/s390.c (print_operand_address): Replace 'error' with
22980         'output_operand_lossage'.
22981         (print_operand): Likewise.
22982
22983 2011-01-13  Jeff Law  <law@redhat.com>
22984
22985         PR rtl-optimization/39077
22986         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
22987         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
22988         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
22989         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
22990         * gcse.c (prune_insertions_deletions): New function.
22991         (compute_pre_data): Use it.
22992
22993 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
22994
22995         PR debug/PR46973
22996         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
22997         static function.
22998         (prune_unused_types_mark): Use it.
22999
23000 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
23001
23002         PR rtl-optimization/45352
23003         * sel-sched.c: Update copyright years.
23004         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
23005         in the advancing loop when we have issued issue_rate insns.
23006
23007 2011-01-12  Richard Henderson  <rth@redhat.com>
23008
23009         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
23010         (TARGET_MD_ASM_CLOBBERS): New.
23011
23012         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
23013         (TARGET_DELEGITIMIZE_ADDRESS): New.
23014
23015         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
23016         (clzsi2, *bsch): New patterns.
23017
23018         * config/mn10300/mn10300.md (INT): New mode iterator.
23019         (*mov<INT>_clr): New pattern, and peep2 to generate it.
23020
23021         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
23022         flag_split_wide_types.
23023
23024         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
23025         (mn10300_trampoline_init): Rewrite without a template, an immediate
23026         load and a direct branch.
23027         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
23028
23029 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
23030
23031         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23032         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
23033         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
23034         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23035
23036 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
23037
23038         PR debug/47209
23039         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
23040         of type.
23041
23042 2011-01-12  Jan Hubicka  <jh@suse.cz>
23043
23044         PR driver/47244
23045         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
23046         (PLUGIN_COND_CLOSE): New macro.
23047         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
23048
23049 2011-01-12  Richard Guenther  <rguenther@suse.de>
23050
23051         PR lto/47259
23052         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
23053         register variables in a MEM_REF.
23054
23055 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
23056
23057         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
23058         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
23059         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
23060         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
23061         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
23062         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
23063         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
23064         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
23065         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
23066         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
23067         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
23068         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
23069         * config/gnu-user.h: New.  Copied from linux.h.
23070         (LINUX_TARGET_STARTFILE_SPEC): Rename to
23071         GNU_USER_TARGET_STARTFILE_SPEC.
23072         (LINUX_TARGET_ENDFILE_SPEC): Rename to
23073         GNU_USER_TARGET_ENDFILE_SPEC.
23074         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
23075         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
23076         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
23077         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
23078         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
23079         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
23080         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
23081         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
23082         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
23083         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
23084         * config/arm/linux-eabi.h (CC1_SPEC): Use
23085         GNU_USER_TARGET_CC1_SPEC.
23086         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
23087         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
23088         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
23089         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
23090         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
23091         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
23092         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
23093         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
23094
23095 2011-01-12  Richard Guenther  <rguenther@suse.de>
23096
23097         PR other/46946
23098         * doc/invoke.texi (ffast-math): Document it is turned on
23099         with -Ofast.
23100
23101 2011-01-12  Jan Hubicka  <jh@suse.cz>
23102
23103         PR tree-optimization/47233
23104         * opts.c (common_handle_option): Disable ipa-reference with profile
23105         feedback.
23106
23107 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
23108
23109         * c-parser.c (c_parser_objc_at_property_declaration): Improved
23110         error message.
23111
23112 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
23113
23114         * c-parser.c (c_lex_one_token): Updated and reindented some
23115         comments.  No changes in code.
23116
23117 2011-01-11  Ian Lance Taylor  <iant@google.com>
23118
23119         * godump.c (go_output_var): Don't output the variable if there is
23120         already a type with the same name.
23121
23122 2011-01-11  Ian Lance Taylor  <iant@google.com>
23123
23124         * godump.c (go_format_type): Don't generate float80.
23125
23126 2011-01-11  Richard Henderson  <rth@redhat.com>
23127
23128         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
23129         declaration.  Rewrite for both speed and size.
23130         (mn10300_address_cost_1): Remove.
23131         (mn10300_register_move_cost): New.
23132         (mn10300_memory_move_cost): New.
23133         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
23134         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
23135         extensions, shifts, BSWAP, CLZ.
23136         (mn10300_wide_const_load_uses_clr): Remove.
23137         (TARGET_REGISTER_MOVE_COST): New.
23138         (TARGET_MEMORY_MOVE_COST): New.
23139         * config/mn10300/mn10300-protos.h: Update.
23140         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
23141
23142         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
23143         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
23144         * config/mn10300/mn10300-protos.h: Update.
23145         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
23146         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
23147         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
23148         (*test_int_bitfield, *test_byte_bitfield): Remove.
23149         (*bit_test, *subreg_bit_test): Remove.
23150         * config/mn10300/predicates.md (const_8bit_operand): Remove.
23151
23152         * config/mn10300/constraints.md ("c"): Rename from "A".
23153         ("A", "D"): New constraint letters.
23154         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
23155         (fmssf4, fnmasf4, fnmssf4): Likewise.
23156
23157         * config/mn10300/mn10300.md (isa): New attribute.
23158         (enabled): New attribute.
23159
23160         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
23161         (abssf2, negsf2): Define only for hardware fp.
23162         (sqrtsf2): Reformat.
23163         (addsf3, subsf3, mulsf3): Merge expander and insn.
23164
23165         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
23166         (DEBUGGER_AUTO_OFFSET): Remove.
23167         (DEBUGGER_ARG_OFFSET): Remove.
23168
23169         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
23170         Emit register stores with the same offsets as the hardware.
23171         (mn10300_store_multiple_operation): Don't check that the register
23172         save offsets are monotonic.
23173         * config/mn10300/mn10300-protos.h: Update.
23174
23175         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
23176
23177         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
23178         in terms of the value on the stack, not the MDR register.
23179
23180 2011-01-11  Jan Hubicka  <jh@suse.cz>
23181
23182         PR lto/45721
23183         PR lto/45375
23184         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
23185         (symbol_alias_set_destroy, symbol_alias_set_contains,
23186         propagate_aliases_backward): Declare.
23187         * lto-streamer-out.c (struct sets): New sturcture.
23188         (trivally_defined_alias): New function.
23189         (output_alias_pair_p): Rewrite.
23190         (output_unreferenced_globals): Fix output of alias pairs.
23191         (produce_symtab): Likewise.
23192         * ipa.c (function_and_variable_visibility): Set weak alias destination
23193         as needed in lto.
23194         * varasm.c (symbol_alias_set_t): Remove.
23195         (symbol_alias_set_destroy): Export.
23196         (propagate_aliases_forward, propagate_aliases_backward): New functions
23197         based on ...
23198         (compute_visible_aliases): ... this one; remove.
23199         (trivially_visible_alias): New
23200         (trivially_defined_alias): New.
23201         (remove_unreachable_alias_pairs): Rewrite.
23202         (finish_aliases_1): Reorganize code checking if alias is defined.
23203         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
23204         in LTO mode.
23205
23206 2011-01-11  Richard Guenther  <rguenther@suse.de>
23207
23208         PR tree-optimization/46076
23209         * tree-ssa.c (useless_type_conversion_p): Conversions from
23210         unprototyped to empty argument list function types are useless.
23211
23212 2011-01-11  Richard Guenther  <rguenther@suse.de>
23213
23214         PR middle-end/45235
23215         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
23216         volatile MEMs as MEM_READONLY_P.
23217
23218 2011-01-11  Richard Guenther  <rguenther@suse.de>
23219
23220         PR tree-optimization/47239
23221         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
23222
23223 2011-01-11  Jeff Law  <law@redhat.com>
23224
23225         PR tree-optimization/47086
23226         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
23227         IVs from statements that might throw.
23228
23229 2011-01-10  Jan Hubicka  <jh@suse.cz>
23230
23231         PR lto/45375
23232         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
23233
23234 2011-01-10  Jan Hubicka  <jh@suse.cz>
23235
23236         PR lto/45375
23237         * profile.c (read_profile_edge_counts): Ignore profile inconistency
23238         when correcting profile.
23239
23240 2011-01-10  Jan Hubicka  <jh@suse.cz>
23241
23242         PR lto/46083
23243         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
23244         DECL_FINI_PRIORITY.
23245         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
23246         Restore DECL_FINI_PRIORITY.
23247
23248 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23249
23250         * doc/gimple.texi: Fix quoting of multi-word return values in
23251         @deftypefn statements.  Ensure presence of return value.  Wrap
23252         overlong @deftypefn lines.
23253         (is_gimple_operand, is_gimple_min_invariant_address): Remove
23254         descriptions of removed functions.
23255         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
23256         of multi-word return value in @deftypefn statement.
23257
23258 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23259
23260         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
23261         (Conditional Expressions, Logical Operators)
23262         (Statement and operand traversals): Do not indent smallexample
23263         code.  Fix duplicate function argument in example.
23264
23265 2011-01-10  Jeff Law  <law@redhat.com>
23266
23267         PR tree-optimization/47141
23268         * ipa-split.c (split_function): Handle case where we are
23269         returning a value and the return block has a virtual operand phi.
23270
23271 2011-01-10  Jan Hubicka  <jh@suse.cz>
23272
23273         PR tree-optimization/47234
23274         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
23275         (pass_feedback_split_functions): Declare.
23276         * passes.c (init_optimization_passes): Add ipa-split as subpass of
23277         tree-profile.
23278         * ipa-split.c (gate_split_functions): Update comments; disable
23279         split-functions for profile_arc_flag and branch_probabilities.
23280         (gate_feedback_split_functions): New function.
23281         (execute_feedback_split_functions): New function.
23282         (pass_feedback_split_functions): New global var.
23283
23284 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
23285
23286         PR lto/46760
23287         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
23288         calling gimple_call_set_cannot_inline.
23289
23290 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
23291
23292         * config/darwin-sections.def: Remove unused section.
23293
23294 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
23295
23296         PR c++/47218
23297         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
23298
23299 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
23300
23301         PR objc/47232
23302         * c-parser.c (c_parser_declaration_or_fndef): Improved
23303         error message.
23304
23305 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
23306
23307         * config/i386/winnt.c (i386_pe_start_function): Make sure
23308         to switch back to function's section.
23309
23310 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
23311
23312         PR gcc/46902
23313         PR testsuite/46912
23314         * plugin.c: Move include of dlfcn.h from here...
23315         * system.h: ... to here.
23316
23317 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23318
23319         * doc/cpp.texi (C++ Named Operators): Fix markup for header
23320         file name.
23321         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
23322         two extra empty pages in PDF output.
23323
23324 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
23325
23326         PR objc/47078
23327         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
23328         for error recovery purposes behave as if it was not specified so
23329         that the default type is usd.
23330
23331 2011-01-07  Jan Hubicka  <jh@suse.cz>
23332
23333         PR tree-optmization/46469
23334         * ipa.c (function_and_variable_visibility): Clear needed flags on
23335         nodes with external decls; handle weakrefs merging correctly.
23336
23337 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
23338
23339         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
23340         not false.
23341
23342 2011-01-07  Jan Hubicka  <jh@suse.cz>
23343
23344         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
23345         and no longer claim that gold is required for linker plugin.
23346         * configure: Regenerate.
23347         * gcc.c (PLUGIN_COND): New macro.
23348         (LINK_COMMAND_SPEC): Use it.
23349         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
23350         * config.in (HAVE_LTO_PLUGIN): New.
23351         * configure.ac (--with-lto-plugin): New parameter; autodetect
23352         HAVE_LTO_PLUGIN.
23353
23354 2011-01-07  Jan Hubicka  <jh@suse.cz>
23355
23356         PR tree-optimization/46367
23357         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
23358         when we can update original.
23359         (cgraph_mark_inline_edge): Sanity check.
23360         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
23361
23362 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23363
23364         * config/spu/spu.h (ASM_COMMENT_START): Define.
23365
23366 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
23367
23368         PR driver/42445
23369         * gcc.c (%>S): New.
23370         (SWITCH_KEEP_FOR_GCC): Likewise.
23371         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
23372         (do_spec_1): Handle "%>".
23373
23374         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
23375
23376 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
23377
23378         PR target/47201
23379         * config/i386/i386.c (ix86_delegitimize_address): If
23380         simplify_gen_subreg fails, return orig_x.
23381
23382         PR bootstrap/47187
23383         * value-prof.c (gimple_stringop_fixed_value): Handle
23384         lhs of the call properly.
23385
23386 2011-01-07  Jan Hubicka  <jh@suse.cz>
23387
23388         PR lto/45375
23389         * lto-opt.c (lto_reissue_options): Set flag_shlib.
23390
23391 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
23392
23393         * target.def (function_switched_text_sections): New hook.
23394         * doc/tm.texi: Regenerated.
23395         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
23396         * final.c (default_function_switched_text_sections): New.
23397         (final_scan_insn): Call function_switched_text_sections when a
23398         mid-function section change occurs.
23399         * output.h (default_function_switched_text_sections): Declare.
23400         * config/darwin-protos.h (darwin_function_switched_text_sections):
23401         Likewise.
23402         * config/darwin.c (darwin_function_switched_text_sections): New.
23403         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
23404
23405 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
23406
23407         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
23408         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
23409         the secondary code fragment when outputting for DWARF == 2.
23410
23411 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
23412
23413         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23414         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
23415         Remove.
23416         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
23417         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23418
23419 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
23420
23421         PR debug/46704
23422         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
23423         when it is not empty.
23424
23425 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
23426
23427         Bobcat Enablement
23428         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
23429         (case ${target}): Add btver1.
23430         * config/i386/driver-i386.c (host_detect_local_cpu): Let
23431         -march=native recognize btver1 processors.
23432         * config/i386/i386-c.c (ix86_target_macros_internal): Add
23433         btver1 def_and_undef
23434         * config/i386/i386.c (struct processor_costs btver1_cost): New
23435         btver1 cost table.
23436         (m_BTVER1): New definition.
23437         (m_AMD_MULTIPLE): Includes m_BTVER1.
23438         (initial_ix86_tune_features): Add btver1 tune.
23439         (processor_target_table): Add btver1 entry.
23440         (static const char *const cpu_names): Add btver1 entry.
23441         (software_prefetching_beneficial_p): Add btver1.
23442         (ix86_option_override_internal): Add btver1 instruction sets.
23443         (ix86_issue_rate): Add btver1.
23444         (ix86_adjust_cost): Add btver1.
23445         * config/i386/i386.h (TARGET_BTVER1): New definition.
23446         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
23447         (enum processor_type): Add PROCESSOR_BTVER1.
23448         * config/i386/i386.md (define_attr "cpu"): Add btver1.
23449
23450 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23451
23452         PR target/43309
23453         * config/i386/i386.c (legitimize_tls_address)
23454         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
23455         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
23456         (tls_initial_exec_64_sun): New pattern.
23457
23458 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
23459
23460         * doc/invoke.texi (Overall Options): Improve wording and markup
23461         of the description of -wrapper.
23462
23463 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
23464
23465         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
23466         rdynamic, threads): New Driver options.
23467
23468 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23469
23470         PR target/38118
23471         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
23472         if coming from .tdata.
23473         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
23474
23475 2011-01-06  Jan Hubicka  <jh@suse.cz>
23476
23477         PR lto/47188
23478         * collect2.c (main): Do not enable LTOmode when plugin is active.
23479
23480 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23481
23482         PR other/45915
23483         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
23484         --version output if supported.
23485         * configure: Regenerate.
23486
23487 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
23488
23489         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
23490         Driver options.
23491
23492 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
23493
23494         PR c/47150
23495         * c-convert.c (convert): When converting a complex expression
23496         other than COMPLEX_EXPR to a different complex type, ensure
23497         c_save_expr is called instead of save_expr, unless in_late_binary_op.
23498         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
23499         when converting COMPLEX_TYPE.
23500
23501 2011-01-06  Ira Rosen  <irar@il.ibm.com>
23502
23503         PR tree-optimization/47139
23504         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
23505         only the last reduction value is used outside the loop.  Update
23506         documentation.
23507
23508 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
23509
23510         * config/rtems.opt: New.
23511         * config.gcc (*-*-rtems*): Use rtems.opt.
23512
23513 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
23514
23515         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
23516         processors do not support 3DNow instructions.
23517
23518 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23519
23520         * config/spu/spu.c (spu_option_override): Set parameter
23521         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
23522
23523 2011-01-05  Jan Hubicka  <jh@suse.cz>
23524
23525         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
23526         at the command line.
23527
23528 2011-01-05  Martin Jambor  <mjambor@suse.cz>
23529
23530         PR lto/47162
23531         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
23532         deltas on streamed outgoing edges.
23533         (output_node_opt_summary): Output info for outgoing edges only when
23534         the node is in new parameter set.
23535         (output_cgraph_opt_summary): New parameter set, passed to the two
23536         aforementioned functions.  Update its forward declaration and its
23537         callee too.
23538
23539 2011-01-05  Tom Tromey  <tromey@redhat.com>
23540
23541         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
23542         operator to c_finish_omp_atomic.
23543         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
23544         (build_unary_op): Update.
23545         (build_modify_expr): Update.
23546         (build_asm_expr): Update.
23547
23548 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23549
23550         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
23551         newly inserted insns.
23552         (pad_bb): Likewise.
23553         (spu_emit_branch_hint): Likewise.
23554         (insert_hbrp_for_ilb_runout): Likewise.
23555         (spu_machine_dependent_reorg): Call df_finish_pass after
23556         schedule_insns returns.
23557
23558 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23559
23560         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
23561
23562 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
23563
23564         PR tree-optimization/47005
23565         * tree-sra.c (struct access): Add 'non_addressable' bit.
23566         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
23567         (decide_one_param_reduction): Return 0 if the parameter is passed by
23568         reference and one of the accesses in the group is non_addressable.
23569
23570 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
23571
23572         PR tree-optimization/47056
23573         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
23574         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
23575         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
23576
23577 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
23578
23579         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
23580         initializer.  Skip view conversions from aggregate types.
23581
23582 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
23583
23584         PR bootstrap/47055
23585         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
23586
23587 2011-01-04  Philipp Thomas  <pth@suse.de>
23588
23589         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
23590         obvious typo.
23591
23592 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23593
23594         * function.c (thread_prologue_and_epilogue_insns): Do not crash
23595         on empty epilogue sequences.
23596
23597 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
23598
23599         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
23600         non-static): New Driver options.
23601
23602 2011-01-04  Jie Zhang  <jie@codesourcery.com>
23603
23604         PR driver/47137
23605         * gcc.c (default_compilers[]): Set combinable field to 0
23606         for all assembly languages.
23607
23608 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
23609
23610         * config/mips/loongson3a.md: New file.
23611         * config/mips/mips.md: Include loongson3a.md.
23612         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
23613         TUNE_LOONGSON_3A.
23614
23615 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
23616
23617         PR middle-end/47017
23618         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
23619         instead of convert_memory_address_addr_space on the base expression.
23620
23621 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23622
23623         * config/spu/spu.c (spu_option_override): Update error text
23624         for bad -march= / -mtune= values.
23625
23626 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23627
23628         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
23629         if branch-hint optimization will be performed.
23630
23631 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
23632
23633         PR tree-optimization/47148
23634         * ipa-split.c (split_function): Convert arguments to
23635         DECL_ARG_TYPE if possible.
23636
23637         PR tree-optimization/47155
23638         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
23639         when computing uns.
23640
23641         PR rtl-optimization/47157
23642         * combine.c (try_combine): If undobuf.other_insn becomes
23643         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
23644         and set *new_direct_jump_p too.
23645
23646 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
23647
23648         PR tree-optimization/47021
23649         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
23650
23651 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
23652
23653         * gcc.c (process_command): Update copyright notice dates.
23654         * gcov.c (print_version): Likewise.
23655         * gcov-dump.c (print_version): Likewise.
23656         * mips-tfile.c (main): Likewise.
23657         * mips-tdump.c (main): Likewise.
23658
23659 2011-01-03  Martin Jambor  <mjambor@suse.cz>
23660
23661         PR tree-optimization/46801
23662         * tree-sra.c (type_internals_preclude_sra_p): Check whether
23663         aggregate fields start at byte boundary instead of the bit-field flag.
23664
23665 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23666
23667         PR driver/47137
23668         * gcc.c (main): Revert revision 168407.
23669
23670 2011-01-03  Martin Jambor  <mjambor@suse.cz>
23671
23672         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
23673
23674 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23675
23676         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
23677         vector optab to expand vector/scalar shift, update gimple to vector.
23678
23679 2011-01-03  Martin Jambor  <mjambor@suse.cz>
23680
23681         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
23682         a thunk.
23683
23684 2011-01-03  Martin Jambor  <mjambor@suse.cz>
23685
23686         PR tree-optimization/46984
23687         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
23688         HOST_WIDE_INT.
23689         (cgraph_create_indirect_edge): Fixed line length.
23690         (cgraph_indirect_call_info): Declare.
23691         (cgraph_make_edge_direct) Update declaration.
23692         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
23693         (cgraph_create_indirect_edge): Use it.
23694         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
23695         callees.
23696         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
23697         the new thunk_delta representation.
23698         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
23699         HOST_WIDE_INT.
23700         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
23701         (ipa_read_indirect_edge_info): Likewise.
23702         * lto-cgraph.c (output_edge_opt_summary): New function.
23703         (output_node_opt_summary): Call it on all outgoing edges.
23704         (input_edge_opt_summary): New function.
23705         (input_node_opt_summary): Call it on all outgoing edges.
23706
23707 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
23708
23709         PR driver/47137
23710         * gcc.c (main): Don't check have_o when settting combine_inputs.
23711
23712 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
23713
23714         * regrename.c: Add general comment describing the pass.
23715         (struct du_head): Remove 'length' field.
23716         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
23717         (regrename_optimize): Do not sort chains.  Rework comments, add others.
23718         Force renaming to the preferred class (if any) in the first pass and do
23719         not consider registers that belong to it in the second pass.
23720         (create_new_chain): Do not set 'length' field.
23721         (scan_rtx_reg): Likewise.
23722
23723 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
23724
23725         PR tree-optimization/47140
23726         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
23727         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
23728         to bit_value_binop.
23729
23730         PR rtl-optimization/47028
23731         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
23732         parm_birth_insn instead of at the beginning of first bb.
23733
23734 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
23735
23736         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
23737         Remove the word "see" before "@pxref".
23738         * doc/rtl.texi: Remove the word "see" before "@pxref".
23739
23740 2011-01-01  Jan Hubicka  <jh@suse.cz>
23741
23742         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
23743         memory.
23744
23745 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
23746
23747         PR target/38662
23748         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
23749
23750 \f
23751 Copyright (C) 2011 Free Software Foundation, Inc.
23752
23753 Copying and distribution of this file, with or without modification,
23754 are permitted in any medium without royalty provided the copyright
23755 notice and this notice are preserved.