OSDN Git Service

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