OSDN Git Service

f6ea86473a2638816ca58754ae498c85635c687e
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-11-07  Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/i386/f16cintrin: Remove extra _X86INTRIN_H_INCLUDED check.
4
5 2011-11-07  Tristan Gingold  <gingold@adacore.com>
6
7         * config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs.
8         * config/vms/t-vms: Add vms-c.o rule.
9         * config/vms/vms-c.c: New file.
10         * config/vms/vms-protos.h (vms_c_register_pragma): New prototype.
11         * config/vms/vms.h (REGISTER_TARGET_PRAGMAS): Define.
12
13 2011-11-07  Tristan Gingold  <gingold@adacore.com>
14
15         * config/alpha/vms.h (TARGET_OBJECT_SUFFIX,
16         TARGET_EXECUTABLE_SUFFIX, TARGET_OS_CPP_BUILTINS,
17         TARGET_ABI_OPEN_VMS, LONG_TYPE_SIZE, ADA_LONG_TYPE_SIZE,
18         POINTER_SIZE, POINTERS_EXTEND_UNSIGNED): Move to config/vms/vms.h
19         (SUBTARGET_OS_CPP_BUILTINS): Define.
20         (TARGET_DEFAULT): Tune according to POINTER_SIZE.
21         (MASK_RETURN_ADDR): Define in 64 bit mode.
22         * config/ia64/vms.h: Likewise.
23         * config/vms/vms.h: New file.
24         * config/vms/vms64.h: New file.
25         * config/alpha/vms64.h: Removed.
26         * config/ia64/vms64.h: Removed.
27         * config.gcc (alpha64-dec-*vms*, alpha*-dec-*vms*, ia64-hp-*vms*):
28         Adjust for above change.
29
30  2011-11-07  Sergey Ostanevich  <sergos.gnu@gmail.com>
31
32         PR rtl-optimization/47698
33         * ifconv.c (noce_operand_ok): prevent CMOV generation for volatile mem.
34
35 2011-11-07  Tristan Gingold  <gingold@adacore.com>
36
37         * common/config/alpha/alpha-common.c (alpha_option_init_struct):
38         New function.
39         (TARGET_OPTION_INIT_STRUCT): Define.
40         * config/alpha/alpha.c (TARGET_MIN_ANCHOR_OFFSET)
41         (TARGET_MAX_ANCHOR_OFFSET)
42         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Redefine.
43
44 2011-11-06  Quentin Neill  <quentin.neill@amd.com>
45
46         Fix r180999, update ChangeLog
47         * config.gcc: Add f16cintrin.h.
48         * config/i386/f16cintrin.h: Add missing endif.
49
50 2011-11-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
51
52         * config.gcc (arm*-*-rtemseabi*): New target.
53         * config/arm/rtems-eabi.h: New.
54         * config/arm/t-rtems-eabi: New.
55
56 2011-11-06  David S. Miller  <davem@davemloft.net>
57
58         * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): Delete.
59         (zero_extend_v8qi_vis, zero_extend_v4hi_vis,
60         *zero_extend_v8qi_<P:mode>_insn,
61         *zero_extend_v4hi_<P:mode>_insn): Express using vec_merge
62         and vec_duplicate instead of using an UNSPEC.
63
64 2011-11-07  Alan Modra  <amodra@gmail.com>
65
66         PR target/30282
67         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit
68         blockage for ABI_V4.
69
70 2011-11-06  Dave Korn  <dave.korn.cygwin@gmail.com>
71
72         * config/i386/cygwin.h (LIBGCJ_SONAME): Updated to match recent
73         libgcj version bump.
74         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
75
76 2011-11-06  Eric Botcazou  <ebotcazou@adacore.com>
77
78         * gcse.c: Adjust outdated comments throughout.
79         (struct mem_conflict_info): New structure.
80         (mems_conflict_for_gcse_p): Use it to communicate with caller.
81         (load_killed_in_block_p): Pass it to note_stores.
82         (hash_expr): Remove superfluous line break.
83         (hash_scan_set): Rename PAT parameter into SET.
84         (hash_scan_insn): Reorder cases.
85         (canon_list_insert): Fix long line.
86         (edge_list): Delete.
87         (prune_expressions): Rename E local variable into EXPR.
88         (compute_pre_data): Return struct edge_list * object.
89         (pre_expr_reaches_here_p_work): Fix formatting.
90         (process_insert_insn): Move around comment.
91         (pre_edge_insert): Fix long line.
92         (pre_insert_copies): Likewise.
93         (gcse_emit_move_after): Swap SRC and DEST parameters.
94         (pre_delete): Adjust call to gcse_emit_move_after.
95         (pre_gcse): Take struct edge_list * parameter.  Fix long line.
96         (one_pre_gcse_pass): Use flag_gcse_lm condition for all routines.
97         Use a local list of edges.
98         (hoist_code): Fix long line.  Adjust call to gcse_emit_move_after.
99         (pre_ldst_expr_hash): Fix long line.
100         (free_ldst_mems): Rename into...
101         (free_ld_motion_mems): ...this.
102         (first_ls_expr): Delete.
103         (next_ls_expr): Likewise.
104         (print_ldst_list): Do not use above two functions.
105         (simple_mem): Adjust interface.
106         (compute_ld_motion_mems): Fix formatting.
107         (update_ld_motion_stores): Reuse local variable.
108
109 2011-11-06  Joseph Myers  <joseph@codesourcery.com>
110
111         * c-decl.c (shadow_tag_warned, grokdeclarator): Handle _Alignas
112         specifiers.
113         (build_null_declspecs): Initialize align_log and alignas_p fields.
114         (declspecs_add_alignas): New.
115         * c-parser.c (c_token_starts_declspecs): Handle RID_ALIGNAS.
116         (c_parser_declspecs): Handle _Alignas specifiers.
117         (c_parser_alignas_specifier): New.
118         (c_parser_alignof_expression): Diagnose alignof use for non-C1X.
119         Diagnose _Alignof (expression).
120         * c-tree.h (struct c_declspecs): Add align_log and alignas_p fields.
121         (declspecs_add_alignas): Declare.
122         * ginclude/stddef.h (max_align_t): Define for C1X and C++11.
123         * ginclude/stdalign.h: New.
124         * Makefile.in (USER_H): Add stdalign.h.
125
126 2011-11-06  Joern Rennecke  <joern.rennecke@embecosm.com>
127             Eric Botcazou  <ebotcazou@adacore.com>
128
129         * regset.h (fixed_reg_set_regset): Declare.
130         * dse.c: Include regset.h .
131         (struct insn_info): Add member fixed_regs_live.
132         (note_add_store_info): New typedef.
133         (note_add_store): New function.
134         (emit_inc_dec_insn_before): Expect arg to be of type insn_info_t.
135         Use gen_add3_insn / gen_move_insn.
136         Check new insn for unwanted clobbers before emitting it.
137         (check_for_inc_dec): Rename to...
138         (check_for_inc_dec_1:) ... this.  Return bool.  Take insn_info
139         parameter.  Changed all callers in file.
140         (check_for_inc_dec, copy_fixed_regs): New functions.
141         (scan_insn): Set fixed_regs_live field of insn_info.
142         * rtl.h (check_for_inc_dec): Update prototype.
143         * postreload.c (reload_cse_simplify): Take new signature of
144         check_ind_dec into account.
145         * reginfo.c (fixed_reg_set_regset): New variable.
146         (init_reg_sets_1): Initialize it.
147
148 2011-11-06  Jakub Jelinek  <jakub@redhat.com>
149
150         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0 don't remove
151         any user labels.
152
153 2011-11-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
154
155         * config/pa/pa.c (pa_hpux_init_libfuncs): Rename to pa_init_libfuncs.
156         Remove dependence of declaration and target define on definition of
157         HPUX_LONG_DOUBLE_LIBRARY.  Update implementation.
158
159 2011-11-06  Andrew Macleod  <amacleod@redhat.com>
160             Richard Henderson  <rth@redhat.com>
161             Aldy Hernandez  <aldyh@redhat.com>
162
163         Merged from cxx-mem-model.
164
165         * cppbuiltin.c (define__GNUC__): Define __ATOMIC memory models
166         * coretypes.h (enum memmodel): New.  enumerated memory model type.
167         * Makefile.in (cppbuiltin.o) Add missing dependency on $(TREE_H)
168         * genopinit,c (optabs): Add atomic direct optab handlers.
169         * sync-builtins.def (BUILT_IN_ATOMIC_*): New builtins.
170         * builtin-types.def (BT_CONST_VOLATILE_PTR,
171         BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT,
172         BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR,
173         BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT,
174         BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT,
175         BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT,
176         BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT): New builtin types.
177         * expr.h (expand_atomic_*): Add prototypes.
178         (expand_{bool,val}_compare_and_swap): Remove prototypes.
179         * c-typeck.c (build_function_call_vec): Don't reprocess __atomic
180         parameters.
181         * common.opt (Winvalid-memory-model): New warning flag.
182         (finline-atomics): New. Flag to disable atomic inlining.
183         * params.h (ALLOW_LOAD_DATA_RACES): New.
184         (ALLOW_PACKED_LOAD_DATA_RACES): New.
185         (ALLOW_PACKED_STORE_DATA_RACES): New.
186         * params.def (PARAM_ALLOW_LOAD_DATA_RACES): New.
187         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES): New.
188         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): New.
189         * builtins.c (is_builtin_name): Handle __atomic.
190         (get_memmodel): New.  Extract memory model.
191         (expand_expr_force_mode): New. Factor out common code for ensuring an
192         integer argument is in the proper mode.
193         (expand_builtin_sync_operation): Remove ignore param.  Always call
194         expand_atomic_fetch_op instead of the old expanders.
195         (expand_builtin_compare_and_swap,
196         expand_builtin_sync_lock_test_and_set): Use expand_expr_force_mode,
197         call atomic expanders instead of sync expanders.
198         (expand_builtin_sync_lock_release): Call atomic_store expander.
199         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
200         expand_builtin_atomic_store, expand_builtin_atomic_fetch_op): New.
201         (expand_builtin_atomic_exchange): New.
202         (fold_builtin_atomic_always_lock_free,
203         expand_builtin_atomic_always_lock_free,
204         fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
205         New.
206         (expand_builtin_mem_thread_fence, expand_builtin_atomic_thread_fence,
207         expand_builtin_atomic_signal_fence): New.
208         (expand_builtin_mem_signal_fence): New.
209         (expand_builtin): Add cases for BUILT_IN_ATOMIC_*.
210         (fold_builtin_2): Add cases for BUILT_IN_ATOMIC_{IS,ALWAYS}_LOCK_FREE.
211         * optabs.h (DOI_atomic_*): Define new atomics.
212         (atomic_*_optab): Define.
213         (can_compare_and_swap_p, expand_atomic_compare_and_swap): New
214         prototypes.
215         * optabs.c (expand_sync_operation, expand_sync_fetch_operation): Remove.
216         (expand_sync_lock_test_and_set): Remove.
217         (expand_atomic_load, expand_atomic_store): New.
218         (expand_atomic_exchange): New.
219         (expand_atomic_compare_and_swap): New.  Implements
220         atomic_compare_exchange via compare and swap.
221         (struct atomic_op_functions): Opcode table struct for fetch ops.
222         (get_atomic_op_for_code): New.  Return an opcode table entry.
223         (maybe_emit_op): New.  Try to emit a fetch op.
224         (expand_atomic_fetch_op): New.
225         (expand_val_compare_and_swap_1): Remove.
226         (expand_val_compare_and_swap, expand_bool_compare_and_swap): Remove.
227         (expand_atomic_compare_and_swap): Rename from
228         expand_atomic_compare_exchange.  Rewrite to return both success and
229         oldval return values; expand via both atomic and sync optabs.
230         (can_compare_and_swap_p): New.
231         (expand_compare_and_swap_loop): Use expand_atomic_compare_and_swap.
232         (maybe_gen_insn): Handle 7 and 8 operands.
233         * omp-low.c (expand_omp_atomic_fetch_op): Don't test individual
234         fetch_op optabs, only test can_compare_and_swap_p.  Use __atomic
235         builtins instead of __sync builtins.
236         (expand_omp_atomic_pipeline): Use can_compare_and_swap_p.
237         * doc/extend.texi: Document __atomic built-in functions.
238         * doc/invoke.texi: Document data race parameters.
239         * doc/md.texi: Document atomic patterns.
240         * config/i386/i386.md (UNSPEC_MOVA): New.
241         (UNSPECV_CMPXCHG): Split into ...
242         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2,
243         UNSPECV_CMPXCHG_3, UNSPECV_CMPXCHG_4): New.
244         * config/i386/sync.md (ATOMIC): New mode iterator.
245         (atomic_load<ATOMIC>, atomic_store<ATOMIC>): New.
246         (atomic_loaddi_fpu, atomic_storedi_fpu, movdi_via_fpu): New.
247         (mem_thread_fence): Rename from memory_barrier.
248         Handle the added memory model parameter.
249         (mfence_nosse): Rename from memory_barrier_nosse.
250         (sync_compare_and_swap<CASMODE>): Split into ...
251         (atomic_compare_and_swap<SWI124>): this and ...
252         (atomic_compare_and_swap<CASMODE>): this.  Handle the new parameters.
253         (atomic_compare_and_swap_single<SWI>): Rename from
254         sync_compare_and_swap<SWI>; rewrite to use split unspecs.
255         (atomic_compare_and_swap_double<DCASMODE>): Rename from
256         sync_double_compare_and_swap<DCASMODE>; rewrite to use split unspecs.
257         (*atomic_compare_and_swap_doubledi_pic): Rename from
258         sync_double_compare_and_swapdi_pic; rewrite to use split unspecs.
259         (atomic_fetch_add<SWI>): Rename from sync_old_add<SWI>; add memory
260         model parameter.
261         (*atomic_fetch_add_cmp<SWI>): Similarly.
262         (atomic_add<SWI>, atomic<any_logic><SWI>): Similarly.
263         (atomic_sub<SWI>): Similarly.  Use x86_maybe_negate_const_int.
264         (sync_lock_test_and_set<SWI>): Merge with ...
265         (atomic_exchange<SWI>): ... this.
266
267 2011-11-6  Richard Guenther  <rguenther@suse.de>
268
269         * ipa-prop.c (ipa_modify_call_arguments): Re-compute
270         inlinable flag.
271
272 2011-11-06  Ira Rosen  <ira.rosen@linaro.org>
273
274         * tree-vectorizer.h (vectorizable_condition): Add argument.
275         * tree-vect-loop.c (vectorizable_reduction): Fail for condition
276         in SLP.  Update calls to vectorizable_condition.
277         * tree-vect-stmts.c (vect_is_simple_cond): Add basic block info to
278         the arguments.  Pass it to vect_is_simple_use_1.
279         (vectorizable_condition): Add slp_node to the arguments.  Support
280         vectorization of basic blocks.  Fail for reduction in SLP.  Update
281         calls to vect_is_simple_cond and vect_is_simple_use.  Support SLP:
282         call vect_get_slp_defs to get vector operands.
283         (vect_analyze_stmt): Update calls to vectorizable_condition.
284         (vect_transform_stmt): Likewise.
285         * tree-vect-slp.c (vect_create_new_slp_node): Handle COND_EXPR.
286         (vect_get_and_check_slp_defs): Handle COND_EXPR.  Allow pattern
287         def stmts.
288         (vect_build_slp_tree): Handle COND_EXPR.
289         (vect_analyze_slp_instance): Push pattern statements to root node.
290         (vect_get_constant_vectors): Fix comments.  Handle COND_EXPR.
291
292 2011-11-05  David S. Miller  <davem@davemloft.net>
293
294         * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec.
295         (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders.
296         (*zero_extend_v8qi_<P:mode>_insn,
297         *zero_extend_v4hi_<P:mode>_insn): New insns.
298         * config/sparc/sparc.c (vector_init_move_words,
299         vector_init_prepare_elts, sparc_expand_vector_init_vis2,
300         sparc_expand_vector_init_vis1): New functions.
301         (vector_init_bshuffle): Rewrite to handle more cases and make use
302         of locs[] array prepared by vector_init_prepare_elts.
303         (vector_init_fpmerge, vector_init_faligndata): Delete.
304         (sparc_expand_vector_init): Rewrite using new infrastructure.
305
306 2011-11-05  Joern Rennecke  <joern.rennecke@embecosm.com>
307
308         * config.gcc (epiphany-*-*): New architecture.
309         (epiphany-*-elf): New configuration.
310         * config/epiphany, common/config/epiphany : New directories.
311         * doc/extend.texi (disinterrupt attribute): Add Epiphany.
312         (interrupt attribute): Add Epiphany.
313         (long_call, short_call attribute): Add Epiphany.
314         * doc/invoke.texi (Options): Add Epiphany options.
315         * doc/md.texi (Machine Constraints): Add Epiphany constraints.
316         * doc/install.texi (Options specification):
317         Add --with-stack-offset=@var{num} description.
318         (host/target specific issues): Add epiphany-*-elf.
319         * doc/contrib.texi (Contributors): Mention Epiphany port.
320
321 2011-11-05  Jakub Jelinek  <jakub@redhat.com>
322
323         PR tree-optimization/50693
324         * tree-cfg.c (gimple_can_merge_blocks_p): Allow merging with
325         non-forced user labels.
326         (gimple_merge_blocks): Turn non-forced user labels into
327         debug bind stmt with the label as first operand and reset value.
328         (gimple_duplicate_bb): Don't duplicate label debug stmts.
329         * dwarf2out.c (gen_label_die): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
330         * final.c (final_scan_insn): Likewise.
331         (rest_of_clean_state): Don't dump NOTE_INSN_DELETED_DEBUG_LABEL.
332         * var-tracking.c (debug_label_num): New variable.
333         (delete_debug_insns): Don't delete DEBUG_INSNs for LABEL_DECLs,
334         instead turn them into NOTE_INSN_DELETED_DEBUG_LABEL notes.
335         * cfglayout.c (skip_insns_after_block, duplicate_insn_chain): Handle
336         NOTE_INSN_DELETED_DEBUG_LABEL.
337         (duplicate_insn_chain): Don't duplicate LABEL_DECL DEBUG_INSNs.
338         * insn-notes.def (DELETED_DEBUG_LABEL): New note kind.
339         * print-rtl.c (print_rtx): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
340         * gengtype.c (adjust_field_rtx_def): Likewise.
341         * config/i386/i386.c (ix86_output_function_epilogue): For MachO
342         clear CODE_LABEL_NUMBER of NOTE_INSN_DELETED_DEBUG_LABEL
343         if their are at the end of function and nop hasn't been emitted.
344         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Likewise.
345
346 2011-11-05  Georg-Johann Lay  <avr@gjlay.de>
347
348         PR rtl-optimization/50448
349         * cprop.c (try_replace_reg): Also try to replace uses of FROM that
350         appear in SET_DEST.
351
352 2011-11-05  Peter Dufault  <dufault@hda.com>,
353             Sebastian Huber  <sebastian.huber@embedded-brains.de>
354
355         * config/rs6000/rtems.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
356         Extend rs6000_spe handling.
357
358 2011-11-05  Ralf Cors├ępius  <ralf.corsepius@rtems.org>
359
360         * config/rs6000/t-rtems: Add -mcpu=8540/-mfloat-gprs=double multilib.
361         Remove -mcpu=601 multilib.
362         Remove -Dmpc8260 multilib.
363         * config/rs6000/rtems.h: Allow --float-gprs=... to override grps
364         on E500 targets.
365
366 2011-11-05  Quentin Neill  <quentin.neill@amd.com>
367
368         Piledriver f16cintrin.h fix.
369         * config/i386/f16cintrin.h: Contents moved from immintrin.h.
370         * config/i386/immintrin.h: Include f16cintrin.h.
371         * config.gcc (i[34567]86-*-*, x86_64-*-*): Add f16cintrin.h.
372
373
374 2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
375
376         PR c++/50608
377         * c-parser.c (c_parser_postfix_expression) <RID_OFFSETOF>: Adjust call
378         to fold_offsetof.
379         * c-typeck.c (build_unary_op) <ADDR_EXPR>: Call fold_offsetof_1.
380
381 2011-11-04  Alan Modra  <amodra@gmail.com>
382
383         * reload1.c (gen_reload): Don't use REGNO on SUBREGs.
384         * print-rtl.c (print_rtx): Don't segfault on negative regno.
385
386 2011-11-04  David S. Miller  <davem@davemloft.net>
387
388         PR target/49965
389         * config/sparc/sparc.c (sparc_expand_conditional_move): Handle the
390         fact that sparc_emit_float_lib_cmp modifies the comparison in
391         operands[1].
392
393 2011-11-04  Ralf Cors├ępius  <ralf.corsepius@rtems.org>
394
395         * config/lm32/t-rtems: New.
396         * config.gcc (lm32-*-rtems*): Add t-rtems.
397
398 2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
399
400         PR target/50979
401         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8.
402
403 2011-11-04  Jiangning Liu  <jiangning.liu@arm.com>
404
405         PR rtl-optimization/38644
406         * config/arm/arm.c (thumb1_expand_epilogue): Add memory barrier
407         for epilogue having stack adjustment.
408
409 2011-11-04  Georg-Johann Lay  <avr@gjlay.de>
410
411         PR target/50931
412         * config/avr/avr-modes.def: New file defining PSImode.
413         * config/avr/avr-c.c (__INT24_MAX__, __INT24_MIN__,
414         __UINT24_MAX__): New built-in defines.
415         * config/avr/avr.md (adjust_len): Add tstpsi, mov24,  reload_in24,
416         ashlpsi, ashrpsi, lshrpsi.
417         (QISI, QIDI, HISI, HIDI, MPUSH, rotx, rotsmode): Add PSI.
418         (MOVMODE): New mode iterator.
419         (movpsi): New expander.
420         (movqi, movhi, movsi, movsf, movpsi): Write as one using MOVMODE.
421         (*reload_inpsi, *movpsi): New insns.
422         (*reload_inpsi): New RTL peephole.
423         (addpsi3, *addpsi3_zero_extend.qi, *addpsi3_zero_extend.hi,
424         *addpsi3_sign_extend.hi): New insns.
425         (subpsi3, *subpsi3_zero_extend.qi, *subpsi3_zero_extend.hi,
426         *subpsi3_sign_extend.hi): New insns.
427         (divmodpsi4, udivmodpsi4): New define insn-and-split.
428         (*divmodpsi4_call, *udivmodpsi4_call): New insns.
429         (andpsi3, iorpsi3, xorpsi3): New insns.
430         (*rotlpsi2.1, *rotlpsi2.23): New insns.
431         (*rotw<mode>): Insn condition only allow even-sized modes.
432         (*rotb<mode>): Insn condition allows odd-sized modes.
433         (ashlpsi3, ashrpsi3, lshrpsi3, *addpsi3.lt0): New insns.
434         (negpsi2, one_cmplpsi2): New insns.
435         (extendqipsi2, extendhipsi2, extendpsisi2): New insns.
436         (zero_extendqipsi2, zero_extendhipsi2, zero_extendpsisi2): New
437         insn-and-splits.
438         (*cmppsi, *negated_tstpsi, *reversed_tstpsi): New insns.
439         (cbranchpsi4): New expander.
440         * config/avr/constraints.md (Ca3, Co3, Cx3): New constraints.
441         * config/avr/avr-protos.h (avr_out_tstpsi, avr_out_movpsi,
442         avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3,
443         avr_out_reload_inpsi): New prototypes.
444
445         * config/avr/avr.c (TARGET_SCALAR_MODE_SUPPORTED_P): Define to...
446         (avr_scalar_mode_supported_p): ...this new static function.
447         (avr_asm_len): Always return "".
448         (avr_out_load_psi, avr_out_store_psi): New static functions.
449         (avr_out_movpsi, avr_out_reload_inpsi): New functions.
450         (avr_out_tstpsi): New function.
451         (avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3): New functions.
452         (avr_out_plus_1, output_reload_in_const): Handle 3-byte types.
453         (avr_simplify_comparison_p): Ditto.
454         (adjust_insn_length): Handle ADJUST_LEN_RELOAD_IN24,
455         ADJUST_LEN_MOV24, ADJUST_LEN_TSTPSI, ADJUST_LEN_ASHLPSI,
456         ADJUST_LEN_ASHRPSI, ADJUST_LEN_LSHRPSI.
457         (avr_rtx_costs_1): Report PSI costs.
458         (avr_libcall_value): Handle odd-sized parameters.
459         (avr_init_builtin_int24): New static function to define built-in
460         24-bit types __int24 and __uint24.
461         (avr_init_builtins): Use it.
462
463 2011-11-04  Thomas Doerfler <thomas.doerfler@embedded-brains.de>
464
465         PR target/50989
466         * config/arm/rtems-elf.h, config/arm/t-rtems: Add optional
467         support for VFP floating point model.
468
469 2011-11-04  Tristan Gingold  <gingold@adacore.com>
470
471         * config/alpha/vms.h (ASM_OUTPUT_DEF): Do not switch section.
472
473 2011-11-04  Ira Rosen  <ira.rosen@linaro.org>
474
475         Unrevert:
476         2011-10-24  Ira Rosen  <ira.rosen@linaro.org>
477
478         PR tree-optimization/50730
479         * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
480         analysis if encountered unsupported data-ref.
481
482 2011-11-04  Jakub Jelinek  <jakub@redhat.com>
483
484         * config/i386/i386.c (ix86_expand_vector_convert_uns_vsivsf): New
485         function.
486         * config/i386/i386-protos.h (ix86_expand_vector_convert_uns_vsivsf):
487         New prototype.
488         * config/i386/sse.md (floatuns<sseintvecmodelower><mode>2): Use it.
489         For floatunsv8siv8sf2 require TARGET_AVX2.
490
491         * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): Add
492         XORP argument.  Subtract 0x1p31 instead of 0x1p32.  Use normal
493         signalling comparison instead of non-signalling.  Store into
494         *XORP pseudo holding 0x80000000 integers if 0x1p31 has been
495         subtracted and 0 otherwise.
496         * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si):
497         Adjust prototype.
498         * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Enable
499         already for TARGET_SSE2.  Xor in vector initialized by
500         ix86_expand_adjust_ufix_to_sfix_si at the end.
501         (vec_pack_ufix_trunc_<mode>): Likewise.
502
503         * tree-vect-stmts.c (vectorizable_conversion): Rewritten to handle
504         not just FLOAT_EXPR and FIX_TRUNC_EXPR, but also CONVERT_EXPR_CODE_P,
505         WIDEN_MULT_EXPR and WIDEN_LSHIFT_EXPR to handle what
506         vectorizable_type_demotion and vectorizable_type_promotion did.
507         Additionally handle FLOAT_EXPR and FIX_TRUNC_EXPR where the integer
508         is {,un}signed {char,short}.
509         (vect_create_vectorized_demotion_stmts): Fix comment typo.  For
510         recursive calls unconditionally use VEC_PACK_TRUNC_EXPR.
511         Push vec_dest back to the vec_dsts vector at the end.
512         (vect_create_vectorized_promotion_stmts): Don't recurse, do just
513         one step.  Removed multi_step_cvt, vec_dsts, slp_node and
514         prev_stmt_info arguments, add vec_dest argument.  Push always
515         into vec_tmp, not just when multi_step_cvt != 0, replace *vec_oprdn0
516         with vec_tmp at the end after freeing old *vec_oprnd0 vector.
517         (vectorizable_type_demotion, vectorizable_type_promotion): Removed.
518         (vect_analyze_stmt): Don't call vectorizable_type_demotion and
519         vectorizable_type_promotion.  Call vectorizable_conversion even
520         for SLP bb vectorization.
521         (vect_transform_stmt): Call vectorizable_conversion instead of
522         vectorizable_type_demotion and vectorizable_type_promotion.
523         (supportable_widening_operation): Clear *multi_step_cvt first,
524         simplify c1/c2 computation, free *interm_types vector on failure.
525         (supportable_narrowing_operation): Clear *multi_step_cvt first,
526         free *interm_types vector on failure, handle multi-step
527         FIX_TRUNC_EXPR.
528
529 2011-11-04  Tristan Gingold  <gingold@adacore.com>
530
531         * config/alpha/alpha.c (alpha_write_linkage): Remove fundecl
532         argument.  Conditionally generate crash debug info.  Adjust
533         for alpha_funcs_tree removal.
534         (machine_function): Add links field.
535         (alpha_start_function): Conditionally generate crash debug info.
536         (alpha_end_function): Adjust call to alpha_write_linkage.
537         (alpha_funcs): Remove.
538         (links_kind): Remove.
539         (alpha_links): Remove num, target and lkind field.  Add func field.
540         (alpha_links_tree): Remove.
541         (alpha_funcs_tree): Remove.
542         (alpha_need_linkage): Remove.
543         (alpha_use_linkage): Change prototype.  Adjust.
544         (alpha_write_one_linkage): Use ASM_OUTPUT_INTERNAL_LABEL.
545         Use SYMBOL_REF_EXTERNAL_P and SYMBOL_REF_LOCAL_P macro.
546         * config/alpha/alpha-protos.h (alpha_use_linkage): Update.
547         (alpha_need_linkage): Remove.
548         * config/alpha/alpha.md: Update calls to alpha_use_linkage.
549         Adjust calls to alpha_need_linkage.
550
551 2011-11-03  Uros Bizjak  <ubizjak@gmail.com>
552
553         * sched-vis.c (print_value): Handle STRICT_LOW_PART.
554
555 2011-11-03  Uros Bizjak  <ubizjak@gmail.com>
556
557         * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2,
558         rint<mode>2, floor<mode>2, lfloor<MODEF:mode><SWI48:mode>2,
559         btrunc<mode>2, lwp_lwpval<mode>3): Use operands[N] instead of operandN.
560
561 2011-11-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
562
563         PR target/50978
564         * config/arm/t-bpabi: New file.
565         * config.gcc (arm*-*-linux*): Add arm/t-bpabi to tmake_file for
566         arm*-*-linux-*eabi.
567         (arm*-*-uclinux*): Add arm/t-bpabi to tmake_file for
568         arm*-*-uclinux*eabi.
569         (arm*-*-eabi*, arm*-*-symbianelf*): Add arm/t-bpabi to tmake_file
570         for arm*-*-eabi*.
571
572 2011-11-03  Michael Matz  <matz@suse.de>
573
574         PR bootstrap/50857
575         * configure.ac: Check for -fno-exceptions -fno-rtti.
576         * configure: Regenerate.
577         * Makefile.in (NOEXCEPTION_FLAGS): New flag.
578         (ALL_CXXFLAGS): Use it.
579
580 2011-11-03  Uros Bizjak  <ubizjak@gmail.com>
581
582         * config/i386/i386.md: Use {} for multi-line preparation statements.
583
584 2011-11-03  Eric Botcazou  <ebotcazou@adacore.com>
585
586         * config/sparc/sparc.md (movtf_insn_sp32_no_fpu): Consolidate into...
587         (movtf_insn_sp32): ...this.
588         (movtf_insn_sp64_no_fpu): Consolidate into...
589         (movtf_insn_sp64): ...this.
590         (movtf_insn_sp64_hq): Do not test TARGET_FPU.
591         * config/sparc/sparc.c (sparc_legitimate_address_p): Likewise.
592
593 2011-11-03  Tristan Gingold  <gingold@adacore.com>
594
595         * config/vms/vms.c (vms_patch_builtins): Fix typo.
596
597 2011-11-03  Richard Guenther  <rguenther@suse.de>
598
599         PR lto/44965
600         * lto-opts.c: Re-implement.
601         * lto-streamer.h (lto_register_user_option): Remove.
602         (lto_read_file_options): Likewise.
603         (lto_reissue_options): Likewise.
604         (lto_clear_user_options): Likewise.
605         (lto_clear_file_options): Likewise.
606         * opts-global.c (post_handling_callback): Remove.
607         (set_default_handlers): Do not set post_handling_callback.
608         (decode_options): Remove LTO specific code.
609         * lto-wrapper.c (merge_and_complain): New function.
610         (run_gcc): Read all input file options and
611         prepend a merged set before the linker driver options.
612         * gcc.c (driver_post_handling_callback): Remove.
613         (set_option_handlers): Do not set post_handling_callback.
614         * opts-common.c (handle_option): Do not call post_handling_callback.
615         * opts.h (struct cl_option_handlers): Remove post_handling_callback.
616
617 2011-11-03  Richard Guenther  <rguenther@suse.de>
618
619         * collect2.c (main): Guard object_nbr variable with TARGET_AIX_VERSION.
620
621 2011-11-03  Martin Jambor  <mjambor@suse.cz>
622
623         * ipa-prop.c (type_change_info): New fields offset, object,
624         known_current_type and multiple_types_encountered.
625         (extr_type_from_vtbl_ptr_store): New function.
626         (check_stmt_for_type_change): Use it, set multiple_types_encountered if
627         the result is different from the previous one.
628         (detect_type_change): Renamed to detect_type_change_1. New parameter
629         comp_type.  Set up new fields in tci, build known type jump
630         functions if the new type can be identified.
631         (detect_type_change): New function.
632         * tree.h (DECL_CONTEXT): Comment new use.
633
634 2011-11-03  Richard Guenther  <rguenther@suse.de>
635
636         PR lto/48217
637         * lto-wrapper.c (get_options_from_collect_gcc_options): Properly
638         decode an encoded literal '.
639
640 2011-11-03  Tristan Gingold  <gingold@adacore.com>
641
642         * collect2.c (main): Add support of -f (response file) on AIX.
643
644 2011-11-03  Ira Rosen  <ira.rosen@linaro.org>
645
646         PR tree-optimization/50912
647         * tree-vectorizer.h (slp_void_p): New.
648         (struct _slp_tree): Replace left and right with children.  Update
649         documentation.
650         (struct _slp_oprnd_info): New.
651         (vect_get_vec_defs): Declare.
652         (vect_get_slp_defs): Update arguments.
653         * tree-vect-loop.c (vect_create_epilog_for_reduction): Call
654         vect_get_vec_defs instead of vect_get_slp_defs.
655         (vectorizable_reduction): Likewise.
656         * tree-vect-stmts.c (vect_get_vec_defs): Remove static, add argument.
657         Update call to vect_get_slp_defs.
658         (vectorizable_conversion): Update call to vect_get_vec_defs.
659         (vectorizable_assignment, vectorizable_shift,
660         vectorizable_operation): Likewise.
661         (vectorizable_type_demotion): Call vect_get_vec_defs instead of
662         vect_get_slp_defs.
663         (vectorizable_type_promotion, vectorizable_store): Likewise.
664         (vect_analyze_stmt): Fix typo.
665         * tree-vect-slp.c (vect_free_slp_tree): Update SLP tree traversal.
666         (vect_print_slp_tree, vect_mark_slp_stmts,
667         vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
668         vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
669         vect_schedule_slp_instance): Likewise.
670         (vect_create_new_slp_node): New.
671         (vect_create_oprnd_info, vect_free_oprnd_info): Likewise.
672         (vect_get_and_check_slp_defs): Pass information about defs using
673         oprnds_info, allow any number of operands.
674         (vect_build_slp_tree): Likewise.  Update calls to
675         vect_get_and_check_slp_defs.  Fix comments.
676         (vect_analyze_slp_instance): Move node creation to
677         vect_create_new_slp_node.
678         (vect_get_slp_defs): Allow any number of operands.
679
680 2011-11-02  Peter Bergner  <bergner@vnet.ibm.com>
681             Iain Sandoe  <iains@gcc.gnu.org>
682
683         * config/rs6000/rs6000.c (USE_HIDDEN_LINKONCE): New define.
684         (get_ppc476_thunk_name): Use it.
685         (rs6000_code_end): Likewise.
686         (macho_branch_islands): Fix typo.
687
688 2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
689             Jason Merrill  <jason@redhat.com>
690
691         PR c++/50810
692         * configure.ac: Add -Wno-narrowing to warning options.
693         * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
694
695 2011-11-02  Eric Botcazou  <ebotcazou@adacore.com>
696
697         PR target/50945
698         * config/sparc/sparc.md (movsf_insn): Reindent constraints.
699         (movdf_insn_sp32): Likewise.  Remove redundant G constraint.
700         (movdf_insn_sp64): Likewise.
701         (DFmode splitter): Do not test TARGET_FPU.
702         (movtf_insn_sp32): Reindent constraints.
703         (movtf_insn_sp32_no_fpu): Likewise.
704         (movtf_insn_sp64): Likewise.
705         (movtf_insn_sp64_hq): Likewise.
706         (movtf_insn_sp64_no_fpu): Likewise.
707
708 2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
709
710         PR c++/50956
711         * builtins.c (fold_builtin_memchr): Fix cast.
712
713 2011-11-02  Teresa Johnson  <tejohnson@google.com>
714
715         * config/i386/predicates.md (promotable_binary_operator): Add minus
716         to the list of promotable operators.
717
718 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
719
720         * gthr-single.h, gthr.h: Move to ../libgcc.
721         * gthr-aix.h: Move to ../libgcc/config/rs6000.
722         * gthr-dce.h: Move to ../libgcc/config/pa.
723         * gthr-lynx.h: Move to ../libgcc/config.
724         * gthr-mipssde.h: Move to ../libgcc/config/mips.
725         * gthr-posix.h: Move to ../libgcc/config.
726         * gthr-rtems.h: Likewise.
727         * gthr-tpf.h: Move to ../libgcc/config/s390.
728         * gthr-vxworks.h: Move to ../libgcc/config.
729         * gthr-win32.h: Move to ../libgcc/config/i386.
730         * configure.ac (gthread_flags): Remove
731         (gthr-default.h): Don't create.
732         (thread_file): Don't substitute.
733         * configure: Regenerate.
734         * Makefile.in (GCC_THREAD_FILE): Remove.
735         (GTHREAD_FLAGS): Remove.
736         (libgcc.mvars): Remove GTHREAD_FLAGS.
737         * config/t-vxworks (EXTRA_HEADERS): Remove.
738
739 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
740             Paolo Bonzini  <bonzini@gnu.org>
741
742         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
743         * configure: Regenerate.
744         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
745         (TM_H): Remove libgcc_tm.h, $(libgcc_tm_file_list).
746         (libgcc_tm.h, cs-libgcc_tm.h): Remove.
747         (clean): Remove libgcc_tm.h
748         * mkconfig.sh: Don't include libgcc_tm.h in tm.h.
749         * config.gcc (libgcc_tm_file): Remove.
750         (arm*-*-linux*): Remove libgcc_tm_file for arm*-*-linux-*eabi.
751         (arm*-*-uclinux*): Remove libgcc_tm_file for arm*-*-uclinux*eabi.
752         (arm*-*-eabi*, arm*-*-symbianelf*): Remove libgcc_tm_file.
753         (avr-*-rtems*): Likewise.
754         (avr-*-*): Likewise.
755         (frv-*-elf): Likewise.
756         (frv-*-*linux*): Likewise.
757         (h8300-*-rtems*): Likewise.
758         (h8300-*-elf*): Likewise.
759         (i[34567]86-*-darwin*): Likewise.
760         (x86_64-*-darwin*): Likewise.
761         (rx-*-elf*): Likewise.
762         (tic6x-*-elf): Likewise.
763         (tic6x-*-uclinux): Likewise.
764         (i[34567]86-*-linux*, x86_64-*-linux*): Likewise.
765
766 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
767
768         * Makefile.in (LIBGCC2_DEBUG_CFLAGS LIBGCC2_CFLAGS)
769         (LIBGCC2_INCLUDES, TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA)
770         (LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_EXCLUDE, T, T_TARGET)
771         (INCLUDES_FOR_TARGET): Remove.
772         (LIBGCC2_CFLAGS): Don't export.
773         (LIB2FUNCS_ST, LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST, srcdirify):
774         Remove.
775         (libgcc-support): Remove $(LIB2ADD), $(LIB2ADD_ST) dependencies.
776         (libgcc.mvars): Likewise.
777         Don't emit LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE, LIB2ADD, LIB2ADD_ST,
778         LIB2_SIDITI_CONV_FUNCS, LIB2_DIVMOD_FUNCS, LIBGCC2_CFLAGS,
779         TARGET_LIBGCC2_CFLAGS.
780         Emit GTHREAD_FLAGS.
781         * libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: Move to ../libgcc.
782         * config/darwin-64.c: Move to ../libgcc/config.
783         * config/divmod.c, config/floatunsidf.c, config/floatunsisf.c,
784         config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c,
785         config/udivmodsi4.c: Move to ../libgcc/config.
786         * config/gthr-posix.c: Move to ../libgcc/config/alpha.
787         * config/memcmp.c, config/memcpy.c, config/memmove.c,
788         config/memset.c: Move to ../libgcc/config.
789         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Remove.
790         * config/t-freebsd: Remove.
791         * config/t-freebsd-thread: Move to ../libgcc/config.
792         * config/t-libgcc-pic: Move to ../libgcc/config.
793         * config/t-libunwind (TARGET_LIBGCC2_CFLAGS): Remove.
794         * config/t-linux: Remove.
795         * config/t-lynx (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
796         Remove.
797         * config/t-openbsd-thread: Move to ../libgcc/config.
798         * config/t-rtems (LIBGCC2_INCLUDES): Remove.
799         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Remove.
800         * config/t-svr4: Remove.
801         * config/t-vxworks (LIBGCC, INSTALL_LIBGCC, TARGET_LIBGCC2_CFLAGS)
802         (LIBGCC2_DEBUG_CFLAGS, LIB2FUNCS_EXTRA, LIBGCC2_INCLUDES): Remove.
803         * config/vxlib.c, config/vxlib-tls.c: Move to ../libgcc/config.
804         * config/alpha/qrnnd.asm: Move to ../libgcc/config/alpha/qrnnd.S.
805         * config/alpha/t-alpha, config/alpha/t-ieee: Remove.
806         * config/alpha/t-vms (LIB2FUNCS_EXTRA, LIBGCC, INSTALL_LIBGCC): Remove.
807         * config/alpha/vms-gcc_shell_handler.c: Move to ../libgcc/config/alpha.
808         * config/arm/bpabi.c, config/arm/unaligned-funcs.c,
809         config/arm/fp16.c, config/arm/linux-atomic.c,
810         config/arm/linux-atomic-64bit.c: Move to ../libgcc/config/arm.
811         * config/arm/t-arm-elf (LIBGCC, INSTALL_LIBGCC)
812         (TARGET_LIBGCC2_CFLAGS): Remove.
813         * config/arm/t-bpabi, config/arm/t-linux: Remove.
814         * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS)
815         (LIB2FUNCS_STATIC_EXTRA): Remove.
816         * config/arm/t-netbsd: Remove.
817         * config/arm/t-strongarm-elf (LIBGCC, INSTALL_LIBGCC)
818         (TARGET_LIBGCC2_CFLAGS): Remove.
819         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Remove.
820         * config/arm/t-wince-pe (LIBGCC, INSTALL_LIBGCC)
821         (TARGET_LIBGCC2_CFLAGS): Remove.
822         * config/avr/t-avr (LIB2FUNCS_EXCLUDE, TARGET_LIBGCC2_CFLAGS)
823         (LIBGCC, INSTALL_LIBGCC): Remove.
824         * config/bfin/t-bfin-elf (TARGET_LIBGCC2_CFLAGS): Remove.
825         * config/bfin/t-bfin-linux: Likewise.
826         * config/bfin/t-bfin-uclinux: Likewise.
827         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
828         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
829         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
830         config/c6x/ltf.c: Move to ../libgcc/config/c6x.
831         * config/c6x/t-c6x-elf (LIB2FUNCS_EXCLUDE, LIB2FUNCS_EXTRA): Remove.
832         * config/c6x/t-c6x-uclinux (TARGET_LIBGCC2_CFLAGS): Remove.
833         * config/cris/arit.c: Move to ../libgcc/config/cris.
834         * config/cris/cris_abi_symbol.c: Remove.
835         * config/cris/cris.h: Remove obsolete comment.
836         * config/cris/mulsi3.asm: Move to ../libgcc/config/cris/mulsi3.S.
837         * config/cris/t-cris (LIB2FUNCS_EXTRA, CRIS_LIB1CSRC)
838         ($(LIB2FUNCS_EXTRA)): Remove.
839         * config/cris/t-elfmulti (LIB2FUNCS_STATIC_EXTRA, INSTALL_LIBGCC)
840         (LIBGCC): Remove.
841         * config/cris/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
842         * config/fr30/t-fr30: Remove.
843         * config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c,
844         config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c,
845         config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: Move
846         to ../libgcc/config/frv.
847         * config/frv/t-frv (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
848         (cmovh.c, cmovw.c, cmovd.c, modi.c, umodi.c, uitof.c, uitod.c)
849         (ulltof.c, LIBGCC, INSTALL_LIBGCC): Remove.
850         * config/frv/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
851         * config/h8300/clzhi2.c, config/h8300/ctzhi2.c,
852         config/h8300/fixunssfsi.c, config/h8300/parityhi2.c,
853         config/h8300/popcounthi2.c: Move to ../libgcc/config/h8300.
854         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
855         (LIBGCC, INSTALL_LIBGCC): Remove.
856         * config/i386/gthr-win32.c: Move to ../libgcc/config/i386.
857         * config/i386/t-cygming (LIBGCC2_INCLUDES): Remove.
858         * config/i386/t-cygwin: Remove.
859         * config/i386/t-darwin (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
860         (LIB2FUNCS_EXCLUDE): Remove.
861         * config/i386/t-darwin64 (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
862         (LIBGCC, INSTALL_LIBGCC): Remove.
863         * config/i386/t-gthr-win32: Move to ../libgcc/config/i386.
864         * config/i386/t-linux64 (LIBGCC, INSTALL_LIBGCC): Remove.
865         * config/i386/t-mingw-w32: Likewise.
866         * config/i386/t-mingw-w64: Likewise.
867         * config/i386/t-openbsd: Likewise.
868         * config/i386/t-nto: Remove.
869         * config/ia64/quadlib.c: Move to ../libgcc/config/ia64.
870         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
871         (quadlib.c): Remove.
872         * config/ia64/t-ia64: Remove comment.
873         * config/iq2000/lib2extra-funcs.c: Move to
874         ../libgcc/config/iq2000/lib2funcs.c.
875         * config/iq2000/t-iq2000: Remove.
876         * config/m32c/m32c-lib2.c: Move to ../libgcc/config/m32c/lib2funcs.c.
877         * config/m32c/m32c-lib2-trapv.c: Move to ../libgcc/config/m32c/trapv.c.
878         * config/m32r/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
879         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Remove.
880         * config/m32r/t-m32r (TARGET_LIBGCC2_CFLAGS, LIBGCC)
881         (INSTALL_LIBGCC): Remove.
882         * config/m68k/fpgnulib.c: Move to ../libgcc/config/m68k.
883         * config/m68k/t-floatlib: Remove.
884         * config/m68k/t-mlibs (LIBGCC, INSTALL_LIBGCC): Remove.
885         * config/mcore/t-mcore (TARGET_LIBGCC2_CFLAGS): Remove.
886         Fix typo.
887         (LIBGCC, INSTALL_LIBGCC): Remove.
888         * config/mep/mep-lib2.c: Move to ../libgcc/config/mep/lib2funcs.c.
889         * config/mep/mep-tramp.c: Move to ../libgcc/config/mep/tramp.c.
890         * config/mep/t-mep (LIB2FUNCS_EXTRA): Remove.
891         * config/mips/t-elf (TARGET_LIBGCC2_CFLAGS, LIBGCC)
892         (INSTALL_LIBGCC): Remove.
893         * config/mips/t-isa3264: Likewise.
894         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Remove.
895         * config/mips/t-r3900 (TARGET_LIBGCC2_CFLAGS, LIBGCC)
896         (INSTALL_LIBGCC): Remove.
897         * config/mips/t-sde (LIBGCC, INSTALL_LIBGCC): Remove.
898         * config/mips/t-sr71k (TARGET_LIBGCC2_CFLAGS, LIBGCC)
899         (INSTALL_LIBGCC): Remove.
900         * config/mips/t-vr (TARGET_LIBGCC2_CFLAGS)
901         (LIB2FUNCS_STATIC_EXTRA): Remove.
902         * config/mips/vr4120-div.S: Move to ../libgcc/config/mips.
903         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Remove.
904         * config/mn10300/t-mn10300 (LIBGCC, INSTALL_LIBGCC): Remove.
905         * config/pa/fptr.c, config/pa/linux-atomic.c: Move to
906         ../libgcc/config/pa.
907         * config/pa/lib2funcs.asm: Move to ../libgcc/config/pa/lib2funcs.S.
908         * config/pa/quadlib.c: Move to ../libgcc/config/pa.
909         * config/pa/t-dce-thr (LIBGCC, INSTALL_LIBGCC): Remove.
910         * config/pa/t-linux, config/pa/t-linux64: Remove.
911         * config/pa/t-pa-hpux, config/pa/t-pa-hpux10,
912         config/pa/t-pa-hpux11, config/pa/t-pa64: Remove.
913         * config/pdp11/t-pdp11 (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA):
914         Remove.
915         * config/picochip/libgccExtras: Move to ../libgcc/config/picochip.
916         * config/picochip/t-picochip (LIB2FUNCS_EXTRA, RANLIB_FOR_TARGET)
917         (TARGET_LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS): Remove.
918         * config/rs6000/crtresfpr.asm: Move to
919         ../libgcc/config/rs6000/crtresfpr.S.
920         * config/rs6000/crtresgpr.asm: Move to
921         ../libgcc/config/rs6000/crtresgpr.S.
922         * config/rs6000/crtresxfpr.asm: Move to
923         ../libgcc/config/rs6000/crtresxfpr.S.
924         * config/rs6000/crtresxgpr.asm: Move to
925         ../libgcc/config/rs6000/crtresxgpr.S.
926         * config/rs6000/crtsavfpr.asm: Move to
927         ../libgcc/config/rs6000/crtsavfpr.S.
928         * config/rs6000/crtsavgpr.asm: Move to
929         ../libgcc/config/rs6000/crtsavgpr.S.
930         * config/rs6000/darwin-asm.h: Move to ../libgcc/config/rs6000.
931         * config/rs6000/darwin-fpsave.asm: Move to
932         ../libgcc/config/rs6000/darwin-fpsave.S.
933         * config/rs6000/darwin-gpsave.asm: Move to
934         ../libgcc/config/rs6000/darwin-gpsave.S.
935         * config/rs6000/darwin-tramp.asm: Move to
936         ../libgcc/config/rs6000/darwin-tramp.S.
937         * config/rs6000/darwin-vecsave.asm: Move to
938         ../libgcc/config/rs6000/darwin-vecsave.S.
939         * config/rs6000/darwin-world.asm: Move to
940         ../libgcc/config/rs6000/darwin-world.S.
941         * config/rs6000/e500crtres32gpr.asm: Move to
942         ../libgcc/config/rs6000/e500crtres32gpr.S.
943         * config/rs6000/e500crtres64gpr.asm: Move to
944         ../libgcc/config/rs6000/e500crtres64gpr.S.
945         * config/rs6000/e500crtres64gprctr.asm: Move to
946         ../libgcc/config/rs6000/e500crtres64gprctr.S.
947         * config/rs6000/e500crtrest32gpr.asm: Move to
948         ../libgcc/config/rs6000/e500crtrest32gpr.S.
949         * config/rs6000/e500crtrest64gpr.asm: Move to
950         ../libgcc/config/rs6000/e500crtrest64gpr.S.
951         * config/rs6000/e500crtresx32gpr.asm: Move to
952         ../libgcc/config/rs6000/e500crtresx32gpr.S.
953         * config/rs6000/e500crtresx64gpr.asm: Move to
954         ../libgcc/config/rs6000/e500crtresx64gpr.S.
955         * config/rs6000/e500crtsav32gpr.asm: Move to
956         ../libgcc/config/rs6000/e500crtsav32gpr.S.
957         * config/rs6000/e500crtsav64gpr.asm: Move to
958         ../libgcc/config/rs6000/e500crtsav64gpr.S.
959         * config/rs6000/e500crtsav64gprctr.asm: Move to
960         ../libgcc/config/rs6000/e500crtsav64gprctr.S.
961         * config/rs6000/e500crtsavg32gpr.asm: Move to
962         ../libgcc/config/rs6000/e500crtsavg32gpr.S.
963         * config/rs6000/e500crtsavg64gpr.asm: Move to
964         ../libgcc/config/rs6000/e500crtsavg64gpr.S.
965         * config/rs6000/e500crtsavg64gprctr.asm: Move to
966         ../libgcc/config/rs6000/e500crtsavg64gprctr.S.
967         * config/rs6000/eabi.asm: Move to ../libgcc/config/rs6000/eabi.S.
968         * config/rs6000/t-aix43 (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
969         (TARGET_LIBGCC2_CFLAGS): Remove.
970         * config/rs6000/t-aix52: Likewise.
971         * config/rs6000/t-darwin: Remove.
972         * config/rs6000/t-darwin64 (LIB2_SIDITI_CONV_FUNCS)
973         (LIB2FUNCS_EXTRA): Remove.
974         * config/rs6000/t-fprules (LIBGCC, INSTALL_LIBGCC): Remove.
975         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Remove.
976         * config/rs6000/t-lynx (LIB2FUNCS_EXTRA, tramp.S, LIBGCC)
977         (INSTALL_LIBGCC): Remove.
978         * config/rs6000/t-netbsd (LIB2FUNCS_EXTRA)
979         (LIB2FUNCS_STATIC_EXTRA, tramp.S, crtsavfpr.S, crtresfpr.S)
980         (crtsavgpr.S, crtresgpr.S, crtresxfpr.S, crtresxgpr.S, LIBGCC)
981         (INSTALL_LIBGCC, $(T)crtsavfpr$(objext), $(T)crtresfpr$(objext))
982         ($(T)crtsavgpr$(objext), $(T)crtresgpr$(objext))
983         ($(T)crtresxfpr$(objext), $(T)crtresxgpr$(objext)): Remove.
984         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA)
985         (LIB2FUNCS_STATIC_EXTRA, eabi.S, tramp.S): Remove.
986         * config/rs6000/t-spe (LIBGCC, INSTALL_LIBGCC): Remove.
987         * config/rs6000/t-vxworks: Remove comment.
988         * config/rs6000/tramp.asm: Move to ../libgcc/config/rs6000/tramp.S.
989         * config/rx/t-rx (LIBGCC, INSTALL_LIBGCC): Remove.
990         * config/sh/linux-atomic.asm: Move to
991         ../libgcc/config/sh/linux-atomic.S.
992         * config/sh/t-linux (LIB2FUNCS_EXTRA): Remove.
993         * config/sh/t-netbsd: Remove.
994         * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
995         Remove.
996         * config/sparc/t-elf (LIBGCC, INSTALL_LIBGCC): Remove.
997         * config/sparc/t-leon: Likewise.
998         * config/sparc/t-leon3: Likewise.
999         * config/sparc/t-linux64: Likewise.
1000         * config/sparc/t-netbsd64: Fix typo.
1001         Remove comment.
1002         * config/spu/divmodti4.c, config/spu/divv2df3.c,
1003         config/spu/float_disf.c, config/spu/float_unsdidf.c,
1004         config/spu/float_unsdisf.c, config/spu/float_unssidf.c,
1005         config/spu/mfc_multi_tag_release.c,
1006         config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c,
1007         config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c,
1008         config/spu/multi3.c: Move to ../libgcc/config/spu.
1009         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXCLUDE)
1010         (LIB2FUNCS_STATIC_EXTRA, LIB2_SIDITI_CONV_FUNCS, LIBGCC)
1011         (INSTALL_LIBGCC): Remove.
1012         * config/stormy16/stormy16-lib2.c: Move to
1013         ../libgcc/config/stormy16/lib2.c.
1014         * config/stormy16/stormy16-lib2-ashlsi3.c: Move to
1015         ../libgcc/config/stormy16/ashlsi3.c.
1016         * config/stormy16/stormy16-lib2-ashrsi3.c: Move to
1017         ../libgcc/config/stormy16/ashrsi3.c.
1018         * config/stormy16/stormy16-lib2-clzhi2.c: Move to
1019         ../libgcc/config/stormy16/clzhi2.c.
1020         * config/stormy16/stormy16-lib2-cmpsi2.c: Move to
1021         ../libgcc/config/stormy16/cmpsi2.c.
1022         * config/stormy16/stormy16-lib2-ctzhi2.c: Move to
1023         ../libgcc/config/stormy16/ctzhi2.c.
1024         * config/stormy16/stormy16-lib2-divsi3.c: Move to
1025         ../libgcc/config/stormy16/divsi3.c.
1026         * config/stormy16/stormy16-lib2-ffshi2.c: Move to
1027         ../libgcc/config/stormy16/ffshi2.c.
1028         * config/stormy16/stormy16-lib2-lshrsi3.c: Move to
1029         ../libgcc/config/stormy16/lshrsi3.c.
1030         * config/stormy16/stormy16-lib2-modsi3.c: Move to
1031         ../libgcc/config/stormy16/modsi3.c.
1032         * config/stormy16/stormy16-lib2-parityhi2.c: Move to
1033         ../libgcc/config/stormy16/parityhi2.c.
1034         * config/stormy16/stormy16-lib2-popcounthi2.c: Move to
1035         ../libgcc/config/stormy16/popcounthi2.c.
1036         * config/stormy16/stormy16-lib2-ucmpsi2.c: Move to
1037         ../libgcc/config/stormy16/ucmpsi2.c.
1038         * config/stormy16/stormy16-lib2-udivmodsi4.c: Move to
1039         ../libgcc/config/stormy16/udivmodsi4.c.
1040         * config/stormy16/stormy16-lib2-udivsi3.c: Move to
1041         ../libgcc/config/stormy16/udivsi3.c.
1042         * config/stormy16/stormy16-lib2-umodsi3.c: Move to
1043         ../libgcc/config/stormy16/umodsi3.c.
1044         * config/stormy16/t-stormy16: Move to ../libgcc/config/t-stormy16.
1045         * config/v850/t-v850 (INSTALL_LIBGCC): Remove.
1046         * config/xtensa/lib2funcs.S: Move to ../libgcc/config/xtensa.
1047         * config/xtensa/t-elf: Remove.
1048         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove.
1049         * config.gcc (*-*-freebsd*): Remove t-freebsd, t-freebsd-thread
1050         from tmake_file.
1051         (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
1052         *-*-gnu*, *-*-kopensolaris*-gnu): Remove t-linux from tmake_file.
1053         (*-*-netbsd*): Remove t-libgcc-pic from tmake_file.
1054         (*-*-openbsd*): Likewise.
1055         Remove t-openbsd-thread for posix threads.
1056         (alpha*-*-linux*): Remove alpha/t-alpha, alpha/t-ieee from tmake_file.
1057         (alpha*-*-freebsd*): Likewise.
1058         (alpha*-*-netbsd*): Likewise.
1059         (alpha*-*-openbsd*): Likewise.
1060         (alpha64-dec-*vms*): Likewise.
1061         (alpha*-dec-*vms*): Likewise.
1062         (arm*-*-netbsdelf*): Remove arm/t-netbsd from tmake_file.
1063         (arm*-*-linux*): Remove t-linux from tmake_file.
1064         Remove arm/t-bpabi from tmake_file for arm*-*-linux-*eabi.
1065         (arm*-*-uclinux*): Remove arm/t-bpabi from tmake_file for
1066         arm*-*-uclinux*eabi.
1067         (arm*-*-eabi*, arm*-*-symbianelf* ): Remove arm/t-bpabi from
1068         tmake_file for arm*-*-eabi*.
1069         (fr30-*-elf): Remove tmake_file.
1070         (hppa*64*-*-linux*): Remove tmake_file.
1071         (hppa*-*-linux*): Likewise.
1072         (hppa[12]*-*-hpux10*): Remove pa/t-pa-hpux10, pa/t-pa-hpux from
1073         tmake_file.
1074         (hppa*64*-*-hpux11*): Remove pa/t-pa64, pa/t-pa-hpux from tmake_file.
1075         (hppa[12]*-*-hpux11*): Remove pa/t-pa-hpux11, pa/t-pa-hpux from
1076         tmake_file.
1077         (i[34567]86-*-elf*): Remove tmake_file.
1078         (x86_64-*-elf*): Likewise.
1079         (i[34567]86-*-nto-qnx*): Likewise.
1080         (i[34567]86-*-cygwin*): Remove i386/t-cygwin from tmake_file.
1081         (i[34567]86-*-mingw*, x86_64-*-mingw*): Remove i386/t-gthr-win32
1082         from tmake_file if using win32 threads.
1083         (iq2000*-*-elf*): Remove tmake-file.
1084         (microblaze*-linux*): Likewise.
1085         (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*)
1086         (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*)
1087         (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*)
1088         (sh64l*-*-netbsd*): Remove sh/t-netbsd from tmake_file for
1089         sh5*-*-netbsd*, sh64*-netbsd*, *-*-netbsd.
1090         (xtensa*-*-elf*): Remove tmake_file.
1091
1092 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1093
1094         * Makefile.in (LIB1ASMSRC): Don't export.
1095         (libgcc.mvars): Don't emit LIB1ASMFUNCS, LIB1ASMSRC.
1096         * config/arm/arm.c: Update lib1funcs.asm filename.
1097         * config/arm/linux-eabi.h: Likewise.
1098         * config/arm/bpabi-v6m.S, config/arm/bpabi.S,
1099         config/arm/ieee754-df.S, config/arm/ieee754-sf.S: Move to
1100         ../libgcc/config/arm.
1101         * config/arm/lib1funcs.asm: Move to ../libgcc/config/arm/lib1funcs.S.
1102         * config/arm/t-arm (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1103         * config/arm/t-arm-elf (LIB1ASMFUNCS): Remove.
1104         * config/arm/t-bpabi: Likewise.
1105         * config/arm/t-linux (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1106         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Remove.
1107         * config/arm/t-strongarm-elf: Likewise.
1108         * config/arm/t-symbian: Likewise.
1109         * config/arm/t-vxworks: Likewise.
1110         * config/arm/t-wince-pe: Likewise.
1111         * config/avr/libgcc.S: Move to ../libgcc/config/avr.
1112         * config/avr/t-avr (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1113         * config/bfin/lib1funcs.asm: Move to ../libgcc/config/bfin/lib1funcs.S.
1114         * config/bfin/t-bfin: Remove.
1115         * config/bfin/t-bfin-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1116         * config/bfin/t-bfin-linux: Likewise.
1117         * config/bfin/t-bfin-uclinux: Likewise.
1118         * config/c6x/lib1funcs.asm: Move to ../libgcc/config/c6x/lib1funcs.S.
1119         * config/c6x/t-c6x-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1120         * config/fr30/lib1funcs.asm: Move to ../libgcc/config/fr30/lib1funcs.S.
1121         * config/fr30/t-fr30 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1122         * config/frv/lib1funcs.asm: Move to ../libgcc/config/frv/lib1funcs.S.
1123         * config/frv/t-frv (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1124         * config/h8300/fixunssfsi.c: Update lib1funcs.asm filename.
1125         * config/h8300/lib1funcs.asm: Move to
1126         ../libgcc/config/h8300/lib1funcs.S.
1127         * config/h8300/t-h8300 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1128         * config/i386/cygwin.asm: Move to ../libgcc/config/i386/cygwin.S.
1129         * config/i386/t-cygming (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1130         * config/i386/t-interix: Likewise.
1131         * config/ia64/lib1funcs.asm: Move to ../libgcc/config/ia64/lib1funcs.S.
1132         * config/ia64/t-hpux (LIB1ASMFUNCS, LIBGCC1_TEST): Remove.
1133         * config/ia64/t-ia64 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1134         * config/iq2000/t-iq2000 (LIBGCC1, CROSS_LIBGCC1): Remove.
1135         * config/m32c/m32c.c: Update m32c-lib1.S filename.
1136         * config/m32c/m32c-lib1.S: Move to ../libgcc/config/m32c/lib1funcs.S.
1137         * config/m32c/t-m32c (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1138         * config/m32r/t-linux (CROSS_LIBGCC1, LIBGCC1, LIBGCC1_TEST): Remove.
1139         * config/m68k/lb1sf68.asm: Move to ../libgcc/config/m68k/lb1sf68.S.
1140         * config/m68k/t-floatlib (LIB1ASMSRC, LIB1ASMFUNCS): New file.
1141         * config/mcore/lib1.asm: Move to ../libgcc/config/mcore/lib1funcs.S.
1142         * config/mcore/t-mcore (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1143         * config/mep/mep-lib1.asm: Move to ../libgcc/config/mep/lib1funcs.S.
1144         * config/mep/t-mep (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1145         * config/mips/mips16.S: Move to ../libgcc/config/mips.
1146         * config/mips/t-libgcc-mips16: Remove.
1147         * config/mips/t-sr71k (LIBGCC1, CROSS_LIBGCC1): Remove.
1148         * config/pa/milli64.S: Move to ../libgcc/config/pa.
1149         * config/pa/t-linux (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
1150         * config/pa/t-linux64: Likewise.
1151         * config/picochip/libgccExtras/fake_libgcc.asm: Move to
1152         ../libgcc/config/picochip/lib1funcs.S.
1153         * config/picochip/t-picochip (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
1154         * config/sh/lib1funcs.asm: Move to ../libgcc/config/sh/lib1funcs.S.
1155         * config/sh/lib1funcs.h: Move to ../libgcc/config/sh.
1156         * config/sh/sh.h: Update lib1funcs.asm filename.
1157         * config/sh/t-linux (LIB1ASMFUNCS_CACHE): Remove.
1158         * config/sh/t-netbsd: Likewise.
1159         * config/sh/t-sh (LIB1ASMSRC, LIB1ASMFUNCS, LIB1ASMFUNCS_CACHE):
1160         Remove.
1161         * config/sh/t-sh64 (LIB1ASMFUNCS): Remove.
1162         * config/sparc/lb1spc.asm: Move to ../libgcc/config/sparc/lb1spc.S.
1163         * config/sparc/lb1spl.asm: Remove.
1164         * config/sparc/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1165         * config/sparc/t-leon: Likewise.
1166         * config/spu/t-spu-elf (LIBGCC1, CROSS_LIBGCC1): Remove.
1167         * config/v850/lib1funcs.asm: Move to ../libgcc/config/v850/lib1funcs.S.
1168         * config/v850/t-v850 (LIB1ASMSRC, LIB1ASMFUNCS): Remove
1169         * config/vax/lib1funcs.asm: Move to ../libgcc/config/vax/lib1funcs.S.
1170         * config/vax/t-linux: Remove.
1171         * config/xtensa/ieee754-df.S, config/xtensa/ieee754-sf.S: Move to
1172         ../libgcc/config/xtensa.
1173         * config/xtensa/lib1funcs.asm: Move to
1174         ../libgcc/config/xtensa/lib1funcs.S.
1175         * config/xtensa/t-xtensa (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
1176         * config.gcc (bfin*-rtems*): Remove bfin/t-bfin from tmake_file.
1177         (bfin*-*): Likewise.
1178         (mips64*-*-linux*, mipsisa64*-*-linux*): Remove
1179         mips/t-libgcc-mips16 from tmake_file.
1180         (mips*-*-linux*): Likewise.
1181         (mips*-sde-elf*): Likewise.
1182         (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
1183         (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
1184         (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Likewise.
1185         (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise.
1186         (mips-*-elf*, mipsel-*-elf*): Likewise.
1187         (mips64-*-elf*, mips64el-*-elf*): Likewise.
1188         (mips64orion-*-elf*, mips64orionel-*-elf*): Likewise.
1189         (mips*-*-rtems*): Likewise.
1190         (mipstx39-*-elf*, mipstx39el-*-elf*): Likewise.
1191         (vax-*-linux*): Remove vax/t-linux from tmake_file.
1192
1193 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1194
1195         * config.gcc (extra_parts): Remove.
1196         (*-*-freebsd*): Remove extra_parts.
1197         (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
1198         *-*-gnu*, *-*-kopensolaris*-gnu): Likewise.
1199         (*-*-netbsd*): Remove t-libc-ok, t-netbsd from tmake_file.
1200         Remove extra_parts for *-*-netbsd*1.[7-9]*, *-*-netbsd[2-9]*,
1201         *-*-netbsdelf[2-9]*.
1202         (*-*-openbsd*): Remove t-libc-ok from tmake_file.
1203         (alpha*-*-linux*): Remove extra_parts.
1204         (alpha*-*-freebsd*): Likewise.
1205         (bfin*-linux-uclibc*): Likewise.
1206         (fr30-*-elf): Likewise.
1207         (moxie-*-elf): Likewise.
1208         (moxie-*-uclinux*): Likewise.
1209         (h8300-*-rtems*): Remove h8300/t-elf from tmake_file.
1210         (h8300-*-elf*): Likewise.
1211         (hppa*64*-*-hpux11*): Remove extra_parts.
1212         (i[34567]86-*-elf*): Remove i386/t-i386elf, i386/t-crtstuff from
1213         tmake_file.
1214         (x86_64-*-elf*): Likewise.
1215         (i[34567]86-*-freebsd*): Remove tmake_file.
1216         (x86_64-*-freebsd*): Likewise.
1217         (x86_64-*-netbsd*): Likewise.
1218         (i[34567]86-*-openbsd2.*, i[34567]86-*openbsd3.[0123]): Remove
1219         t-libc-ok from tmake_file.
1220         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1221         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
1222         i[34567]86-*-kopensolaris*-gnu): Remove i386/t-crtstuff from
1223         tmake_file.
1224         Remove extra_parts.
1225         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
1226         Remove i386/t-crtstuff from tmake_file.
1227         (i[34567]86-*-lynxos*): Likewise.
1228         Remove extra_parts.
1229         (ia64*-*-elf*): Remove extra_parts.
1230         (ia64*-*-freebsd*): Likewise.
1231         (ia64*-*-linux*): Likewise.
1232         (ia64-hp-*vms*): Remove ia64/t-vms from tmake_file.
1233         (m32r-*-elf*): Remove extra_parts.
1234         (m32rle-*-elf*): Likewise.
1235         (m32r-*-rtems*): Likewise.
1236         (m68k-*-elf*, fido-*-elf*): Likewise.
1237         (m68k*-*-openbsd*): Remove t-libc-ok from tmake_file.
1238         (m68k-*-rtems*): Remove extra_parts.
1239         (mep-*-*): Likewise.
1240         (microblaze*-linux*): Likewise.
1241         (mips64*-*-linux*, mipsisa64*-*-linux*): Likewise.
1242         (mips*-*-linux*): Likewise.
1243         (powerpc-*-lynxos*): Likewise.
1244         (s390x-ibm-tpf*): Likewise.
1245         (score-*-elf): Likewise.
1246         Remove tmake_file.
1247         (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*, sh[2346lbe]*-*-linux*,
1248         sh-*-netbsdelf*, shl*-*-netbsdelf*, sh5-*-netbsd*, sh5l*-*-netbsd*,
1249         sh64-*-netbsd*, sh64l*-*-netbsd*): Remove sh/t-elf from tmake_file.
1250         Remove sh/t-superh from tmake_file for sh*-superh-elf.
1251         Remove sh/t-linux64 from tmake_file for sh64*-*-linux*.
1252         (sh-*-rtems*): Remove sh/t-elf from tmake_file.
1253         (sh-wrs-vxworks): Likewise.
1254         (sparc-*-linux*): Remove extra_parts.
1255         (sparc64-*-linux*): Likewise.
1256         (sparc64-*-freebsd*, ultrasparc-*-freebsd*): Likewise.
1257         (xstormy16-*-elf): Likewise.
1258         (xtensa*-*-linux*): Remove xtensa/t-linux from tmake_file.
1259         (am33_2.0-*-linux*): Remove extra_parts.
1260         * configure.ac (extra_parts): Don't substitute.
1261         * configure: Regenerate.
1262         * crtstuff.c: Move to ../libgcc.
1263         * Makefile.in (CRTSTUFF_CFLAGS): Remove.
1264         (EXTRA_PARTS): Remove.
1265         (CRTSTUFF_T_CFLAGS): Remove.
1266         (MOSTLYCLEANFILES): Remove $(EXTRA_PARTS).
1267         (GCC_EXTRA_PARTS): Remove.
1268         (libgcc.mvars): Remove GCC_EXTRA_PARTS, CRTSTUFF_CFLAGS,
1269         CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S.
1270         Emit GCC_CFLAGS, INHIBIT_LIBC_CFLAGS.
1271         ($(T)crtbegin.o, $(T)crtend.o, $(T)crtbeginS.o, $(T)crtendS.o)
1272         ($(T)crtbeginT.o): Remove.
1273         * config/alpha/t-vms (EXTRA_PARTS): Remove.
1274         ($(T)vms-dwarf2.o, $(T)vms-dwarf2eh.o): Remove.
1275         * config/alpha/vms-dwarf2.asm: Move to
1276         ../libgcc/config/alpha/vms-dwarf2.S.
1277         * config/alpha/vms-dwarf2eh.asm: Move to
1278         ../libgcc/config/alpha/vms-dwarf2eh.S.
1279         * config/arm/crti.asm: Move to ../libgcc/config/arm/crti.S.
1280         * config/arm/crtn.asm: Move to ../libgcc/config/arm/crtn.S.
1281         * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Remove.
1282         ($(T)crti.o, $(T)crtn.o): Remove.
1283         * config/arm/t-linux: Remove comment.
1284         * config/arm/t-linux-eabi (EXTRA_MULTILIB_PARTS): Remove.
1285         * config/arm/t-strongarm-elf (EXTRA_MULTILIB_PARTS): Remove.
1286         ($(T)crti.o, $(T)crtn.o): Remove.
1287         * config/arm/t-symbian (EXTRA_MULTILIB_PARTS): Remove.
1288         * config/bfin/crti.s: Move to ../libgcc/config/bfin/crti.S.
1289         * config/bfin/crtn.s: Move to ../libgcc/config/bfin/crtn.S.
1290         * config/bfin/crtlibid.s: Move to ../libgcc/config/bfin/crtlibid.S.
1291         * config/bfin/t-bfin (EXTRA_PARTS): Remove.
1292         ($(T)crti.o, $(T)crtn.o): Remove.
1293         * config/bfin/t-bfin-elf (CRTSTUFF_T_CFLAGS): Remove.
1294         ($(T)crti.o, $(T)crtn.o, $(T)crtlibid.o): Remove
1295         (EXTRA_MULTILIB_PARTS): Remove.
1296         * config/bfin/t-bfin-linux (CRTSTUFF_T_CFLAGS,
1297         EXTRA_MULTILIB_PARTS): Remove.
1298         * config/bfin/t-bfin-uclinux (CRTSTUFF_T_CFLAGS): Remove.
1299         ($(T)crtlibid.o): Remove.
1300         (EXTRA_MULTILIB_PARTS): Remove.
1301         * config/c6x/crti.s: Move to ../libgcc/config/c6x/crti.S.
1302         * config/c6x/crtn.s: Move to ../libgcc/config/c6x/crtn.S.
1303         * config/c6x/t-c6x-elf ($(T)crti.o, $(T)crtn.o): Remove.
1304         (EXTRA_MULTILIB_PARTS): Remove.
1305         (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
1306         * config/c6x/t-c6x-uclinux (CRTSTUFF_T_CFLAGS,
1307         CRTSTUFF_T_CFLAGS_S): Remove.
1308         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Remove.
1309         * config/cris/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
1310         * config/fr30/crti.asm: Move to ../libgcc/config/fr30/crti.S.
1311         * config/fr30/crtn.asm: Move to ../libgcc/config/fr30/crtn.S.
1312         * config/fr30/t-fr30 ($(T)crti.o, $(T)crtn.o): Remove.
1313         * config/frv/frvbegin.c, config/frv/frvend.c: Move to
1314         ../libgcc/config/frv.
1315         * config/frv/t-frv (EXTRA_MULTILIB_PARTS): Remove.
1316         (FRVSTUFF_CFLAGS, $(T)frvbegin$(objext), $(T)frvend$(objext)): Remove.
1317         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove.
1318         (CRTSTUFF_T_CFLAGS): Remove.
1319         * config/h8300/crti.asm: Move to ../libgcc/config/h8300/crti.S.
1320         * config/h8300/crtn.asm: Move to ../libgcc/config/h8300/crtn.S.
1321         * config/h8300/t-elf: Remove.
1322         * config/i386/cygming-crtbegin.c, config/i386/cygming-crtend.c:
1323         Move to ../libgcc/config/i386.
1324         * config/i386/t-crtstuff: Remove.
1325         * config/i386/t-i386elf: Remove.
1326         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
1327         * config/i386/t-nto (CRTSTUFF_T_CFLAGS, EXTRA_PARTS): Remove.
1328         * config/ia64/crtbegin.asm: Move to ../libgcc/config/ia64/crtbegin.S.
1329         * config/ia64/crtend.asm: Move to ../libgcc/config/ia64/crtend.S.
1330         * config/ia64/crti.asm: Move to ../libgcc/config/ia64/crti.S.
1331         * config/ia64/crtn.asm: Move to ../libgcc/config/ia64/crtn.S.
1332         * config/ia64/t-vms: Remove.
1333         * config/ia64/vms-crtinit.asm: Move to
1334         ../libgcc/config/ia64/vms-crtinit.S.
1335         * config/m32c/t-m32c (EXTRA_MULTILIB_PARTS): Remove.
1336         * config/m32r/initfini.c: Move to ../libgcc/config/m32r.
1337         * config/m32r/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
1338         * config/m32r/t-m32r (CRTSTUFF_T_CFLAGS): Remove.
1339         ($(T)crtinit.o, $(T)crtfini.o): Remove.
1340         (m32rx, m32r2): Remove.
1341         (EXTRA_MULTILIB_PARTS): Remove.
1342         * config/m68k/crti.s: Move to ../libgcc/config/m68k/crti.S.
1343         * config/m68k/crtn.s: Move to ../libgcc/config/m68k/crtn.S.
1344         * config/m68k/t-crtstuff: Remove.
1345         * config/m68k/t-linux (EXTRA_MULTILIB_PARTS): Remove.
1346         * config/m68k/t-m68kelf: Remove.
1347         * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Remove.
1348         * config/mcore/crti.asm: Move to ../libgcc/config/mcore/crti.S.
1349         * config/mcore/crtn.asm: Move to ../libgcc/config/mcore/crtn.S.
1350         * config/mcore/t-mcore ($(T)crti.o, $(T)crtn.o): Remove.
1351         (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
1352         * config/mep/t-mep (CRTSTUFF_CFLAGS): Remove.
1353         (EXTRA_MULTILIB_PARTS): Remove.
1354         * config/microblaze/crti.s: Move to ../libgcc/config/microblaze/crti.S.
1355         * config/microblaze/crtn.s: Move to ../libgcc/config/microblaze/crtn.S.
1356         * config/microblaze/t-microblaze (EXTRA_MULTILIB_PARTS,
1357         EXTRA_PARTS): Remove.
1358         ($(T)crti$(objext), $(T)crtn$(objext)): Remove.
1359         * config/mips/crti.asm: Move to ../libgcc/config/mips/crti.S.
1360         * config/mips/crtn.asm: Move to ../libgcc/config/mips/crtn.S.
1361         * config/mips/t-elf (CRTSTUFF_T_CFLAGS): Remove.
1362         ($(T)crti.o, $(T)crtn.o): Remove.
1363         (EXTRA_MULTILIB_PARTS): Remove.
1364         * config/mips/t-isa3264: Likewise.
1365         * config/mips/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
1366         * config/mips/t-r3900 (EXTRA_MULTILIB_PARTS): Remove.
1367         (CRTSTUFF_T_CFLAGS): Remove.
1368         * config/mips/t-sde (CRTSTUFF_T_CFLAGS): Remove.
1369         ($(T)crti.o, $(T)crtn.o): Remove.
1370         (EXTRA_MULTILIB_PARTS): Remove.
1371         * config/mips/t-sr71k (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS):
1372         Remove.
1373         ($(T)crti.o, $(T)crtn.o): Remove.
1374         * config/mips/t-st (EXTRA_MULTILIB_PARTS): Remove.
1375         * config/mips/t-vr (CRTSTUFF_T_CFLAGS): Remove.
1376         (EXTRA_MULTILIB_PARTS): Remove.
1377         ($(T)crti.o, $(T)crtn.o): Remove.
1378         * config/mmix/crti.asm: Move to ../libgcc/config/crti.S.
1379         * config/mmix/crtn.asm: Move to ../libgcc/config/crtn.S.
1380         * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Remove.
1381         * config/moxie/crti.asm, config/moxie/crtn.asm: Remove.
1382         * config/pa/stublib.c: Move to libgcc/config/pa.
1383         * config/pa/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
1384         * config/pa/t-linux64 (CRTSTUFF_T_CFLAGS_S): Remove.
1385         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS, stublib.c): Remove.
1386         (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
1387         (pthread_mutex_unlock-stub.o, pthread_once-stub.o)
1388         ($(T)libgcc_stub.a): Remove.
1389         * config/pa/t-pa64 (LIBGCCSTUB_OBJS, stublib.c): Remove.
1390         (rfi-stub.o, dfi-stub.o, cxaf-stub.o, jvrc-stub.o)
1391         (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
1392         (pthread_mutex_unlock-stub.o, pthread_once-stub.o)
1393         ($(T)libgcc_stub.a): Remove.
1394         * config/rs6000/eabi-cn.asm: Move to
1395         ../../../libgcc/config/rs6000/eabi-cn.S.
1396         * config/rs6000/eabi-ci.asm: Move to
1397         ../../../libgcc/config/rs6000/eabi-ci.S.
1398         * config/rs6000/sol-ci.asm: Move to
1399         ../../../libgcc/config/rs6000/sol-ci.S.
1400         * config/rs6000/sol-cn.asm: Move to
1401         ../../../libgcc/config/rs6000/sol-cn.S.
1402         * config/rs6000/t-lynx (EXTRA_MULTILIB_PARTS): Remove.
1403         (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
1404         * config/rs6000/t-netbsd (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
1405         Remove.
1406         (EXTRA_MULTILIB_PARTS): Remove.
1407         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Remove.
1408         (ecrti.S, ecrtn.S, ncrti.S, ncrtn.S): Remove.
1409         ($(T)ecrti$(objext), $(T)ecrtn$(objext), $(T)ncrti$(objext),
1410         ($(T)ncrtn$(objext)): Remove.
1411         (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
1412         * config/rs6000/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
1413         * config/rx/t-rx (EXTRA_MULTILIB_PARTS): Remove.
1414         * config/score/crti.asm: Move to ../libgcc/config/score/crti.S.
1415         * config/score/crtn.asm: Move to ../libgcc/config/score/crtn.S.
1416         * config/score/t-score-elf: Remove.
1417         * config/sh/crt1.asm: Move to ../libgcc/config/sh/crt1.S.
1418         * config/sh/crti.asm: Move to ../libgcc/config/sh/crti.S.
1419         * config/sh/crtn.asm: Move to ../libgcc/config/sh/crtn.S.
1420         * config/sh/lib1funcs-4-300.asm: Move to
1421         ../../../libgcc/config/sh/lib1funcs-4-300.S.
1422         * config/sh/lib1funcs-Os-4-200.asm: Move to
1423         ../libgcc/config/sh/lib1funcs-Os-4-200.S.
1424         * config/sh/t-elf: Remove.
1425         * config/sh/t-linux (EXTRA_MULTILIB_PARTS): Remove.
1426         * config/sh/t-linux64: Remove.
1427         * config/sh/t-netbsd (EXTRA_MULTILIB_PARTS): Remove.
1428         * config/sh/t-sh ($(T)crt1.o, $(T)crti.o, $(T)crtn.o): Remove.
1429         (IC_EXTRA_PARTS, OPT_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
1430         ($(T)ic_invalidate_array_4-100.o)
1431         ($(T)libic_invalidate_array_4-100.a)
1432         ($(T)ic_invalidate_array_4-200.o)
1433         ($(T)libic_invalidate_array_4-200.a, $(T)ic_invalidate_array_4a.o)
1434         ($(T)libic_invalidate_array_4a.a, $(T)sdivsi3_i4i-Os-4-200.o)
1435         ($(T)udivsi3_i4i-Os-4-200.o, $(T)unwind-dw2-Os-4-200.o)
1436         ($(T)libgcc-Os-4-200.a, $(T)div_table-4-300.o)
1437         ($(T)libgcc-4-300.a): Remove.
1438         * config/sh/t-superh: Remove.
1439         * config/sh/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
1440         * config/sparc/t-linux64 (CRTSTUFF_T_CFLAGS): Remove.
1441         * config/spu/cache.S: Move to ../libgcc/config/spu.
1442         * config/spu/cachemgr.c: Move to ../libgcc/config/spu.
1443         * config/spu/t-spu-elf (CRTSTUFF_T_CFLAGS): Remove.
1444         (EXTRA_MULTILIB_PARTS): Remove.
1445         ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o, $(T)libgcc_%.a): Remove.
1446         ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache32k.o)
1447         ($(T)cache64k.o, $(T)cache128k.o): Remove.
1448         * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Remove.
1449         * config/t-libc-ok: Remove.
1450         * config/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
1451         * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Remove.
1452         * config/t-netbsd: Remove.
1453         * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Remove.
1454         * config/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
1455         * config/vms/t-vms (VMS_EXTRA_PARTS): Remove.
1456         ($(T)vcrt0.o, $(T)pcrt0.o): Remove.
1457         * config/vms/vms-ucrt0.c: Move to ../libgcc/config/vms.
1458         * config/xtensa/crti.asm: Move to ../libgcc/config/xtensa/crti.S.
1459         * config/xtensa/crtn.asm: Move to ../libgcc/config/xtensa/crtn.S.
1460         * config/xtensa/t-elf (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
1461         (EXTRA_MULTILIB_PARTS): Remove.
1462         * config/xtensa/t-linux: Remove.
1463         * config/xtensa/t-xtensa ($(T)crti.o, $(T)crtn.o): Remove.
1464
1465 2011-11-02  Uros Bizjak  <ubizjak@gmail.com>
1466
1467         * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_CVTTPD2DQ256]: Use
1468         CODE_FOR_fix_truncv4dfv4si2, not CODE_FOR_fix_truncv4sfv4si2.
1469
1470 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1471
1472         PR translation/45116
1473         * Makefile.in (slibdir): Remove, don't export.
1474         (SHLIB_NM_FLAGS): Remove.
1475         (libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL,
1476         SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS,
1477         SHLIB_MAPFILES, SHLIB_NM_FLAGS.
1478         (DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK.
1479         (gcc.o): Pass SHLIB instead of SHLIB_LINK.
1480         (gccspec.o): Likewise.
1481         (installdirs): Don't create $(DESTDIR)$(slibdir).
1482         * configure.ac (slibdir): Remove.
1483         * configure: Regenerate.
1484         * libgcc-libsystem.ver: Move to ../libgcc/config.
1485         * mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc.
1486         * config/libgcc-glibc.ver: Move to ../libgcc/config.
1487         * config/t-libunwind (SHLIB_LC): Remove.
1488         * config/t-linux (SHLIB_MAPFILES): Remove.
1489         * config/t-slibgcc-dummy: Rename to config/t-slibgcc.
1490         * config/t-slibgcc-elf-ver: Remove.
1491         * config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to
1492         ../libgcc/config.
1493         * config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move
1494         to ../libgcc/config/alpha.
1495         * config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
1496         SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC,
1497         SHLIB_SYMVECX2, SHLIB_LINK): Remove.
1498         * config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm.
1499         * config/arm/t-bpabi (SHLIB_MAPFILES): Remove.
1500         * config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME,
1501         SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove.
1502         * config/arm/t-symbian (SHLIB_LC): Remove.
1503         * config/bfin/libgcc-bfin.ver: Move to
1504         ../libgcc/config/bfin/libgcc-glibc.ver.
1505         * config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove.
1506         * config/c6x/libgcc-c6xeabi.ver: Move to
1507         ../libgcc/config/c6x/libgcc-eabi.ver.
1508         * config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove.
1509         * config/cris/libgcc.ver: Move to
1510         ../libgcc/config/cris/libgcc-glibc.ver.
1511         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
1512         * config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv.
1513         * config/frv/t-linux (SHLIB_MAPFILES): Remove.
1514         * config/i386/darwin-libgcc.10.4.ver: Move to
1515         ../libgcc/config/i386/libgcc-darwin.10.4.ver.
1516         * config/i386/darwin-libgcc.10.5.ver: Move to
1517         ../libgcc/config/i386/libgcc-darwin.10.5.ver.
1518         * config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386.
1519         * config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION,
1520         SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL)
1521         SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK,
1522         SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES): Remove.
1523         * config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION,
1524         SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove.
1525         * config/i386/t-dlldir, config/i386/t-dlldir-x: Move to
1526         ../libgcc/config/i386.
1527         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to
1528         ../libgcc/config/i386.
1529         * config/i386/t-linux: Move to ../libgcc/config/i386.
1530         * config/i386/t-mingw-pthread: Move to ../libgcc/config/i386.
1531         * config/i386/t-mingw-w32 (SHLIB_LC): Remove.
1532         * config/i386/t-mingw-w64: Likewise.
1533         * config/i386/t-mingw32: Remove.
1534         * config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move
1535         to ../libgcc/config/ia64.
1536         * config/ia64/t-glibc: Remove.
1537         * config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove.
1538         * config/ia64/t-ia64 (SHLIB_MAPFILES): Remove.
1539         * config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
1540         SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove.
1541         * config/ia64/vms_symvec_libgcc_s.opt: Remove.
1542         * config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r.
1543         * config/m32r/t-linux (SHLIB_MAPFILES): Remove.
1544         * config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k.
1545         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove.
1546         * config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux.
1547         * config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver:
1548         Move to ../libgcc/config/pa.
1549         * config/rs6000/darwin-libgcc.10.4.ver: Move to
1550         ../libgcc/config/rs6000/libgcc-darwin.10.4.ver.
1551         * config/rs6000/darwin-libgcc.10.5.ver: Move to
1552         ../libgcc/config/rs6000/libgcc-darwin.10.5.ver.
1553         * config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL,
1554         SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove.
1555         * config/rs6000/t-aix52: Likewise.
1556         * config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to
1557         ../libgcc/config/sh.
1558         * config/sparc/libgcc-sparc-glibc.ver: Move to
1559         ../libgcc/config/sparc/libgcc-glibc.ver.
1560         * config/sparc/t-linux: Move to ../libgcc/config/sparc.
1561         * config/xtensa/t-linux (SHLIB_MAPFILES): Remove.
1562         * config/xtensa/libgcc-xtensa.ver: Move to
1563         ../libgcc/config/xtensa/libgcc-glibc.ver.
1564         * config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with
1565         t-slibgcc in tmake_file.
1566         Remove t-slibgcc-nolc-override for *-*-freebsd[34],
1567         *-*-freebsd[34].* with pthreads.
1568         (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu,
1569         *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace
1570         t-slibgcc-elf-ver with t-slibgcc in tmake_file.
1571         (*-*-netbsd*): Likewise.
1572         (*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file.
1573         (*-*-*vms*): Add t-slibgcc to tmake_file.
1574         (alpha*-*-linux*): Remove alpha/t-linux from tmake_file.
1575         (alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in
1576         tmake_file.
1577         (arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for
1578         arm*-*-linux-*eabi.
1579         (bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in
1580         tmake_file.
1581         (crisv32-*-linux*, cris-*-linux*): Likewise.
1582         (hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver,
1583         pa/t-slibgcc-dwarf-ver from tmake_file.
1584         (hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in
1585         tmake_file.
1586         Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file.
1587         (hppa*64*-*-hpux11*): Likewise.
1588         (hppa[12]*-*-hpux11*): Likewise.
1589         (i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in
1590         tmake_file.
1591         (x86_64-*-darwin*): Likewise.
1592         (i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file.
1593         Add t-slibgcc to tmake_file.
1594         (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
1595         Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*,
1596         i[34567]86-w64-*.
1597         Remove i386/t-mingw-pthread from tmake_file.
1598         (ia64*-*-linux*): Remove ia64/t-glibc from tmake_file.
1599         (ia64*-*-hpux*): Add t-slibgcc to tmake_file.
1600         (ia64-hp-*vms*): Likewise.
1601         (m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in
1602         tmake_file.
1603         (m32rle-*-linux*): Likewise.
1604         (m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file.
1605         (microblaze*-linux*): Remove t-slibgcc-elf-ver,
1606         t-slibgcc-nolc-override from tmake_file.
1607         (mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in
1608         tmake_file.
1609         (powerpc-*-darwin*): Likewise.
1610         (powerpc64-*-darwin*): Likewise.
1611         (powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file.
1612         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
1613         (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add
1614         t-slibgcc to tmake_file.
1615         (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
1616         (rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise.
1617         (rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise.
1618         (rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise.
1619         (sparc-*-linux*): Remove sparc/t-linux from tmake_file.
1620         (sparc64-*-linux*): Likewise.
1621         (tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in
1622         tmake_file.
1623         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1624         x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux
1625         from tmake_file.
1626
1627 2011-11-02  Richard Guenther  <rguenther@suse.de>
1628
1629         PR tree-optimization/50902
1630         * tree-vect-stmts.c (vectorizable_load): Properly convert
1631         an invariant initializer element.
1632
1633 2010-11-02  Richard Guenther  <rguenther@suse.de>
1634
1635         PR tree-optimization/50890
1636         * gimple.h (gimple_fold_call): Remove.
1637         * gimple-fold.c (fold_stmt_1): Move all call related code to ...
1638         (gimple_fold_call): ... here.  Make static.  Update the
1639         cannot-inline flag on direct calls.
1640         * ipa-inline.c (early_inliner): Copy the cannot-inline flag
1641         from the statements to the edges.
1642
1643 2011-11-01  Ian Lance Taylor  <iant@google.com>
1644
1645         * godump.c (struct macro_hash_value): Define.
1646         (macro_hash_hashval): New static function.
1647         (macro_hash_eq, macro_hash_del): New static functions.
1648         (go_define): Use macro_hash_value to store values in macro_hash.
1649         Replace an old value on a redefinition.  Don't print anything to
1650         go_dump_file.
1651         (go_undef): Delete the entry from the hash table.
1652         (go_output_typedef): For an enum, use macro_hash_value, and don't
1653         print anything to go_dump_file.
1654         (go_print_macro): New static function.
1655         (go_finish): Traverse macro_hash with go_print_macro.
1656         (dump_go_spec_init): Update macro_hash creation for macro_hash_value.
1657
1658 2011-11-02  Alan Modra  <amodra@gmail.com>
1659
1660         * config/rs6000/rs6000.c (rs6000_code_end): Declare ATTRIBUTE_UNUSED.
1661
1662 2011-11-01  Paolo Carlini  <paolo.carlini@oracle.com>
1663
1664         PR c++/44277
1665         * doc/invoke.texi: Document -Wzero-as-null-pointer-constant.
1666
1667 2011-11-01  Andrew Stubbs  <ams@codesourcery.com>
1668
1669         * config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning.
1670
1671 2011-11-01  Uros Bizjak  <ubizjak@gmail.com>
1672
1673         * config/i386/i386.md (splitters for int-float conversion): Use
1674         SUBREG_REG on SUBREGs in splitter constraints.
1675
1676 2011-11-01  Jakub Jelinek  <jakub@redhat.com>
1677
1678         * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): New
1679         prototype.
1680         * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): New
1681         function.
1682         * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Use it.
1683         (ssepackfltmode): New mode attr.
1684         (vec_pack_ufix_trunc_<mode>): New expander.
1685
1686 2011-11-01  Uros Bizjak  <ubizjak@gmail.com>
1687
1688         PR target/50940
1689         * config/i386/i386.md (floatsi<mode>2_vector_sse_with_temp splitter):
1690         Compare <ssevecmode>mode to V4SFmode, not V4SImode.
1691
1692 2011-11-01  Peter Bergner  <bergner@vnet.ibm.com>
1693
1694         * config.gcc (powerpc*-*-linux*): Add powerpc*-*-linux*ppc476* variant.
1695         * config/rs6000/476.h: New file.
1696         * config/rs6000/476.opt: Likewise.
1697         * config/rs6000/rs6000.h (TARGET_LINK_STACK): New define.
1698         (SET_TARGET_LINK_STACK): Likewise.
1699         (TARGET_ASM_CODE_END): Define.
1700         * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
1701         TARGET_LINK_STACK for -mtune=476 and -mtune=476fp.
1702         (rs6000_legitimize_tls_address): Emit the link stack preserving GOT
1703         code if TARGET_LINK_STACK.
1704         (rs6000_emit_load_toc_table): Likewise.
1705         (output_function_profiler): Likewise
1706         (macho_branch_islands): Likewise
1707         (machopic_output_stub): Likewise
1708         (get_ppc476_thunk_name): New function.
1709         (rs6000_code_end): Likewise.
1710         * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
1711         Convert to a define_expand.
1712         (load_toc_v4_PIC_1_normal): New define_insn.
1713         (load_toc_v4_PIC_1_476): Likewise.
1714         (load_toc_v4_PIC_1b_normal): Likewise.
1715         (load_toc_v4_PIC_1b_476): Likewise.
1716
1717 2011-11-01  Georg-Johann Lay  <avr@gjlay.de>
1718
1719         PR target/50910
1720         * config/avr/avr.opt (-mbranch-cost=): New option.
1721         * config/avr/avr.h (BRANCH_COST): Define to avr_branch_cost.
1722         * config/avr/avr.c (avr_rtx_costs_1): Adjust [U]DIV/[U]MOD costs.
1723         * config/avr/avr.md (*addqi3.lt0, *addhi3.lt0, *addsi3.lt0): New insns.
1724         (*addhi3_zero_extend1): Remove % in constraint of operand 1.
1725         (*addhi3.sign_extend1, *subhi3.sign_extend2): New insns.
1726
1727 2011-11-01  Tom de Vries  <tom@codesourcery.com>
1728
1729         PR tree-optimization/50908
1730         * tree-ssa-tail-merge.c (update_vuses): Now that edges are removed
1731         before update_vuses, test for 1 predecessor rather than two.
1732         (delete_block_update_dominator_info): New function, part of it factored
1733         out of ...
1734         (replace_block_by): Use delete_block_update_dominator_info.  Call
1735         update_vuses after deleting bb1 and updating dominator info, instead of
1736         before.
1737
1738 2011-11-01  David S. Miller  <davem@davemloft.net>
1739
1740         * config/sparc/sparc.c (vector_init_faligndata): New function.
1741         (sparc_expand_vector_init): Use it for V4HImode on VIS1.
1742
1743         * config/sparc/sparc.c (sparc_expand_vcond): New function.
1744         * config/sparc/sparc-protos.h (sparc_expand_vcond): Declare it.
1745         * config/sparc/sparc.md (vcond<mode><mode>): New VIS3 expander.
1746         (vconduv8qiv8qi): Likewise.
1747
1748 2011-11-01  Alexandre Oliva  <aoliva@redhat.com>
1749
1750         PR debug/50869
1751         * cselib.c (cfa_base_preserved_regno): Initialize.
1752         (cselib_expand_value_rtx_1): Don't expand it.
1753         * var-tracking.c (vt_expand_var_loc_chain): Initialize depth.
1754         Check it's only zero if result is NULL.
1755
1756 2011-11-01  Jakub Jelinek  <jakub@redhat.com>
1757
1758         * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): New
1759         expander.
1760
1761         * config/i386/sse.md (sseintvecmode): Remove duplicate modes.
1762         (sseintvecmodelower): New mode iterator.
1763         (floatv8siv8sf2, floatunsv4siv4sf2): Macroize into...
1764         (float<sseintvecmodelower><mode>2): ... this using VF1 iterator.
1765         (floatunsv4siv4sf2): Macroize into...
1766         (floatuns<sseintvecmodelower><mode>2): ... this using VF1 iterator.
1767
1768 2011-10-31  David S. Miller  <davem@davemloft.net>
1769
1770         * config/sparc/sparc.md (cmask patterns): Allow zero operand.
1771
1772         * dwarf2out.c (cached_next_real_insn): New.
1773         (dwarf2out_end_epilogue): Set it to NULL_RTX.
1774         (dwarf2out_var_location): Remove cached_next_real_insn local static.
1775
1776 2011-10-31  Richard Henderson  <rth@redhat.com>
1777
1778         * config/i386/sse.md (floatv8siv8sf2): Rename from avx_cvtdq2ps256.
1779         (floatv4siv4sf2): Rename from sse2_cvtdq2ps.
1780         (floatunsv4siv4sf2): Rename from sse2_cvtudq2ps.
1781         (fix_truncv8sfv8si2): Rename from avx_cvttps2dq256.
1782         (fix_truncv4sfv4si2): Rename from sse2_cvttps2dq.
1783         (floatv4siv4df2): Rename from avx_cvtdq2pd256.
1784         (fix_truncv4dfv4si2): Rename from avx_cvttpd2dq256.
1785         (vec_unpacku_float_hi_v8si): Update for insn pattern name changes.
1786         * config/i386/i386.md (splitters for int-float conversion): Likewise.
1787         * config/i386/i386.c (ix86_split_convert_uns_si_sse): Likewise.
1788         (bdesc_args): Likewise.
1789         (enum ix86_builtins) [IX86_BUILTIN_CVTUDQ2PS]: Remove.
1790         (ix86_vectorize_builtin_conversion): Remove.
1791         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
1792
1793 2011-10-31  Martin Jambor  <mjambor@suse.cz>
1794
1795         * ipa-prop.c (mark_modified): Moved up in the file.
1796         (is_parm_modified_before_call): Renamed to
1797         is_parm_modified_before_stmt, moved up in the file.
1798         (load_from_unmodified_param): New function.
1799         (compute_complex_assign_jump_func): Also attempt to create pass
1800         through jump functions for values loaded from (addressable)
1801         parameters.
1802
1803 2011-10-31  Jakub Jelinek  <jakub@redhat.com>
1804
1805         * tree-vect-stmts.c (vectorizable_shift): If op1 is vect_external_def
1806         in a loop and has different type from op0, cast it to op0's type
1807         before the loop first.  For slp give up.  Don't crash if op1_vectype
1808         is NULL.
1809
1810 2011-10-31  Paul Brook  <paul@codesourcery.com>
1811
1812         * cgraphunit.c: Don't mark clones as static constructors.
1813
1814 2011-10-31  David Edelsohn  <dje.gcc@gmail.com>
1815
1816         * gcc-ar: Do not include stdio.h.
1817
1818 2011-10-31  Diego Novillo  <dnovillo@google.com>
1819
1820         * tree-streamer-out.c (pack_ts_base_value_fields): Emit
1821         TYPE_ADDR_SPACE.
1822         * tree-streamer-in.c (unpack_ts_base_value_fields): Read
1823         TYPE_ADDR_SPACE.
1824
1825 2011-10-30  David S. Miller  <davem@davemloft.net>
1826
1827         * config/sparc/sparc.c (vector_init_bshuffle): New function.
1828         (vector_init_fpmerge): New function.
1829         (sparc_expand_vector_init): Use them to improve non-const cases.
1830
1831         * dwarf2out.c (dwarf2out_var_location): When processing several
1832         consecutive location notes, cache the result of next_real_insn().
1833
1834 2011-10-30  Uros Bizjak  <ubizjak@gmail.com>
1835
1836         * config/i386/i386.md (avx2_vec_dup<mode>): Macroize insn from
1837         avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator.
1838         (vec_dupv4sf): Remove expander.
1839         (vec_dupv4sf): Merge from *vec_dupv4sf and *vec_dupv4sf_avx.
1840         (vec_dupv2df): Remove expander.
1841         (vec_dupv2df): Merge from *vec_dupv2df and *vec_dupv2df_sse3.
1842         (*vec_concatv2df): Merge *vec_concatv2df_sse3.
1843         (*vec_dupv4si): Merge *vec_dupv4si_avx.
1844         (*vec_dupv2di): Merge *vec_dupv2di_sse3.
1845
1846 2011-10-30  Dmitry Plotnikov  <dplotnikov@ispras.ru>
1847
1848         * tree-cfg.c (verify_gimple_assign_unary): Allow vector conversions.
1849         * optabs.c (supportable_convert_operation): New function.
1850         * optabs.h (supportable_convert_operation): New prototype.
1851         * tree-vect-stmts.c (vectorizable_conversion): Change condition and
1852         behavior for NONE modifier case.
1853         * tree.h (VECTOR_INTEGER_TYPE_P): New macro.
1854
1855 2011-10-30  Jakub Jelinek  <jakub@redhat.com>
1856
1857         * tree-vectorizer.h (NUM_PATTERNS): Bump to 9.
1858         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): New
1859         function.
1860         (vect_vect_recog_func_ptrs): Add it.
1861
1862 2011-10-30  David S. Miller  <davem@davemloft.net>
1863
1864         * reorg.c (label_before_next_insn): New function.
1865         (relax_delay_slots): Use it instead of prev_label.
1866         * rtl.h (prev_label): Delete declaration.
1867         * emit-rtl.c (prev_label): Remove.
1868
1869 2011-10-30  Revital Eres  <revital.eres@linaro.org>
1870
1871         * modulo-sched.c (generate_prolog_epilog): Mark prolog and epilog
1872         as BB_DISABLE_SCHEDULE.
1873         (mark_loop_unsched): New function.
1874         (sms_schedule): Call it.
1875
1876 2011-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1877
1878         PR target/50617
1879         * config/pa/protos.h (attr_length_save_restore_dltp): Delete.
1880         (cmpib_comparison_operator): Likewise.
1881         (following_cal, output_and, output_ior, output_move_double,
1882         output_fp_move_double, output_block_move, output_block_clear,
1883         output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra,
1884         output_movb, output_parallel_movb, output_parallel_addb, output_call,
1885         output_indirect_call, output_millicode_call, output_mul_insn,
1886         output_div_insn, output_mod_insn, singlemove_string,
1887         output_arg_descriptor, output_global_address, print_operand,
1888         legitimize_pic_address, hppa_encode_label, symbolic_expression_p,
1889         fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence,
1890         emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay,
1891         hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call,
1892         attr_length_indirect_call, return_addr_rtx, function_arg_padding,
1893         insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p,
1894         output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move,
1895         hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p,
1896         compute_zdepdi_operands, output_64bit_and, output_64bit_ior,
1897         reloc_needed, magic_milli, shadd_constant_p): Consistently prefix
1898         exported functions and variables with "pa_".
1899         * config/pa/predicates.md: Likewise.
1900         * config/pa/pa64-hpux.h: likewise.
1901         * config/pa/som.h: Likewise.
1902         * config/pa/elf.h: Likewise.
1903         * config/pa/pa64-linux.h: Likewise.
1904         * config/pa/pa.md: Likewise.
1905         * config/pa/pa.c: Likewise.
1906         * config/pa/pa-linux.h: Likewise.
1907         * config/pa/pa.h: Likewise.
1908         * config/pa/constraints.md: Likewise.
1909
1910 2011-10-29  Uros Bizjak  <ubizjak@gmail.com>
1911
1912         * config/i386/i386.md (xop_sha<mode>3): Rename from xop_ashl<mode>3.
1913         Update all uses.
1914         (xop_shl<mode>3): Rename from xop_lshl<mode>3.  Update all uses.
1915         * config/i386/i386.c: Update all uses.
1916
1917 2011-10-29  Uros Bizjak  <ubizjak@gmail.com>
1918
1919         * config/i386/i386.md (lshlv16qi3): Remove expander.
1920         (lshrv16qi3): New expander.
1921         (<shift_insn>v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3
1922         using any_shiftrt code iterator. Cleanup.
1923         (ashlv16qi3): Cleanup.
1924         (ashrv2di3): Ditto.
1925
1926 2011-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1927
1928         PR target/50691
1929         * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol
1930         references.
1931         (pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC
1932         and TLS_MODEL_LOCAL_DYNAMIC symbol references.
1933
1934 2011-10-29  Georg-Johann Lay  <avr@gjlay.de>
1935
1936         PR target/50887
1937         * config/avr/avr.opt (-maccumulate-args): New option.
1938         * config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to
1939         avr_starting_frame_offset.
1940         (ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args.
1941         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove.
1942         (UNSPECV_WRITE_SP_IRQ_OFF): Remove.
1943         (UNSPECV_WRITE_SP): New constant.
1944         (*addhi3_sp_R): Rewrite to...
1945         (*addhi3_sp): ...this new insn.
1946         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to...
1947         (movhi_sp_r): ...this new insn.
1948         * config/avr/avr-protos.h (avr_accumulate_outgoing_args): New.
1949         (avr_starting_frame_offset): New.
1950         * config/avr/avr.c (avr_accumulate_outgoing_args): New function.
1951         (avr_starting_frame_offset): New function.
1952         (avr_outgoing_args_size): New static function.
1953         (avr_initial_elimination_offset): Use it.
1954         (avr_simple_epilogue): Use it.
1955         (avr_asm_function_end_prologue): Use it.
1956         (expand_epilogue): Use it.
1957         (expand_prologue): Use it.  Break out code to...
1958         (avr_prologue_setup_frame): ...this new static function.
1959         (avr_can_eliminate): Allow eliminating to frame pointer if there
1960         is one.
1961         (avr_frame_pointer_required_p): Use frame pointer if target has a
1962         nonlocal label.
1963         * config/avr/constraints.md (R): Remove.
1964         (Csp): New constraint.
1965         * config/avr/predicates.md (avr_sp_immediate_operand): Use it.
1966
1967 2011-10-29  Andi Kleen  <ak@linux.intel.com>
1968
1969         * gcc-ar.c (target_machine): Add.
1970
1971 2011-10-29  Anatoly Sokolov  <aesok@post.ru>
1972
1973         * config/cris/cris.c (reg_ok_for_base_p, reg_ok_for_index_p,
1974         cris_constant_index_p, cris_base_p, cris_index_p,
1975         cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p,
1976         cris_legitimate_address_p): New functions.
1977         (TARGET_LEGITIMATE_ADDRESS_P): Define.
1978         (cris_pic_symbol_type, cris_valid_pic_const): Change arguments type
1979         from rtx to const_rtx.
1980         (cris_print_operand_address, cris_address_cost,
1981         cris_side_effect_mode_ok):  Use
1982         cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
1983         cris_biap_index_p and cris_bdap_index_p.
1984         * config/cris/cris.h (CONSTANT_INDEX_P, BASE_P, BASE_OR_AUTOINCR_P,
1985         BDAP_INDEX_P, BIAP_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
1986         REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
1987         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, EXTRA_CONSTRAINT_T): Use
1988         cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
1989         cris_biap_index_p and cris_bdap_index_p.
1990         * config/cris/cris.md (moversideqi movemsideqi peephole2): Use
1991         cris_base_p.
1992         * config/cris/cris-protos.h (cris_constant_index_p, cris_base_p,
1993         cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p): New
1994         prototype.
1995         (cris_pic_symbol_type, cris_valid_pic_const): Update prototype.
1996
1997 2011-10-21  Andi Kleen  <ak@linux.intel.com>
1998
1999         * ggc-page (PAGE_ALIGN): Add.
2000         (alloc_page, ggc_pch_total_size, ggc_pch_this_base, ggc_pch_read):
2001         Replace ROUND_UP with PAGE_ALIGN.
2002
2003 2011-10-20  Andi Kleen  <ak@linux.intel.com>
2004
2005         * ggc-page (alloc_anon): Add check argument.
2006         (alloc_page): Add fallback to 1 page allocation.
2007         Adjust alloc_anon calls to new argument.
2008
2009 2011-10-18  Andi Kleen  <ak@linux.intel.com>
2010
2011         * ggc-page (release_pages): First free large continuous
2012         chunks in the madvise path.
2013
2014 2011-10-18  Andi Kleen  <ak@linux.intel.com>
2015
2016         * ggc-page.c (alloc_pages): Always round up entry_size.
2017
2018 2011-10-19  Andi Kleen  <ak@linux.intel.com>
2019
2020         * Makefile.in (MOSTLYCLEANFILES): Add gcc-ar/nm/ranlib.
2021         (native): Add gcc-ar, gcc-nm, gcc-ranlib.
2022         (AR_LIBS, gcc-ar, gcc-ar.o, gcc-ranlib, gcc-ranlib.o,
2023         gcc-nm, gcc-nm.o, gcc-ranlib.c, gcc-nm.c): Add.
2024         (install): Depend on install-gcc-ar.
2025         (install-gcc-ar): Add.
2026         (uninstall): Uninstall gcc-ar, gcc-nm, gcc-ranlib.
2027         * gcc-ar.c: Add new file.
2028
2029 2011-10-28  Pat Haugen <pthaugen@us.ibm.com>
2030
2031         * config/rs6000/rs6000.md (define_attr "type"): Add vecdouble.
2032         * config/rs6000/vsx.md (VStype_simple, VStype_mul): Use vecdouble
2033         type for V2DF.
2034         (VStype_div): Use vector types for V2DF/V4SF.
2035         (VStype_sqrt): Use *sqrt types.
2036         (VS_spdp_type): Change type to vecdouble.
2037         (*vsx_fmav2df4, *vsx_nfmsv2df4, vsx_xvcvdpsxws, vsx_xvcvdpuxws,
2038         vsx_xvcvuxdsp, vsx_xvcvsxwdp, vsx_xvcvuxwdp, vsx_xvcvspsxds,
2039         vsx_xvcvspuxds): Likewise.
2040         (*vsx_fms<mode>4): Set type via <VStype_mul>.
2041         (*vsx_eq_<mode>_p, *vsx_gt_<mode>_p, *vsx_ge_<mode>_p): Set type via
2042         <VStype_simple>.
2043         * config/rs6000/power7.md (power7-vecstore): Correct VSU pipe.
2044         (power7-fpcompare, power7-sdiv, power7-ddiv, power7-sqrt,
2045         power7-dsqrt): Correct insn latency.
2046         (power7-vecsimple): Add veccmp type and correct dispatch/VSU values.
2047         (power7-veccmp): Delete.
2048         (power7-vecfloat): Correct latency/dispatch/VSU values.
2049         (define_bypass "power7-vecfloat"): Correct latency and types.
2050         (power7-veccomplex, power7-vecperm): Correct dispatch/VSU values.
2051         (power7-vecdouble, power7-vecfdiv, power7-vecdiv): New.
2052
2053 2011-10-28  Uros Bizjak  <ubizjak@gmail.com>
2054
2055         * config/i386/i386.md (shift_insn): Rename code attribute from
2056         shiftrt_insn.  Also handle ashift RTX.
2057         (shift): Rename code attribute from shiftrt.  Also handle ashift RTX.
2058         (vshift): New code attribute.
2059         (<shift_insn>*): Rename from <shiftrt_insn>*. Update asm templates.
2060         (any_lshift): Move and rename code iterator from ...
2061         * config/i386/sse.md (lshift): ... here.
2062         (lshift_insn): Remove code attribute.
2063         (lshift): Remove code attribute.
2064         (vlshr<mode>3): Use lshiftrt RTX.
2065         (vashr<mode>3, ashrv16qi3, ashrv2di3): Use ashiftrt RTX.
2066         (vashl<mode>3, ashlv16qi3): Use ashift RTX.
2067         (avx2_<lshift>v<mode>): Rename from avx2_<shift_insn>v<mode>.  Use
2068         any_lshift code iterator.  Update asm template.
2069         (<shift_insn><mode>3): Macroize insn from lshr<mode>3 and ashl<mode>3
2070         usign any_lshift code iterator.
2071         * config/i386/mmx.md (mmx_<shift_insn><mode>3): Macroize insn from
2072         mmx_lshr<mode>3 and mmx_ashl<mode>3 usign any_lshift code iterator.
2073         * config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update.
2074
2075 2011-10-28  Georg-Johann Lay  <avr@gjlay.de>
2076
2077         PR target/49313
2078         * config/avr/avr.md (parityhi2): Expand allowing pseudos.
2079         (*parityhi2): New pre-reload insn-and-split to map 16-bit parity
2080         to the libgcc insn.
2081         (*parityqihi2): Same for 8-bit parity.
2082
2083 2011-10-28  Julian Brown  <julian@codesourcery.com>
2084
2085         PR rtl-optimization/47918
2086         * reload1.c (set_initial_label_offsets): Use initial offsets
2087         for labels on the nonlocal_goto_handler_labels chain.
2088
2089 2011-10-28  Iain Sandoe  <iains@gcc.gnu.org>
2090
2091         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
2092         Move darwin-fpsave.asm from here to ... LIB2FUNCS_EXTRA.
2093         (LIB2FUNCS_EXTRA):  Add darwin-gpsave.asm.
2094         (TARGET_LIBGCC2_CFLAGS): Ensure that fPIC and -pipe are inherited from
2095         config/t-darwin.
2096         * config/rs6000/darwin.h (FP_SAVE_INLINE): Adjust to enable.
2097         (GP_SAVE_INLINE): Likewise.
2098         (SAVE_FP_PREFIX,  SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
2099         RESTORE_FP_SUFFIX): Set to empty strings.
2100         * config/rs6000/rs6000.c (rs6000_savres_strategy): Implement for Darwin.
2101         (debug_stack_info): Print savres_strategy.
2102         (rs6000_savres_routine_name): Implement for Darwin.
2103         (rs6000_make_savres_rtx): Adjust used register for Darwin.
2104         (rs6000_emit_prologue): Implement out-of-line saves for Darwin.
2105         (rs6000_output_function_prologue): Don't emit .extern for Mach-O.
2106         (rs6000_emit_epilogue): Implement out-of-line saves for Darwin.
2107         * config/rs6000/darwin-gpsave.asm: New file.
2108
2109 2011-10-28  Jakub Jelinek  <jakub@redhat.com>
2110
2111         * config/i386/sse.md (VI4SD_AVX2): Removed.
2112         (VI48_AVX2, VI128_128, VI48_128, VI48_256): New mode iterators.
2113         (vashl<mode>3): Use VI12_128 iterator instead of VI124_128.
2114         Add another expander using VI48_128 iterator for
2115         TARGET_AVX2 || TARGET_XOP and another using VI48_256 iterator
2116         for TARGET_AVX2.
2117         (vlshr<mode>3): Likewise.  Change register_operand predicate to
2118         nonimmediate_operand on last operand in the VI12_128 expander.
2119         (vashr<mode>3): Use VI128_128 iterator instead of VI124_128.
2120         (vashrv4si3, vashrv8si3): New expanders.
2121         (avx2_ashrvv8si, avx2_ashrvv4si, avx2_<lshift>vv8si,
2122         avx2_<lshift>vv2di): Removed.
2123         (avx2_ashrv<mode>): New insn with VI4_AVX2 iterator.
2124         (avx2_<lshift>v<mode>): Macroize using VI48_AVX2
2125         iterator.  Simplify pattern.
2126
2127 2010-10-28  Richard Guenther  <rguenther@suse.de>
2128
2129         PR driver/50876
2130         * lto-wrapper.c (get_options_from_collect_gcc_options):
2131         Properly count arguments.
2132         (run_gcc): Use an obstack to collect argv, properly separate
2133         switches and their arguments.
2134
2135 2011-10-28  Jakub Jelinek  <jakub@redhat.com>
2136
2137         * tree-vect-stmts.c (vectorizable_shift): Give up if op1 has different
2138         vector mode from vectype's mode.
2139
2140 2011-10-28  Chung-Lin Tang  <cltang@codesourcery.com>
2141
2142         PR rtl-optimization/49720
2143         * simplify-rtx.c (simplify_relational_operation_1): Detect
2144         infinite recursion condition in "(eq/ne (plus x cst1) cst2)
2145         simplifies to (eq/ne x (cst2 - cst1))" case.
2146
2147 2011-10-27  David S. Miller  <davem@davemloft.net>
2148
2149         * config/sparc/sparc.md (snedi_special): Only match when not VIS3.
2150         (*snedi_zero): Likewise.
2151         (*snedi_zero_trunc): Likewise.
2152         (snedi_special_vis3): New expander.
2153         (*snedi_zero_vis3): New insn.
2154         (*snedi_zero_trunc_vis3): Likewise.
2155         (*sltu_insn_vis3): Likewise.
2156         (*sltu_insn_vis3_trunc): Likewise.
2157         (addxc): Likewise.
2158         (*addxc_trunc_sp64_vis3): Likewise.
2159         * config/sparc/sparc.c (emit_scc_insn): When VIS3 use the
2160         gen_snedi_special_vis3 expander, and try GTU/LTU addx based
2161         sequences on DImode values.
2162
2163         * config/sparc/sparc.md (64-bit vector moves): Use 'e' not 'f'
2164         constraint.
2165
2166         * regcprop.c (copyprop_hardreg_forward_1): Reject the
2167         transformation when we narrow the mode on big endian.
2168
2169 2011-10-27  Jakub Jelinek  <jakub@redhat.com>
2170
2171         * config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2,
2172         vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders.
2173         (*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns.
2174
2175         * config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x'
2176         overrides for -masm=intel memory.
2177         * config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd,
2178         sse4_1_<code>v8qiv8hi2, avx2_<code>v8qiv8si2,
2179         sse4_1_<code>v4hiv4si2, avx2_<code>v4hiv4di2,
2180         sse4_1_<code>v2siv2di2): Use %q1 instead of %1 for -masm=intel.
2181         (sse4_1_<code>v4qiv4si2, avx2_<code>v4qiv4di2,
2182         sse4_1_<code>v2hiv2di2): Use %k1 instead of %1 for -masm=intel.
2183         (sse4_1_<code>v2qiv2di2): Use %w1 instead of %1 for -masm=intel.
2184
2185 2011-10-27  Martin Jambor  <mjambor@suse.cz>
2186
2187         * ipa-prop.c (compute_pass_through_member_ptrs): Rename parm_info
2188         to parm_ainfo.
2189         (ipa_compute_jump_functions_for_edge): Likewise.
2190         (ipa_compute_jump_functions): Likewise.
2191         (ipa_analyze_indirect_call_uses): Likewise.
2192         (ipa_analyze_call_uses): Likewise.
2193         (ipa_analyze_params_uses): Likewise.
2194         (ipa_analyze_node): Likewise.
2195
2196 2011-10-27  Uros Bizjak  <ubizjak@gmail.com>
2197
2198         PR target/50875
2199         * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
2200         constraints.  Change alternative 1 to "x,m,1".
2201
2202 2011-10-27  Jakub Jelinek  <jakub@redhat.com>
2203
2204         * Makefile.in (build/gencheck.o): Depend on tree.def and
2205         c-family/c-common.def.
2206
2207         * tree-ssa-strlen.c: Include expr.h.
2208         (get_stridx): Don't use c_strlen, instead use string_constant
2209         and compute string length from it.
2210         * Makefile.in (tree-ssa-strlen.o): Depend on $(EXPR_H).
2211
2212 2011-10-27  Eric Botcazou  <ebotcazou@adacore.com>
2213
2214         PR rtl-optimization/46603
2215         PR bootstrap/50879
2216         * reload.c (push_reload): In the out case, restore previous behavior
2217         for subregs that don't have word mode.
2218
2219 2011-10-27  Ian Lance Taylor  <iant@google.com>
2220
2221         * cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if
2222         CROSS_DIRECTORY_STRUCTURE is defined and TARGET_SYSTEM_ROOT is not.
2223         (cpp_include_defaults): Only use NATIVE_SYSTEM_HEADER_DIR if it is
2224         defined.
2225
2226 2011-10-27  Richard Henderson  <rth@redhat.com>
2227
2228         * optabs.c (expand_vec_perm): Use the correct mode for scaling the
2229         selector.  Save the qimode constant selector for later use by the
2230         qimode vec_perm pattern.
2231
2232 2011-10-27  Bernd Schmidt  <bernds@codesourcery.com>
2233
2234         * config/c6x/c6x.c (unit_req_imbalance, res_mii): Cast the first arg
2235         to unit_req_factor to the right enum type.
2236         (get_unit_operand_masks, reshuffle_units, try_rename_operands,
2237         hwloop_optimize): Remove unused variables.
2238
2239 2010-10-27  Richard Guenther  <rguenther@suse.de>
2240
2241         PR middle-end/50731
2242         * tree-vect-generic.c (do_binop): Handle scalar operands.
2243
2244 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
2245
2246         PR target/37191
2247         * config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers
2248         from different units in a single alternative.
2249
2250 2011-10-26  David S. Miller  <davem@davemloft.net>
2251
2252         * config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences
2253         if we're comparing DImode and comparison is other than EQ or NE.
2254
2255         * config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until
2256         LEU/LTU/GEU/GTU is attempted.
2257         * config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn
2258         and split.
2259         (*neg_seqsi_sign_extend): Likewise.
2260         (*sltu_extend_sp64, *neg_sltu_extend_sp64, *sgeu_extend_sp64,
2261         *neg_sgeu_extend_sp64): New insns.
2262
2263         * config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare.
2264         * config/sparc/sparc.md (mov<I:mode>cc, mov<F:mode>cc): Call it.
2265         (*mov<I:mode>_cc_v9): Normalize to expect operand 0 always in operand 4.
2266         (*mov<I:mode>_cc_reg_sp64): Likewise.
2267         (*movsf_cc_v9): Likewise.
2268         (*movsf_cc_reg_sp64): Likewise.
2269         (*movdf_cc_v9): Likewise.
2270         (*movdf_cc_reg_sp64): Likewise.
2271         (*movtf_cc_hq_v9): Likewise.
2272         (*movtf_cc_reg_hq_sp64): Likewise.
2273         (*movtf_cc_v9): Likewise.
2274         (*movtf_cc_reg_sp64): Likewise.
2275         * config/sparc/sparc.c (sparc_expand_conditional_move): New function.
2276         (sparc_print_operand): Delete 'c' and 'd' handling, no longer used.
2277
2278 2011-10-26  Eric Botcazou  <ebotcazou@adacore.com>
2279
2280         * reload.c (reload_inner_reg_of_subreg): Change type of return value
2281         and type of OUTPUT parameter to bool and adjust.  Document MODE and
2282         OUTPUT parameters.  Use HARD_REGISTER_P.  Reorder final condition
2283         and improve associated comment.
2284         (push_reload): Clarify and update comments about reloading of subregs.
2285         Adjust calls to reload_inner_reg_of_subreg.  Compute the class upfront
2286         for the reloading of subregs in the out case as well.
2287
2288 2011-10-26  Alexandre Oliva  <aoliva@redhat.com>
2289
2290         PR debug/50826
2291         * var-tracking.c (rtx_debug_expr_p): New.
2292         (use_type): Don't use debug exprs to track non-VTA variables.
2293
2294 2011-10-26  Jeff Law  <law@redhat.com>
2295
2296         * doc/invoke.texi (sink-frequency-threshold): Document.
2297         * tree-ssa-sink.c: Include params.h.
2298         (select_best_block): New function.
2299         (statement_sink_location): Use it.
2300         * params.def (SINK_FREQUENCY_THRESHOLD): New PARAM.
2301
2302 2011-10-26  Iain Sandoe  <iains@gcc.gnu.org>
2303
2304         PR target/48108
2305         * config/darwin.c (top level): Amend comments concerning LTO output.
2306         (lto_section_num): New variable.  (darwin_lto_section_e): New GTY.
2307         (LTO_SECTS_SECTION, LTO_INDEX_SECTION): New.
2308         (LTO_NAMES_SECTION): Rename.
2309         (darwin_asm_named_section): Record LTO section counts and switches
2310         in a vec of darwin_lto_section_e.
2311         (darwin_file_start): Remove unused code.
2312         (darwin_file_end): Put an LTO section termination label.  Handle
2313         output of the wrapped LTO sections, index and names table.
2314
2315 2011-10-26  Alan Modra  <amodra@gmail.com>
2316
2317         * config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded
2318         declaration.
2319         (rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp.
2320         (rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx.  Use
2321         simple_return in pattern, emit instruction, and set jump_label.
2322         (rs6000_emit_prologue): Update for rs6000_emit_savres_rtx.  Use
2323         simple_return rather than return.
2324         (emit_cfa_restores): New function.
2325         (rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap.
2326         Add missing cfa_restores for SAVE_WORLD.  Add missing LR cfa_restore
2327         when using out-of-line gpr restore.  Add missing LR and FP regs
2328         cfa_restores for out-of-line fpr restore.  Consolidate code setting
2329         up cfa_restores.  Formatting.  Use LR_REGNO define.
2330         (rs6000_output_mi_thunk): Use simple_return rather than return.
2331         * config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise.
2332         (return_internal*): Likewise.
2333         (any_return, return_pred, return_str): New iterators.
2334         (return, conditional return insns): Provide both return and
2335         simple_return variants.
2336         * config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define.
2337         (REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13.
2338         Move r11 and r0 later to suit shrink-wrapping.
2339
2340 2011-10-26  Richard Guenther  <rguenther@suse.de>
2341
2342         * lto-wrapper.c (run_gcc): Properly init/free obstack.
2343
2344 2011-10-26  Jakub Jelinek  <jakub@redhat.com>
2345
2346         * config/i386/i386.md (UNSPEC_VSIBADDR): New.
2347         * config/i386/predicates.md (vsib_address_operand,
2348         vsib_mem_operator): New predicates.
2349         * config/i386/i386.c (ix86_print_operand_address): Handle
2350         UNSPEC_VSIBADDR addresses.
2351         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>,
2352         avx2_gatherdi<mode>256): Adjust expanders to use MEM with
2353         UNSPEC_VSIBADDR address.
2354         (*avx2_gathersi<mode>, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>256):
2355         Adjust insns to use MEM with UNSPEC_VSIBADDR address.
2356
2357 2011-10-26  Tom de Vries  <tom@codesourcery.com>
2358
2359         PR tree-optimization/50763
2360         * tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or
2361         phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2.
2362
2363 2011-10-26  Richard Guenther  <rguenther@suse.de>
2364
2365         PR lto/41844
2366         * Makefile.in (lto-wrapper): Depend on and link against opts-common.o.
2367         (lto-wrapper.o): Depend on $(OPTS_H) and $(OPTIONS_H).
2368         * lto-wrapper.c (get_options_from_collect_gcc_options): New function.
2369         (run_gcc): Use it.  Filter out language specific options.
2370
2371 2011-10-26  Andreas Tobler  <andreast@fgznet.ch>
2372
2373         * config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the
2374         32-bit target does.
2375
2376 2011-10-25  Paolo Carlini  <paolo.carlini@oracle.com>
2377
2378         PR driver/46617
2379         * gcc.c (main): Fix fatal_error string for translation.
2380
2381 2011-10-25  Ian Lance Taylor  <iant@google.com>
2382
2383         * tree-eh.c (do_return_redirection): Remove return_value_p
2384         parameter.  Change all callers.
2385         (lower_try_finally_nofallthru): Remove local return_val.
2386         (lower_try_finally_onedest): Likewise.
2387         (lower_try_finally_copy): Likewise.
2388         (lower_try_finally_switch): Likewise.
2389
2390 2011-10-25  H.J. Lu  <hongjiu.lu@intel.com>
2391
2392         * config/i386/mmx.md (*mmx_maskmovq): Replace :SI with :P and
2393         remove "&& !TARGET_64BIT"
2394         (*mmx_maskmovq_rex): Removed.
2395
2396 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
2397
2398         PR rtl-optimization/46603
2399         * reload.c (push_reload): In the out case, reload the subreg as well
2400         as the reg if it has word mode.
2401
2402 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
2403
2404         * dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily
2405         suppress debug info for the parent type.
2406
2407 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
2408
2409         * config/ia64/ia64.c (ia64_profile_hook): Fix thinko.
2410
2411 2011-10-25  Richard Henderson  <rth@redhat.com>
2412
2413         * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove.
2414         (vec_extract_even<mode>, vec_extract_odd<mode>): Remove.
2415
2416         * config/rs6000/altivec.md (vec_extract_evenv8hi,
2417         vec_extract_evenv16qi, vec_extract_oddv4si,
2418         vec_extract_oddv4sf): Remove.
2419
2420         * config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf,
2421         vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si,
2422         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
2423         vec_interleave_highv4sf, vec_interleave_lowv4sf,
2424         vec_interleave_highv4si, vec_interleave_lowv4si,
2425         vec_interleave_highv8hi, vec_interleave_lowv8hi,
2426         vec_interleave_highv16qi, vec_interleave_lowv16qi): Remove.
2427
2428         * expr.c (expand_expr_real_2) [VEC_EXTRACT_EVEN_EXPR]: Use binop.
2429         [VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR]: Likewise.
2430         [VEC_INTERLEAVE_LOW_EXPR]: Likewise.
2431         * optabs.c (expand_binop): Implement vec_interleave_high_optab,
2432         vec_interleave_low_optab, vec_extract_even_optab,
2433         vec_extract_odd_optab with expand_vec_perm.
2434         (can_vec_perm_for_code_p): New.
2435         * optabs.h: Update.
2436         * tree-vect-data-refs.c (vect_strided_store_supported): Allow for
2437         fallback via can_vec_perm_for_code_p.
2438         (vect_strided_load_supported): Likewise.
2439         * tree-vect-generic.c (expand_vector_operations_1): Never lower
2440         VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR,
2441         VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR.
2442
2443         * target.def (vec_perm_const_ok): Change parameters to mode and
2444         array of indicies.
2445         * doc/tm.texi: Rebuild.
2446         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
2447         parameters to mode and array of indicies.
2448         * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Expand operands here.
2449         * optabs.c (can_vec_perm_p): Rename from can_vec_perm_expr_p.
2450         Change parameters to mode and array of indicies.
2451         (expand_vec_perm_1): Rename from expand_vec_perm_expr_1.
2452         (expand_vec_perm): Rename from expand_vec_perm_expr.  Change
2453         parameters to mode and rtx inputs.  Try lowering to QImode
2454         vec_perm_const before trying fully variable permutation.
2455         * optabs.h: Update decls.
2456         * tree-vect-generic.c (lower_vec_perm): Extract array of indices from
2457         VECTOR_CST to pass to can_vec_perm_p.
2458         * tree-vect-slp.c (vect_get_mask_element): Change mask parameter type
2459         from int pointer to unsigned char pointer.
2460         (vect_transform_slp_perm_load): Update for change to can_vec_perm_p.
2461         * tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
2462
2463         * tree.def (VEC_EXTRACT_EVEN_EXPR): Fix typo in text name.
2464         (VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
2465         VEC_INTERLEAVE_LOW_EXPR): Likewise.
2466
2467 2011-10-25  Mike Stump  <mikestump@comcast.net>
2468
2469         * reload.c (regno_clobbered_p): Fix typo.
2470
2471 2011-10-25  Dodji Seketeli  <dodji@redhat.com>
2472
2473         * input.c (expand_location): Rewrite using linemap_resolve_location
2474         and linemap_expand_location.  Add a comment.
2475
2476 2011-10-25  Jakub Jelinek  <jakub@redhat.com>
2477
2478         PR tree-optimization/50596
2479         * tree-vect-stmts.c (vect_mark_relevant): Only use
2480         FOR_EACH_IMM_USE_FAST if lhs is SSA_NAME.
2481         (vectorizable_store): If is_pattern_stmt_p look through
2482         VIEW_CONVERT_EXPR on lhs.
2483         * tree-vect-patterns.c (check_bool_pattern, adjust_bool_pattern):
2484         Use unsigned type instead of signed.
2485         (vect_recog_bool_pattern): Optimize also stores into bool memory in
2486         addition to casts from bool to integral types.
2487         (vect_mark_pattern_stmts): If pattern_stmt already has vinfo
2488         created, don't create it again.
2489
2490 2011-10-25  Kai Tietz  <ktietz@redhat.com>
2491
2492         * config/i386/i386.c (ix86_frame_pointer_required): Require
2493         frame-pointer, if setjmp is used for 32-bit ms-abi.
2494
2495 2011-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2496
2497         * builtins.c (set_builtin_user_assembler_name): Remove extra
2498         newline added in October 11th, 2011 change.
2499
2500 2011-10-24  David S. Miller  <davem@davemloft.net>
2501
2502         * config/sparc/little-endian.opt: Delete.
2503         * config.gcc: Remove references to config/sparc/little-endian.opt
2504         * doc/invoke.texi: Remove documentation of -mlittl-endian on sparc.
2505         * config/sparc/linux64.h: Delete references to -mlittle-endian.
2506         * config/sparc/netbsd-elf.h: Likewise.
2507         * config/sparc/openbsd64.h: Likewise.
2508         * config/sparc/sparc.h: Likewise.
2509         * config/sparc/sp64-elf.h: Likewise and delete overrides for
2510         BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
2511         * config/sparc/sparc.c (dump_target_flag_bits): Remove reference
2512         to MASK_LITTLE_ENDIAN.
2513         * config/sparc/sparc.opt (Mask(LITTLE_ENDIAN)): Delete.
2514
2515         * config/sparc/sparc.md: Only use F, G, and C constraints in FP insns.
2516         Only use D, Y, and Z constraints in vector insns.
2517
2518         * config/sparc/sparc.md (cpu_feature, enabled): New attributes.
2519         (*movsi_insn_novis3, *movsi_insn_vis3): Consolidate into one pattern
2520         called *movsi_insn.
2521         (*movdi_insn_sp32_v9_novis3, *movdi_insn_sp32_v9_vis3): Consolidate
2522         into *movdi_insn_sp32.
2523         (*movdi_insn_sp64_novis3, *movdi_insn_sp64_vis3): Consolidate into
2524         one pattern called *movdi_insn_sp64.
2525         (*movsf_insn_novis3, *movsf_insn_vis3, *movsf_insn_no_fpu):
2526         Consolidate into one pattern called *movsf_insn.
2527         (*movdf_insn_sp32_no_fpu, *movdf_insn_sp32_v9_novis3,
2528         *movdf_insn_sp32_v9_vis3, *movdf_insn_sp32_v9_no_fpu): Consolidate
2529         into *movdf_insn_sp32.
2530         (*movdf_insn_sp64_novis3, *movdf_insn_sp64_vis3,
2531         *movdf_insn_sp64_no_fpu): Consolidate into one pattern called
2532         *movdf_insn_sp64.
2533         (*zero_extendsidi2_insn_sp64_novis3,
2534         *zero_extendsidi2_insn_sp64_vis3): Consolidate into one pattern
2535         called *zero_extendsidi2_insn_sp64.
2536         (*sign_extendsidi2_insn_novis3, *sign_extendsidi2_insn_vis3):
2537         Consolidate into one pattern named *sign_extendsidi2_insn.
2538         (*mov<VM32:mode>_insn_novis3, *mov<VM32:mode>_insn_vis3):
2539         Consolidate into one pattern named *mov<VM32:mode>_insn.
2540         (*mov<VM64:mode>_insn_sp64_novis3,
2541         *mov<VM64:mode>_insn_sp64_novis3): Consolidate into one pattern
2542         named *mov<VM64:mode>_insn_sp64.
2543         (*mov<VM64:mode>_insn_sp32_novis3,
2544         *mov<VM64:mode>_insn_sp32_vis3): Consolidate into one pattern
2545         named *mov<VM64:mode>_insn_sp32.
2546
2547 2011-10-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2548
2549         * tree-ssa-strlen.c (get_string_length): Change assertion to STPCPY.
2550         (zero_length_string): Change assertion to accept strinfo without
2551         length but with stmt instead.
2552         Set the endptr pointer also if starting a new chain.
2553         (adjust_related_strinfos): Ignore strinfos marked for delayed
2554         length computation.
2555         (handle_builtin_strcpy): Mark earlier strinfo elements also for
2556         delayed length computation.
2557
2558 2011-10-24  Georg-Johann Lay  <avr@gjlay.de>
2559
2560         PR target/50820
2561         Port from 4.6 branch r180379
2562         * doc/invoke.texi (AVR Options): New subsubsection to explain EIND
2563         handling and indirect jump/calls on devices > 128k.
2564
2565 2011-10-24  Anatoly Sokolov  <aesok@post.ru>
2566             Georg-Johann Lay  <avr@gjlay.de>
2567
2568         PR target/49824
2569         * doc/extend.texi (Declaring Attributes of Functions):
2570         Document OS_main and OS_task attributes.
2571         (Specifying Attributes of Variables): Move up
2572         subsection "AVR Variable Attributes" as of alphabetical order.
2573
2574 2011-10-24  Richard Guenther  <rguenther@suse.de>
2575
2576         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Convert constants
2577         to vector element type.
2578         (vectorizable_assignment): Bail out for non-mode-precision operations.
2579         (vectorizable_shift): Likewise.
2580         (vectorizable_operation): Likewise.
2581         (vectorizable_type_demotion): Likewise.
2582         (vectorizable_type_promotion): Likewise.
2583         (vectorizable_store): Handle non-mode-precision stores.
2584         (vectorizable_load): Handle non-mode-precision loads.
2585         (get_vectype_for_scalar_type_and_size): Return a vector type
2586         for non-mode-precision integers.
2587         * tree-vect-loop.c (vectorizable_reduction): Bail out for
2588         non-mode-precision reductions.
2589
2590 2011-10-24  Julian Brown  <julian@codesourcery.com>
2591
2592         * config/m68k/m68k.c (notice_update_cc): Tighten condition for
2593         setting CC_REVERSED for FP comparisons.
2594
2595 2011-10-24  Richard Guenther  <rguenther@suse.de>
2596
2597         PR tree-optimization/50838
2598         * tree-data-ref.c (dr_analyze_indices): Properly canonicalize
2599         a MEM_REF base if we change it.
2600
2601 2011-10-24  Bernd Schmidt  <bernds@codesourcery.com>
2602
2603         PR bootstrap/50836
2604         * rtlanal.c: Swap includes of "hard-reg-set.h" and "rtl.h".
2605
2606         PR rtl-optimization/50833
2607         * function.c (thread_prologue_and_epilogue_insns): Expect the
2608         return insn optimization only if optimize.
2609
2610 2011-10-24  Georg-Johann Lay  <avr@gjlay.de>
2611
2612         * config/avr/avr.c: Break long lines.
2613         Define target hooks on the fly if applicable.
2614         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove first definition
2615         overridden later.
2616         (targetm): Move definition to end of file.
2617         (avr_can_eliminate): Make static on the fly.
2618         (avr_frame_pointer_required_p): Ditto.
2619         (avr_hard_regno_scratch_ok): Ditto.
2620         (avr_builtin_setjmp_frame_value): Make static on the fly.
2621         Indent according to coding rules.
2622         (avr_case_values_threshold): Ditto.
2623         (avr_attribute_table): Move down.
2624
2625 2011-10-24  Ira Rosen  <ira.rosen@linaro.org>
2626
2627         PR tree-optimization/50730
2628         * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
2629         analysis if encountered unsupported data-ref.
2630
2631 2011-10-23  David S. Miller  <davem@davemloft.net>
2632
2633         * config/sparc/sparc.c (sparc_option_override): Remove -mv8plus
2634         cpu adjustment.
2635         * config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit,
2636         append -mcpu=v9 when -mv8plus is given.
2637
2638         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): We can move
2639         between float and non-float regs when VIS3.
2640         * config/sparc/sparc.c (eligible_for_restore_insn): We can't
2641         use a restore when the source is a float register.
2642         (sparc_split_regreg_legitimate): When VIS3 allow moves between
2643         float and integer regs.
2644         (sparc_register_move_cost): Adjust to account for VIS3 moves.
2645         (sparc_preferred_reload_class): On 32-bit with VIS3 when moving an
2646         integer reg to a class containing EXTRA_FP_REGS, constrain to FP_REGS.
2647         (sparc_secondary_reload): On 32-bit with VIS3 when moving between
2648         float and integer regs we sometimes need a FP_REGS class
2649         intermediate move to satisfy the reload.  When this happens
2650         specify an extra cost of 2.
2651         (*movsi_insn): Rename to have "_novis3" suffix and add !VIS3 guard.
2652         (*movdi_insn_sp32_v9): Likewise.
2653         (*movdi_insn_sp64): Likewise.
2654         (*movsf_insn): Likewise.
2655         (*movdf_insn_sp32_v9): Likewise.
2656         (*movdf_insn_sp64): Likewise.
2657         (*zero_extendsidi2_insn_sp64): Likewise.
2658         (*sign_extendsidi2_insn): Likewise.
2659         (*movsi_insn_vis3): New insn.
2660         (*movdi_insn_sp32_v9_vis3): New insn.
2661         (*movdi_insn_sp64_vis3): New insn.
2662         (*movsf_insn_vis3): New insn.
2663         (*movdf_insn_sp32_v9_vis3): New insn.
2664         (*movdf_insn_sp64_vis3): New insn.
2665         (*zero_extendsidi2_insn_sp64_vis3): New insn.
2666         (*sign_extendsidi2_insn_vis3): New insn.
2667         (TFmode reg/reg split): Make sure both REG operands are float.
2668         (*mov<VM32:mode>_insn): Add "_novis3" suffix and !VIS3 guard. Remove
2669         easy constant to integer reg alternatives.
2670         (*mov<VM64:mode>_insn_sp64): Likewise.
2671         (*mov<VM64:mode>_insn_sp32_novis3): Likewise.
2672         (*mov<VM32:mode>_insn_vis3): New insn.
2673         (*mov<VM64:mode>_insn_sp64_vis3): New insn.
2674         (*mov<VM64:mode>_insn_sp32_vis3): New insn.
2675         (VM64 reg<-->reg split): New splitter for 32-bit.
2676
2677         * config/sparc/sparc.c (sparc_split_regreg_legitimate): New function.
2678         * config/sparc/sparc-protos.h (sparc_split_regreg_legitimate):
2679         Declare it.
2680         * config/sparc/sparc.md (DImode reg/reg split): Use it.
2681         (DFmode reg/reg split): Likewise.
2682
2683         * config/sparc/sparc.md (*movdi_insn_sp32_v9): Add alternatives for
2684         generating fzero and fone instructions.
2685         (DImode const_int --> reg splitter): Only trigger for integer regs.
2686
2687         * config/sparc/predicates.md (input_operand): Disallow vector
2688         constants other than 0 and -1.
2689         * config/sparc/sparc.c (sparc_preferred_reload_class): Return
2690         NO_REGS for vector constants other than 0 and -1.
2691
2692         * config/sparc/sparc.h (SPARC_FIRST_INT_REG, SPARC_LAST_INT_REG,
2693         SPARC_INT_REG_P): Define.
2694         (HARD_REGNO_NREGS): Use SPARC_INT_REG_P.
2695         (REGNO_OK_FOR_INDEX_P): Likewise.
2696         * config/sparc/sparc.c (gen_df_reg): Likewise.
2697         (eligible_for_return_delay): Likewise.
2698         (eligible_for_sibcall_delay): Likewise.
2699         (sparc_legitimate_address_p): Likewise.
2700         (emit_save_or_restore_regs): Likewise.
2701         (registers_ok_for_ldd_peep): Likewise.
2702         * config/spac/sparc.md (DI mode splitters): Likewise.
2703         (SF mode const splitters): Likewise.
2704         (DF mode splitters): Likewise.
2705         (32-bit DI mode logical op splitters): Likewise.
2706
2707 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
2708
2709         PR c++/50841
2710         Revert:
2711         2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
2712
2713         PR c++/50810
2714         * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
2715
2716 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
2717
2718         * config/i386/sse.md (avx2_lshl<mode>3): Remove insn pattern.
2719         (VI248_256): Remove mode iterator.
2720         * config/i386/i386.c (ix86_expand_vec_perm): Use gen_ashlv4di3
2721         instead of gen_avx2_lshlv4di3.
2722         (bdesc_args): Use CODE_FOR_ashl{v16hi,v8si,v4di}3 instead of
2723         CODE_FOR_avx2_lshl{v16hi,v8si,v4di}3.
2724
2725 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
2726
2727         * config/i386/sse.md (sseintprefix): Rename from gthrfirstp.
2728         (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Delete expander.
2729         (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>) Merge insn
2730         pattern from *avx2_maskload<ssemodesuffix><avxsizesuffix> and
2731         *avx_maskload<ssemodesuffix><avxsizesuffix> using V48_AVX mode
2732         iterator.  Use sseintprefix mode attribute.
2733         (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Delete expander.
2734         (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>) Merge insn
2735         pattern from *avx2_maskstore<ssemodesuffix><avxsizesuffix> and
2736         *avx_maskstore<ssemodesuffix><avxsizesuffix> using V48_AVX mode
2737         iterator.  Use sseintprefix mode attribute.
2738         (*avx2_gathersi<mode>) Use sseintprefix and ssemodesuffix mode
2739         attributes.
2740         (*avx2_gatherdi<mode>): Ditto.
2741         (*avx2_gatherdi<mode>256): Ditto.
2742         (VI48_AVX2): Remove mode iterator.
2743         (gthrlastfp): Remove mode attribute.
2744
2745 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
2746
2747         PR c++/50810
2748         * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
2749
2750 2011-10-23  Tom de Vries  <tom@codesourcery.com>
2751
2752         PR tree-optimization/50763
2753         * tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored
2754         out of ...
2755         (same_succ_flush_bbs): Use same_succ_flush_bb.
2756         (purge_bbs): Remove argument.  Remove calls to same_succ_flush_bbs,
2757         release_last_vdef and delete_basic_block.
2758         (unlink_virtual_phi): New function.
2759         (update_vuses): Add and use vuse1_phi_args argument.  Set var to
2760         SSA_NAME_VAR of vuse1 or vuse2, and use var.  Handle case that
2761         def_stmt2 is NULL.  Use phi result as phi arg in case vuse1 or vuse2
2762         is NULL_TREE.  Replace uses of vuse1 if vuse2 is NULL_TREE.  Fix code
2763         to limit replacement of uses.  Propagate phi argument for phis with a
2764         single argument.
2765         (replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE.
2766         Set vuse1_phi_args if vuse1 is a phi defined in bb1.  Add
2767         vuse1_phi_args as argument to call to update_vuses.  Call
2768         release_last_vdef, same_succ_flush_bb, delete_basic_block.  Update
2769         CDI_DOMINATORS info.
2770         (tail_merge_optimize): Remove argument in call to purge_bbs.  Remove
2771         call to free_dominance_info.  Only call calculate_dominance_info once.
2772
2773 2011-10-23  Eric Botcazou  <ebotcazou@adacore.com>
2774
2775         * fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR.
2776
2777         PR tree-optimization/44683
2778         * tree-ssa-dom.c (record_edge_info): Record simple equivalences only if
2779         we can be sure that there are no signed zeros involved.
2780
2781 2011-10-23  Jan Hubicka  <jh@suse.cz>
2782
2783         * ipa-inline.c (estimate_badness): Scale up and handle overflows.
2784
2785 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
2786
2787         PR target/50788
2788         * config/i386/sse.md (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>):
2789         Remove (match_dup 0).
2790         (*avx2_maskload<ssemodesuffix><avxsizesuffix>): New insn pattern.
2791         (*avx_maskload<ssemodesuffix><avxsizesuffix>): Ditto.
2792         (*avx2_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
2793         (*avx_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
2794         (*avx2_maskmov<ssemodesuffix><avxsizesuffix>): Remove insn pattern.
2795         (*avx_maskmov<ssemodesuffix><avxsizesuffix>): Ditto.
2796
2797 2011-10-23  Ira Rosen  <ira.rosen@linaro.org>
2798
2799         PR tree-optimization/50819
2800         * tree-vectorizer.h (vect_analyze_data_ref_dependences): Remove
2801         the last argument.
2802         * tree-vect-loop.c (vect_analyze_loop_2): Update call to
2803         vect_analyze_data_ref_dependences.
2804         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Remove
2805         the last argument.  Check load-after-store dependence for unknown
2806         dependencies in basic blocks.
2807         (vect_analyze_data_ref_dependences): Update call to
2808         vect_analyze_data_ref_dependences.
2809         * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo.
2810         * tree-vect-slp.c (vect_bb_vectorizable_with_dependencies): Remove.
2811         (vect_slp_analyze_bb_1): Update call to
2812         vect_analyze_data_ref_dependences.  Don't call
2813         vect_bb_vectorizable_with_dependencies.
2814
2815 2011-10-22  David S. Miller  <davem@davemloft.net>
2816
2817         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS,
2818         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
2819         * config/sparc/sparc.c (TARGET_SECONDARY_RELOAD): Redefine.
2820         (sparc_secondary_reload): New function.
2821
2822         * config/sparc/sparc.h (sparc_costs): Remove extern decl.
2823         (struct processor_costs): Move from here..
2824         * config/sparc/sparc.c (struct processor_costs): To here.
2825         (sparc_costs): Mark static.
2826
2827         * config/sparc/sparc.c (short_branch, reg_unused_after): Delete.
2828         * config/sparc/sparc-protos.h (short_branch, reg_unused_after):
2829         Get rid of declarations.
2830
2831 2011-10-21  Paul Brook  <paul@codesourcery.com>
2832
2833         * config/c6x/c6x.c (c6x_asm_emit_except_personality,
2834         c6x_asm_init_sections): New functions.
2835         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): Define.
2836
2837 2011-10-21  Jakub Jelinek  <jakub@redhat.com>
2838
2839         PR target/50813
2840         * config/i386/i386.c (expand_vec_perm_even_odd_1): Handle
2841         V4DImode and V8SImode for !TARGET_AVX2.
2842
2843 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
2844
2845         PR bootstrap/50825
2846         * sched-deps.c (add_dependence): If not doing predication, promote
2847         REG_DEP_CONTROL to REG_DEP_ANTI.
2848
2849 2011-10-21  Georg-Johann Lay  <avr@gjlay.de>
2850
2851         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
2852         instead of X to avr_legitimize_reload_address.
2853         * config/avr/avr-protos.h (avr_legitimize_reload_address): Change
2854         first argument's type from rtx to rtx*.
2855         * config/avr/avr.c (avr_legitimize_reload_address): Ditto.
2856         Pass PX to push_reload instead of &X.  Change log messages for
2857         better distinction.
2858
2859 2011-10-21  Roland Stigge  <stigge@antcom.de>
2860
2861         PR translation/47064
2862         * params.def: Fix typo "compilatoin" -> "compilation".
2863
2864 2011-10-21  H.J. Lu  <hongjiu.lu@intel.com>
2865             Kirill Yukhin  <kirill.yukhin@intel.com>
2866
2867         PR target/50740
2868         * config/i386/driver-i386.c (host_detect_local_cpu): Do cpuid 7 only
2869         if max_level allows that.
2870
2871 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
2872
2873         * reg-notes.def (DEP_CONTROL): New.
2874         * sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when
2875         not doing speculation.
2876         * rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets,
2877         record_hard_reg_uses_1, record_hard_reg_uses): New functions.
2878         * function.c (record_hard_reg_sets, record_hard_reg_uses,
2879         record_hard_reg_uses_1): Remove; move to rtlanal.c.
2880         * lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions.
2881         * haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h".
2882         (MUST_RECOMPUTE_SPEC_P): New macro.
2883         (real_insn_for_shadow): New function.
2884         (cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions,
2885         toggle_cancelled_flags): New static functions.
2886         (schedule_insn): Relax an assert to only check for empty hard back
2887         dependencies.  Skip cancelled dependencies.  Call
2888         check_clobbered_conditions.
2889         (copy_insn_list): Remove function, renamed moved to lists.c.
2890         (save_backtrack_point): Use new spelling copy_INSN_LIST.
2891         (unschedule_insns_until): Ensure TODO_SPEC is reset properly.
2892         (restore_last_backtrack_point): Likewise.  Call toggle_cancelled_flags.
2893         (estimate_insn_tick): Ignore cancelled dependencies.
2894         (haifa_speculate_insn): Move declaration.
2895         (try_ready): Move code into recompute_todo_spec and call it.  Tweak
2896         some asserts.  Ensure predicated patterns are restored if necessary.
2897         Dump DEP_CONTROL flag.
2898         (haifa_change_pattern): Merge with sched_change_pattern.
2899         (sched_change_pattern): Remove function.
2900         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove.  All
2901         uses changed to simply not test NON_FLUSH_JUMP_P.
2902         (ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle
2903         REG_DEP_CONTROL.
2904         (dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative.
2905         (reg_pending_control_uses, control_dependency_cache): New static
2906         variables.
2907         (sched_get_reverse_condition_uncached): New function.
2908         (sd_find_dep_between): Remove pointless assert.  Look in
2909         control_dependency_cache.
2910         (ask_dependency_caches, set_dependency_caches, sd_delete_dep,
2911         extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL
2912         and control_dependency_cache.
2913         (sd_unresolve_dep): Use dep_spec_p.
2914         (add_dependence): Now a wrapper around add_dependence_1, handling
2915         REG_DEP_CONTROL specially.
2916         (flush_pending_lists): Clear pending_jump_insns.
2917         (sched_analyze_1): Handle pending_jump_insns like a memory flush.
2918         (sched_analyze_2): Unconditionally add to pending memory flushes,
2919         keep previous behaviour but apply it to pending_jump_insns instead.
2920         (sched_analyze_insn): Defer adding jump reg dependencies using
2921         reg_pending_control_uses; add them to the control_uses list.  Handle
2922         pending_jump_insns and control_uses when adding dependence lists.
2923         (deps_analyze_insn): Update INSN_COND_DEPS.
2924         (deps_analyze_insn): Add jumps to pending_jump_insns rather than
2925         last_pending_memory_flush.
2926         (init_deps): Initialize pending_jump_insns.
2927         (free_deps): Free control_uses.
2928         (remove_from_deps): Remove from pending_jump_insns.
2929         (init_deps_global): Allocate reg_pending_control_uses).
2930         (finish_deps_global): Free it.
2931         (add_dependence_1): Renamed from add_dependence.  Handle
2932         REG_DEP_CONTROL.
2933         * rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare.
2934         (copy_INSN_LIST, concat_INSN_LIST): Declare.
2935         * sched-int.h (struct deps_reg): Add control_uses.
2936         (struct deps_desc): Add pending_jump_insns.
2937         (struct _haifa_deps_insn_data): Add cond_deps.
2938         (struct _haifa_insn_data): Add must_recompute_spec and predicated_pat.
2939         (INSN_COND_DEPS, PREDICATED_PAT): New macros.
2940         (BITS_PER_DEP_WEAK): Adjust for two extra bits in the word.
2941         (DEP_CONTROL): New macro.
2942         (DEP_TYPES): Include it.
2943         (HARD_DEP): Adjust definition.
2944         (DEP_CANCELLED): New macro.
2945         (enum SCHED_FLAGS): Add DO_PREDICATION.
2946         (sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare.
2947         * sched-rgn.c (concat_INSN_LIST): Remove function.
2948         (deps_join): Handle pending_jump_insns.
2949         (free_pending_lists): Likewise.
2950         * config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final
2951         schedule.
2952
2953 2011-10-21  Georg-Johann Lay  <avr@gjlay.de>
2954
2955         PR target/50820
2956         * config/avr/libgcc.S (__EIND__): New define to 0x3C.
2957         (__tablejump__): Consistently use EIND for indirect jump/call.
2958         (__tablejump_elpm__): Ditto.
2959
2960 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
2961
2962         * config/c6x/c6x.md (attr "op_pattern"): New.
2963         (load_sdata_pic, mov<mode>_insn for QIHIM and SISFVM): Set it.
2964         * config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_):
2965         Likewise.
2966         * config/c6x/c6x-mult.md: Regenerate.
2967         * config/c6x/c6x.c: Include "regrename.h".
2968         (unit_req_table): New typedef.
2969         (unit_reqs): Use it for the declaration.
2970         (unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance,
2971         get_unit_operand_masks, try_rename_operands, reshuffle_units): New
2972         static functions.
2973         (count_unit_reqs): New arg reqs.  All callers changed.  Use
2974         get_unit_reqs, and don't merge here.
2975         (res_mii): New arg reqs.  All callers changed.  Rewrite to use a loop
2976         using unit_req_factor.
2977         (hwloop_optimize): Call reshuffle_units.  Call merge_unit_reqs after
2978         count_unit_reqs.
2979         (c6x_reorg): Add reg notes problem, and call df_analyze.
2980         * Makefile.in ($(out_object_file)): Depend on regrename.h.
2981
2982 2011-10-21  Kai Tietz  <ktietz@redhat.com>
2983
2984         * fold-const.c (simple_operand_p_2): Handle integral
2985         casts from boolean-operands.
2986
2987 2011-10-21  Jan Hubicka  <jh@suse.cz>
2988
2989         * cgraph.c (dump_cgraph_node): Dump alias flag.
2990         * cgraphunit.c (handle_alias_pairs): Handle weakrefs with
2991         no destination.
2992         (get_alias_symbol): New function.
2993         (output_weakrefs): Output also weakrefs with no destinatoin.
2994         (lto_output_node): Output weakref alias flag when at function boundary.
2995
2996 2011-10-21  Andrew Stubbs  <ams@codesourcery.com>
2997
2998         PR target/50809
2999         * config/arm/driver-arm.c (vendors): Make static.
3000
3001 2011-10-21  Uros Bizjak  <ubizjak@gmail.com>
3002
3003         * config/i386/i386.c (ix86_emit_swdivsf): Force b into register.
3004         (ix86_emit_swsqrtsf): Force a into register.
3005
3006 2011-10-20  Mike Stump  <mikestump@comcast.net>
3007
3008         * regcprop.c (copyprop_hardreg_forward_1): Update recog_data
3009         after validate_change wipes it out.
3010
3011 2011-10-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3012
3013         * config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32
3014         before using the shufb instruction.
3015
3016 2011-10-20  Kirill Yukhin  <kirill.yukhin@intel.com>
3017
3018         PR target/50766
3019         * config/i386/i386.md (bmi_bextr_<mode>): Update register/
3020         memory operand order.
3021         (bmi2_bzhi_<mode>3): Ditto.
3022         (bmi2_pdep_<mode>3): Ditto.
3023         (bmi2_pext_<mode>3): Ditto.
3024
3025 2011-10-20  Richard Henderson  <rth@redhat.com>
3026
3027         * target.def (vec_perm_const_ok): Rename from builtin_vec_perm_ok.
3028         * optabs.c (can_vec_perm_expr_p): Update to match.
3029         (expand_vec_perm_expr): Likewise.
3030         * config/i386/i386.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Rename
3031         from TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK.
3032         * doc/tm.texi.in: Likewise.
3033
3034 2011-10-20  Sergey Ostanevich  <sergos.gnu@gmail.com>
3035
3036         PR target/50572
3037         * config/i386/i386.c (processor_target_table): Change Atom
3038         align_loops_max_skip to 15.
3039
3040 2011-10-20  Richard Henderson  <rth@redhat.com>
3041
3042         * target.def (builtin_vec_perm): Remove.
3043         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
3044
3045         * config/i386/i386.c (ix86_expand_vec_perm_builtin): Remove.
3046         (IX86_BUILTIN_VEC_PERM_*): Remove.
3047         (bdesc_args): Remove vec_perm builtins
3048         (ix86_expand_builtin): Likewise.
3049         (ix86_expand_vec_perm_const_1): Rename from
3050         ix86_expand_vec_perm_builtin_1.
3051         (extract_vec_perm_cst): Merge into...
3052         (ix86_vectorize_vec_perm_const_ok): ... here.  Rename from
3053         ix86_vectorize_builtin_vec_perm_ok.
3054         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
3055
3056         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): Remove.
3057         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
3058
3059         * config/spu/spu.c (spu_builtin_vec_perm): Remove.
3060         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
3061
3062 2011-10-20  Uros Bizjak  <ubizjak@gmail.com>
3063
3064         PR target/47989
3065         * config/i386/i386.h (RECIP_MASK_DEFAULT): New define.
3066         * config/i386/i386.op (recip_mask): Initialize with RECIP_MASK_DEFAULT.
3067         * doc/invoke.texi (ix86 Options, -mrecip): Document that GCC
3068         implements vectorized single float division and vectorized sqrtf(x)
3069         with reciprocal sequence with additional Newton-Raphson step with
3070         -ffast-math.
3071
3072 2011-10-20  Dodji Seketeli  <dodji@redhat.com>
3073
3074         * ggc-zone.c (ggc_internal_alloc_zone_stat): Rename
3075         ggc_alloced_size_order_for_request into ggc_round_alloc_size like
3076         it was done in ggc-page.c.
3077
3078         PR other/50659
3079         * doc/cppopts.texi: Use @smallexample/@end smallexample in
3080         documentation for -fdebug-cpp instead of @quotation/@end quotation
3081         that is not supported by contrib/texi2pod.pl.
3082
3083 2011-10-19  Jan Hubicka  <jh@suse.cz>
3084
3085         * ipa-inline.c (inline_small_functions): Always update all calles after
3086         inlining.
3087
3088 2011-10-19  Jan Hubicka  <jh@suse.cz>
3089
3090         PR bootstrap/50709
3091         * ipa-inline.c (inline_small_functions): Fix checking code to not make
3092         effect on fibheap stability.
3093
3094 2011-10-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
3095
3096         * config/m68k/t-linux (M68K_MLIB_CPU): Add ColdFire CPUs.
3097
3098 2011-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3099
3100         PR target/50106
3101         * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return
3102         reg size from 1-3.
3103
3104 2011-10-20  Richard Guenther  <rguenther@suse.de>
3105
3106         * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR
3107         and rotates to the set of expensive operations.
3108
3109 2011-10-19  David S. Miller  <davem@davemloft.net>
3110
3111         * config/sparc/sparc.c (sparc_expand_move): Use can_create_pseudo_p.
3112         (sparc_emit_set_const32): Likewise.
3113         (sparc_emit_set_const64_longway): Likewise.
3114         (sparc_emit_set_const64): Likewise.
3115         (sparc_legitimize_pic_address): Likewise.
3116         (memory_ok_for_ldd): Likewise.
3117
3118 2011-10-20  Dehao Chen  <dehao@google.com>
3119
3120         * profile.c (compute_branch_probabilities): Compute and dump the
3121         overlap between the static estimation and the instrumentation profile.
3122         (OVERLAP_BASE): New macro.
3123         (compute_frequency_overlap): New function
3124
3125 2011-10-19  Jakub Jelinek  <jakub@redhat.com>
3126
3127         * config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use
3128         d->op1 instead of d->op0 for the second vpshufb.
3129         (expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates.
3130         (ix86_expand_vec_perm_const): If mask indicates two operands are
3131         needed, but both are the same and expanding them as d.op0 == d.op1
3132         failed, retry with d.op0 != d.op1.
3133         (ix86_expand_vec_perm_builtin): Likewise.  Handle sorry printing
3134         also for d.nelt == 32.
3135
3136         PR middle-end/50754
3137         * cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore
3138         VEC_PERM_EXPR.
3139
3140 2011-10-19  Bernd Schmidt  <bernds@codesourcery.com>
3141
3142         * regrename.h: New file.
3143         * regrename.c: Include it.  Also include "emit-rtl.h".
3144         (struct du_head, struct du_chain, du_head_p DEF_VEC and
3145         DEF_VEC_ALLOC_P): Move to regrename.h.
3146         (do_replace): Remove declaration.
3147         (insn_rr): New variable.
3148         (cur_operand): New static variable.
3149         (regrename_chain_from_id): Renamed from chain_from_id and no longer
3150         static.  All callers changed.
3151         (record_operand_use): New static function.
3152         (scan_rtx_reg): Use it.
3153         (find_best_rename_reg): New function, broken out of rename_chains.
3154         (rename_chains): Use it.  Don't update chain regno and nregs here, ...
3155         (regrename_do_replace): ... do it here instead.  Renamed from
3156         do_replace, and no longer static.  All callers changed.
3157         (regrename_analyze): No longer static.  New arg bb_mask.
3158         All callers changed.  If bb_mask is nonzero, use it to limit the
3159         number of basic blocks we analyze.  If we failed to analyze a block,
3160         clear insn operand data.
3161         (record_out_operands): New arg insn_info.  Update cur_operand if it is
3162         nonnull.
3163         (build_def_use): If insn_rr is nonnull, pass an insn_info to
3164         record_out_operands, and update cur_operand here as well.
3165         (regrename_init, regrename_finish): New functions.
3166         (regrename_optimize): Use them.
3167         * Makefile.in (regrename.o): Adjust dependencies.
3168
3169 2011-10-19  Tom de Vries  <tom@codesourcery.com>
3170
3171         PR tree-optimization/50769
3172         * tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2
3173         unconditionally.  Handle case that phi_vuse2 is not an SSA_NAME.  Add
3174         dummy argument .MEM to phi when increasing number of arguments of phi by
3175         redirecting edges to the block with phi.
3176
3177 2011-10-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3178
3179         PR bootstrap/50777
3180         * configure.ac: Save and restore CXXFLAGS around
3181         gcc_AC_CHECK_DECLS uses.
3182         Check for madvise() declaration with g++ if --enable-build-with-cxx.
3183         * configure: Regenerate.
3184         * config.in: Regenerate.
3185         * ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE.
3186
3187 2011-10-19  Alexandre Oliva  <aoliva@redhat.com>
3188
3189         PR debug/49310
3190         * var-tracking.c (loc_exp_dep, onepart_aux): New structs.
3191         (variable_part): Replace offset with union.
3192         (enum onepart_enum, onepart_enum_t): New.
3193         (variable_def): Drop cur_loc_changed, add onepart.
3194         (value_chain_def, const_value_chain): Remove.
3195         (VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking.
3196         (VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros.
3197         (VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise.
3198         (value_chain_pool, value_chains): Remove.
3199         (dropped_values): New.
3200         (struct parm_reg): Only if HAVE_window_save.
3201         (vt_stack_adjustments): Don't record register arguments.
3202         (dv_as_rtx): New.
3203         (dv_onepart_p): Return a onepart_enum_t.
3204         (onepart_pool): New.
3205         (dv_pool): Remove.
3206         (dv_from_rtx): New.
3207         (variable_htab_free): Release onepart aux data.  Reset flags.
3208         (value_chain_htab_hash, value_chain_htab_eq): Remove.
3209         (unshare_variable): Use onepart field.  Propagate onepart aux
3210         data or offset.  Drop cur_loc_changed.
3211         (val_store): Cope with NULL insn.  Rephrase dump output.  Check
3212         for unsuitable locs.  Add FIXME on using cselib locs.
3213         (val_reset): Remove FIXME of unfounded concerns.
3214         (val_resolve): Check for unsuitable locs.  Add FIXME on using
3215         cselib locs.
3216         (variable_union): Use onepart field, adjust access to offset.
3217         (NO_LOC_P): New.
3218         (VALUE_CHANGED, DECL_CHANGED): Update doc.
3219         (set_dv_changed): Clear NO_LOC_P when changed.
3220         (find_loc_in_1pdv): Use onepart field.
3221         (intersect_loc_chains): Likewise.
3222         (unsuitable_loc): New.
3223         (loc_cmp): Keep ENTRY_VALUEs at the end of the loc list.
3224         (add_value_chain, add_value_chains): Remove.
3225         (add_cselib_value_chains, remove_value_chain): Likewise.
3226         (remove_value_chains, remove_cselib_value_chains): Likewise.
3227         (canonicalize_loc_order_check): Use onepart.  Drop cur_loc_changed.
3228         (canonicalize_values_star, canonicalize_vars_star): Use onepart.
3229         (variable_merge_over_cur): Likewise.  Adjust access to offset.
3230         Drop cur_loc_changed.
3231         (variable_merge_over_src): Use onepart field.
3232         (remove_duplicate_values): Likewise.
3233         (variable_post_merge_new_vals): Likewise.
3234         (find_mem_expr_in_1pdv): Likewise.
3235         (dataflow_set_preserve_mem_locs): Likewise.  Drop cur_loc_changed
3236         and value chains.
3237         (dataflow_set_remove_mem_locs): Likewise.  Use VAR_LOC_FROM.
3238         (variable_different_p): Use onepart field.  Move onepart test out
3239         of the loop.
3240         (argument_reg_set): Drop.
3241         (add_uses, add_stores): Preserve but do not record in dynamic
3242         tables equivalences for ENTRY_VALUEs and CFA_based addresses.
3243         Avoid unsuitable address expressions.
3244         (EXPR_DEPTH): Unlimit.
3245         (EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH.
3246         (prepare_call_arguments): Use DECL_RTL_IF_SET.
3247         (dump_var): Adjust access to offset.
3248         (variable_from_dropped, recover_dropped_1paux): New.
3249         (variable_was_changed): Drop cur_loc_changed.  Use onepart.
3250         Preserve onepart aux in empty_var.  Recover empty_var and onepart
3251         aux from dropped_values.
3252         (find_variable_location_part): Special-case onepart.  Adjust
3253         access to offset.
3254         (set_slot_part): Use onepart.  Drop cur_loc_changed.  Adjust
3255         access to offset.  Initialize onepaux.  Drop value chains.
3256         (delete_slot_part): Drop value chains.  Use VAR_LOC_FROM.
3257         (VEC (variable, heap), VEC (rtx, stack)): Define.
3258         (expand_loc_callback_data): Drop dummy, cur_loc_changed,
3259         ignore_cur_loc.  Add expanding, pending, depth.
3260         (loc_exp_dep_alloc, loc_exp_dep_clear): New.
3261         (loc_exp_dep_insert, loc_exp_dep_set): New.
3262         (notify_dependents_of_resolved_value): New.
3263         (update_depth, vt_expand_var_loc_chain): New.
3264         (vt_expand_loc_callback): Revamped.
3265         (resolve_expansions_pending_recursion): New.
3266         (INIT_ELCD, FINI_ELCD): New.
3267         (vt_expand_loc): Use the new macros above.  Drop ignore_cur_loc
3268         parameter, adjust all callers.
3269         (vt_expand_loc_dummy): Drop.
3270         (vt_expand_1pvar): New.
3271         (emit_note_insn_var_location): Operate on non-debug decls only.
3272         Revamp multi-part cur_loc recomputation and one-part expansion.
3273         Drop cur_loc_changed.  Adjust access to offset.
3274         (VEC (variable, heap)): Drop.
3275         (changed_variables_stack, changed_values_stack): Drop.
3276         (check_changed_vars_0, check_changed_vars_1): Remove.
3277         (check_changed_vars_2, check_changed_vars_3): Remove.
3278         (values_to_stack, remove_value_from_changed_variables): New.
3279         (notify_dependents_of_changed_value, process_changed_values): New.
3280         (emit_notes_for_changes): Revamp onepart updates.
3281         (emit_notes_for_differences_1): Use onepart.  Drop cur_loc_changed
3282         and value chains.  Propagate onepaux.  Recover empty_var and onepaux
3283         from dropped_values.
3284         (emit_notes_for_differences_2): Drop value chains.
3285         (emit_notes_in_bb): Adjust.
3286         (vt_emit_notes): Drop value chains, changed_variables_stack.
3287         Initialize and release dropped_values.
3288         (create_entry_value): Revamp.
3289         (vt_add_function_parameter): Use new interface.
3290         (note_register_arguments): Remove.
3291         (vt_initialize): Drop value chains and register arguments.
3292         (vt_finalize): Drop value chains.  Release windowed_parm_regs only
3293         if HAVE_window_save.
3294         * rtl.h: Document various pass-local uses of RTL flags.
3295         * tree.h (DECL_RTL_KNOWN_SET): New.
3296         * doc/invoke.texi (param max-vartrack-expr-depth): Update
3297         description and default.
3298
3299 2011-10-19  Georg-Johann Lay  <avr@gjlay.de>
3300
3301         PR target/50447
3302         * config/avr/avr.md (cc): New alternative out_plus_noclobber.
3303         (adjust_len): Ditto.
3304         (addhi3): Don't pipe through short; use gen_int_mode instead.
3305         Prior to reload, expand to gen_addhi3_clobber.
3306         (*addhi3): Use avr_out_plus_noclobber if applicable, use
3307         out_plus_noclobber in cc and adjust_len attribute.
3308         (addhi3_clobber): 2 new RTL peepholes.
3309         (addhi3_clobber): New insn.
3310         * config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype.
3311         * config/avr/avr.c (avr_out_plus_noclobber): New function.
3312         (notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER.
3313         (avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0.
3314         Set cc0 to set_zn for adiw on 16-bit values.
3315         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER.
3316         (expand_epilogue): No need to add 0 to frame_pointer_rtx.
3317
3318 2011-10-19  Richard Guenther  <rguenther@suse.de>
3319
3320         PR middle-end/50780
3321         * tree-ssa-forwprop.c (forward_propagate_into_cond): Verify
3322         the condition is properly gimple before using it.
3323         * tree-eh (stmt_could_throw_1_p): Properly extract the
3324         operation type from comparisons.
3325
3326 2011-10-19  Roland Stigge  <stigge@antcom.de>
3327
3328         PR translation/48638
3329         * plugin.c (add_new_plugin): Fix typo in fatal_error message.
3330
3331 2011-10-19  Roland Stigge  <stigge@antcom.de>
3332
3333         PR translation/49517
3334         * config/rx/rx.c (rx_print_operand): Fix typo in warning message.
3335
3336 2011-10-19  Richard Guenther  <rguenther@suse.de>
3337
3338         PR middle-end/50768
3339         * gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite.
3340
3341 2011-10-19  Andrey Belevantsev  <abel@ispras.ru>
3342
3343         PR rtl-optimization/50340
3344         * sel-sched-ir.c (update_target_availability): LHS register
3345         availability is not known if the unavailable LHS of the other
3346         expression is a different register.
3347
3348 2011-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3349
3350         PR target/50310
3351         * config/spu/spu.c (spu_emit_vector_compare): Support unordered
3352         floating-point comparisons.
3353
3354 2011-10-19  Jan Hubicka  <jh@suse.cz>
3355
3356         * cgraphunit.c (handle_alias_pairs): Also handle wekref with
3357         destination declared.
3358         (output_weakrefs): New function.
3359         * varpool.c (varpool_create_variable_alias): Handle external aliases.
3360
3361 2011-10-19  Jakub Jelinek  <jakub@redhat.com>
3362
3363         * dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as
3364         second argument instead of mode.
3365
3366 2011-10-18  Jakub Jelinek  <jakub@redhat.com>
3367
3368         * config/i386/i386.c (ix86_expand_vec_perm): In merge_two use
3369         mode SUBREG of operands[0] as target.
3370         (valid_perm_using_mode_p): Don't ignore higher bits of d->perm.
3371         (expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si.
3372         (expand_vec_perm_1): Handle identity and some broadcast
3373         permutations.
3374         (expand_vec_perm_interleave2): Handle also 32-byte modes, using
3375         vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation.
3376         For d->testing_p return true earlier to avoid creating more GC
3377         garbage.
3378         (expand_vec_perm_vpermq_perm_1): New function.
3379         (expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true
3380         earlier to avoid creating more GC garbage.  Fix handling of
3381         V16HImode.  Avoid some SUBREGs in SET_DEST.
3382         (expand_vec_perm_broadcast_1): Return false for 32-byte integer
3383         vector modes.
3384         (expand_vec_perm_vpshufb4_vpermq2): New function.
3385         (ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1
3386         and expand_vec_perm_vpshufb4_vpermq2.
3387
3388 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
3389
3390         * config/arm/driver-arm.c (host_detect_local_cpu): Close the file
3391         before exiting.
3392
3393 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
3394
3395         PR tree-optimization/50717
3396         * tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type'
3397         parameter.  Calculate 'type' from stmt.
3398         (convert_mult_to_widen): Update call the is_widening_mult_p.
3399         (convert_plusminus_to_widen): Likewise.
3400
3401 2011-10-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3402
3403         * config/spu/spu.c (struct machine_function): New data structure.
3404         (spu_init_machine_status): New function.
3405         (spu_option_override): Install it.
3406         (get_pic_reg): Set and use cfun->machine->pic_reg.
3407         (spu_split_immediate): Do not set crtl->uses_pic_offset_table.
3408         (need_to_save_reg): Use cfun->machine->pic_reg instead of
3409         checking crtl->uses_pic_offset_table.
3410         (spu_expand_prologue): Likewise.
3411
3412 2011-10-18  Jakub Jelinek  <jakub@redhat.com>
3413
3414         PR tree-optimization/50735
3415         * function.c (gimplify_parameters): Use create_tmp_var instead of
3416         create_tmp_reg.  If parm is not TREE_ADDRESSABLE and type is complex
3417         or vector type, set DECL_GIMPLE_REG_P.
3418
3419 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
3420
3421         * config.host (arm*-*-linux*): Add driver-arm.o and x-arm.
3422         * config/arm/arm.opt: Add 'native' processor_type and
3423         arm_arch enum values.
3424         * config/arm/arm.h (host_detect_local_cpu): New prototype.
3425         (EXTRA_SPEC_FUNCTIONS): New define.
3426         (MCPU_MTUNE_NATIVE_SPECS): New define.
3427         (DRIVER_SELF_SPECS): New define.
3428         * config/arm/driver-arm.c: New file.
3429         * config/arm/x-arm: New file.
3430         * doc/invoke.texi (ARM Options): Document -mcpu=native,
3431         -mtune=native and -march=native.
3432
3433 2011-10-18  Alexander Monakov  <amonakov@ispras.ru>
3434
3435         PR rtl-optimization/50205
3436         * sel-sched.c (count_occurrences_1): Simplify on the assumption that
3437         p->x is a register.  Forbid substitution when the same register is
3438         found in a different mode.
3439         (count_occurrences_equiv): Assert that 'what' is a register.
3440
3441 2011-10-18  Richard Guenther  <rguenther@suse.de>
3442
3443         PR tree-optimization/50767
3444         * tree-ssa-pre.c (create_expression_by_pieces): Update the
3445         folded statement.
3446
3447 2011-10-18  Julian Brown  <julian@codesourcery.com>
3448
3449         * config/arm/arm.c (arm_block_move_unaligned_straight)
3450         (arm_adjust_block_mem, arm_block_move_unaligned_loop)
3451         (arm_movmemqi_unaligned): New.
3452         (arm_gen_movmemqi): Support unaligned block copies.
3453
3454 2011-10-18  Ira Rosen  <ira.rosen@linaro.org>
3455
3456         * doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo,
3457         vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document.
3458         * tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR,
3459         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
3460         (op_code_prio): Likewise.
3461         (op_symbol_code): Handle WIDEN_LSHIFT_EXPR.
3462         * optabs.c (optab_for_tree_code): Handle
3463         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
3464         (init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo.
3465         * optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo.
3466         * genopinit.c (optabs): Initialize the new optabs.
3467         * expr.c (expand_expr_real_2): Handle
3468         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
3469         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
3470         * tree-vectorizer.h (NUM_PATTERNS): Increase to 8.
3471         * tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR,
3472         VEC_WIDEN_LSHIFT_LO_EXPR): New.
3473         * cfgexpand.c (expand_debug_expr): Handle new tree codes.
3474         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
3475         vect_recog_widen_shift_pattern.
3476         (vect_handle_widen_mult_by_const): Rename...
3477         (vect_handle_widen_op_by_const): ...to this.  Handle shifts.
3478         Add a new argument, update documentation.
3479         (vect_recog_widen_mult_pattern): Assume that only second
3480         operand can be constant.  Update call to
3481         vect_handle_widen_op_by_const.
3482         (vect_recog_over_widening_pattern): Fix typo.
3483         (vect_recog_widen_shift_pattern): New.
3484         * tree-vect-stmts.c (vectorizable_type_promotion): Handle
3485         widening shifts.
3486         (supportable_widening_operation): Likewise.
3487         * tree-inline.c (estimate_operator_cost): Handle new tree codes.
3488         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
3489         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
3490         * config/arm/neon.md (neon_vec_<US>shiftl_<mode>): New.
3491         (vec_widen_<US>shiftl_lo_<mode>, neon_vec_<US>shiftl_hi_<mode>,
3492         vec_widen_<US>shiftl_hi_<mode>, neon_vec_<US>shift_left_<mode>):
3493         Likewise.
3494         * config/arm/predicates.md (const_neon_scalar_shift_amount_operand):
3495         New.
3496         * config/arm/iterators.md (V_innermode): New.
3497         * tree-vect-slp.c (vect_build_slp_tree): Require same shift operand
3498         for widening shift.
3499
3500 2011-10-18  Richard Guenther  <rguenther@suse.de>
3501
3502         * tree-ssa-alias.h (struct pt_solution): Remove
3503         vars_contains_restrict member.
3504         (pt_solutions_same_restrict_base): Remove.
3505         (pt_solution_set): Adjust.
3506         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove
3507         vars_contains_restrict handling.
3508         (dump_points_to_solution): Likewise.
3509         (ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base.
3510         * tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var
3511         field.
3512         (new_var_info): Do not initialize it.
3513         (ipa_escaped_pt): Adjust.
3514         (make_constraint_from_restrict): Make the tag global.
3515         (make_constraint_from_global_restrict): New function.
3516         (make_constraint_from_heapvar): Remove.
3517         (create_variable_info_for): Do not make restrict vars point
3518         to NONLOCAL.
3519         (intra_create_variable_infos): Likewise.
3520         (find_what_var_points_to): Remove vars_contains_restrict handling.
3521         (pt_solution_set): Adjust.
3522         (pt_solution_ior_into): Likewise.
3523         (pt_solutions_same_restrict_base): Remove.
3524         (compute_points_to_sets): Do not test is_restrict_var.
3525         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
3526         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
3527
3528 2011-10-18  Tom de Vries  <tom@codesourcery.com>
3529
3530         PR tree-optimization/50672
3531         * tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function,
3532         factored out of ...
3533         (mark_virtual_phi_result_for_renaming): Use
3534         mark_virtual_operand_for_renaming.
3535         * tree-flow.h (mark_virtual_operand_for_renaming): Declare.
3536         * tree-ssa-tail-merge.c (release_last_vdef): New function.
3537         (purge_bbs): Add update_vops parameter.  Call release_last_vdef for each
3538         deleted basic block.
3539         (tail_merge_optimize): Add argument to call to purge_bbs.
3540
3541 2011-10-18  Richard Guenther  <rguenther@suse.de>
3542
3543         PR middle-end/50716
3544         * expr.c (get_object_or_type_alignment): New function.
3545         (expand_assignment): Use it.
3546         (expand_expr_real_1): Likewise.
3547
3548 2011-10-18  Dodji Seketeli  <dodji@redhat.com>
3549
3550         PR bootstrap/50760
3551         * input.c (dump_line_table_statistics): Use long, not size_t.
3552
3553 2011-10-17  Eric Botcazou  <ebotcazou@adacore.com>
3554
3555         * config/sparc/sparc.md (in_call_delay): Fix formatting issues.
3556
3557 2011-10-17  Simon Baldwin  <simonb@google.com>
3558             Ian Lance Taylor  <iant@google.com>
3559
3560         * configure.ac: Add --with-native-system-header-dir.  Set and
3561         substitute NATIVE_SYSTEM_HEADER_DIR.  Use native_system_header
3562         when setting target_header_dir.
3563         * config.gcc: Always set native_system_header_dir.
3564         (*-*-gnu*): Set native_system_header_dir.  Don't use t-gnu.
3565         (i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir.  Don't
3566         use i386/t-djgpp.
3567         (i[34567]86-*-mingw* | x86_64-*-mingw*): Set
3568         native_system_header_dir.
3569         (spu-*-elf*): Set native_system_header_dir.
3570         * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to
3571         @NATIVE_SYSTEM_HEADER_DIR@.
3572         (PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR.
3573         * cppdefault.c (STANDARD_INCLUDE_DIR): Don't define.
3574         (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
3575         STANDARD_INCLUDE_COMPONENT.
3576         (cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR.  Rename
3577         STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
3578         * system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and
3579         STANDARD_INCLUDE_COMPONENT.
3580         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove.
3581         * config/i386/t-mingw-w32: Likewise.
3582         * config/i386/t-mingw-w64: Likewise.
3583         * config/spu/t-spu-elf: Likewise.
3584         * config/i386/t-djgpp: Remove.
3585         * config/t-gnu: Remove.
3586         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define.
3587         (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
3588         STANDARD_INCLUDE_COMPONENT.
3589         * config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define.
3590         * config/spu/spu-elf.h: Likewise.
3591         * config/vms/xm-vms.h: Likewise.
3592         * config/gnu.h: Likewise.
3593         * config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR
3594         and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and
3595         NATIVE_SYSTME_HEADER_COMPONENT.
3596         * doc/install.texi (Configuration): Document
3597         --with-native-system-header-dir.  Mention it in the documentation
3598         for --with-sysroot and --with-build-sysroot.
3599         * doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or
3600         STANDARD_INCLUDE_DIR.  Rename STANDARD_INCLUDE_COMPONENT to
3601         NATIVE_SYSTEM_HEADER_COMPONENT.  Rename uses of
3602         STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
3603         * doc/fragments.texi (Target Fragment): Don't document
3604         NATIVE_SYSTEM_HEADER_DIR.
3605         * configure, doc/tm.texi: Rebuild.
3606
3607 2011-10-17  Richard Henderson  <rth@redhat.com>
3608
3609         * config/sparc/sparc.md: Use register_or_zero_operand where rJ
3610         is the constraint.
3611
3612         * config/sparc/sparc.md (vec_perm_constv8qi, vec_perm<mode>): New
3613         patterns.
3614         * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function.
3615         * config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare.
3616
3617 2011-10-17  David S. Miller  <davem@davemloft.net>
3618
3619         * config/sparc/sparc-modes.def: Add single entry vector modes for
3620         DImode and SImode.
3621         * config/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete
3622         mode iterators.
3623         (mov<V32:mode>): Revert back to plain SFmode pattern.
3624         (*movsf_insn): Likewise.
3625         (mov<V64:mode>): Revert back to plain DFmode pattern.
3626         (*movdf_insn_sp32): Likewise.
3627         (*movdf_insn_sp32_v9): Likewise.
3628         (*movdf_insn_sp64): Likewise.
3629         (V64 mode splitters) Likewise.
3630         (addsi3): Remove VIS alternatives.
3631         (subsi3): Likewise.
3632         (and<V64I:mode>3): Revert to DImode only pattern.
3633         (and<V64I:mode>3_sp32): Likewise.
3634         (*and<V64I:mode>3_sp64): Likewise.
3635         (and<V32I:mode>3): Likewise.
3636         (*and_not_<V64I:mode>_sp32): Likewise.
3637         (*and_not_<V64I:mode>_sp64): Likewise.
3638         (*and_not_<V32I:mode>): Likewise.
3639         (ior<V64I:mode>3): Likewise.
3640         (*ior<V64I:mode>3_sp32): Likewise.
3641         (*ior<V64I:mode>3_sp64): Likewise.
3642         (ior<V32I:mode>3): Likewise.
3643         (*or_not_<V64I:mode>_sp32): Likewise.
3644         (*or_not_<V64I:mode>_sp64): Likewise.
3645         (*or_not_<V32I:mode>): Likewise.
3646         (xor<V64I:mode>3): Likewise.
3647         (*xor<V64I:mode>3_sp32): Likewise.
3648         (*xor<V64I:mode>3_sp64): Likewise.
3649         (xor<V32I:mode>3): Likewise.
3650         (V64I mode splitters): Likewise.
3651         (*xor_not_<V64I:mode>_sp32): Likewise.
3652         (*xor_not_<V64I:mode>_sp64): Likewise.
3653         (*xor_not_<V32I:mode>): Likewise.
3654         (one_cmpl<V64I:mode>2): Likewise.
3655         (*one_cmpl<V64I:mode>2_sp32): Likewise.
3656         (*one_cmpl<V64I:mode>2_sp64): Likewise.
3657         (one_cmpl<V32I:mode>2): Likewise.
3658         (VM32, VM64, VMALL): New mode iterators.
3659         (vbits, vconstr, vfptype): New mode attributes.
3660         (mov<VMALL:mode>): New expander.
3661         (*mov<VM32:mode>_insn): New insn.
3662         (*mov<VM64:mode>_insn_sp64): New insn.
3663         (*mov<VM64:mode>_insn_sp32): New insn, and associated splitter
3664         specifically for the register to memory case.
3665         (vec_init<mode>): New expander.
3666         (VADDSUB): New mode iterator.
3667         (<plusminus_insn>v2si3, <plusminus_insn>v2hi3): Remove and replace
3668         with...
3669         (<plusminus_insn><mode>3): New consolidated pattern.
3670         (VL): New mode iterator for logical operations.
3671         (vlsuf): New more attribute.
3672         (vlop): New code iterator.
3673         (vlinsn, vlninsn): New code attributes.
3674         (<code><mode>3): New insn to non-negated vector logical ops.
3675         (*not_<code><mode>3): Likewise for negated variants.
3676         (*nand<mode>_vis): New insn.
3677         (vlnotop): New code iterator.
3678         (*<code>_not1<mode>_vis, *<code>_not2<mode>_vis): New insns.
3679         (one_cmpl<mode>2): New insn.
3680         (faligndata<V64I:mode>_vis): Rewrite to use VM64 iterator.
3681         (bshuffle<VM64:mode>_vis): Likewise.
3682         (v<vis3_shift_patname><mode>3): Use GCM mode iterator.
3683         (fp<plusminus_insn>64_vis): Use V1DI mode.
3684         (VASS mode iterator): Use V1SI not SI mode.
3685         * config/sparc/sparc.c (sparc_vis_init_builtins): Account for
3686         single-entry vector mode changes.
3687         (sparc_expand_builtin): Likewise.
3688         (sparc_expand_vector_init): New function.
3689         * config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare.
3690
3691 2011-10-17  Kai Tietz  <ktietz@redhat.com>
3692
3693         * fold-const.c (simple_operand_p_2): New function.
3694         (fold_truthop): Rename to
3695         (fold_truth_andor_1): function name.
3696         Additionally remove branching creation for logical and/or.
3697         (fold_truth_andor): Handle branching creation for logical and/or here.
3698
3699 2011-10-17  Andi Kleen  <ak@linux.intel.com>
3700
3701         * ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP.
3702
3703 2011-10-17  Georg-Johann Lay  <avr@gjlay.de>
3704
3705         * config/avr/avr.h (ASSEMBLER_DIALECT): Remove.
3706         * config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes.
3707         (adjust_len): Add alternative "call".
3708         (isa, enabled): New insn attributes.
3709         (length): Use match_test with AVR_HAVE_JMP_CALL instead of
3710         mcu_mega attribute.
3711         (*sbrx_branch<mode>): Ditto.
3712         (*sbrx_and_branch<mode>): Ditto.
3713         (*sbix_branch): Ditto.
3714         (*sbix_branch_bit7): Ditto.
3715         (*sbix_branch_tmp): Ditto.
3716         (*sbix_branch_tmp_bit7): Ditto.
3717         (jump): Ditto.
3718         (negsi2): Use attribute "isa" instead of assembler dialect.
3719         (extendhisi2): Ditto.
3720         (call_insn, call_value_insn): Set adjust_len attribute.
3721         (indirect_jump): Indent to coding rules.
3722         (call_prologue_saves): Use isa attribute instead of mcu_mega.
3723         (epilogue_restores): Ditto.  Fix setting of SP as described in the
3724         RTX pattern.
3725         (*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump
3726         and *indirect_jump_avr6.
3727         (*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib.
3728         (*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove.
3729         (*tablejump_rjmp, *tablejump_lib): Remove.
3730         * config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL.
3731
3732 2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
3733
3734         PR c++/50757
3735         * doc/invoke.texi ([Wnonnull]): Update.
3736
3737 2011-10-17  Richard Henderson  <rth@redhat.com>
3738
3739         PR 50746
3740         * optabs.c (expand_vec_perm_expr): Fix indexing error.
3741
3742 2011-10-17  Sergio Durigan Junior  <sergiodj@redhat.com>
3743
3744         * configure.ac: Display `yes' if the SystemTap header has been found.
3745         * configure: Regenerate.
3746
3747 2011-10-08  Andi Kleen  <ak@linux.intel.com>
3748
3749         PR other/50636
3750         * config.in, configure: Regenerate.
3751         * configure.ac (madvise): Add to AC_CHECK_FUNCS.
3752         * ggc-page.c (USING_MADVISE): Add.
3753         (page_entry): Add discarded field.
3754         (alloc_page): Check for discarded pages.
3755         (release_pages): Add USING_MADVISE branch.
3756
3757 2011-10-17  Richard Guenther  <rguenther@suse.de>
3758
3759         PR tree-optimization/50729
3760         * tree-vrp.c (extract_range_from_unary_expr_1): Remove redundant test.
3761         (simplify_conversion_using_ranges): Properly test the
3762         intermediate result.
3763
3764 2011-10-15  Tom Tromey  <tromey@redhat.com>
3765             Dodji Seketeli  <dodji@redhat.com>
3766
3767         * ggc.h (ggc_round_alloc_size): Declare new public entry point.
3768         * ggc-none.c (ggc_round_alloc_size): New public stub function.
3769         * ggc-page.c (ggc_alloced_size_order_for_request): New static
3770         function.  Factorized from ggc_internal_alloc_stat.
3771         (ggc_round_alloc_size): New public function.  Uses
3772         ggc_alloced_size_order_for_request.
3773         (ggc_internal_alloc_stat): Use ggc_alloced_size_order_for_request.
3774         * ggc-zone.c (ggc_round_alloc_size): New public function extracted
3775         from ggc_internal_alloc_zone_stat.
3776         (ggc_internal_alloc_zone_stat): Use ggc_round_alloc_size.
3777         * toplev.c (general_init): Initialize
3778         line_table->alloced_size_for_request.
3779
3780 2011-10-15  Tom Tromey  <tromey@redhat.com>
3781             Dodji Seketeli  <dodji@redhat.com>
3782
3783         * input.c (ONE_K, ONE_M, SCALE, STAT_LABEL, FORMAT_AMOUNT): New macros.
3784         (num_expanded_macros_counter, num_macro_tokens_counter): Declare
3785         new counters.
3786         (dump_line_table_statistics): Define new function.
3787         * input.h (dump_line_table_statistics): Declare new function.
3788         * toplev.c (dump_memory_report): Call dump_line_table_statistics.
3789
3790 2011-10-15  Tom Tromey  <tromey@redhat.com>
3791             Dodji Seketeli  <dodji@redhat.com>
3792
3793         * doc/cppopts.texi: Document -fdebug-cpp.
3794         * doc/invoke.texi: Add -fdebug-cpp to the list of preprocessor options.
3795
3796 2011-10-15  Tom Tromey  <tromey@redhat.com>
3797             Dodji Seketeli  <dodji@redhat.com>
3798
3799         * gcc/diagnostic.h (diagnostic_report_current_module): Add a
3800         location parameter.
3801         * diagnostic.c (diagnostic_report_current_module): Add a location
3802         parameter to the function definition.  Use it instead of
3803         input_location.  Resolve the virtual location rather than just
3804         looking up its map and risking to touch a resulting macro map.
3805         (default_diagnostic_starter): Pass the relevant diagnostic
3806         location to diagnostic_report_current_module.
3807         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): New.
3808         (virt_loc_aware_diagnostic_finalizer): Likewise.
3809         (diagnostic_report_current_function): Pass the
3810         relevant location to diagnostic_report_current_module.
3811         * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Declare
3812         new function.
3813         * toplev.c (general_init): By default, use the new
3814         virt_loc_aware_diagnostic_finalizer as diagnostic finalizer.
3815         * Makefile.in: Add vec.h dependency to tree-diagnostic.c.
3816
3817 2011-10-15  Tom Tromey  <tromey@redhat.com>
3818             Dodji Seketeli  <dodji@redhat.com>
3819
3820         * doc/cppopts.texi (-ftrack-macro-expansion): Document new option.
3821         * doc/invoke.texi (-ftrack-macro-expansion): Add this to the list of
3822         preprocessor related options.
3823
3824 2011-10-15  Tom Tromey  <tromey@redhat>
3825             Dodji Seketeli  <dodji@redhat.com>
3826
3827         * input.h (struct expanded_location): Move to libcpp/line-map.h.
3828         (LOCATION_COLUMN): New accessor
3829         (in_system_header_at): Use linemap_location_in_system_header_p.
3830         * diagnostic.c (diagnostic_report_current_module): Adjust to avoid
3831         touching the internals of struct line_map.  Use the public API instead.
3832         (diagnostic_report_diagnostic): Don't use relational operator '<'
3833         on virtual locations.  Use linemap_location_before_p instead.
3834         * input.c (expand_location): Adjust to expand to the tokens'
3835         spelling location when macro location tracking is on.
3836
3837
3838 2011-10-08  Andi Kleen  <ak@linux.intel.com>
3839
3840         * ggc-page.c (GGC_QUIRE_SIZE): Increase to 512
3841
3842 2011-10-13  Andi Kleen  <ak@linux.intel.com>
3843
3844         * toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim.
3845
3846 2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
3847
3848         PR tree-optimization/50727
3849         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
3850         DEF_STMT to the list of statements to be replaced by the
3851         pattern statements.
3852
3853 2011-10-16  Eric Botcazou  <ebotcazou@adacore.com>
3854
3855         PR rtl-optimization/50615
3856         * combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op.
3857
3858 2011-10-16  Jakub Jelinek  <jakub@redhat.com>
3859
3860         PR tree-optimization/50596
3861         * tree-vectorizer.h (NUM_PATTERNS): Increase to 7.
3862         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
3863         vect_recog_bool_pattern.
3864         (check_bool_pattern, adjust_bool_pattern_cast,
3865         adjust_bool_pattern, vect_recog_bool_pattern): New functions.
3866
3867 2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
3868
3869         * tree-vect-stmts.c (vectorizable_load): For SLP without permutation
3870         treat the first load of the node as the first element in its
3871         interleaving chain.
3872         * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if
3873         necessary and possible.
3874         (vect_build_slp_tree): Add new argument.  Allow load groups of any size
3875         in basic blocks.  Keep all the loads for further permutation check.
3876         Use the new argument to determine if there is a permutation.  Update
3877         the recursive calls.
3878         (vect_supported_load_permutation_p): Allow subchains of interleaving
3879         chains in basic block vectorization.
3880         (vect_analyze_slp_instance): Update the call to vect_build_slp_tree.
3881         Check load permutation based on the new parameter.
3882         (vect_schedule_slp_instance): Don't start from the first element in
3883         interleaving chain unless the loads are permuted.
3884
3885 2011-10-15  Jan Hubicka  <jh@suse.cz>
3886
3887         PR target/48668
3888         PR target/50689
3889         * cgraphunit.c (cgraph_expand_function): Expand thunks and alises
3890         after function body.
3891
3892 2011-10-15  Richard Henderson  <rth@redhat.com>
3893
3894         * tree-vect-slp.c: Include langhooks.h.
3895         (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin.
3896         (vect_transform_slp_perm_load): Use can_vec_perm_expr_p.  Simplify