OSDN Git Service

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