OSDN Git Service

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