OSDN Git Service

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