OSDN Git Service

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