OSDN Git Service

2011-08-05 Uros Bizjak <ubizjak@gmail.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
4         of "m" for operand 0.  Add type and mode attribute.
5         (*pushxf_nointeger"): Use "<" constraint for operand 0.
6         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
7         constraint instead of "o" for opreand 1.
8         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
9         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
10         operand 0, alternative 4.
11         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
12
13 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
14
15         * config/i386/predicates.md (lea_address_operand): Rename from
16         no_seg_address_operand.
17         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
18         (*lea_1_zext): Ditto.
19         (*lea_2): Ditto.
20         (*lea_2_zext): Ditto.
21
22 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
23
24         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
25         parts.base and parts.index.
26         * config/i386/predicates.md (aligned_operand): Ditto.
27         (cmpxchg8b_pic_memory_operand): Ditto.
28
29 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30
31         * config/soft-fp: Move to ../libgcc.
32         * Makefile.in (SFP_MACHINE): Remove.
33         (libgcc-support): Remove $(SFP_MACHINE) dependency.
34         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
35         * config/arm/t-arm-softfp: Move to
36         ../libgcc/config/arm/t-softfp.
37         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
38         * config/c6x/t-c6x-softfp: Remove.
39         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
40         * config/i386/t-fprules-softfp: Move to
41         ../libgcc/config/t-softfp-tf.
42         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
43         * config/ia64/t-fprules-softfp: Remove.
44         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
45         * config/lm32/t-fprules-softfp: Remove.
46         * config/moxie/sfp-machine.h: Remove.
47         * config/moxie/t-moxie-softfp: Remove.
48         * config/rs6000/darwin-ldouble-format: Move to
49         ../libgcc/config/rs6000/ibm-ldouble-format.
50         * config/rs6000/darwin-ldouble.c: Move to
51         ../libgcc/config/rs6000/ibm-ldouble.c
52         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
53         * config/rs6000/libgcc-ppc64.ver: Likewise.
54         * config/rs6000/sfp-machine.h: Likewise.
55         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
56         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
57         (LIB2FUNCS_EXTRA): Remove.
58         (TARGET_LIBGCC2_CFLAGS): Remove.
59         * config/rs6000/t-aix52: Likewise
60         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
61         $(srcdir)/config/rs6000/darwin-ldouble.c.
62         (SHLIB_MAPFILES): Remove.
63         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
64         $(srcdir)/config/rs6000/darwin-ldouble.c.
65         * config/rs6000/t-fprules-softfp: Move to
66         ../libgcc/config/t-softfp-sfdf.
67         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
68         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
69         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
70         $(srcdir)/config/rs6000/darwin-ldouble.c.
71         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
72         * config/score/t-score-softfp: Remove.
73         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
74         soft-fp/t-softfp from tmake_file.
75         (arm*-*-uclinux*): Likewise.
76         (arm*-*-ecos-elf): Likewise.
77         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
78         (arm*-*-rtems*): Likewise.
79         (arm*-*-elf): Likewise.
80         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
81         tmake_file.
82         (moxie-*-uclinux*): Likewise.
83         (moxie-*-rtems*): Likewise.
84         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
85         tmake_file.
86         (lm32-*-rtems*): Likewise.
87         (lm32-*-uclinux*): Likewise.
88         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
89         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
90         (powerpc-*-linux*, powerpc64-*-linux*): Remove
91         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
92         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
93         tmake_file.
94         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
95         tmake_file.
96         (tic6x-*-uclinux): Likewise.
97         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
98         soft-fp/t-softfp from tmake_file.
99         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
100         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
101         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
102         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
103         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
104
105 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
106
107         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
108         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
109         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
110         TPBIT, TPBIT_FUNCS.
111         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
112         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
113         Remove.
114         * config/arm/t-vxworks: Likewise.
115         * config/arm/t-wince-pe: Likewise.
116         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
117         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
118         * config/bfin/t-bfin-elf: Likewise.
119         * config/bfin/t-bfin-linux: Likewise.
120         * config/bfin/t-bfin-uclinux: Likewise.
121         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
122         Remove.
123         * config/fr30/t-fr30: Likewise.
124         * config/frv/t-frv: Likewise.
125         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
126         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
127         * config/m32c/t-m32c: Likewise.
128         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
129         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
130         * config/mcore/t-mcore: Likewise.
131         * config/mep/t-mep: Likewise.
132         * config/microblaze/t-microblaze: Likewise.
133         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
134         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
135         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
136         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
137         * config/mn10300/t-linux: Remove.
138         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
139         * config/pdp11/t-pdp11: Likewise.
140         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
141         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
142         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
143         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
144         * config/rs6000/t-aix52: Likewise.
145         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
146         $(srcdir)/config/rs6000/ppc64-fp.c.
147         * config/rs6000/t-fprules-fpbit: Remove.
148         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
149         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
150         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
151         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
152         * config/sparc/t-elf: Likewise.
153         * config/sparc/t-leon: Likewise.
154         * config/sparc/t-leon3: Likewise.
155         * config/spu/t-spu-elf: Likewise.
156         (DPBIT_FUNCS): Remove.
157         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
158         * config/v850/t-v850: Likewise.
159         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
160         (avr-*-*): Likewise.
161         (h8300-*-rtems*): Set libgcc_tm_file.
162         (h8300-*-elf*): Likewise.
163         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
164         tmake_file.
165         (powerpc-*-eabisim*): Likewise.
166         (powerpc-*-elf*): Likewise.
167         (powerpc-*-eabialtivec*): Likewise.
168         (powerpc-xilinx-eabi*): Likewise.
169         (powerpc-*-eabi*): Likewise.
170         (powerpc-*-rtems*): Likewise.
171         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
172         (powerpcle-*-elf*): Likewise.
173         (powerpcle-*-eabisim*): Likewise.
174         (powerpcle-*-eabi*): Likewise.
175         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
176         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
177         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
178         Remove.
179
180 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
181
182         * Makefile.in (UNWIND_H): Remove.
183         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
184         ../libgcc/Makefile.in.
185         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
186         (LIBUNWINDDEP): Remove.
187         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
188         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
189         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
190         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
191         Don't copy $(UNWIND_H).
192         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
193         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
194         * aclocal.m4: Regenerate.
195         * configure: Regenerate.
196         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
197         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
198         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
199         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
200         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
201         * config/arm/libunwind.S, config/arm/pr-support.c,
202         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
203         ../libgcc/config/arm.
204         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
205         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
206         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
207         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
208         ($(T)frvend$(objext)): Likewise.
209         * config/ia64/t-glibc (LIB2ADDEH): Remove.
210         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
211         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
212         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
213         ../libgcc/config/ia64.
214         * config/ia64/t-hpux (LIB2ADDEH): Remove.
215         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
216         * config/ia64/t-vms (LIB2ADDEH): Remove.
217         * config/ia64/vms.h (UNW_IVMS_MODE,
218         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
219         * config/picochip/t-picochip (LIB2ADDEH): Remove.
220         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
221         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
222         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
223         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
224         $(srcdir)/../libgcc to refer to unwinder sources.
225         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
226         * config/t-darwin (LIB2ADDEH): Remove.
227         * config/t-freebsd (LIB2ADDEH): Remove.
228         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
229         * config/t-libunwind-elf: Move to ../libgcc/config.
230         * config/t-linux (LIB2ADDEH): Remove.
231         * config/t-sol2 (LIB2ADDEH): Remove.
232         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
233         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
234
235 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
236
237         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
238
239         * doc/invoke.texi: Document core-avx-i.
240
241 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
242
243         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
244
245 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
246
247         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
248         result of multiple results reduction when extracting the final
249         value using scalar code.
250
251 2011-08-05  Richard Guenther  <rguenther@suse.de>
252
253         PR tree-optimization/49984
254         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
255
256 2011-08-05  Richard Guenther  <rguenther@suse.de>
257
258         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
259         return true for constant integer ranges.
260         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
261         BIT_IOR_EXPR handling.
262
263 2011-08-04  Kai Tietz  <ktietz@redhat.com>
264
265         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
266         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
267
268 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
269
270         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
271         pattern def statement, and its access macro.
272         (NUM_PATTERNS): Set to 5.
273         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
274         pattern def statement.
275         (vect_transform_loop): Likewise.
276         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
277         function vect_recog_over_widening_pattern ().
278         (vect_operation_fits_smaller_type): New function.
279         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
280         Likewise.
281         (vect_pattern_recog_1): Move the code that marks pattern
282         statements to vect_mark_pattern_stmts (), and call it.  Update
283         documentation.
284         * tree-vect-stmts.c (vect_supportable_shift): New function.
285         (vect_analyze_stmt): Handle pattern def statement.
286         (new_stmt_vec_info): Initialize pattern def statement.
287
288 2011-08-04  Richard Henderson  <rth@redhat.com>
289
290         PR target/49964
291         * config/i386/i386.c (ix86_expand_call): Don't create nested
292         PARALLELs for TARGET_VZEROUPPER.
293         (ix86_split_call_vzeroupper): Fix extraction of the original call.
294         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
295         recognize nested PARALLELs.
296         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
297         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
298         *sibcall_value_pop_vzeroupper): Likewise.
299
300 2011-08-04  Richard Henderson  <rth@redhat.com>
301
302         PR middle-end/49968
303         * calls.c (expand_call): Use fixup_args_size_notes for
304         emit_stack_restore.
305         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
306         in non-standard modes.
307
308 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
309
310         * gcc.c (self_spec): New variable.
311         (static_specs): Add self_spec.
312         (main): Call do_self_spec on "self_spec" specs after reading
313         user specs files.  Move compare_debug handling right after that.
314
315 2011-08-04  Richard Guenther  <rguenther@suse.de>
316
317         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
318         (value_range_nonnegative_p): New function.
319         (ssa_name_nonnegative_p): Use it.
320         (value_range_constant_singleton): New function.
321         (op_with_constant_singleton_value_range): Use it.
322         (extract_range_from_binary_expr_1): New function, split out from ...
323         (extract_range_from_binary_expr): ... this.  Remove fallback
324         constant folding done here.
325
326 2011-08-04  Richard Guenther  <rguenther@suse.de>
327
328         PR tree-optimization/49806
329         * tree-vrp.c (op_with_boolean_value_range_p): New function.
330         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
331         a new statement for a final conversion to bool.
332
333 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
334
335         * gengtype-state.c: Include "bconfig.h" if
336         GENERATOR_FILE is defined, "config.h" otherwise.
337         * gengtype.c: Likewise.
338         * gengtype-lex.l: Likewise.
339         * gengtype-parse.c: Likewise.
340         * Makefile.in (gengtype-lex.o-warn): New variable.
341         (plugin_resourcesdir): Likewise.
342         (plugin_bindir): Likewise.
343         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
344         (MOSTLYCLEANFILES): Add gengtype$(exeext).
345         (native): Depend on gengtype$(exeext) is $enable_plugin
346         is set to "yes".
347         (gtype.state): Depend on s-gtype. Use temporary file.
348         (gengtype-lex.o): New rule.
349         (gengtype-parse.o): Likewise.
350         (gengtype-state.o): Likewise.
351         (gengtype$(exeext)): Likewise.
352         (install-gengtype): Likewise.
353         (gengtype.o): Likewise.
354         (build/gengtype.o): Depend on version.h.
355         (build/gengtype-state): Depend on double-int.h, version.h,
356         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
357         (install-plugin): Depend on install-gengtype.
358
359 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
360
361         PR middle-end/49905
362         * tree.h (init_attributes): New prototype.
363         * attribs.c (init_attributes): No longer static.
364
365 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
366
367         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
368         maybe_suffix.
369
370 2011-08-03   David Li  <davidxl@google.com>
371
372         * tree-optimize.c (execute_fixup_cfg): Fix up entry
373         outgoing edge counts after inlining.
374
375 2011-08-03   David Li  <davidxl@google.com>
376
377         * profile.c (compute_branch_probabilities): Compute
378         function frequency after profile annotation.
379
380 2011-08-04  Alan Modra  <amodra@gmail.com>
381
382         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
383         use_backchain_to_restore_sp initialisation.
384         (rs6000_legitimate_offset_address_p): Simplify offset test.
385
386 2011-08-03  Richard Henderson  <rth@redhat.com>
387
388         * config/spu/spu.md: Use define_c_enum instead of define_constants.
389         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
390         (UNSPECV_NOP): New.
391
392 2011-08-03  Richard Henderson  <rth@redhat.com>
393
394         PR target/34888
395         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
396
397 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
398
399         PR tree-optimization/49948
400         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
401
402 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
403
404         * config/m32c/m32c.c (class_sizes): Remove.
405         (reduce_class): Change arguments and return type to reg_class_t.
406         Change type cc var to HARD_REG_SET. Change type best var to
407         reg_class_t. Change type best_size var to unsigned int. Remove
408         initialization class_sizes var. Use reg_class_size array instead
409         of class_sizes. Use reg_class_contents array instead
410         of class_contents.
411
412 2011-08-03  Richard Guenther  <rguenther@suse.de>
413
414         PR middle-end/49958
415         * fold-const.c (fold_binary_loc): Only associate
416         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
417         overflow wraps.
418
419 2011-08-03  Alan Modra  <amodra@gmail.com>
420
421         PR rtl-optimization/49941
422         * jump.c (mark_jump_label): Comment.
423         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
424         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
425         (mark_used_flags): Don't mark RETURN.
426
427 2011-08-03  Richard Guenther  <rguenther@suse.de>
428
429         PR tree-optimization/49938
430         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
431         deal with a POLYNOMIAL_CHREC.
432
433 2011-08-03  Revital Eres  <revital.eres@linaro.org>
434
435         * modulo-sched.c (calculate_stage_count,
436         calculate_must_precede_follow, get_sched_window,
437         try_scheduling_node_in_cycle, remove_node_from_ps): Add
438         declaration.
439         (update_node_sched_params, set_must_precede_follow, optimize_sc):
440         New functions.
441         (reset_sched_times): Call update_node_sched_params.
442         (sms_schedule): Call optimize_sc.
443         (get_sched_window): Change function arguments.
444         (sms_schedule_by_order): Update call to get_sched_window.
445         Call set_must_precede_follow.
446         (calculate_stage_count): Add function argument.
447
448 2011-08-02  Richard Henderson  <rth@redhat.com>
449
450         PR target/49864
451         PR target/49879
452         * reg-notes.def (REG_ARGS_SIZE): New.
453         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
454         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
455         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
456         different stack levels.
457         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
458         (maybe_move_args_size_note): New.
459         (combine_stack_adjustments_for_block): Use it.
460         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
461         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
462         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
463         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
464         (cur_cfa): New.
465         (queued_args_size): Remove.
466         (add_cfi_args_size): Assert size is non-negative.
467         (stack_adjust_offset, dwarf2out_args_size): Remove.
468         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
469         (notice_args_size, notice_eh_throw): New.
470         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
471         (dwarf2out_frame_debug_adjust_cfa): Likewise.
472         (dwarf2out_frame_debug_cfa_offset): Likewise.
473         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
474         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
475         (change_cfi_row): Don't emit args_size.
476         (maybe_record_trace_start_abnormal): Split out from ...
477         (maybe_record_trace_start): Here.  Set args_size_undefined.
478         (create_trace_edges): Update to match.
479         (scan_trace): Handle REG_ARGS_SIZE.
480         (connect_traces): Connect args_size between EH insns.
481         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
482         * explow.c (suppress_reg_args_size): New.
483         (adjust_stack_1): Split out from ...
484         (adjust_stack): ... here.
485         (anti_adjust_stack): Use it.
486         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
487         * expr.c (mem_autoinc_base): New.
488         (fixup_args_size_notes): New.
489         (emit_single_push_insn_1): Rename from emit_single_push_insn.
490         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
491         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
492         * reload1.c (reload_as_needed): Likewise.
493         * rtl.h (fixup_args_size_notes): Declare.
494
495 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
496
497         PR bootstrap/49914
498         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
499         of abs.
500         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
501         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
502
503 2011-08-02  Richard Henderson  <rth@redhat.com>
504
505         * config/h8300/h8300.c (push, pop): Return the insn.
506         (h8300_swap_into_er6): Generate correct unwind info.
507         (h8300_swap_out_of_er6): Likewise.
508         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
509         complex cfa expression.
510         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
511
512 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
513
514         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
515
516 2011-08-02  Richard Henderson  <rth@redhat.com>
517
518         PR target/49878
519         * config/h8300/h8300.c (h8300_move_ok): New.
520         * config/h8300/h8300-protos.h: Declare it.
521         * config/h8300/h8300.md (P): New mode iterator.
522         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
523         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
524         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
525         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
526         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
527         and pushqi1_h8300hs_normal; use PRE_MODIFY and
528         register_no_sp_elim_operand.
529         (*pushhi1_h8300hs_<P>): Similarly.
530         (pushqi1, pushhi1, pushhi1_h8300): Remove.
531         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
532
533 2011-08-02  Richard Henderson  <rth@redhat.com>
534
535         PR target/49881
536         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
537
538 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
539
540         * c-parser.c (enum c_parser_prec): New enum, moved from within
541         c_parser_binary_expression.
542         (c_parser_binary_expression): Add PREC argument.  Stop parsing
543         if operator has lower or equal precedence than PREC.
544         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
545         callers.
546         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
547         Adjust c_finish_omp_atomic caller.
548         (c_parser_omp_taskyield): New function.
549         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
550         (c_parser_omp_clause_name): Handle final and mergeable clauses.
551         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
552         functions.
553         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
554         and PRAGMA_OMP_CLAUSE_MERGEABLE.
555         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
556         (c_parser_omp_clause_reduction): Handle min and max.
557         * c-typeck.c (c_finish_omp_clauses): Don't complain about
558         const qualified predetermined vars in firstprivate clause.
559         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
560         Handle MIN_EXPR and MAX_EXPR.
561         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
562         and OMP_CLAUSE_MERGEABLE.
563         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
564         and OMP_ATOMIC_CAPTURE_NEW.
565         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
566         OMP_CLAUSE_MERGEABLE.
567         (omp_clause_code_name): Likewise.
568         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
569         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
570         and OMP_CLAUSE_MERGEABLE.
571         (OMP_CLAUSE_FINAL_EXPR): Define.
572         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
573         OMP_CLAUSE_MERGEABLE.
574         (expand_task_call): Likewise.
575         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
576         (expand_omp_atomic_fetch_op): Handle cases where old or new
577         value is needed afterwards.
578         (expand_omp_atomic): Call expand_omp_atomic_load resp.
579         expand_omp_atomic_store.
580         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
581         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
582         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
583         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
584         * tree-nested.c (convert_nonlocal_omp_clauses,
585         convert_local_omp_clauses): Likewise.
586         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
587         OMP_ATOMIC_CAPTURE_NEW): New.
588         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
589         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
590         New inlines.
591         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
592         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
593         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
594
595 2011-08-02  Kai Tietz  <ktietz@redhat.com>
596
597         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
598         boolean-type.
599         (ssa_forward_propagate_and_combine): Interprete result of
600         forward_propagate_comparison.
601         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
602         boolean-typed operands for comparisons.
603
604 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
605
606         * config/avr/libgcc.S: Gather related function in the
607         same input section.
608         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
609         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
610         references.
611         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
612         __udivmodsi4, __divmodsi4, __prologue_saves__,
613         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
614         __do_copy_data, __do_clear_bss, __do_global_ctors,
615         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
616
617 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
618
619         PR target/47766
620         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
621         (stack_protect_test): The pattern compares ptr_mode value.
622
623 2011-08-02  Alan Modra  <amodra@gmail.com>
624
625         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
626         note for save_LR_around_toc_setup sequence.
627
628 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
629
630         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
631
632 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
633             Joseph Myers  <joseph@codesourcery.com>
634
635         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
636         * hwint.c: Include diagnostic-core.h.
637         (abs_hwi): New.
638         (gcd): Moved here...
639         (pos_mul_hwi): New.
640         (mul_hwi): New.
641         (least_common_multiple): Moved here...
642         * hwint.h (gcd): ... from here.
643         (least_common_multiple): ... from here.
644         (HOST_WIDE_INT_MIN): New.
645         (HOST_WIDE_INT_MAX): New.
646         (abs_hwi): Declared.
647         (gcd): Declared.
648         (pos_mul_hwi): Declared.
649         (mul_hwi): Declared.
650         (least_common_multiple): Declared.
651         * omega.c (check_pos_mul): Removed.
652         (check_mul): Removed.
653         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
654         mul_hwi instead of check_mul.
655
656 2011-08-01  Richard Henderson  <rth@redhat.com>
657
658         PR target/49881
659         * config/avr/avr.h (PUSH_ROUNDING): New.
660         * config/avr/avr.md (pushqi1): Rename from *pushqi.
661         (*pushhi, *pushsi, *pushsf): Remove.
662         (MPUSH): New mode iterator.
663         (push<MPUSH>1): New expander.
664
665 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
666
667         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
668         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
669         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
670         mmix_preferred_output_reload_class): Remove.
671         * config/mmix/mmix.c (mmix_preferred_reload_class,
672         mmix_preferred_output_reload_class): Make static. Change rclass
673         argument and return type to reg_class_t.
674         (TARGET_PREFERRED_RELOAD_CLASS,
675         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
676
677 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
678
679         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
680         handling.
681
682 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
683
684         PR target/47766
685         * config/i386/i386.md (PTR): New.
686         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
687         (stack_protect_test): Likewise.
688         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
689         (stack_tls_protect_set_<mode>): Likewise.
690         (stack_tls_protect_test_<mode>): Likewise.
691
692 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
693
694         PR target/49927
695         * config/i386/i386.c (ix86_address_subreg_operand): New.
696         (ix86_decompose_address): Use ix86_address_subreg_operand.
697         (ix86_legitimate_address_p): Do not assert that subregs satisfy
698         register_no_elim_operand in DImode.
699
700 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
701
702         PR tree-optimization/49926
703         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
704         in a chain doesn't have uses both inside and outside the loop.
705
706 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
707
708         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
709         * config/avr/avr-devices.c (avr_mcu_types): Use it.
710         * config/avr/avr-mcus.def (AVR_MCU): Use it.
711         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
712         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
713         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
714         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
715         to detect if XJMP must not be skipped.
716
717 2011-08-02  Alan Modra  <amodra@gmail.com>
718
719         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
720         Delete.
721         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
722         (rs6000_emit_prologue): Don't prematurely return when
723         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
724         save_toc_in_prologue case.
725         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
726         calls_alloca.
727
728 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
729
730         * config/avr/avr-devices.c: Delete SVN property svn:executable.
731         * config/avr/predicates.md: Ditto.
732         * config/avr/driver-avr.c: Ditto.
733         * config/avr/genopt.sh: Set SVN property svn:executable to *.
734
735 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
736
737         * calls.c (emit_library_call_value_1): Declare size only if
738         BLOCK_REG_PADDING is defined.
739
740 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
741
742         PR target/49547
743         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
744         (x86_64-*-*): Likewise.
745         * config/i386/i386.opt (mlzcnt): New.
746         * config/i386/abmintrin.h: File removed.
747         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
748         * config/i386/lzcntintrin.h: ... here.  New file.
749         (__lzcnt): Rename to ...
750         (__lzcnt32): ... this.
751         * config/i386/bmiintrin.h (head): Update copyright year.
752         (__lzcnt_u16): Removed.
753         (__lzcnt_u32): Likewise.
754         (__lzcnt_u64): Likewise.
755         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
756         is defined, remove abmintrin.h.
757         * config/i386/cpuid.h (bit_LZCNT): New.
758         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
759         LZCNT feature.
760         * config/i386/i386-c.c (ix86_target_macros_internal): Define
761         __LZCNT__ if needed.
762         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
763         (ix86_option_override_internal): Handle LZCNT option.
764         (ix86_valid_target_attribute_inner_p): Likewise.
765         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
766         * config/i386/i386.h (TARGET_LZCNT): New.
767         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
768         * config/i386/i386.md (clz<mode>2): Update insn constraint.
769         (clz<mode>2_lzcnt): Likewise.
770         * doc/invoke.texi: Mention -mlzcnt option.
771         * doc/extend.texi: Likewise.
772
773 2011-08-01  Julian Brown  <julian@codesourcery.com>
774
775         * configure.ac (fixed-point): Add ARM support.
776         * configure: Regenerate.
777         * config/arm/arm.c (arm_fixed_mode_set): New struct.
778         (arm_set_fixed_optab_libfunc): New.
779         (arm_set_fixed_conv_libfunc): New.
780         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
781         ARM-specific names.
782         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
783         return values in SImode.
784         (arm_return_in_msb): Return fixed-point types in the msb.
785         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
786         upwards.
787         (arm_scalar_mode_supported_p): Support fixed-point modes.
788         (arm_vector_mode_supported_p): Support vector fixed-point modes.
789         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
790         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
791         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
792         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
793         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
794         New mode iterators.
795         (qaddsub_suf): New mode attribute.
796         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
797         vector modes.
798         * config/arm/predicates.md (sat_shift_operator): New predicate.
799         * config/arm/arm-fixed.md: New.
800         * config/arm/arm.md: Include arm-fixed.md.
801         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
802
803 2011-08-01  Julian Brown  <julian@codesourcery.com>
804
805         * calls.c (emit_library_call_value_1): Support padding for libcall
806         arguments and return values.
807         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
808         downwards in big-endian mode.
809
810 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
811
812         PR debug/49887
813         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
814         * config/sol2-protos.h: Likewise.
815         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
816         solaris_code_end.
817         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
818         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
819         solaris_file_end.
820         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
821
822 2011-08-01  Julian Brown  <julian@codesourcery.com>
823
824         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
825
826 2011-08-01  Julian Brown  <julian@codesourcery.com>
827
828         * final.c (output_addr_const): Print fixed-point constants as
829         decimal not hex.
830
831 2011-08-01  Richard Guenther  <rguenther@suse.de>
832
833         * stor-layout.c (initialize_sizetypes): Properly sign-extend
834         bitsiztype TYPE_MAX_VALUE.
835
836 2011-08-01  Julian Brown  <julian@codesourcery.com>
837
838         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
839         comparison helpers.
840
841 2011-07-31  Richard Henderson  <rth@redhat.com>
842
843         * config/h8300/crti.asm: Add flags to .section directive.
844         * config/h8300/crtn.asm: Likewise.
845
846 2011-07-31  Richard Henderson  <rth@redhat.com>
847
848         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
849         * tree.c (build_common_tree_nodes): Likewise.
850
851 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
852
853         PR target/49880
854         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
855         (divsi3_i1): Likewise.
856
857 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
858
859         PR tree-optimization/49749
860         * tree-ssa-reassoc.c (get_rank): New forward declaration.
861         (PHI_LOOP_BIAS): New macro.
862         (phi_rank): New function.
863         (loop_carried_phi): Likewise.
864         (propagate_rank): Likewise.
865         (get_rank): Add calls to phi_rank and propagate_rank.
866
867 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
868
869         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
870         of TARGET_64BIT.
871         (PTRDIFF_TYPE): Likewise.
872
873 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
874
875         PR target/49920
876         * config/i386/i386.md (strset): Do not expand strset_singleop
877         when %eax or $edi are fixed.
878         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
879         (*strsetsi_1): Ditto.
880         (*strsethi_1): Ditto.
881         (*strsetqi_1): Ditto.
882         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
883         (*rep_stossi): Ditto.
884         (*rep_stosqi): Ditto.
885         (*strlenqi_1): Ditto.
886         (cmpstrnsi): Also fail when %ecx is fixed.
887         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
888         (*cmpstrnqi_1): Ditto.
889         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
890         (*strmovsi_1): Ditto.
891         (*strmovhi_1): Ditto.
892         (*strmovqi_1): Ditto.
893         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
894         (*rep_movsi): Ditto.
895         (*rep_movqi): Ditto.
896
897 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
898
899         PR target/47908
900         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
901         Disable instruction scheduling for non-ColdFire targets.
902         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
903
904 2011-07-31  Revital Eres  <revital.eres@linaro.org>
905
906         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
907         of anti-dep edge from a branch.
908         (add_cross_iteration_register_deps): Create anti-dep edge from
909         a branch.
910
911 2011-07-31  Revital Eres  <revital.eres@linaro.org>
912
913         * modulo-sched.c: Change comment.
914         (reset_sched_times): Fix print message.
915         (print_partial_schedule): Add print info.
916
917 2011-07-31  Tom de Vries  <tom@codesourcery.com>
918
919         PR middle-end/43513
920         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
921         get_object_alignment and TYPE_ALIGN.
922
923 2011-07-30  Tom de Vries  <tom@codesourcery.com>
924
925         PR middle-end/43513
926         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
927         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
928
929 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
930
931         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
932         <sys/sbd.h>.
933         (cpu_types): New array.
934         (cputype): New function.
935         (host_detect_local_cpu): Only define buf, f if !__sgi__.
936         Use scaninvent instead of /proc/cpuinfo if __sgi__.
937         * config.host: Also use driver-native.o, mips/x-native on
938         mips-sgi-irix*.
939         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
940         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
941         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
942
943 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
944
945         PR middle-end/49897
946         PR middle-end/49898
947         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
948         in nested parallel and outer is a gimple_reg, mark it as addressable
949         and set its bit in task_shared_vars bitmap too.
950
951 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
952
953         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
954
955 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
956
957         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
958         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
959         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
960         AMASK_LOCKPFTCHOK): Define.
961         (host_detect_local_cpu): Remove buf, f, cpu_names.
962         Define cpu_types, implver, amask.
963         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
964         native CPU.
965         * config.host: Also use driver-alpha.o, alpha/x-alpha on
966         alpha*-dec-osf*.
967         * config/alpha/osf5.h [__alpha__ || __alpha]
968         (host_detect_local_cpu): Declare.
969         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
970         (DRIVER_SELF_SPECS): Define.
971
972 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
973
974         PR target/47715
975         * config/i386/i386.md (*load_tp_x32): New.
976         (*load_tp_x32_zext): Ditto.
977         (*add_tp_x32): Ditto.
978         (*add_tp_x32_zext): Ditto.
979         (*load_tp_<mode>): Disable for TARGET_X32 targets.
980         (*add_tp_<mode>): Ditto.
981         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
982         ptr_mode and convert to Pmode if needed.
983
984 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
985
986         PR target/49687
987         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
988         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
989         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
990         Add X to register footprint: Clobber r26/r27.
991
992 2011-07-29  Richard Guenther  <rguenther@suse.de>
993
994         * builtins.c (fold_builtin_signbit): Build the comparison
995         with a proper type.
996
997 2011-07-29  Richard Guenther  <rguenther@suse.de>
998
999         PR tree-optimization/49893
1000         * tree-predcom.c (suitable_reference_p): Volatile references
1001         are not suitable.
1002
1003 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
1004
1005         PR target/49313
1006         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1007         (__ctzsi2): Result for 0 may be undefined.
1008         (__ctzhi2): Result for 0 may be undefined.
1009         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1010         (__popcountsi2): Ditto. And don't clobber r26.
1011         (__popcountdi2): Ditto. And don't clobber r27.
1012         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1013         (parityhi2): New expand.
1014         (paritysi2): New expand.
1015         (popcounthi2): New expand.
1016         (popcountsi2): New expand.
1017         (clzhi2): New expand.
1018         (clzsi2): New expand.
1019         (ctzhi2): New expand.
1020         (ctzsi2): New expand.
1021         (ffshi2): New expand.
1022         (ffssi2): New expand.
1023         (copysignsf3): New insn.
1024         (bswapsi2): New expand.
1025         (*parityhi2.libgcc): New insn.
1026         (*parityqihi2.libgcc): New insn.
1027         (*paritysihi2.libgcc): New insn.
1028         (*popcounthi2.libgcc): New insn.
1029         (*popcountsi2.libgcc): New insn.
1030         (*popcountqi2.libgcc): New insn.
1031         (*popcountqihi2.libgcc): New insn-and-split.
1032         (*clzhi2.libgcc): New insn.
1033         (*clzsihi2.libgcc): New insn.
1034         (*ctzhi2.libgcc): New insn.
1035         (*ctzsihi2.libgcc): New insn.
1036         (*ffshi2.libgcc): New insn.
1037         (*ffssihi2.libgcc): New insn.
1038         (*bswapsi2.libgcc): New insn.
1039
1040 2011-07-29  Richard Guenther  <rguenther@suse.de>
1041
1042         * tree-vrp.c (get_value_range): Only set parameter default
1043         definitions to varying, leave others at undefined.
1044         (extract_range_from_binary_expr): Fix undefined handling.
1045         (vrp_visit_phi_node): Handle merged undefined state.
1046
1047 2011-07-29  Wei Guozhi  <carrot@google.com>
1048
1049         PR rtl-optimization/49799
1050         * combine.c (make_compound_operation): Check if the bit field is valid
1051         before change it to bit field extraction.
1052
1053 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
1054
1055         PR rtl-optimization/49891
1056         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
1057         newly created returnjumps.
1058
1059 2011-07-28  DJ Delorie  <dj@redhat.com>
1060
1061         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
1062         local frame in a naked function, and produce a suitable error for
1063         that specific case.
1064
1065         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
1066         registers to be reloaded in HI classes when the target is HI.
1067
1068 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
1069
1070         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
1071         bound_one, bound_two.
1072
1073 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
1074
1075         PR middle-end/48648
1076         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
1077         CLAST assignments.
1078         (translate_clast): Same.
1079         (translate_clast_assignment): New.
1080
1081 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
1082
1083         PR tree-optimization/49876
1084         * sese.c (rename_uses): Do not return false on gloog_error: set
1085         the new_expr to integer_zero_node and continue code generation.
1086         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
1087
1088 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
1089
1090         PR debug/49846
1091         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
1092         arguments also check if they aren't initialized with a MODE_INT
1093         mode of the same size.
1094
1095 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
1096
1097         * expr.c (get_bit_range): Handle *MEM_REF's.
1098
1099 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
1100
1101         * rtlanal.c (tablejump_p): False for returns.
1102         * reorg.c (first_active_target_insn): New static function.
1103         (find_end_label): Set JUMP_LABEL for a new returnjump.
1104         (optimize_skip, get_jump_flags, rare_destination,
1105         mostly_true_jump, get_branch_condition,
1106         steal_delay_list_from_target, own_thread_p,
1107         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
1108         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
1109         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
1110         * jump.c (delete_related_insns): Likewise.
1111         (jump_to_label_p): New function.
1112         (redirect_target): New static function.
1113         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
1114         (redirect_jump_1): Assert that the new label is nonnull.
1115         (redirect_jump): Likewise.
1116         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
1117         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
1118         exit block.
1119         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
1120         changed.  Ensure that the right label is passed to redirect_jump.
1121         * function.c (emit_return_into_block,
1122         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
1123         ret_rtx in their JUMP_LABEL.
1124         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
1125         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
1126         pass ret_rtx as label.
1127         * cfglayout.c (fixup_reorder_chain): Use
1128         force_nonfallthru_and_redirect rather than force_nonfallthru.
1129         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
1130         * rtl.h (ANY_RETURN_P): New macro.
1131         (jump_to_label_p): Declare.
1132         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
1133         JUMP_LABELs.
1134         (mark_target_live_regs): Likewise.
1135         * basic-block.h (force_nonfallthru_and_redirect): Declare.
1136         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
1137         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
1138         alpha_tablejump_best_label): Remove functions.
1139         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
1140         alpha_tablejump_best_label): Remove declarations.
1141         * config/sh/sh.c (barrier_align, split_branches): Adjust for
1142         ret_rtx in JUMP_LABELs.
1143         * config/arm/arm.c (is_jump_table): Likewise.
1144
1145 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
1146
1147         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
1148         special predicate.  Remove explicit mode checks.
1149
1150 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
1151
1152         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
1153         DW_AT_data_member_location containing just DW_OP_plus_uconst.
1154
1155         PR debug/49871
1156         * dwarf2out.c (size_of_die, value_format, output_die): Use
1157         DW_FORM_udata instead of DW_FORM_data[48] for
1158         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
1159
1160 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1161
1162         * config/i386/i386.md (*tls_global_dynamic_64): Update
1163         length attribute.
1164
1165 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
1166
1167         PR target/47715
1168         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
1169         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
1170         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
1171         (tls_dynamic_gnu2_64): Ditto.
1172         (*tls_dynamic_gnu2_lea_64): Ditto.
1173         (*tls_dynamic_gnu2_call_64): Ditto.
1174         (*tls_dynamic_gnu2_combine_64): Ditto.
1175
1176 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1177
1178         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
1179
1180 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1181
1182         PR target/47364
1183         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
1184
1185 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1186
1187         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
1188         before the core constraints. Adjust attributes.
1189         ("*thumb2_movdf_vfp"): Likewise.
1190
1191 2011-07-28  Kai Tietz  <ktietz@redhat.com>
1192
1193         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
1194         (simplify_truth_ops_using_ranges): Likewise.
1195         (build_assert_expr_for): Likewise.
1196         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
1197         and handle BIT_NOT_EXPR for truth-operation.
1198
1199 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
1200
1201         PR target/49313
1202         Undo r176835 from trunk
1203         2011-07-27  Georg-Johann Lay
1204
1205 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
1206
1207         PR target/49687
1208         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
1209         Add _muluhisi3, _mulshisi3, _usmulhisi3.
1210         * config/avr/libgcc.S (__mulsi3): Rewrite.
1211         (__mulhisi3): Rewrite.
1212         (__umulhisi3): Rewrite.
1213         (__usmulhisi3): New.
1214         (__muluhisi3): New.
1215         (__mulshisi3): New.
1216         (__mulohisi3): New.
1217         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
1218         declare.
1219         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
1220         (pseudo_register_or_const_int_operand): New.
1221         (combine_pseudo_register_operand): New.
1222         (u16_operand): New.
1223         (s16_operand): New.
1224         (o16_operand): New.
1225         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
1226         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
1227         (any_extend, any_extend2): New code iterators.
1228         (extend_prefix): New code attribute.
1229         (mulsi3): Rewrite. Turn insn to expander.
1230         (mulhisi3): Ditto.
1231         (umulhisi3): Ditto.
1232         (usmulhisi3): New expander.
1233         (*mulsi3): New insn-and-split.
1234         (mulu<mode>si3): New insn-and-split.
1235         (muls<mode>si3): New insn-and-split.
1236         (mulohisi3): New insn-and-split.
1237         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
1238         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
1239         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
1240         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
1241         insn-and-split.
1242         (*mulsi3_call): Rewrite.
1243         (*mulhisi3_call): Rewrite.
1244         (*umulhisi3_call): Rewrite.
1245         (*usmulhisi3_call): New insn.
1246         (*muluhisi3_call): New insn.
1247         (*mulshisi3_call): New insn.
1248         (*mulohisi3_call): New insn.
1249         (extendqihi2): Use combine_pseudo_register_operand as predicate
1250         for operand 1.
1251         (extendqisi2): Ditto.
1252         (zero_extendqihi2): Ditto.
1253         (zero_extendqisi2): Ditto.
1254         (zero_extendhisi2): Ditto.
1255         (extendhisi2): Ditto. Don't early-clobber operand 0.
1256
1257 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
1258
1259         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
1260
1261 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
1262
1263         PR tree-optimization/49471
1264         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
1265         iv only when the largest type is unsigned.  Do not call
1266         lang_hooks.types.type_for_size.
1267
1268 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
1269
1270         PR middle-end/45450
1271         * graphite-poly.c (apply_poly_transforms): Disable legality check
1272         after an openscop read.
1273
1274 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
1275
1276         PR middle-end/47691
1277         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
1278         copy_bb_and_scalar_dependences.
1279         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
1280         (graphite_copy_stmts_from_block): Update call to rename_uses.
1281         (copy_bb_and_scalar_dependences): Update call to
1282         graphite_copy_stmts_from_block.
1283         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
1284
1285 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
1286
1287         PR target/49313
1288         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1289         (__ctzsi2): Result for 0 may be undefined.
1290         (__ctzhi2): Result for 0 may be undefined.
1291         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1292         (__popcountsi2): Ditto. And don't clobber r26.
1293         (__popcountdi2): Ditto. And don't clobber r27.
1294         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1295         (parityhi2): New expand.
1296         (paritysi2): New expand.
1297         (popcounthi2): New expand.
1298         (popcountsi2): New expand.
1299         (clzhi2): New expand.
1300         (clzsi2): New expand.
1301         (ctzhi2): New expand.
1302         (ctzsi2): New expand.
1303         (ffshi2): New expand.
1304         (ffssi2): New expand.
1305         (copysignsf3): New insn.
1306         (bswapsi2): New expand.
1307         (*parityhi2.libgcc): New insn.
1308         (*parityqihi2.libgcc): New insn.
1309         (*paritysihi2.libgcc): New insn.
1310         (*popcounthi2.libgcc): New insn.
1311         (*popcountsi2.libgcc): New insn.
1312         (*popcountqi2.libgcc): New insn.
1313         (*popcountqihi2.libgcc): New insn-and-split.
1314         (*clzhi2.libgcc): New insn.
1315         (*clzsihi2.libgcc): New insn.
1316         (*ctzhi2.libgcc): New insn.
1317         (*ctzsihi2.libgcc): New insn.
1318         (*ffshi2.libgcc): New insn.
1319         (*ffssihi2.libgcc): New insn.
1320         (*bswapsi2.libgcc): New insn.
1321
1322 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
1323
1324         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
1325         the mode of symbolic_opreand RTXes.
1326
1327 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
1328
1329         * config/i386/predicates.md (x86_64_movabs_operand): Return false
1330         for pic_32bit_operand RTXes.
1331         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
1332         in DImode.
1333
1334 2011-07-27  Kai Tietz  <ktietz@redhat.com>
1335
1336         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
1337         for 32-bit, too.
1338         (ix86_handle_abi_attribute): Allow function attributes
1339         ms_abi/sysv_abi in 32-bit mode, too.
1340         * doc/extend.texi: Adjust attribute documentation.
1341
1342         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
1343         expression handling.
1344         (and_var_with_comparison_1): Likewise.
1345
1346 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
1347
1348         * params.h (ALLOW_STORE_DATA_RACES): New.
1349         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
1350         * Makefile.in (expr.o): Depend on PARAMS_H.
1351         * machmode.h (get_best_mode): Add argument.
1352         * fold-const.c (optimize_bit_field_compare): Add argument to
1353         get_best_mode.
1354         (fold_truthop): Same.
1355         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
1356         * expr.c (emit_group_store): Same.
1357         (copy_blkmode_from_reg): Same.
1358         (write_complex_part): Same.
1359         (optimize_bitfield_assignment_op): Add argument.
1360         Add argument to get_best_mode.
1361         (get_bit_range): New.
1362         (expand_assignment): Calculate maxbits and pass it down accordingly.
1363         (store_field): New argument.
1364         (expand_expr_real_2): New argument to store_field.  Include params.h.
1365         * expr.h (store_bit_field): New argument.
1366         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
1367         into account maxbits.
1368         * calls.c (store_unaligned_arguments_into_pseudos): New argument
1369         to store_bit_field.
1370         * expmed.c (store_bit_field_1): New argument.  Use it.
1371         (store_bit_field): Same.
1372         (store_fixed_bit_field): Same.
1373         (store_split_bit_field): Same.
1374         (extract_bit_field_1): Pass new argument to get_best_mode.
1375         (extract_bit_field): Same.
1376         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
1377         * doc/invoke.texi: Document parameter allow-store-data-races.
1378
1379 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
1380
1381         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
1382
1383 2011-07-27  Kai Tietz  <ktietz@redhat.com>
1384
1385         * tree-vrp.c (extract_range_from_binary_expr): Remove
1386         TRUTH-binary cases and add new bitwise-cases.
1387         (extract_range_from_assignment): Likewise.
1388         (register_edge_assert_for_1): Likeiwise.
1389         (register_edge_assert_for): Likewise.
1390         (simplify_truth_ops_using_ranges): Likewise.
1391         (simplify_stmt_using_ranges): Likewise.
1392
1393 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
1394
1395         PR target/47372
1396         * config/i386/i386.c (ix86_delegitimize_address): Call
1397         simplify_gen_subreg for PIC with mode of x only if modes of
1398         x and orig_x are different.
1399
1400 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
1401
1402         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
1403         to GC allocated copy of the string.
1404         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
1405         before .debug_line, not after it.
1406
1407 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
1408
1409         PR middle-end/47046
1410         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
1411         evolution_function_is_affine_p on CHREC_RIGHT.
1412
1413 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
1414
1415         * tree-data-ref.c (max_stmt_executions_tree): Do not call
1416         lang_hooks.types.type_for_size.
1417
1418 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
1419
1420         PR middle-end/47653
1421         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
1422         loops using wrapping semantics.
1423
1424 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
1425
1426         PR middle-end/48805
1427         * tree-scalar-evolution.c (instantiate_scev_r): Return
1428         chrec_dont_know for ADDR_EXPR.
1429
1430 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
1431             H.J. Lu  <hongjiu.lu@intel.com>
1432
1433         PR target/47369
1434         PR target/49853
1435         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
1436         if legitimize_tls_address returned operand in wrong mode. Allow
1437         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
1438         if legitimize_pic_address returned operand in wrong mode.
1439
1440 2011-07-26  Martin Jambor  <mjambor@suse.cz>
1441
1442         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
1443         return false for invariants.
1444
1445 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
1446
1447         * config/i386/i386.md (add->lea splitter): Implement using SWI
1448         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
1449         (add->lea zext splitter): Change operand 2 predicate to
1450         x86_64_nonmemory_operand.
1451
1452 2011-07-26  Richard Guenther  <rguenther@suse.de>
1453
1454         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
1455         frequency makes everything hot.
1456
1457 2011-07-26  Richard Guenther  <rguenther@suse.de>
1458
1459         PR tree-optimization/49840
1460         * tree-vrp.c (range_fits_type_p): Properly handle full
1461         double-int precision.
1462
1463 2011-07-26  Martin Jambor  <mjambor@suse.cz>
1464
1465         PR bootstrap/49786
1466         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
1467         counts.
1468         (update_specialized_profile): Likewise.
1469
1470 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
1471             H.J. Lu  <hongjiu.lu@intel.com>
1472
1473         PR target/47381
1474         PR target/49832
1475         PR target/49833
1476         * config/i386/i386.md (i): Change SImode attribute to "e".
1477         (g): Change SImode attribute to "rme".
1478         (di): Change SImode attribute to "nF".
1479         (general_operand): Change SImode attribute to x86_64_general_operand.
1480         (general_szext_operand): Change SImode attribute to
1481         x86_64_szext_general_operand.
1482         (immediate_operand): Change SImode attribute to
1483         x86_64_immediate_operand.
1484         (nonmemory_operand): Change SImode attribute to
1485         x86_64_nonmemory_operand.
1486         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
1487         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
1488         (*lea_1): Use SWI48 mode iterator.
1489         (*lea_1_zext): New insn pattern.
1490         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
1491         (*bt<mode>): Ditto.
1492         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
1493         Update operand constraints.
1494         (addsi_1_zext): Ditto.
1495         (*add<mode>2): Ditto.
1496         (*addsi_3_zext): Ditto.
1497         (*subsi_1_zext): Ditto.
1498         (*subsi_2_zext): Ditto.
1499         (*subsi_3_zext): Ditto.
1500         (*addsi3_carry_zext): Ditto.
1501         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
1502         (*mulsi3_1_zext): Ditto.
1503         (*andsi_1): Ditto.
1504         (*andsi_1_zext): Ditto.
1505         (*andsi_2_zext): Ditto.
1506         (*<any_or:code>si_1_zext): Ditto.
1507         (*<any_or:code>si_2_zext): Ditto.
1508         (*test<mode>_1): Use <general_operand> predicate for operand 1.
1509         (*and<mode>_2): Ditto.
1510         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
1511         (add->lea splitter): Check operand modes in insn constraint.  Extend
1512         operands less than SImode wide to SImode.
1513         (add->lea zext splitter): Do not extend input operands to DImode.
1514         (*lea_general_1): Handle only QImode and HImode operands.
1515         (*lea_general_2): Ditto.
1516         (*lea_general_3): Ditto.
1517         (*lea_general_1_zext): Remove.
1518         (*lea_general_2_zext): Ditto.
1519         (*lea_general_3_zext): Ditto.
1520         (*lea_general_4): Check operand modes in insn constraint.  Extend
1521         operands less than SImode wide to SImode.
1522         (ashift->lea splitter): Ditto.
1523         * config/i386/i386.c (ix86_print_operand_address): Print address
1524         registers with 'q' modifier on 64bit targets.
1525         * config/i386/predicates.md (pic_32bit_opreand): Define as special
1526         predicate.  Reject non-SI and non-DI modes.
1527
1528 2011-07-25  Andrew Pinski  <apinski@cavium.com>
1529
1530         PR tree-opt/49671
1531         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
1532         TREE_THIS_NOTRAP into the inner most MEM_REF.
1533         Always copy TREE_THIS_VOLATILE.
1534         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
1535         arguments are not volatile references.
1536
1537 2011-07-25  Richard Henderson  <rth@redhat.com>
1538
1539         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
1540         * final.c (final_scan_insn): Don't test for it.
1541         (rest_of_clean_state): Likewise.
1542
1543 2011-07-25  Richard Henderson  <rth@redhat.com>
1544
1545         PR debug/49841
1546         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
1547         (emit_frame_save): Likewise.
1548         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
1549         insn onto a dummy blockage insn after the join label.
1550
1551 2011-07-25  Richard Henderson  <rth@redhat.com>
1552
1553         * dwarf2cfi.c (dw_trace_info): Add ID member.
1554         (get_trace_index): Remove.  Change users to use ID member.
1555         (before_next_cfi_note): New.
1556         (connect_traces): Remove unreachable traces before the main loop.
1557         Look across one trace and generate remember/restore_state if needed.
1558
1559 2011-07-25  Richard Henderson  <rth@redhat.com>
1560
1561         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
1562
1563 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
1564
1565         * genattr.c (write_upcase, gen_attr <enum definition writing>):
1566         Move to ...
1567         * genattr-common.c ... here.
1568         (main): Call gen_attr.
1569         * optc-gen.awk: Make generated program include insn-attr-common.h .
1570         * Makefile.in (oprions.o): Depend on insn-attr-common.h
1571
1572 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
1573
1574         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1575         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
1576         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
1577         m32c_print_operand, m32c_print_operand_address): Remove.
1578         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
1579         Change return type to bool. Change argument type to bool.
1580         (m32c_print_operand, m32c_print_operand_address): Make static.
1581         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
1582         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1583
1584 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1585
1586         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
1587         attributes): Document mmap.
1588
1589 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
1590
1591         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1592         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
1593         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
1594         mmix_print_operand, mmix_print_operand_address): Remove.
1595         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
1596         Change return type to bool. Change argument type to bool.
1597         (mmix_print_operand, mmix_print_operand_address): Make static.
1598         (mmix_intval, mmix_output_condition): Change 'x' argument type
1599         to const_rtx.
1600         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
1601         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1602
1603 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
1604
1605         PR target/39386
1606         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
1607         shift counter for x << x and x >> x shifts.
1608
1609 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1610
1611         PR target/47124
1612         * config.gcc: Reject *-*-solaris2 configuration.
1613
1614 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
1615
1616         PR tree-optimization/49809
1617         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
1618         gimple_get_lhs instead of gimple_assign_lhs.
1619
1620 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1621
1622         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
1623
1624 2011-07-25  Richard Guenther  <rguenther@suse.de>
1625
1626         PR tree-optimization/49822
1627         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1628         more.  Make sure to preserve stmts with side-effects.  Properly
1629         handle virtual defs, follow a longer def chain.
1630
1631 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
1632
1633         PR plugins/45348
1634         PR plugins/48425
1635         PR plugins/46577
1636         * Makefile.in: Do not flatten c-family directory when installing
1637         plugin headers.
1638
1639 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
1640
1641         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
1642         original nodes if we are dealing with virtual clones.
1643
1644 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
1645
1646         * common/config/c6x/c6x-common.c: New file.
1647
1648 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
1649
1650         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
1651
1652 2011-07-25  Richard Guenther  <rguenther@suse.de>
1653
1654         PR tree-optimization/49715
1655         * tree-vrp.c: Include expr.h and optabs.h.
1656         (range_fits_type_): New function.
1657         (simplify_float_conversion_using_ranges): Likewise.
1658         (simplify_stmt_using_ranges): Call it.
1659         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
1660         * optabs.c (can_float_p): Export.
1661         * optabs.h (can_float_p): Declare.
1662
1663 2011-07-25  Richard Guenther  <rguenther@suse.de>
1664
1665         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
1666         (get_value_range): For out-of-range SSA names or names created
1667         after propagation return a read-only varying range.
1668         (dump_all_value_ranges): Adjust.
1669         (vrp_initialize): Likewise.
1670         (vrp_finalize): Likewise.
1671
1672 2011-07-24  Richard Henderson  <rth@redhat.com>
1673
1674         PR debug/49831
1675         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
1676         them entirely.
1677
1678 2011-07-24  Richard Henderson  <rth@redhat.com>
1679
1680         PR debug/49825
1681         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
1682         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
1683
1684 2011-07-24  Richard Henderson  <rth@redhat.com>
1685
1686         PR debug/49827
1687         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
1688
1689 2011-07-24  Richard Henderson  <rth@redhat.com>
1690
1691         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
1692         Zero args_size for abnormal edges.  Adjust all callers.
1693
1694 2011-07-24  Richard Henderson  <rth@redhat.com>
1695
1696         PR debug/49825
1697         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
1698
1699 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
1700
1701         PR bootstrap/49835
1702         * collect2.c (demangle_flag): Removed.
1703
1704 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
1705
1706         * configure.ac (demangler_in_ld): Default to yes.
1707         * configure: Regenerated.
1708         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
1709         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
1710         --no-demangle options straight through to ld.  When
1711         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
1712         way that has the intended effect on Windows.
1713
1714 2011-07-23  Richard Henderson  <rth@redhat.com>
1715
1716         * dwarf2cfi.c: Include basic-block.h.
1717         (dw_label_info): Remove.
1718         (trace_work_list, trace_index): New.
1719         (remember_row, emit_cfa_remember): Remove.
1720         (dw_trace_info_hash, dw_trace_info_eq): New.
1721         (get_trace_index, get_trace_info): New.
1722         (save_point_p): New.
1723         (free_cfi_row): Remove.
1724         (add_cfi): Do not emit DW_CFA_remember_state.
1725         (cfa_row_equal_p): New.
1726         (barrier_args_size): Remove.
1727         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
1728         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
1729         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
1730         (dwarf2out_cfi_begin_epilogue): Remove.
1731         (dwarf2out_frame_debug_restore_state): Remove.
1732         (connect_traces, create_pseudo_cfg): New.
1733         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
1734         * Makefile.in (dwarf2cfi.o): Update.
1735
1736 2011-07-23  Richard Henderson  <rth@redhat.com>
1737
1738         * dwarf2cfi.c (dw_trace_info): New.
1739         (dw_label_info): New.
1740         (cie_return_save): New.
1741         (cur_trace): New.
1742         (queued_args_size): Rename from args_size.  Update all users.
1743         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
1744         (def_cfa_1): Use cur_trace instead of cfa_*.
1745         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
1746         (clobbers_queued_reg_save, reg_saved_in): Likewise.
1747         (dwarf2out_frame_debug_expr): Likewise.
1748         (create_cie_data): Split out from ...
1749         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
1750
1751 2011-07-23  Richard Henderson  <rth@redhat.com>
1752
1753         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
1754         Update all users to match.
1755         (execute_dwarf2_frame): Free reg_saved_in_data.
1756
1757 2011-07-23  Richard Henderson  <rth@redhat.com>
1758
1759         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
1760         (queued_reg_saves): Don't GTY.  Change to a VEC.
1761         (queue_reg_save): Update to match.
1762         (dwarf2out_flush_queued_reg_saves): Likewise.
1763         (clobbers_queued_reg_save): Likewise.
1764         (reg_saved_in): Likewise.
1765         (execute_dwarf2_frame): Free queued_reg_saves.
1766
1767 2011-07-23  Richard Henderson  <rth@redhat.com>
1768
1769         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
1770
1771 2011-07-23  Richard Henderson  <rth@redhat.com>
1772
1773         * dwarf2cfi.c (add_cfi_args_size): Split out from...
1774         (dwarf2out_args_size): ... here.
1775         (add_cfi_restore): Split out from ...
1776         (dwarf2out_frame_debug_cfa_restore): ... here.
1777         (def_cfa_0): Split out from ...
1778         (def_cfa_1): ... here.
1779         (cfi_oprnd_equal_p, cfi_equal_p): New.
1780         (change_cfi_row): New.
1781         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
1782         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
1783         (output_cfis): Remove.
1784         * dwarf2out.c (output_fde): Simplify output_cfi loop.
1785         (dwarf2out_switch_text_section): Don't call output_cfis.
1786         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
1787         * dwarf2out.h: Update decls.
1788         (enum dw_val_class): Add dw_val_class_none.
1789
1790 2011-07-23  Richard Henderson  <rth@redhat.com>
1791
1792         * dwarf2cfi.c (update_row_reg_save): New.
1793         (dwarf2out_frame_debug_cfa_expression): Use it.
1794         (dwarf2out_frame_debug_cfa_restore): Likewise.
1795         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
1796
1797 2011-07-23  Richard Henderson  <rth@redhat.com>
1798
1799         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
1800
1801 2011-07-23  Richard Henderson  <rth@redhat.com>
1802
1803         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
1804         (cie_cfi_row): New.
1805         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
1806         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
1807         (cur_row, remember_row): New.
1808         (def_cfa_1): Use cur_row instead of the old_* variables.
1809         (dwarf2out_frame_debug_restore_state): Similarly.
1810         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
1811         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
1812         (dwarf2out_frame_debug_adjust_cfa): Likewise.
1813         (dwarf2out_frame_debug_cfa_offset): Likewise.
1814         (dwarf2out_frame_debug_expr): Likewise.
1815         (execute_dwarf2_frame): Set up cur_row.
1816         * dwarf2out.h (struct cfa_loc): Mark for GTY.
1817
1818 2011-07-23  Richard Henderson  <rth@redhat.com>
1819
1820         * basic-block.h (EDGE_PRESERVE): New.
1821         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
1822         * bb-reorder.c: Include except.h.
1823         (fix_up_crossing_landing_pad): New.
1824         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
1825         landing pads in the right partition.  Duplicate as necessary.
1826         (partition_hot_cold_basic_blocks): Fix up DF info after
1827         duplicating landing pads.
1828         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
1829         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
1830         is set properly.  Validate that EH edges are not CROSSING.
1831         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
1832         (dw2_build_landing_pads): ... here.
1833         (convert_to_eh_region_ranges): Remove code to fixup crossing
1834         landing pads.
1835         * except.h (expand_dw2_landing_pad_for_region): Declare.
1836         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
1837
1838 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
1839
1840         PR target/49816
1841         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
1842
1843 2011-07-22  Jason Merrill  <jason@redhat.com>
1844
1845         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
1846
1847 2011-07-22  Richard Henderson  <rth@redhat.com>
1848
1849         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
1850
1851 2011-07-22  Richard Henderson  <rth@redhat.com>
1852
1853         * jump.c (maybe_propagate_label_ref): Split out of...
1854         (mark_all_labels): ... here.  Do not attempt label_ref
1855         propagation while in cfglayout mode.
1856
1857 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
1858
1859         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
1860         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
1861         (dwarf_attr_name): Handle DW_AT_GNU_macros.
1862         (dwarf2out_define): If the vector is empty and
1863         lineno is 0, emit a dummy entry first.
1864         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
1865         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
1866         optimize_macinfo_range): New functions.
1867         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
1868         mergeable, optimize longer strings using
1869         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
1870         optimize longer sequences of define/undef ops from headers
1871         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
1872         emit a section headers.
1873         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
1874         and macinfo_section_label to DEBUG_MACRO_SECTION
1875         resp. DEBUG_MACRO_SECTION_LABEL.
1876         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
1877         instead of DW_AT_macro_info.
1878
1879         PR other/32998
1880         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
1881         options.
1882         * dwarf2out.c: Include opts.h.
1883         (dchar_p): New typedef.  Define heap VEC for it.
1884         (producer_string): New variable.
1885         (gen_producer_string): New function.
1886         (gen_compile_unit_die): Use it.
1887         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
1888         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
1889         * doc/invoke.texi: Document -grecord-gcc-switches and
1890         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
1891         to -frecord-gcc-switches description.
1892
1893 2011-07-22  Jason Merrill  <jason@redhat.com>
1894
1895         PR c++/30112
1896         * c-decl.c (c_linkage_bindings): Define.
1897
1898 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
1899
1900         PR debug/49815
1901         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
1902
1903 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
1904
1905         * config/i386/i386.c (ix86_option_override_internal): Disallow
1906         MS ABI in x32 mode.
1907         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
1908         only for TARGET_LP64.
1909         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
1910
1911 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
1912
1913         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
1914         avoid warnings when GCC is built with a C++ compiler.
1915
1916 2011-07-22  Martin Jambor  <mjambor@suse.cz>
1917
1918         PR lto/49796
1919         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
1920         if decl node is in another partition, call cgraph_get_node only once.
1921
1922 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
1923
1924         * config.gcc (x86_64-*-linux*): Set
1925         default_gnu_indirect_function to yes.
1926
1927 2011-07-22  Richard Guenther  <rguenther@suse.de>
1928
1929         PR tree-optimization/45819
1930         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
1931         preserve volatile and notrap flags.
1932
1933 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1934             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1935
1936         PR bootstrap/49794
1937         * configure.ac: Test AM_ICONV with CXX.
1938         * configure: Regenerate.
1939         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
1940
1941 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1942
1943         PR bootstrap/49797
1944         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
1945         (set_cloog_options): Use it.
1946
1947 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
1948
1949         PR c++/49756
1950         * gcc.c (main): Call stack_limit_increase (64MB).
1951         * toplev.c (toplev_main): Likewise.
1952
1953 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1954
1955         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
1956         instead of force_reg.
1957
1958 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1959
1960         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
1961         needed and use force_reg after convert.
1962         (ix86_expand_call): Likewise.
1963         (ix86_expand_special_args_builtin): Likewise.
1964         (ix86_expand_builtin): Likewise.
1965
1966 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1967
1968         PR middle-end/47654
1969         PR middle-end/49649
1970         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
1971         in parameter.  Initialize v1 and v2 based on the values returned
1972         by clast_name_to_lb_ub.
1973         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
1974         values.
1975         (type_for_clast_bin): Same.
1976         (type_for_clast_expr): Same.
1977         (type_for_clast_eq): Update calls to type_for_clast_expr.
1978         (type_for_clast_for): Same.
1979         (build_iv_mapping): Same.
1980         * graphite-ppl.h (value_min): New.
1981
1982 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1983
1984         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
1985         types whenever possible.
1986
1987 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1988
1989         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
1990         and ub fields.
1991         (new_clast_name_index): Add lb and ub parameters.
1992         (free_clast_name_index): New.
1993         (clast_name_to_lb_ub): New.
1994         (save_clast_name_index): Add lb and ub parameters.
1995         (compute_bounds_for_param): New.
1996         (type_for_level): Removed.
1997         (type_for_clast_for): Removed level parameter.  Do not call
1998         type_for_level.
1999         (graphite_create_new_loop): Store the lb and ub for the clast_name
2000         of the iterator of the loop that has been generated.
2001         (graphite_create_new_loop_guard): Remove parameter level.
2002         (create_params_index): Store the lb and ub of each parameter.
2003         (gloog): Use free_clast_name_index.  Pass to create_params_index
2004         the current scop.
2005
2006 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2007
2008         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
2009         (max_precision_type): Inline max_signed_precision_type.
2010         (type_for_clast_red): Use max_precision_type.
2011         (type_for_clast_bin): Same.
2012         (type_for_clast_for): Same.
2013
2014 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2015
2016         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
2017         type_for_interval.
2018         (gcc_type_for_value): Renamed type_for_value.
2019         (gcc_type_for_clast_term): Renamed type_for_clast_term.
2020         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
2021         (gcc_type_for_clast_red): Renamed type_for_clast_red.
2022         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
2023         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
2024         (graphite_translate_clast_equation): Update calls.
2025         (compute_type_for_level): Renamed type_for_level.
2026         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
2027         (build_iv_mapping): Update calls.
2028         (graphite_create_new_loop_guard): Same.
2029
2030 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2031
2032         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
2033         comment.
2034
2035 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2036
2037         * graphite-clast-to-gimple.c (struct ivs_params): New.
2038         (clast_name_to_gcc): Use ivs_params to pass around parameters.
2039         (clast_to_gcc_expression): Same.
2040         (clast_to_gcc_expression_red): Same.
2041         (gcc_type_for_clast_term): Same.
2042         (gcc_type_for_clast_expr): Same.
2043         (gcc_type_for_clast_red): Same.
2044         (gcc_type_for_clast_bin): Same.
2045         (gcc_type_for_clast_eq): Same.
2046         (graphite_translate_clast_equation): Same.
2047         (graphite_create_guard_cond_expr): Same.
2048         (graphite_create_new_guard): Same.
2049         (graphite_create_new_loop): Same.
2050         (build_iv_mapping): Same.
2051         (translate_clast_user): Same.
2052         (graphite_create_new_loop_guard): Same.
2053         (translate_clast): Same.
2054         (translate_clast_for_loop): Same.
2055         (translate_clast_for): Same.
2056         (translate_clast_guard): Same.
2057         (initialize_cloog_names): Fix typo.
2058         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
2059
2060 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2061
2062         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
2063         (new_clast_name_index): Add level parameter.
2064         (clast_name_to_level): New.
2065         (save_clast_name_index): Add level parameter.
2066         (newivs_to_depth_to_newiv): Removed.
2067         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
2068         (graphite_create_new_loop): Add level parameter.  Pass level to
2069         save_clast_name_index.
2070         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
2071         (create_params_index): Pass level to save_clast_name_index.
2072
2073 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2074
2075         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
2076         recompute type, lb, and ub.  Get them from...
2077         (graphite_create_new_loop_guard): ...here.  Pass in parameter
2078         pointers to type, lb, and ub.
2079         (translate_clast_for_loop): Update function calls.
2080         (translate_clast_for): Same.
2081
2082 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
2083
2084         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
2085         psct_dynamic_dim.
2086         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
2087         (gcc_type_for_iv_of_clast_loop): Update use of level.
2088         (gloog): Start counting nesting level from 0.
2089         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
2090         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
2091         psct_dynamic_dim on level.
2092
2093 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2094
2095         * config/i386/i386.c (ix86_legitimize_address): Convert to
2096         Pmode if needed.
2097
2098 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
2099
2100         * config/i386/i386.c (function_value_64): Always return pointers
2101         in Pmode.
2102         (ix86_promote_function_mode): New.
2103         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
2104
2105 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2106
2107         PR tree-optimization/49749
2108         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
2109         remove no-longer-used maxrank variable.
2110
2111 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
2112
2113         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
2114
2115 2011-07-21  Jason Merrill  <jason@redhat.com>
2116
2117         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
2118         * recog.h (struct insn_data_d): Check it instead of
2119         HAVE_DESIGNATED_INITIALIZERS.
2120         * genoutput.c (output_insn_data): Likewise.
2121
2122 2011-07-21  Richard Guenther  <rguenther@suse.de>
2123
2124         PR tree-optimization/49770
2125         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
2126         valueized any operand.  Renamed from ...
2127         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
2128         (valueize_shared_reference_ops_from_ref): Return whether we
2129         valueized any operand.
2130         (vn_reference_lookup): Only when we valueized any operand
2131         use the valueized reference for alias analysis.  Do not preserve
2132         the original reference tree in this case.
2133
2134 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
2135
2136         * config/i386/i386.c (ix86_decompose_address): Reject all but
2137         register operands and subregs of DImode hard registers in index.
2138
2139 2011-07-21  Kai Tietz  <ktietz@redhat.com>
2140
2141         * fold-const.c (fold_unary_loc): Preserve indirect
2142         comparison cast to none-boolean type.
2143         * tree-ssa.c (useless_type_conversion_p): Preserve cast
2144         from/to boolean-type.
2145         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
2146         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
2147         * tree-cfg.c (verify_gimple_comparison): Check result
2148         type of comparison expression.
2149         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
2150         of condition result and disallow type-cast sinking into comparison.
2151
2152 2011-07-21  Richard Guenther  <rguenther@suse.de>
2153
2154         * tree-ssa-forwprop.c (combine_conversions): Return whether
2155         we have to run cfg-cleanup.  Properly remove dead stmts.
2156         (ssa_forward_propagate_and_combine): Adjust.
2157
2158 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
2159
2160         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
2161
2162 2011-07-21  Kai Tietz  <ktietz@redhat.com>
2163
2164         * tree-ssa-propagate.c (substitute_and_fold): Use
2165         do_dce flag to deside, if BB's statements are scanned
2166         in last to first, or first to last order.
2167
2168 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
2169
2170         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
2171
2172 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
2173             Uros Bizjak  <ubizjak@gmail.com>
2174             Richard Henderson  <rth@redhat.com>
2175
2176         * config/i386/constraints.md (w): New.
2177
2178         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
2179         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
2180
2181         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
2182         instead of TARGET_64BIT.
2183
2184         * config/i386/i386.md (indirect_jump): Replace
2185         nonimmediate_operand with indirect_branch_operand.
2186         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
2187         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
2188         Convert operand 0 to Pmode for x32 if not PIC.
2189         (*tablejump_1): Replace nonimmediate_operand with
2190         indirect_branch_operand.  Replace constraint "m" with "w".
2191         (*call_vzeroupper): Replace constraint "m" with "w".
2192         (*call): Likewise.
2193         (*call_rex64_ms_sysv_vzeroupper): Likewise.
2194         (*call_rex64_ms_sysv): Likewise.
2195         (*call_value_vzeroupper): Likewise.
2196         (*call_value): Likewise.
2197         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
2198         (*call_value_rex64_ms_sysv): Likewise.
2199         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
2200
2201         * config/i386/predicates.md (indirect_branch_operand): New.
2202         (call_insn_operand): Support x32.
2203
2204 2011-07-20  Michael Eager  <eager@eagercon.com>
2205
2206         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
2207
2208 2011-07-20  Richard Henderson  <rth@redhat.com>
2209
2210         * cfg.c (dump_bb_info): Dump basic_block->flags.
2211         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
2212
2213 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
2214
2215         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2216         of DImode hard registers in index.
2217         (ix86_legitimate_address_p): Allow subregs of base and index to span
2218         more than a word.  Assert that subregs of base and index satisfy
2219         register_no_elim_operand predicates.  Reject addresses where
2220         base and index have different modes.
2221
2222 2011-07-20  Robert Millan  <rmh@gnu.org>
2223
2224         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
2225
2226 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2227
2228         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
2229         removing now-unnecessary assignment.
2230
2231 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2232
2233         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
2234         memory address space to the type's address space.
2235
2236 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
2237
2238         PR target/36467
2239         PR target/49687
2240         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
2241         and expand appropriately if there is a CONST_INT in operand2.
2242         (usmulqihi3): New insn.
2243         (*sumulqihi3): New insn.
2244         (*osmulqihi3): New insn.
2245         (*oumulqihi3): New insn.
2246         (*muluqihi3.uconst): New insn_and_split.
2247         (*muluqihi3.sconst): New insn_and_split.
2248         (*mulsqihi3.sconst): New insn_and_split.
2249         (*mulsqihi3.uconst): New insn_and_split.
2250         (*mulsqihi3.oconst): New insn_and_split.
2251         (*ashifthi3.signx.const): New insn_and_split.
2252         (*ashifthi3.signx.const7): New insn_and_split.
2253         (*ashifthi3.zerox.const): New insn_and_split.
2254         (mulsqihi3): New insn.
2255         (muluqihi3): New insn.
2256         (muloqihi3): New insn.
2257         * config/avr/predicates.md (const_2_to_7_operand): New.
2258         (const_2_to_6_operand): New.
2259         (u8_operand): New.
2260         (s8_operand): New.
2261         (o8_operand): New.
2262         (s9_operand): New.
2263         (register_or_s9_operand): New.
2264
2265 2011-07-20  Kai Tietz  <ktietz@redhat.com>
2266
2267         * builtins.c (fold_builtin_expect): See through the cast
2268         from truthvalue_type_node to long.
2269
2270 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
2271
2272         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
2273         where we can use them from the standard and altivec instruction
2274         sets, instead of always using the 3 operand VSX forms that require
2275         the destination to overlap one of the inputs.
2276         (vsx_fms*): Ditto.
2277         (vsx_fnma*): Ditto.
2278         (vsx_fnms*): Ditto.
2279
2280         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
2281         for DF types.
2282         (fmsdf4_fpr): Ditto.
2283         (nfmadf4_fpr): Ditto.
2284         (nfmsdf4_fpr): Ditto.
2285
2286 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
2287
2288         * genrecog.c (make_insn_sequence): Correct position numbering
2289         when filtering out match_scratch and match_dup.
2290
2291 2011-07-20  Richard Guenther  <rguenther@suse.de>
2292
2293         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2294         against already removed statements.
2295         (forward_propagate_into_comparison): Remove dead defining stmts.
2296         (forward_propagate_into_gimple_cond): Likewise.
2297         (forward_propagate_into_cond): Simplify.
2298         (ssa_forward_propagate_and_combine): Handle changed cfg from
2299         forward_propagate_into_comparison.
2300         * tree-ssa-phiopt.c (conditional_replacement): Use proper
2301         locations for newly built statements.
2302
2303 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
2304
2305         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
2306
2307 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2308
2309         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
2310         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
2311
2312 2011-07-20  Richard Guenther  <rguenther@suse.de>
2313
2314         PR middle-end/18908
2315         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
2316         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
2317         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
2318
2319 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
2320
2321         * config/frv/frv.c (frv_register_move_cost): Define explicitly
2322         costs for subclasses of GR_REGS.
2323
2324 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
2325
2326         PR target/49780
2327         * config/i386/predicates.md (no_seg_addres_operand): No more special.
2328         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2329         of DImode hard registers in base.
2330         (ix86_legitimate_address_p): Allow SImode and DImode base and index
2331         registers.
2332
2333 2011-07-20  Richard Guenther  <rguenther@suse.de>
2334
2335         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
2336         (unify_nodes): Deal with that.
2337         (solve_graph): Likewise.
2338
2339 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
2340
2341         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
2342         canonicalize left operand from ZERO_EXTEND to AND.
2343
2344 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
2345
2346         * target.def (class_max_nregs): New hook.
2347         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
2348         * doc/tm.texi: Regenerate.
2349         * targhooks.c (default_class_max_nregs): New function.
2350         * targhooks.h (default_class_max_nregs): Declare.
2351         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
2352         x_ira_reg_class_min_nregs arrays to unsigned char.
2353         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
2354         hook instead of CLASS_MAX_NREGS macro.
2355         * reginfo.c (restore_register_info): Ditto.
2356         * ira-conflicts.c (process_regs_for_copy): Use
2357         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
2358         Change type rclass and aclass vars to reg_class_t.
2359         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
2360         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
2361         reg_class_t.
2362         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
2363         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
2364
2365         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
2366         * config/i386/i386.c (ix86_class_max_nregs): New function.
2367         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
2368         instead of CLASS_MAX_NREGS macro.
2369         (TARGET_CLASS_MAX_NREGS): Define.
2370         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
2371         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
2372         * config/avr/avr.c (class_max_nregs): Remove function.
2373         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
2374         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
2375         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
2376         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
2377         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
2378         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
2379         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
2380         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
2381         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
2382         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
2383         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
2384         * config/score/score.h (CLASS_MAX_NREGS): Remove.
2385         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
2386         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
2387         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
2388
2389 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
2390
2391         * cif-code.def (OVERWRITABLE): Fix typo and move around.
2392         (TARGET_OPTIMIZATION_MISMATCH): Delete.
2393         (EH_PERSONALITY): Fix typo.
2394         (NON_CALL_EXCEPTIONS): Fix message.
2395         (OPTIMIZATION_MISMATCH): Adjust message.
2396         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
2397
2398 2011-07-19  Ian Lance Taylor  <iant@google.com>
2399
2400         * doc/install.texi (Configuration): Document
2401         --enable-build-poststage1-with-cxx.
2402
2403 2011-07-19  Robert Millan  <rmh@gnu.org>
2404
2405         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
2406         (GLIBC_DYNAMIC_LINKER): Remove.
2407
2408         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
2409         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
2410         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
2411         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
2412         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
2413         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
2414
2415         * config/mips/linux.h: Remove everything except for ...
2416         (GLIBC_DYNAMIC_LINKER): ... this macro.
2417
2418         * config/mips/linux64.h: Remove everything except for ...
2419         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
2420         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
2421         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
2422         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
2423         (GNU_USER_LINK_EMULATIONN32): New macros.
2424
2425         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
2426         Use the new headers.
2427
2428 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
2429
2430         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
2431         Add offset_known_p and size_known_p fields.
2432         (MEM_OFFSET_KNOWN_P): Update accordingly.
2433         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
2434         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
2435         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
2436         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
2437         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
2438         (init_emit_regs): Likewise.
2439
2440 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
2441
2442         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
2443         (MEM_OFFSET): Change from returning an rtx to returning a
2444         HOST_WIDE_INT.
2445         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
2446         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
2447         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
2448         (clear_mem_offset): Declare.
2449         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
2450         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
2451         MEM_OFFSET to get a HOST_WIDE_INT offset.
2452         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
2453         (adjust_offset_for_component_ref): Take a bool "known_p"
2454         parameter and a HOST_WIDE_INT "offset" parameter.
2455         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
2456         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
2457         than an rtx.  Use clear_mem_offset to clear the offset.
2458         * cfgcleanup.c (merge_memattrs): Likewise.
2459         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
2460         * function.c (assign_parm_find_stack_rtl): Likewise.
2461         (assign_parm_setup_stack): Likewise.
2462         * print-rtl.c (print_rtx): Likewise.
2463         * reload.c (find_reloads_subreg_address): Likewise.
2464         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
2465         * var-tracking.c (INT_MEM_OFFSET): Likewise.
2466         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
2467         (get_mem_align_offset): Likewise.
2468         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
2469         (clear_mem_offset): New function.
2470         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
2471         offset rather than an rtx.  Assume both the expressio and offset
2472         are available.
2473         (r10k_needs_protection_p_1): Update accordingly, checking the
2474         expression and offset availability here instead.
2475
2476 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
2477
2478         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
2479         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
2480         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
2481         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
2482         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
2483         (clear_mem_size): Declare.
2484         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
2485         (clear_mem_size): New function.
2486         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
2487         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
2488         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
2489         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
2490         to clear the size.
2491         (nonoverlapping_memrefs_p): Likewise.
2492         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
2493         (expand_builtin_init_trampoline): Likewise.
2494         * calls.c (compute_argument_addresses): Likewise.
2495         * cfgcleanup.c (merge_memattrs): Likewise.
2496         * dce.c (find_call_stack_args): Likewise.
2497         * dse.c (record_store, scan_insn): Likewise.
2498         * dwarf2out.c (dw_sra_loc_expr): Likewise.
2499         * expr.c (emit_block_move_hints): Likewise.
2500         * function.c (assign_parm_find_stack_rtl): Likewise.
2501         * print-rtl.c (print_rtx): Likewise.
2502         * reload.c (find_reloads_subreg_address): Likewise.
2503         * rtlanal.c (may_trap_p_1): Likewise.
2504         * var-tracking.c (track_expr_p): Likewise.
2505         * varasm.c (assemble_trampoline_template): Likewise.
2506         * config/arm/arm.c (arm_print_operand): Likewise.
2507         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
2508         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
2509         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
2510         (expand_constant_setmem_prologue): Likewise.
2511         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
2512         * config/rs6000/rs6000.c (expand_block_move): Likewise.
2513         (adjacent_mem_locations): Likewise.
2514         * config/s390/s390.c (s390_expand_setmem): Likewise.
2515         (s390_expand_insv): Likewise.
2516         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
2517         (*extendqi<mode>2_short_displ): Likewise.
2518         * config/sh/sh.c (expand_block_move): Likewise.
2519         * config/sh/sh.md (extv, extzv): Likewise.
2520
2521 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
2522
2523         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
2524         (mem_attrs_htab_eq): ...here.
2525         (find_mem_attrs): Replace with...
2526         (set_mem_attrs): ...this function.  Take a mem_attrs structure
2527         rather than individual fields.
2528         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
2529         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
2530         (set_mem_size, change_address, adjust_address_1, offset_address)
2531         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
2532         Update accordingly.
2533
2534 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
2535
2536         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
2537         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
2538         Provide a dummy definition of MEM_ADDR_SPACE for generators.
2539         (target_rtl): Add x_mode_mem_attrs.
2540         (mode_mem_attrs): New macro.
2541         (get_mem_attrs): New function.
2542         * emit-rtl.c (get_mem_attrs): Rename to...
2543         (find_mem_attrs): ...this.
2544         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
2545         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
2546         (set_mem_size, change_address, adjust_address_1, offset_address)
2547         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
2548         Update accordingly.
2549         (init_emit_regs): Initialize mode_mem_attrs.
2550
2551 2011-07-19  Richard Guenther  <rguenther@suse.de>
2552
2553         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
2554         TRUTH_*_EXPR handling.
2555         * tree-ssa-operands.c (get_expr_operands): Likewise.
2556         * tree-ssa-pre.c (fully_constant_expression): Likewise.
2557         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
2558         Likewise.
2559         (is_and_or_or): Likewise.
2560         (is_norm_cond_subset_of): Likewise.
2561
2562 2011-07-19  Richard Guenther  <rguenther@suse.de>
2563
2564         * tree.h (fold_build_pointer_plus_loc): New helper function.
2565         (fold_build_pointer_plus_hwi_loc): Likewise.
2566         (fold_build_pointer_plus): Define.
2567         (fold_build_pointer_plus_hwi): Likewise.
2568         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
2569         (fold_builtin_memory_op): Likewise.
2570         (fold_builtin_stpcpy): Likewise.
2571         (fold_builtin_memchr): Likewise.
2572         (fold_builtin_strstr): Likewise.
2573         (fold_builtin_strchr): Likewise.
2574         (fold_builtin_strrchr): Likewise.
2575         (fold_builtin_strpbrk): Likewise.
2576         (fold_builtin_strcat): Likewise.
2577         (expand_builtin_memory_chk): Likewise.
2578         (fold_builtin_memory_chk): Likewise.
2579         * c-typeck.c (build_unary_op): Likewise.
2580         * cgraphunit.c (thunk_adjust): Likewise.
2581         * fold-const.c (build_range_check): Likewise.
2582         (fold_binary_loc): Likewise.
2583         * omp-low.c (extract_omp_for_data): Likewise.
2584         (expand_omp_for_generic): Likewise.
2585         (expand_omp_for_static_nochunk): Likewise.
2586         (expand_omp_for_static_chunk): Likewise.
2587         * tree-affine.c (add_elt_to_tree): Likewise.
2588         * tree-data-ref.c (split_constant_offset_1): Likewise.
2589         * tree-loop-distribution.c (generate_memset_zero): Likewise.
2590         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
2591         * tree-predcom.c (ref_at_iteration): Likewise.
2592         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
2593         (add_to_parts): Likewise.
2594         (create_mem_ref): Likewise.
2595         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
2596         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
2597         (number_of_iterations_le): Likewise.
2598         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
2599         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
2600         (vect_create_addr_base_for_vector_ref): Likewise.
2601         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
2602         (vect_create_cond_for_alias_checks): Likewise.
2603         * tree-vrp.c (extract_range_from_assert): Likewise.
2604         * config/alpha/alpha.c (alpha_va_start): Likewise.
2605         (alpha_gimplify_va_arg_1): Likewise.
2606         * config/i386/i386.c (ix86_va_start): Likewise.
2607         (ix86_gimplify_va_arg): Likewise.
2608         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2609         * config/mep/mep.c (mep_expand_va_start): Likewise.
2610         (mep_gimplify_va_arg_expr): Likewise.
2611         * config/mips/mips.c (mips_va_start): Likewise.
2612         (mips_gimplify_va_arg_expr): Likewise.
2613         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2614         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
2615         (rs6000_gimplify_va_arg): Likewise.
2616         * config/s390/s390.c (s390_va_start): Likewise.
2617         (s390_gimplify_va_arg): Likewise.
2618         * config/sh/sh.c (sh_va_start): Likewise.
2619         (sh_gimplify_va_arg_expr): Likewise.
2620         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
2621         * config/spu/spu.c (spu_va_start): Likewise.
2622         (spu_gimplify_va_arg_expr): Likewise.
2623         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2624         Likewise.
2625         (xstormy16_gimplify_va_arg_expr): Likewise.
2626         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
2627         (xtensa_gimplify_va_arg_expr): Likewise.
2628
2629 2011-07-19  Richard Guenther  <rguenther@suse.de>
2630
2631         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
2632         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
2633         handling.
2634
2635         PR middle-end/18908
2636         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
2637         result of BIT_*_EXPR to bitfield precision.
2638
2639 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
2640
2641         PR tree-optimization/49742
2642         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
2643         as a potential write.
2644
2645 2011-07-19  Richard Guenther  <rguenther@suse.de>
2646
2647         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
2648         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
2649         (forward_propagate_comparison): Simplify, remove obsolete code.
2650
2651 2011-07-19  Richard Guenther  <rguenther@suse.de>
2652
2653         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
2654         BIT_XOR_EXPR, same as the RTL expander does.
2655         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
2656         (verify_gimple_assign_unary): Likewise.
2657         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
2658         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
2659         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
2660
2661 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
2662
2663         PR tree-optimization/49768
2664         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
2665         if offset is smaller than bitoffset, but offset+size is bigger
2666         than bitoffset.
2667
2668 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
2669
2670         PR tree-optimization/49771
2671         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
2672         zero step, set segment length to the size of the data-ref's type.
2673
2674 2011-07-18  Martin Jambor  <mjambor@suse.cz>
2675
2676         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
2677         comments.
2678         (ipcp_values_pool): Declare.
2679         (ipcp_sources_pool): Likewise.
2680         (ipcp_lattice): Changed to forward declaration.
2681         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
2682         cannot_devirtualize.
2683         (ipa_node_params): New fields descriptors, lattices, known_vals,
2684         clone_for_all_contexts and node dead, removed fields params and
2685         count_scale.
2686         (ipa_set_param_count): Removed.
2687         (ipa_get_param_count): Made to work with descriptors vector.
2688         (ipa_get_param): Updated.
2689         (ipa_param_cannot_devirtualize_p): Removed.
2690         (ipa_param_types_vec_empty): Likewise.
2691         (ipa_set_param_used): New function.
2692         (ipa_get_param_used): Updated to use descriptors vector.
2693         (ipa_func_list): Removed.
2694         (ipa_init_func_list): Removed declaration.
2695         (ipa_push_func_to_list_1): Likewise.
2696         (ipa_pop_func_from_list): Likewise.
2697         (ipa_push_func_to_list): Removed.
2698         (ipa_lattice_from_jfunc): Remove declaration.
2699         (ipa_get_jf_pass_through_result): Declare.
2700         (ipa_get_jf_ancestor_result): Likewise.
2701         (ipa_value_from_jfunc): Likewise.
2702         (ipa_get_lattice): Update.
2703         (ipa_lat_is_single_const): New function.
2704         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
2705         (ipa_init_func_list): Likewise.
2706         (ipa_pop_func_from_list): Likewise.
2707         (ipa_get_param_decl_index): Fix coding style.
2708         (count_formal_params): Removed.
2709         (count_formal_params_1): Renamed to count_formal_params.
2710         (ipa_populate_param_decls): Update to use descriptors vector.
2711         (ipa_initialize_node_params): Likewise.
2712         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
2713         (ipa_analyze_params_uses): Likewise.
2714         (ipa_free_node_params_substructures): Likewise and free also lattices
2715         and known values.
2716         (duplicate_array): Removed.
2717         (ipa_edge_duplication_hook): Add the new edge to the list of edge
2718         clones.
2719         (ipa_node_duplication_hook): Update to use new lattices.
2720         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
2721         (ipa_free_all_structures_after_iinln): Likewise.
2722         (ipa_write_node_info): Update to use new lattices.
2723         (ipa_read_node_info): Likewise.
2724         (ipa_get_jf_pass_through_result): New function.
2725         (ipa_get_jf_ancestor_result): Likewise.
2726         (ipa_value_from_jfunc): Likewise.
2727         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
2728         * ipa-cp.c: Reimplemented.
2729         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
2730         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
2731         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
2732         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
2733         * doc/invoke.texi (devirt-type-list-size): Removed description.
2734         (ipa-cp-value-list-size): Added description.
2735
2736 2011-07-18  Richard Henderson  <rth@redhat.com>
2737
2738         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
2739         before calling create_basic_block.
2740
2741 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
2742
2743         PR middle-end/49675
2744         * tree.c (build_common_builtin_nodes): Register
2745         __builtin_return_address, __cyg_profile_func_enter
2746         and __cyg_profile_func_exit.
2747
2748 2011-07-18  Richard Henderson  <rth@redhat.com>
2749
2750         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
2751         (add_labels_and_missing_jumps): ... here.
2752         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
2753
2754 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
2755
2756         PR target/47744
2757         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2758         of DImode hard registers in PLUS address chains.
2759
2760 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2761
2762         PR bootstrap/49769
2763         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
2764         (alpha*-*-freebsd*): Likewise.
2765         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2766         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
2767         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
2768         crtprec80.o, crtfastmath.o to extra_parts for all targets.
2769         (ia64*-*-elf*): Remove extra_parts.
2770         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
2771         (sparc64-*-linux*): Likewise.
2772         (sparc64-*-freebsd*): Likewise.
2773
2774         Revert:
2775         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
2776         (ia64*-*-linux*): Likewise.
2777         (mips64*-*-linux*): Likewise.
2778         (mips*-*-linux*): Likewise.
2779
2780 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
2781
2782         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
2783
2784 2011-07-18  Richard Guenther  <rguenther@suse.de>
2785
2786         * gimplify.c (gimplify_expr): Use input_location, not saved_location
2787         when building new trees.
2788
2789 2011-07-18  Richard Guenther  <rguenther@suse.de>
2790
2791         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
2792         expansion result to bitfield precision if required.
2793
2794 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2795
2796         * config.gcc (i[3456x]86-*-netware*): Remove.
2797
2798         * gthr-nks.h: Remove.
2799         * configure.ac (enable_threads): Remove nks.
2800         * configure: Regenerate.
2801
2802         * config/i386/i386.c (ix86_encode_section_info): Remove netware
2803         reference.
2804         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
2805         <netware.h> reference.
2806
2807         * config/i386/netware-libgcc.c,
2808         gcc/config/i386/netware-libgcc.def,
2809         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
2810         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
2811         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
2812         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
2813
2814         * doc/extend.texi (Function Attributes,
2815         callee_pop_aggregate_return): Remove i?86-netware reference.
2816         * doc/install.texi (Configuration, --enable-threads): Remove nks.
2817
2818 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2819
2820         PR target/49746
2821         Revert:
2822         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2823
2824         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
2825         patterns.
2826
2827 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
2828
2829         PR middle-end/49732
2830         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
2831
2832 2011-07-16  Matthias Klose  <doko@ubuntu.com>
2833
2834         * doc/install.texi: Document --enable-static-libjava.
2835
2836 2011-07-15  Richard Henderson  <rth@redhat.com>
2837
2838         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2839         Replace all three arguments by returning a VEC of edges.
2840         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
2841         pointers and counts.
2842         (fix_edges_for_rarely_executed_code): Merge ...
2843         (rest_of_handle_partition_blocks): ... into...
2844         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
2845         any work was performed.
2846         (pass_partition_blocks): Clear todo_flags_finish.
2847
2848 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
2849             Jakub Jelinek  <jakub@redhat.com>
2850             Jonathan Wakely  <jwakely.gcc@gmail.com>
2851
2852         PR libstdc++/49745
2853         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
2854         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
2855
2856 2011-07-15  Jason Merrill  <jason@redhat.com>
2857
2858         PR testsuite/49741
2859         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
2860         rather than --tool_opts.
2861
2862 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
2863
2864         * doc/plugins.texi (Building GCC plugins): gengtype needs its
2865         corresponding gtype.state.
2866
2867 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2868
2869         PR target/49723
2870         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
2871
2872 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
2873
2874         PR target/48220
2875         * doc/md.texi (Standard Names): Document window_save.
2876         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
2877         expand_debug_expr and expand_debug_source_expr.  If the target has
2878         a window_save instruction, adjust the ENTRY_VALUE_EXP.
2879         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
2880         SSA_NAME_VAR is a parameter.
2881         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
2882         * var-tracking.c (parm_reg_t): New type and associated vector type.
2883         (windowed_parm_regs): New variable.
2884         (adjust_insn): If the target has a window_save instruction and this
2885         is the instruction, make its effect on parameter registers explicit.
2886         (next_non_note_insn_var_location): New function.
2887         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
2888         (vt_add_function_parameter): If the target has a window_save insn,
2889         adjust the incoming RTL and record that in windowed_parm_regs.
2890         (vt_finalize): Free windowed_parm_regs.
2891
2892 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
2893
2894         * doc/invoke.texi (C6X Options): New section.
2895         * doc/md.texi (TI C6X family): New section.
2896         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
2897         tic6x-*-uclinux.
2898         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
2899         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
2900         Provide C6X definitions.
2901         * config/c6x/c6x.md: New file.
2902         * config/c6x/constraints.md: New file.
2903         * config/c6x/predicates.md: New file.
2904         * config/c6x/c6x-sched.md.in: New file.
2905         * config/c6x/c6x-sched.md: New file.
2906         * config/c6x/gensched.sh: New file.
2907         * config/c6x/c6x-mult.md.in: New file.
2908         * config/c6x/genmult.sh: New file.
2909         * config/c6x/c6x-mult.md: New file.
2910         * config/c6x/sync.md: New file.
2911         * config/c6x/c6x-protos.h: New file.
2912         * config/c6x/sfp-machine.h: New file.
2913         * config/c6x/c6x.c: New file.
2914         * config/c6x/c6x.h: New file.
2915         * config/c6x/crti.s: New file.
2916         * config/c6x/crtn.s: New file.
2917         * config/c6x/lib1funcs.asm: New file.
2918         * config/c6x/c6x-modes.def: New file.
2919         * config/c6x/genopt.sh: New file.
2920         * config/c6x/c6x.opt: New file.
2921         * config/c6x/c6x-tables.opt: New file.
2922         * config/c6x/c6x-opts.h: New file.
2923         * config/c6x/c6x-isas.def: New file.
2924         * config/c6x/elf.h: New file.
2925         * config/c6x/elf-common.h: New file.
2926         * config/c6x/uclinux-elf.h: New file.
2927         * config/c6x/t-c6x: New file.
2928         * config/c6x/t-c6x-elf: New file.
2929         * config/c6x/t-c6x-uclinux: New file.
2930         * config/c6x/t-c6x-softfp: New file.
2931         * config/c6x/gtd.c: New file.
2932         * config/c6x/gtf.c: New file.
2933         * config/c6x/ltd.c: New file.
2934         * config/c6x/ltf.c: New file.
2935         * config/c6x/ged.c: New file.
2936         * config/c6x/gef.c: New file.
2937         * config/c6x/led.c: New file.
2938         * config/c6x/lef.c: New file.
2939         * config/c6x/eqd.c: New file.
2940         * config/c6x/eqf.c: New file.
2941         * config/c6x/libgcc-c6xeabi.ver: New file.
2942
2943         Revert
2944         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2945         PR rtl-optimization/11320
2946         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
2947         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
2948         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
2949         current_sched_info->compute_jump_reg_dependencies. Record which
2950         registers are used and which registers are set by the jump.
2951         Clear deps->reg_conditional_sets after a barrier.
2952         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
2953         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
2954         (init_deps): Initialize reg_conditional_sets.
2955         (free_deps): Clear reg_conditional_sets.
2956         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
2957         Mark registers live on entry of the fallthrough block and conditionally
2958         set as set by the jump. Mark registers live on entry of non-fallthrough
2959         blocks as used by the jump.
2960         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
2961         Mark new parameters as unused.
2962
2963 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
2964
2965         PR tree-opt/49309
2966         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
2967         Use fold_build2_loc instead of build2.
2968         Use the correct type for the new tree.
2969
2970 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2971
2972         PR rtl-optimization/11320
2973         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
2974         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
2975
2976 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
2977
2978         PR target/49487
2979         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
2980         of REG.
2981         (*rotw<mode>): Use const_int_operand for operand2.
2982         Use match_scatch for operand3.
2983         (*rotb<mode>): Ditto
2984         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
2985
2986 2011-07-14  Richard Guenther  <rguenther@suse.de>
2987
2988         PR tree-optimization/49651
2989         * tree-ssa-structalias.c (get_constraint_for_1): Properly
2990         handle dereferences with subvariables.
2991
2992 2011-07-14  Richard Guenther  <rguenther@suse.de>
2993
2994         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
2995         (fold_stmt_1): Do it here directly on gimple and as a first thing.
2996
2997 2011-07-14  Richard Guenther  <rguenther@suse.de>
2998
2999         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
3000         not bool_var when folding bool_var != 1 or bool_var == 0.
3001
3002 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
3003
3004         * haifa-sched.c (schedule_insns): Remove outdated comment.
3005         (schedule_block): When computing a known value for TODO_SPEC,
3006         just set it rather than using logical operations.
3007         (try_ready): Likewise.  Use a local variable rather than a
3008         pointer to TODO_SPEC.  Reorder an if statement to move the
3009         easy case to the then block.
3010         * sched-deps.c (dep_spec_p): New static function.
3011         (update_dep): Use it to decide whether to call
3012         change_spec_dep_to_hard.
3013         (get_back_and_forw_lists): Use it.
3014         (sd_resolve_dep): Likewise.
3015         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
3016         (haifa_note_mem_dep): Likewise.
3017         (check_dep): Likewise.
3018         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
3019         (sched_free_deps): Free in two passes.
3020
3021 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
3022
3023         PR middle-end/49736
3024         * expr.c (all_zeros_p): Undo bogus part of last change.
3025
3026 2011-07-14  Matthias Klose <doko@ubuntu.com>
3027
3028         * doc/extend.texi (optimize attribute): Fix typo.
3029
3030 2011-07-14  Richard Guenther  <rguenther@suse.de>
3031
3032         * gimplify.c (gimplify_expr): Only do required conversions.
3033
3034 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
3035
3036         PR target/43746
3037         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
3038         i.e. use default_elf_select_section.
3039         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
3040         (READONLY_DATA_SECTION_ASM_OP): Remove.
3041         (TARGET_ASM_NAMED_SECTION): Move from here...
3042         * config/avr/avr.c: ...to here.
3043         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
3044         (avr_asm_named_section): Make static.
3045
3046 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3047
3048         PR bootstrap/49739
3049         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
3050         and crtfastmath.o for Linux/x86.
3051
3052 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
3053
3054         * haifa-sched.c: Include "hashtab.h"
3055         (sched_no_dce): New global variable.
3056         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
3057         SHADOW_P): New macros.
3058         (last_clock_var, cycle_issued_insns): Move declarations.
3059         (must_backtrack): New static variable.
3060         (struct delay_pair): New structure.
3061         (delay_htab, delay_htab_i2): New static variables.
3062         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
3063         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
3064         functions.
3065         (dep_cost_1): If delay pairs exist, try to look up the insns and
3066         use the correct pair delay if we find them.
3067         (rank-for_schedule): Tweak priority for insns that must be scheduled
3068         soon to avoid backtracking.
3069         (queue_insn): Detect conditions which force backtracking.
3070         (ready_add): Likewise.
3071         (struct sched_block_state): Add member shadows_only_p.
3072         (struct haifa_save_data): New structure.
3073         (backtrack_queue): New static variable.
3074         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
3075         unschedule_insns_until, restore_last_backtrack_point,
3076         free_topmost_backtrack_point, free_backtrack_queue,
3077         estimate_insn_tick, estimate_shadow_tick): New functions.
3078         (prune_ready_list): New arg shadows_only_p.  All callers changed.
3079         If true, remove everything that isn't SHADOW_P.  Look up delay
3080         pairs and estimate ticks to avoid scheduling the first insn too early.
3081         (verify_shadows): New function.
3082         (schedule_block): Add machinery to enable backtracking.
3083         (sched_init): Take sched_no_dce into account when setting
3084         DF_LR_RUN_DCE.
3085         (free_delay_pairs): New function.
3086         (init_h_i_d): Initialize INSN_EXACT_TICK.
3087         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
3088         * sched-deps.c (sd_unresolve_dep): New function.
3089         * sched-int. (struct haifa_sched_info): New fields save_state
3090         and restore_state.
3091         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
3092         feeds_backtrack_insn and shadow_p.
3093         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
3094         (sched_no_dce): Declare variable.
3095         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
3096         sd_unresolve_dep): Declare functions.
3097         * modulo-sched.c (sms_sched_info): Clear the two new fields.
3098         * sched-rgn.c (rgn_const_sched_info): Likewise.
3099         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
3100         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
3101         (ebb_sched_info): Add them for the two new fields.
3102         (add_deps_for_risky_insns): Call add_delay_dependencies.
3103
3104 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
3105
3106         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
3107         Rename -mr11.
3108         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
3109         (rs6000_call_indirect_aix): Ditto.
3110         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
3111         (call_indirect_aix<ptrsize>_internal): Ditto.
3112         (call_indirect_aix<ptrsize>_nor11): Ditto.
3113         (call_indirect_aix<ptrsize>_internal2): Ditto.
3114         (call_value_indirect_aix<ptrsize>): Ditto.
3115         (call_value_indirect_aix<ptrsize>_internal): Ditto.
3116         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3117         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3118         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
3119
3120 2011-07-13  Jason Merrill  <jason@redhat.com>
3121
3122         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
3123
3124 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3125
3126         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
3127         * config/spu/spu.md ("clrsb<mode>2"): New expander.
3128
3129 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
3130
3131         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
3132         * configure: Regenerate.
3133
3134 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3135
3136         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
3137         (asm_file_start): Remove.
3138         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
3139         free_bb_for_insn around code that modifies insns before
3140         restarting df analysis.
3141
3142 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3143
3144         PR target/49541
3145         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
3146         (LINK_SPEC): ... here.
3147
3148 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
3149
3150         * haifa-sched.c (struct sched_block_state): New.
3151         (schedule_block): Move some local variables into such a structure.
3152
3153 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3154
3155         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
3156         * config/i386/t-crtpc: Remove.
3157         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
3158         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
3159         tmake_file.
3160         (x86_64-*-darwin*): Likewise.
3161         (i[34567]86-*-linux*): Likewise.
3162         (x86_64-*-linux*): Likewise.
3163
3164         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
3165         Handle -mpc32, -mpc64, -mpc80.
3166
3167 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3168
3169         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
3170         * config/alpha/t-crtfm: Remove.
3171         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
3172         * config/i386/t-crtfm: Remove.
3173         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
3174         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
3175         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
3176         * config/sparc/t-crtfm: Remove.
3177
3178         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
3179         (alpha*-*-freebsd*): Likewise.
3180         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
3181         (x86_64-*-darwin*): Likewise.
3182         (i[34567]86-*-linux*): Likewise.
3183         (x86_64-*-linux*): Likewise.
3184         (x86_64-*-mingw*): Likewise.
3185         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
3186         (ia64*-*-freebsd*): Likewise.
3187         (ia64*-*-linux*): Likewise.
3188         (mips64*-*-linux*): Likewise.
3189         (mips*-*-linux*): Likewise.
3190         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
3191         (sparc64-*-linux*): Likewise.
3192         (sparc64-*-freebsd*): Likewise.
3193
3194 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3195
3196         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
3197         * config/darwin-crt3.c: Move to ../libgcc/config.
3198         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
3199         ($(T)crt3$(objext)): Remove.
3200         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
3201         ($(T)crt2$(objext)): Remove.
3202         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
3203         (powerpc64-*-darwin*): Likewise.
3204
3205 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
3206
3207         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
3208
3209         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
3210         (addsi_1_zext): This.
3211
3212 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
3213
3214         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
3215         * doc/tm.texi: Regenerate.
3216         * target.def (mergeable_rodata_prefix): New defhookpod.
3217         * varasm.c (mergeable_string_section, mergeable_constant_section):
3218         Use it. Allocate name with alloca.
3219
3220 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
3221
3222         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
3223
3224 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
3225
3226         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
3227         overlap check.
3228
3229 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
3230
3231         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
3232         (count_type_elements): Delete.
3233         (complete_ctor_at_level_p): Declare.
3234         * expr.c (flexible_array_member_p): New function, split out from...
3235         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
3236         parameter with for_ctor_p.  When for_ctor_p is true, return the
3237         number of elements that should appear in the top-level constructor,
3238         otherwise return an estimate of the number of scalars.
3239         (categorize_ctor_elements): Replace p_must_clear with p_complete.
3240         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
3241         (complete_ctor_at_level_p): New function, borrowing union logic
3242         from old categorize_ctor_elements_1.
3243         (mostly_zeros_p): Return true if the constructor is not complete.
3244         (all_zeros_p): Update call to categorize_ctor_elements.
3245         * gimplify.c (gimplify_init_constructor): Update call to
3246         categorize_ctor_elements.  Don't call count_type_elements.
3247         Unconditionally prevent clearing for variable-sized types,
3248         otherwise rely on categorize_ctor_elements to detect
3249         incomplete initializers.
3250
3251 2011-07-13  Richard Guenther  <rguenther@suse.de>
3252
3253         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
3254         the final type is integral.
3255
3256 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
3257
3258         * sched-int.h (struct _dep): Add member cost.
3259         (DEP_COST, UNKNOWN_DEP_COST): New macros.
3260         * sched-deps.c (init_dep_1): Initialize DEP_COST.
3261         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
3262         (sched_change_pattern): Reset it for dependent insns.
3263
3264 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3265
3266         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
3267         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
3268         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
3269         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
3270         (CRT0_S, MCRT0_S): Remove.
3271         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
3272         Remove.
3273         (s-crt0): Remove.
3274         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
3275
3276 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
3277
3278         * cse.c (insert_with_costs): Put semi-colon after empty loop body
3279         on the next line.
3280         * emit-rtl.c (push_to_sequence): Likewise.
3281         * haifa-sched.c (max_issue): Likewise.
3282         * matrix-reorg.c (add_allocation_site): Likewise.
3283         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
3284         * reload.c (alternative_allows_const_pool_ref): Likewise.
3285         * sched-rgn.c (rgn_add_block): Likewise.
3286         (rgn_fix_recovery_cfg): Likewise.
3287         * tree.c (attribute_list_contained): Likewise.
3288
3289 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
3290
3291         * config/i386/i386.c: Tidy processor feature bitmasks.
3292         (m_P4_NOCONA): New.
3293
3294 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
3295
3296         PR rtl-opt/49474
3297         * cprop.c (find_implicit_sets): Correct the condition.
3298
3299 2011-07-12  Richard Henderson  <rth@redhat.com>
3300
3301         PR target/49713
3302         * dwarf2out.h (dwarf_frame_regnum): Remove.
3303         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
3304         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
3305         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
3306         (execute_dwarf2_frame): Initialize them.
3307         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
3308         users of the macros with the variables.
3309         (expand_builtin_dwarf_sp_column): Revert last change.
3310         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
3311         result of DWARF_FRAME_REGNUM into a local variable.
3312
3313 2011-07-12  Richard Henderson  <rth@redhat.com>
3314
3315         PR target/49714
3316         * config/i386/i386.c (x86_output_mi_thunk): Use
3317         machopic_indirect_call_target instead of machopic_indirection_name
3318         directly.
3319
3320 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
3321             Eric Botcazou  <ebotcazou@adacore.com>
3322
3323         * prefix.h: Wrap up in extern "C" block.
3324
3325 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
3326
3327         AMD bdver2 Enablement
3328         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
3329         (case ${target}): Add bdver2.
3330         * config/i386/driver-i386.c (host_detect_local_cpu): Let
3331         -march=native recognize bdver2 processors.
3332         * config/i386/i386-c.c (ix86_target_macros_internal): Add
3333         bdver2 def_and_undef
3334         * config/i386/i386.c (struct processor_costs bdver2_cost): New
3335         bdver2 cost table.
3336         (m_BDVER2): New definition.
3337         (m_AMD_MULTIPLE): Includes m_BDVER2.
3338         (initial_ix86_tune_features): Add bdver2 tuning.
3339         (processor_target_table): Add bdver2 entry.
3340         (static const char *const cpu_names): Add bdver2 entry.
3341         (ix86_option_override_internal): Add bdver2 instruction sets.
3342         (ix86_issue_rate): Add bdver2.
3343         (ix86_adjust_cost): Add bdver2.
3344         (has_dispatch): Add bdver2.
3345         * config/i386/i386.h (TARGET_BDVER2): New definition.
3346         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
3347         (enum processor_type): Add PROCESSOR_BDVER2.
3348         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
3349         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
3350         description.
3351
3352 2011-07-12  Richard Henderson  <rth@redhat.com>
3353
3354         PR target/49714
3355         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
3356         destination address in memory on some paths.
3357
3358 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
3359
3360         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
3361         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
3362         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
3363         * function.c (locate_and_pad_parm): Take it into account.
3364         * target.def (function_arg_round_boundary): New hook.
3365         * targhooks.c (default_function_arg_round_boundary): New function.
3366         * targhooks.h (default_function_arg_round_boundary): Declare.
3367         * doc/tm.texi: Regenerate.
3368
3369 2011-07-12  Richard Guenther  <rguenther@suse.de>
3370
3371         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
3372         Do not perform no-op changes.
3373
3374 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
3375
3376         * config/arm/predicates.md (neon_struct_operand): Make a normal
3377         predicate.
3378         (neon_struct_or_register_operand): New predicate.
3379         * config/arm/neon.md (movmisalign<mode>): Replace predicates
3380         with neon_struct_or_register_operand.
3381         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
3382         neon_struct_operand instead of memory_operand.
3383
3384 2011-07-12  Martin Jambor  <mjambor@suse.cz>
3385
3386         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
3387         * cgraph.c (cgraph_get_node_or_alias): Removed.
3388         (change_decl_assembler_name): Changed all calls to
3389         cgraph_get_node_or_alias to a call to cgraph_get_node.
3390         (cgraph_make_decl_local): Likewise.
3391         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
3392         * varasm.c (default_binds_local_p_1): Likewise.
3393         (decl_binds_to_current_def_p): Likewise.
3394
3395 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
3396
3397         PR tree-optimization/49712
3398         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
3399
3400 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
3401
3402         * genautomata.c (add_arc): Return void.  All callers changed.
3403         (make_automaton): Remove dead code.
3404
3405 2011-07-11  Richard Henderson  <rth@redhat.com>
3406
3407         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
3408         (DW_FRAME_POINTER_REGNUM): New.
3409         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
3410         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
3411         (dwf_regno): New.
3412         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
3413         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
3414         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
3415         Use it.
3416         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
3417         * dwarf2out.h (dwarf_frame_regnum): New.
3418         (struct cfa_loc): Document the domain of the reg member.
3419
3420 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
3421
3422         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
3423         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
3424
3425 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
3426
3427         PR debug/49676
3428         * dwarf2out.c (int_shift_loc_descriptor): New function.
3429         (int_loc_descriptor): If shorter, emit i as
3430         (i >> shift), shift, DW_OP_shl for suitable shift value.
3431         Similarly, try to optimize large negative values using
3432         DW_OP_neg of a positive value if shorter.
3433         (size_of_int_shift_loc_descriptor): New function.
3434         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
3435         changes.
3436         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
3437         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
3438         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
3439         is shorter.
3440         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
3441         addend as added DW_OP_plus if it is shorter.
3442
3443 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3444
3445         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
3446         (DTORS_SECTION_ASM_OP): Define.
3447
3448 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3449
3450         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
3451         * config/t-dfprules: Move to ../libgcc/config.
3452         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3453         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3454         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
3455         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
3456         Likewise.
3457         (i[34567]86-*-cygwin*): Likewise.
3458         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
3459         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
3460         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
3461         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
3462         D64PBIT_FUNCS, D128PBIT_FUNCS.
3463
3464 2011-07-11  Richard Guenther  <rguenther@suse.de>
3465
3466         * tree-vrp.c (simplify_conversion_using_ranges): Manually
3467         translate the source value-range through the conversion chain.
3468
3469 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
3470
3471         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
3472
3473 2011-07-11  Arthur Loiret  <aloiret@debian.org>
3474
3475         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
3476         a bi-arch compiler defaulting to 31-bit. In this case:
3477         (tmake_file): Add s390/t-linux64.
3478         * doc/install.texi: Add s390-linux to the list of targets supporting
3479         --enable-targets=all.
3480
3481 2011-07-11  Arthur Loiret  <aloiret@debian.org>
3482             Matthias Klose <doko@debian.org>
3483
3484         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
3485         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
3486         (tm_file): Add mips/linux64.h.
3487         (tmake_file): Add mips/t-linux64.
3488         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
3489         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
3490         instead of hardcoded mabi=n32.
3491         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
3492         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
3493         convention.
3494
3495 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3496
3497         * passes.c (init_optimization_passes): Add invariant motion pass
3498         after induction variable optimization.
3499
3500 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
3501
3502         PR target/39633
3503         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
3504         offsets 1..5 set cc0 in a usable way.
3505
3506 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
3507
3508         * tree.h (call_expr_arg): Remove.
3509         (call_expr_argp): Likewise.
3510
3511 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
3512
3513         * config/sparc/sparc.md (save_register_window_1): Rename to...
3514         (window_save): ...this.
3515         * config/sparc/sparc.c (emit_save_register_window): Rename to...
3516         (emit_window_save): ...this.
3517         (sparc_expand_prologue): Adjust to above renaming.
3518
3519 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
3520
3521         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
3522         of movabs for x32.
3523
3524 2011-07-10  Richard Henderson  <rth@redhat.com>
3525
3526         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
3527         run final, instead of emitting text directly.
3528
3529 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
3530
3531         * config/i386/i386.c (ix86_option_override_internal): Turn on
3532         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
3533         small PIC models for TARGET_X32.
3534
3535 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
3536
3537         PR target/49684
3538         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
3539         $(LIBGCC2_CFLAGS).
3540
3541         PR bootstrap/49680
3542         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
3543         stray notes and debug insns by using prev_nonnote_nondebug_insn
3544         instead of PREV_INSN.
3545
3546 2011-07-09  Richard Henderson  <rth@redhat.com>
3547
3548         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
3549         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
3550         * dwarf2out.c: ... here.
3551         (output_all_cfis): Remove.
3552         (dwarf2out_switch_text_section): Use output_cfis directly.
3553         (size_of_locs): Export.
3554         (output_loc_sequence, output_loc_sequence_raw): Export.
3555         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
3556         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
3557         output_cfa_loc_raw): Move to ...
3558         * dwarfcfi.c: ... here.
3559         * dwarf2out.h: Update decls.
3560
3561 2011-07-09  Richard Henderson  <rth@redhat.com>
3562
3563         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
3564         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
3565         * dwarf2cfi.c: ... here.
3566         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
3567         (DWARF_ROUND, DWARF_CIE_ID): Remove.
3568         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
3569         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
3570         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
3571
3572 2011-07-09  Richard Henderson  <rth@redhat.com>
3573
3574         * dwarf2cfi.c (cie_return_save): New.
3575         (queue_reg_save): Use compare_reg_or_pc.
3576         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
3577         (dwarf2out_frame_debug_expr): Likewise.
3578         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
3579         (initial_return_save): Likewise.
3580         (execute_dwarf2_frame): Save and restore initial return save from
3581         the cie to the fde.
3582         * config/mips/mips.c (mips_frame_set): Remove special case for
3583         DWARF_FRAME_RETURN_COLUMN.
3584
3585 2011-07-09  Richard Henderson  <rth@redhat.com>
3586
3587         * dwarf2cfi.c (lookup_cfa): Remove.
3588         (execute_dwarf2_frame): Assert queues are empty on entry.
3589         Setup initial cfa directly, not via lookup_cfa.
3590         Don't clear args_size state here.
3591
3592 2011-07-09  Richard Henderson  <rth@redhat.com>
3593
3594         * dwarf2cfi.c (add_cfi_vec): New.
3595         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
3596         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
3597         (execute_dwarf2_frame): Set add_cfi_vec.
3598
3599 2011-07-09  Richard Henderson  <rth@redhat.com>
3600
3601         * defaults.h (ASM_COMMENT_START): Move here...
3602         * dwarf2asm.c: ... from here.
3603         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
3604         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
3605         * varasm.c: Likewise.
3606
3607 2011-07-09  Richard Henderson  <rth@redhat.com>
3608
3609         PR debug/49686
3610         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
3611         (create_cfi_notes): ... do it here instead.
3612
3613 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
3614
3615         PR debug/49676
3616         * dwarf2out.c (size_of_int_loc_descriptor): New function.
3617         (address_of_int_loc_descriptor): Use it.
3618         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
3619
3620 2011-07-09  Richard Henderson  <rth@redhat.com>
3621
3622         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
3623         (prologue, epilogue): New.
3624         (return, *rts): New.
3625         (blockage, setd, seti): New.
3626         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
3627         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
3628         (pdp11_saved_regno): New.
3629         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
3630         generate rtl instead of text.
3631         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
3632         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
3633         * config/pdp11/pdp11-protos.h: Update.
3634
3635 2011-07-09  Richard Henderson  <rth@redhat.com>
3636
3637         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
3638         try to insert an rtl prologue here.
3639         (rs6000_output_function_epilogue): Similarly.
3640         * config/rs6000/rs6000.md (prologue): Emit a barrier to
3641         satisfy !TARGET_SCHED_PROLOG.
3642         (epilogue, sibcall_epilogue): Likewise.
3643
3644 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
3645
3646         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
3647         (FP_REG_P): Delete.
3648         (IN_OR_GLOBAL_P): Likewise.
3649
3650 2011-07-08  Jason Merrill  <jason@redhat.com>
3651
3652         PR c++/45437
3653         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
3654         compound assignment.
3655
3656         * cgraph.c (cgraph_add_to_same_comdat_group): New.
3657         * cgraph.h: Declare it.
3658         * ipa.c (function_and_variable_visibility): Make sure thunks
3659         have the right visibility.
3660
3661 2011-07-08  Richard Henderson  <rth@redhat.com>
3662
3663         PR bootstrap/49680
3664         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
3665         any tablejump vector.
3666
3667         PR bootstrap/49680
3668         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
3669         end of the prologue.
3670
3671 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
3672
3673         PR target/49621
3674         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
3675         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
3676         * config/rs6000/vector.md (vector_select_<mode>,
3677         vector_select_<mode>_uns): Change second operand of NE to
3678         CONST0_RTX (<MODE>mode) instead of const0_rtx.
3679         * config/rs6000/altivec.md (*altivec_vsel<mode>,
3680         *altivec_vsel<mode>_uns): Expect second operand of NE to be
3681         zero_constant of the corresponding vector mode.
3682         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
3683         Likewise.
3684
3685 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
3686
3687         * graphite-dependences.c (build_alias_set_powerset): Remove
3688         continue from loop, add one more assert.
3689
3690 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
3691
3692         PR target/46779
3693         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
3694         In particular, allow 8-bit values in r28 and r29.
3695         (avr_hard_regno_scratch_ok): Disallow any register that might be
3696         part of the frame pointer.
3697         (avr_hard_regno_rename_ok): Same.
3698         (avr_legitimate_address_p): Don't allow SUBREGs.
3699
3700 2011-07-08  Julian Brown  <julian@codesourcery.com>
3701
3702         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
3703         big-endian mode.
3704         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
3705         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
3706         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
3707         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
3708         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
3709         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
3710         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
3711         registers in big-endian mode.
3712
3713 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
3714
3715         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
3716         in terms of another.
3717         (write_attr_value): Write a cast if necessary.
3718
3719         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
3720         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
3721         (REG_WORDS_BIG_ENDIAN): Document.
3722         * doc/tm.texi: Regenerate.
3723         * reload.c (operands_match_p): Take it into account.
3724         (reload_adjust_reg_for_mode): Likewise.
3725         * rtlanal.c (subreg_get_info): Likewise.
3726
3727 2011-07-08  Richard Guenther  <rguenther@suse.de>
3728
3729         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
3730         folding.
3731
3732 2011-07-08  Kai Tietz  <ktietz@redhat.com>
3733
3734         * fold-const.c (fold_truth_andor): Factored out truth_andor
3735         label from fold_binary as function.
3736         (fold_binary_loc): Replace truth_andor lable
3737         by function fold_truth_andor.
3738
3739 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
3740
3741         PR middle-end/49519
3742         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
3743         check if address is stored in register. If so - give up.
3744         (check_sibcall_argument_overlap_1): Do not perform check of
3745         overlapping when it is call to address.
3746
3747 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
3748
3749         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
3750         of magic '31'.
3751
3752 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
3753
3754         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
3755         GET_MODE_BITSIZE where appropriate.
3756         (widen_leading, expand_parity, expand_ctz, expand_ffs,
3757         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
3758         expand_float, expand_fix): Likewise.
3759         * expr.c (convert_move, convert_modes, expand_expr_real_2,
3760         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
3761         * stor-layout.c (get_mode_bounds): Likewise.
3762         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
3763         Likewise.
3764         * convert.c (convert_to_integer): Likewise.
3765         * expmed.c (expand_shift_1): Likewise.
3766
3767         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
3768         a bitsize.
3769
3770         * optabs.c (expand_binop): Tighten conditions for doubleword
3771         expansions.
3772         (widen_bswap): Assert that mode bitsize and precision are the same.
3773         * stor-layout.c (get_best_mode): Skip modes that have lower
3774         precision than bitsize.
3775         * recog.c (simplify_while_replacing): Assert that bitsize and
3776         precision are the same.
3777
3778 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3779
3780         * Makefile.in (LIBGCOV): Remove.
3781         (libgcc.mvars): Remove LIBGCOV.
3782         * libgov.c: Move to ../libgcc.
3783
3784 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3785
3786         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
3787
3788 2011-07-08  Martin Jambor  <mjambor@suse.cz>
3789
3790         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
3791         is too big for total scalarization.
3792
3793 2011-07-07  Richard Henderson  <rth@redhat.com>
3794
3795         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
3796         (DBX_DEBUGGING_INFO): Undef.
3797
3798 2011-07-07  Richard Henderson  <rth@redhat.com>
3799
3800         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
3801         Handle some opcodes specially for debugging.
3802         * print-rtl.c: Include dwarf2out.h
3803         (print_rtx): Handle NOTE_INSN_CFI.
3804         * Makefile.in (print-rtl.o): Update.
3805
3806 2011-07-07  Richard Henderson  <rth@redhat.com>
3807
3808         * tree-pass.h (pass_dwarf2_frame): Declare.
3809         * passes.c (init_optimization_passes): Add it.
3810         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
3811         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
3812         make static, do not call add_cfis_to_fde.
3813         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
3814         dwarf2out_frame_init): Merge into...
3815         (execute_dwarf2_frame): ... here.  New function.
3816         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
3817         saved_do_cfi_asm to a tri-state variable.
3818         (gate_dwarf2_frame, pass_dwarf2_frame): New.
3819         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
3820         if it has yet to be done.  Don't call dwarf2cfi_function_init.
3821         * dwarf2out.h, debug.h: Update decls.
3822         * final.c (final_start_function): Don't call
3823         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
3824         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
3825         * toplev.c (lang_dependent_init): Likewise.
3826
3827 2011-07-07  Richard Henderson  <rth@redhat.com>
3828
3829         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
3830         FDE_TABLE_INCREMENT): Replace with...
3831         (fde_vec): ... this, a new vector.
3832         (current_fde): Remove.  Replace all users with cfun->fde.
3833         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
3834         (size_of_aranges, dwarf2out_finish): Likewise.
3835         (dwarf2out_alloc_current_fde): Break out from ...
3836         (dwarf2out_begin_prologue): ... here.
3837         (dwarf2out_frame_init): Remove.
3838         * dwarf2cfi.c: Update all users of current_fde.
3839         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
3840         * dwarf2out.h: Update decls.
3841         (dw_fde_node): Add fde_index member.
3842         * function.h (struct function): Add fde member.
3843
3844 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3845             Richard Henderson  <rth@redhat.com>
3846
3847         * dwarf2cfi.c (add_cfi): Remove.
3848         (dwarf2out_cfi_label): Remove force argument.  Only generate the
3849         label name.
3850         (add_fde_cfi): Simplify the different code paths.
3851         (add_cie_cfi): New.
3852         (old_cfa, old_cfa_remember): New.
3853         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
3854         (last_reg_save_label): Remove.
3855         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
3856         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3857         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3858         dwarf2out_frame_debug_cfa_expression,
3859         dwarf2out_frame_debug_cfa_restore,
3860         dwarf2out_frame_debug_cfa_window_save,
3861         dwarf2out_frame_debug_expr): Remove label parameter.
3862         (cfi_label_required_p, add_cfis_to_fde): New.
3863         (dwarf2out_frame_debug_after_prologue): New.
3864         (dwarf2cfi_frame_init): Initialize old_cfa.
3865         (dwarf2out_frame_debug_restore_state): Likewise.
3866         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
3867         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
3868         * final.c (final_start_function): Call
3869         dwarf2out_frame_debug_after_prologue.
3870
3871 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3872             Richard Henderson  <rth@redhat.com>
3873
3874         * dwarf2cfi.c (cfi_insn): New.
3875         (dwarf2out_cfi_label): Don't emit cfi label here.
3876         (add_fde_cfi): Create a NOTE_INSN_CFI.
3877         (dwarf2out_frame_debug): Setup cfi_insn.
3878         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
3879         (dwarf2out_cfi_begin_epilogue): Make static.
3880         (dwarf2out_frame_debug_restore_state): Make static.
3881         * dwarf2out.c (output_cfi_directive): Make static.
3882         (dwarf2out_emit_cfi): New.
3883         * dwarf2out.h: Update.
3884         * final.c (final): Remove CFI notes.
3885         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
3886         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
3887         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
3888         * insn-notes.def (NOTE_INSN_CFI): New.
3889         (NOTE_INSN_CFI_LABEL): New.
3890         * rtl.h (union rtunion_def): Add rt_cfi member.
3891         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
3892
3893 2011-07-07  Richard Henderson  <rth@redhat.com>
3894
3895         * dwarf2cfi.c: New file.
3896         * Makefile.in (OBJS): Add it.
3897         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
3898         * gengtype.c (open_base_files): Include dwarf2out.h.
3899         * coretypes.h (enum var_init_status): Move from ...
3900         * rtl.h: ... here.
3901         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
3902         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
3903         expand_builtin_dwarf_sp_column, init_return_column_size,
3904         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
3905         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
3906         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
3907         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
3908         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
3909         compute_barrier_args_size, dwarf2out_args_size,
3910         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
3911         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
3912         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
3913         queue_reg_save, dwarf2out_flush_queued_reg_saves,
3914         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
3915         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3916         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3917         dwarf2out_frame_debug_cfa_expression,
3918         dwarf2out_frame_debug_cfa_restore,
3919         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
3920         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
3921         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
3922         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
3923         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
3924         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
3925         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
3926         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
3927         dw_loc_descr_node): Move to dwarf2out.h.
3928         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
3929         mem_loc_descriptor): Export.
3930         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
3931         (dwarf2out_frame_init): Extract CIE generation code to
3932         dwarf2cfi_frame_init.
3933
3934 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
3935
3936         PR target/49660
3937         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
3938         MASK_V8PLUS, remove commented out flag and reorder.
3939
3940 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
3941
3942         PR c/49644
3943         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
3944         one non-complex and one complex argument, call c_save_expr on both
3945         operands.
3946
3947 2011-07-07  Martin Jambor  <mjambor@suse.cz>
3948
3949         PR middle-end/49495
3950         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
3951         (verify_cgraph_node): Some functinality moved to
3952         verify_edge_corresponds_to_fndecl, call it.
3953
3954 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3955
3956         * config.gcc (*local*): Remove.
3957         * doc/install-old.texi: Don't mention local configurations.
3958
3959 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
3960
3961         PR debug/49522
3962         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
3963         referencing debug insns that have been reset.
3964         (dead_debug_insert_before): Don't assert reg is non-NULL,
3965         instead return immediately if it is NULL.
3966
3967 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3968
3969         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
3970
3971 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3972
3973         * hw-doloop.c: New file.
3974         * hw-doloop.h: New file.
3975         * Makefile.in (OBJS): Add hw-doloop.o.
3976         (hw-doloop.o): New rule.
3977         ($(obj_out_file)): Add hw-doloop.h dependency.
3978         * config/bfin/bfin.c: Include "hw-doloop.h".
3979         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
3980         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
3981         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
3982         type changed to hwloop_info.  Return bool, true if the loop was
3983         successfully optimized.  Remove code that was moved to
3984         hw-doloop.c, and adjust other parts.
3985         (hwloop_fail): New static function, containing parts that used
3986         to be in bfin_optimize_loop.
3987         (bfin_discover_loop, bfin_discover_loops, free_loops,
3988         bfin_reorder_loops): Remove.
3989         (hwloop_pattern_reg): New static function.
3990         (bfin_doloop_hooks): New variable.
3991         (bfin_reorg_loops): Remove most code, call reorg_loops.
3992         * config/bfin/bfin.md (doloop_end splitter): Also enable if
3993         loop counter is a memory_operand.
3994
3995 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
3996
3997         * config.gcc: Support --with-multilib-list for x86 Linux targets.
3998
3999         * configure.ac: Mention x86-64 for --with-multilib-list.
4000         * configure: Regenerated.
4001
4002         * config/i386/gnu-user64.h (SPEC_64): Support x32.
4003         (SPEC_32): Likewise.
4004         (ASM_SPEC): Likewise.
4005         (LINK_SPEC): Likewise.
4006         (TARGET_THREAD_SSP_OFFSET): Likewise.
4007         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
4008         (SPEC_X32): New.
4009
4010         * config/i386/i386.h (TARGET_X32): New.
4011         (TARGET_LP64): New.
4012         (LONG_TYPE_SIZE): Likewise.
4013         (POINTER_SIZE): Likewise.
4014         (POINTERS_EXTEND_UNSIGNED): Likewise.
4015         (OPT_ARCH64): Support x32.
4016         (OPT_ARCH32): Likewise.
4017
4018         * config/i386/i386.opt (mx32): New.
4019
4020         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
4021         (GLIBC_DYNAMIC_LINKERX32): Likewise.
4022         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
4023         (GLIBC_DYNAMIC_LINKERX32): Likewise.
4024
4025         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
4026         (BIONIC_DYNAMIC_LINKERX32): Likewise.
4027         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
4028
4029         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
4030
4031         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
4032
4033         * doc/invoke.texi: Document -mx32.
4034
4035 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
4036
4037         * doc/invoke.texi (mwords-little-endian): Deprecate.
4038         * config/arm/arm.opt (mwords-little-endian): Likewise.
4039         * config/arm/arm.c (arm_option_override): Warn about the deprecation
4040         of -mwords-little-endian.
4041
4042 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
4043
4044         * reload1.c (choose_reload_regs): Use mode sizes to check whether
4045         an old reload register completely defines the required value.
4046
4047 2011-07-07  Richard Guenther  <rguenther@suse.de>
4048
4049         * fold-const.c (fold_unary_loc): Do not strip sign-changes
4050         for NEGATE_EXPR.
4051
4052 2011-07-07  Richard Guenther  <rguenther@suse.de>
4053
4054         * tree-vrp.c (simplify_conversion_using_ranges): New function.
4055         (simplify_stmt_using_ranges): Call it.
4056
4057 2011-07-07  Kai Tietz  <ktietz@redhat.com>
4058
4059         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
4060         (lookup_logical_inverted_value): Likewise.
4061         (simplify_bitwise_binary_1): Likewise.
4062         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
4063
4064 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
4065
4066         * gcc.c (%[Spec]): Don't document.
4067         (struct spec_list): Update comment.
4068         (do_spec_1): Don't handle %[Spec].
4069         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
4070
4071 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
4072
4073         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
4074         default based on TARGET_ASM_NAMED_SECTION.
4075         * common/common-target.def (have_named_sections): Default to true.
4076         * common/config/default-common.c: Don't include tm.h.
4077         * common/config/picochip/picochip-common.c
4078         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
4079         * common/config/m32c/m32c-common.c: Remove.
4080         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
4081         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4082         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4083         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4084         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4085         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4086         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4087
4088 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
4089
4090         PR middle-end/49640
4091         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
4092         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
4093
4094 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4095
4096         PR libmudflap/49550
4097         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
4098
4099 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4100
4101         PR target/39150
4102         * configure.ac (gcc_cv_as_hidden): Also accept
4103         x86_64-*-solaris2.1[0-9]*.
4104         (gcc_cv_as_cfi_directive): Likewise.
4105         (gcc_cv_as_comdat_group_group): Likewise.
4106         (set_have_as_tls): Likewise.
4107         * configure: Regenerate.
4108         * config.gcc (i[34567]86-*-solaris2*): Also handle
4109         x86_64-*-solaris2.1[0-9]*.
4110         * config.host (i[34567]86-*-solaris2*): Likewise.
4111         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
4112         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
4113         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
4114         (TARGET_LD_EMULATION): Use it.
4115         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
4116         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
4117         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
4118         (ASM_CPU64_DEFAULT_SPEC): Define.
4119         (ASM_CPU_SPEC): Use %(asm_cpu_default).
4120         (ASM_SPEC): Redefine.
4121         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
4122         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
4123         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
4124         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
4125         configuration.
4126         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
4127
4128 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4129
4130         * config/sol2.h (ASM_SPEC): Split into ...
4131         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
4132         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
4133         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
4134         (ASM_SPEC): Use ASM_SPEC_BASE.
4135         * config/sparc/sol2.h (ASM_SPEC): Redefine.
4136
4137 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
4138
4139         * config/avr/avr.md (*reload_insi): Change predicate #1 to
4140         const_int_operand.  Ditto for peep2 producing this insn.
4141         Add argument to output_reload_insisf call.
4142         (*movsi,*movsf): Add argument to output_movsisf call.
4143         (*reload_insf): New insn and new peep2 to produce it.
4144         * config/avr/avr-protos.h (output_movsisf): Change prototype.
4145         (output_reload_insisf): Change prototype.
4146         * config/avr/avr.c (avr_asm_len): New function.
4147         (output_reload_insisf): Rewrite.
4148         (output_movsisf): Change prototype.  output_reload_insisf for
4149         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
4150         (adjust_insn_length): Add argument to output_movsisf and
4151         output_reload_insisf call.
4152
4153 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
4154
4155         * emit-rtl.c (paradoxical_subreg_p): New function.
4156         * rtl.h (paradoxical_subreg_p): Declare.
4157         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
4158         apply_distributive_law, simplify_comparison, simplify_set): Use it.
4159         * cse.c (record_jump_cond, cse_insn): Likewise.
4160         * expr.c (force_operand): Likewise.
4161         * rtlanal.c (num_sign_bit_copies1): Likewise.
4162         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
4163         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
4164         (push_reload): Use precision to check for paradoxical subregs.
4165         * expmed.c (extract_bit_field_1): Likewise.
4166
4167         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
4168         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
4169         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
4170         simplify_set, simplify_logical, expand_compound_operation,
4171         make_extraction, force_to_mode, if_then_else_cond, extended_count,
4172         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
4173         record_value_for_reg): Likewise.
4174         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
4175         * simplify-rtx. c (simplify_unary_operation_1,
4176         simplify_binary_operation_1, simplify_const_relational_operation):
4177         Likewise.
4178
4179         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
4180         instead of GET_MODE_BITSIZE where appropriate.
4181         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
4182         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
4183         init_num_sign_bit_copies_in_rep): Likewise.
4184         * cse.c (fold_rtx, cse_insn): Likewise.
4185         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
4186         * simplify-rtx.c (simplify_unary_operation_1,
4187         simplify_const_unary_operation, simplify_binary_operation_1,
4188         simplify_const_binary_operation, simplify_ternary_operation,
4189         simplify_const_relational_operation, simplify_subreg): Likewise.
4190         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
4191         simplify_if_then_else, simplify_set, expand_compound_operation,
4192         expand_field_assignment, make_extraction, if_then_else_cond,
4193         make_compound_operation, force_to_mode, make_field_assignment,
4194         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
4195         extended_count, try_widen_shift_mode, simplify_shift_const_1,
4196         simplify_comparison, record_promoted_value, simplify_compare_const,
4197         record_dead_and_set_regs_1): Likewise.
4198
4199         Revert:
4200         * simplify-rtx.c (simplify_const_binary_operation): Use the
4201         shift_truncation_mask hook instead of performing modulo by width.
4202         Compare against mode precision, not bitsize.
4203         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
4204         Use shift_truncation_mask instead of constructing the value manually.
4205
4206 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
4207
4208         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
4209         declaration.
4210         (rs6000_save_toc_in_prologue_p): Ditto.
4211
4212         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
4213         up the static chain (r11) during indirect function calls.
4214         (-msave-toc-indirect): New undocumented debug switch.
4215
4216         * config/rs6000/rs6000.c (struct machine_function): Add
4217         save_toc_in_prologue field to note whether the prologue needs to
4218         save the TOC value in the reserved stack location.
4219         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
4220         to save the TOC in the prologue, do so.
4221         (rs6000_trampoline_init): Don't allow creating AIX style
4222         trampolines if -mno-r11 is in effect.
4223         (rs6000_call_indirect_aix): New function to create AIX style
4224         indirect calls, adding support for -mno-r11 to suppress loading
4225         the static chain, and saving the TOC in the prologue instead of
4226         the call body.
4227         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
4228         TOC in the prologue.
4229
4230         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
4231         register numbers.
4232         (TOC_REGNUM): Ditto.
4233         (STATIC_CHAIN_REGNUM): Ditto.
4234         (ARG_POINTER_REGNUM): Ditto.
4235         (SFP_REGNO): Delete, unused.
4236         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
4237         function descriptor offsets.
4238         (TOC_SAVE_OFFSET_64BIT): Ditto.
4239         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
4240         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
4241         (AIX_FUNC_DESC_SC_32BIT): Ditto.
4242         (AIX_FUNC_DESC_SC_64BIT): Ditto.
4243         (ptrload): New mode attribute for the appropriate load of a pointer.
4244         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
4245         (call_indirect_aix64): Ditto.
4246         (call_value_indirect_aix32): Ditto.
4247         (call_value_indirect_aix64): Ditto.
4248         (call_indirect_nonlocal_aix32_internal): Ditto.
4249         (call_indirect_nonlocal_aix32): Ditto.
4250         (call_indirect_nonlocal_aix64_internal): Ditto.
4251         (call_indirect_nonlocal_aix64): Ditto.
4252         (call): Rewrite AIX indirect function calls.  Add support for
4253         eliminating the static chain, and for moving the save of the TOC
4254         to the function prologue.
4255         (call_value): Ditto.
4256         (call_indirect_aix<ptrsize>): Ditto.
4257         (call_indirect_aix<ptrsize>_internal): Ditto.
4258         (call_indirect_aix<ptrsize>_internal2): Ditto.
4259         (call_indirect_aix<ptrsize>_nor11): Ditto.
4260         (call_value_indirect_aix<ptrsize>): Ditto.
4261         (call_value_indirect_aix<ptrsize>_internal): Ditto.
4262         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
4263         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
4264         (call_nonlocal_aix32): Relocate in the rs6000.md file.
4265         (call_nonlocal_aix64): Ditto.
4266
4267         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
4268         -mno-r11 documentation.
4269
4270 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
4271
4272         PR other/49658
4273         * doc/extend.texi (Compound Literals): Fix typo.
4274
4275 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
4276
4277         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
4278
4279 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
4280
4281         * configure.ac (plugin-version.h): Generate
4282         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
4283         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
4284         macros.
4285
4286         * configure: Regenerate.
4287
4288         * doc/plugins.texi (Building GCC plugins): Mention
4289         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
4290
4291 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
4292
4293         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
4294         * combine.c (make_extraction, gen_lowpart_or_truncate,
4295         apply_distributive_law, simplify_comparison,
4296         reg_truncated_to_mode, record_truncated_value): Use it.
4297         * cse.c (notreg_cost): Likewise.
4298         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
4299         * expr.c (convert_move, convert_modes): Likewise.
4300         * optabs.c (expand_binop, expand_unop): Likewise.
4301         * postreload.c (move2add_last_label): Likewise.
4302         * regmove.c (optimize_reg_copy_3): Likewise.
4303         * rtlhooks.c (gen_lowpart_general): Likewise.
4304         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
4305
4306 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
4307
4308         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
4309
4310 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
4311
4312         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
4313         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
4314         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
4315         (simplify_const_unary_operation, simplify_binary_operation_1,
4316         simplify_const_binary_operation, simplify_const_relational_operation):
4317         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
4318         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
4319         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
4320         simplify_shift_const_1, simplify_comparison): Likewise.
4321         * expr.c (convert_modes): Likewise.
4322         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
4323         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
4324         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
4325
4326         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
4327
4328 2011-07-06  Richard Guenther  <rguenther@suse.de>
4329
4330         PR tree-optimization/49645
4331         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
4332         register variables.
4333         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
4334         in type qualification here ...
4335         (copy_reference_ops_from_ref): ... not here.
4336         (vn_reference_lookup_3): ... or here.
4337         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
4338         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
4339
4340 2011-07-06  Ian Lance Taylor  <iant@google.com>
4341
4342         * doc/install.texi (Configuration): It's
4343         --enable-gnu-indirect-function, not --enable-indirect-function.
4344
4345 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
4346
4347         * simplify-rtx.c (simplify_const_binary_operation): Use the
4348         shift_truncation_mask hook instead of performing modulo by width.
4349         Compare against mode precision, not bitsize.
4350         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
4351         Use shift_truncation_mask instead of constructing the value manually.
4352
4353 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
4354
4355         PR middle-end/47383
4356         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
4357         address computation and convert to address_mode if needed.
4358
4359 2011-07-06  Richard Guenther  <rguenther@suse.de>
4360
4361         * tree.c (build_common_tree_nodes_2): Merge with
4362         build_common_tree_nodes.
4363         * tree.h (build_common_tree_nodes): Adjust prototype.
4364         (build_common_tree_nodes_2): Remove.
4365         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
4366         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
4367
4368 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
4369
4370         PR tree-optimization/49618
4371         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
4372         t recurse on the decl.
4373         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
4374         return true if expr isn't known to be defined in current
4375         TU or some other LTO partition.
4376
4377 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
4378
4379         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
4380         override CASE_VALUES_THRESHOLD.
4381
4382         * stmt.c (toplevel): Include params.h.
4383         (case_values_threshold): Use the --param case-values-threshold
4384         value if non-zero, otherwise use machine dependent value.
4385         (expand_case): Use case_values_threshold.
4386
4387         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
4388
4389         * doc/invoke.texi (--param case-values-threshold): Document.
4390
4391 2011-07-05  Richard Henderson  <rth@redhat.com>
4392
4393         * dwarf2out.c (dwarf2out_cfi_label): Make static.
4394         (dwarf2out_flush_queued_reg_saves): Make static.
4395         (dwarf2out_reg_save): Remove.
4396         (dwarf2out_return_save): Remove.
4397         (dwarf2out_return_reg): Remove.
4398         (dwarf2out_reg_save_reg): Remove.
4399         (dwarf2out_def_cfa): Merge into ...
4400         (dwarf2out_frame_init): ... here.
4401         * dwarf2out.h, tree.h: Remove declarations as necessary.
4402
4403 2011-07-05  Richard Henderson  <rth@redhat.com>
4404
4405         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
4406         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4407         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
4408         the alloc insn.
4409
4410         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
4411         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
4412         (process_epilogue): Don't call dwarf2out_def_cfa.
4413
4414         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
4415         indicate the return address save.
4416         (process_cfa_register): Likewise.
4417
4418         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
4419         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
4420
4421         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
4422         for ar.pfs save at alloc insn.
4423
4424 2011-07-05  Richard Henderson  <rth@redhat.com>
4425
4426         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
4427         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4428         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
4429         stack pointer save.
4430         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
4431         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
4432         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
4433         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
4434
4435 2011-07-05  Richard Henderson  <rth@redhat.com>
4436
4437         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
4438         VUNSPEC_* constants here instead of via define_constants.
4439         (VUNSPEC_PEM): New constant.
4440         (procedure_entry_mask): New insn.
4441         (prologue): New expander.
4442         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
4443         (vax_expand_prologue): Rename from vax_output_function_prologue;
4444         emit rtl instead of text.
4445         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
4446         (print_operand): Add 'x' prefix.
4447
4448 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
4449
4450         PR middle-end/47715
4451         * calls.c (precompute_register_parameters): Promote the function
4452         argument before checking non-legitimate constant.
4453
4454 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
4455
4456         PR tree-optimization/47654
4457         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
4458         (lst_do_strip_mine_loop): Return an int.
4459         (lst_do_strip_mine): Same.
4460         (scop_do_strip_mine): Same.
4461         (scop_do_block): Loop blocking should strip-mine at least two loops.
4462         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
4463         (scop_do_interchange): Same.
4464         * graphite-poly.h (scop_do_interchange): Update declaration.
4465         (scop_do_strip_mine): Same.
4466
4467 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
4468
4469         * graphite-clast-to-gimple.c (precision_for_value): Removed.
4470         (precision_for_interval): Removed.
4471         (gcc_type_for_interval): Use mpz_sizeinbase.
4472
4473 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
4474
4475         * graphite-ppl.h (value_max): Correct computation of max.
4476
4477 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
4478
4479         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
4480
4481 2011-07-05  Richard Guenther  <rguenther@suse.de>
4482
4483         * c-decl.c (c_init_decl_processing): Defer building common
4484         tree nodes to c_common_nodes_and_builtins.
4485
4486 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
4487
4488         PR tree-optimization/49580
4489         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
4490         the loop's number of iterations.
4491         * tree-parloops.c (transform_to_exit_first_loop): Add the
4492         handling of the loop's number of iterations before the call
4493         to gimple_duplicate_sese_tail.
4494         Insert the stmt caclculating the new rhs of the loop's
4495         condition stmt to the preheader instead of iters_bb.
4496
4497 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
4498
4499         PR rtl-optimization/47449
4500         * fwprop.c (forward_propagate_subreg): Don't propagate hard
4501         register nor zero/sign extended hard register.
4502
4503 2011-07-05  Richard Guenther  <rguenther@suse.de>
4504
4505         PR tree-optimization/49518
4506         PR tree-optimization/49628
4507         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
4508         irrelevant and invariant data-references.
4509         (vect_analyze_data_ref_access): For invariant loads clear the
4510         group association.
4511
4512 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
4513
4514         PR rtl-optimization/49619
4515         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
4516         pass VOIDmode as op0_mode to recursive call, and return temp even
4517         when different from tor, just if it is not IOR of the original
4518         PLUS arguments.
4519
4520         PR rtl-optimization/49472
4521         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
4522         negating MULT, negate the second operand instead of first.
4523         (simplify_binary_operation_1) <case MULT>: If one operand is
4524         a NEG and the other is MULT, don't attempt to optimize by negation
4525         of the MULT operand if it only moves the NEG operation around.
4526
4527         PR debug/49602
4528         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
4529         get_current_def return value if it can't be trusted to be
4530         the current value of the variable in the current bb.
4531
4532 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
4533
4534         PR target/49600
4535         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
4536         general register to memory for !TARGET_INTER_UNIT_MOVES.
4537
4538 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
4539
4540         PR target/44643
4541         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
4542         instead of TREE_READONLY.
4543
4544 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
4545
4546         * doc/extend.texi (AVR Built-in Functions): Update documentation
4547         of __builtin_avr_fmul*.
4548         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
4549         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
4550         * config/avr/avr.md (fmul): Rename to fmul_insn.
4551         (fmuls): Rename to fmuls_insn.
4552         (fmulsu): Rename to fmulsu_insn.
4553         (fmul,fmuls,fmulsu): New expander.
4554         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
4555         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
4556         * config/avr/libgcc.S (__fmul): New function.
4557         (__fmuls): New function.
4558         (__fmulsu,__fmulsu_exit): New function.
4559
4560 2011-07-04  Richard Guenther  <rguenther@suse.de>
4561
4562         PR tree-optimization/49615
4563         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
4564         basic-block index check.
4565
4566 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
4567
4568         * longlong.h (count_leading_zeros, count_trailing_zeros,
4569         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
4570         resp. 64.
4571
4572 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
4573
4574         PR tree-optimization/49610
4575         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
4576         a basic block.
4577
4578 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
4579             Olivier Hainque  <hainque@adacore.com>
4580             Nicolas Setton  <setton@adacore.com>
4581
4582         * tree.h (TYPE_ARTIFICIAL): New flag.
4583         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
4584         the DIE of the type if it is artificial.
4585         (gen_array_type_die): Likewise.
4586         (gen_enumeration_type_die): Likewise.
4587         (gen_struct_or_union_type_die): Likewise.
4588         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
4589         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
4590
4591 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
4592
4593         * tree-object-size.c (pass_through_call): Handle
4594         BUILT_IN_ASSUME_ALIGNED.
4595
4596 2011-07-01  Martin Jambor  <mjambor@suse.cz>
4597
4598         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
4599
4600 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
4601
4602         PR middle-end/48016
4603         * explow.c (update_nonlocal_goto_save_area): Use proper mode
4604         for stack save area.
4605         * function.c (expand_function_start): Likewise.
4606
4607 2011-07-01  Richard Guenther  <rguenther@suse.de>
4608
4609         PR middle-end/49596
4610         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
4611         may have unknown refs.
4612
4613 2011-07-01  Kai Tietz  <ktietz@redhat.com>
4614
4615         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
4616
4617 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4618
4619         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
4620         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
4621         (Specific, mips-sgi-irix6): Likewise.
4622
4623 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4624
4625         PR libmudflap/49549
4626         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
4627
4628 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
4629
4630         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
4631         [idx]= and [idx1 ... idx2]= before initializers if needed for
4632         array initializers.
4633
4634 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
4635
4636         * config.gcc (score-*-elf): Remove score7.o.
4637         * config/score/t-score-elf: Likewise.
4638         * config/score/score.c: Merge score7 to score.c and
4639         remove forwarding functions.
4640         * config/score/score7.c: Deleted.
4641         * config/score/score7.h: Deleted.
4642
4643 2011-07-01  Richard Guenther  <rguenther@suse.de>
4644
4645         PR tree-optimization/49603
4646         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
4647
4648 2011-06-30  Martin Jambor  <mjambor@suse.cz>
4649
4650         * tree-sra.c (struct access): Rename total_scalarization to
4651         grp_total_scalarization
4652         (completely_scalarize_var): New function.
4653         (sort_and_splice_var_accesses): Set total_scalarization in the
4654         representative access.
4655         (analyze_access_subtree): Propagate total scalarization accross the
4656         tree, no holes in totally scalarized trees, simplify coverage
4657         computation.
4658         (analyze_all_variable_accesses): Call completely_scalarize_var instead
4659         of completely_scalarize_record.
4660
4661 2011-06-30  Richard Henderson  <rth@redhat.com>
4662
4663         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
4664         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
4665         * config/i386/i386.c: Don't include dwarf2out.h.
4666         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
4667         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
4668         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
4669         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
4670         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
4671
4672 2011-06-30  Richard Henderson  <rth@redhat.com>
4673
4674         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
4675         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4676         * final.c (final_scan_insn): Look for it, and invoke
4677         dwarf2out_frame_debug before the insn if found.
4678
4679 2011-06-30  Richard Henderson  <rth@redhat.com>
4680
4681         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
4682         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
4683
4684 2011-06-30  Richard Henderson  <rth@redhat.com>
4685
4686         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
4687         Define a vector of this type.
4688         (regs_saved_in_regs): Use a VEC.
4689         (num_regs_saved_in_regs): Remove.
4690         (compare_reg_or_pc): New.
4691         (record_reg_saved_in_reg): Split out from...
4692         (dwarf2out_flush_queued_reg_saves): ... here.
4693         (clobbers_queued_reg_save): Update for VEC.
4694         (reg_saved_in): Likewise.
4695         (dwarf2out_frame_debug_init): Likewise.
4696         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
4697         (dwarf2out_frame_debug_cfa_register): Likewise.
4698
4699 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
4700
4701         PR tree-optimization/49572
4702         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
4703         type of the RHS instead of that of the LHS for the expression type.
4704
4705 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
4706
4707         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
4708         unconditionally.
4709
4710 2011-06-30  Richard Guenther  <rguenther@suse.de>
4711
4712         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
4713         * tree-ssa-structalias.c (create_variable_info_for): Do not
4714         add initial constraints for non-var-decls.  Properly handle
4715         globals in other ltrans partitions.
4716         (intra_create_variable_infos): Manually create constraints for
4717         the fake no-alias parameter.
4718         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
4719         and assert there are no clones.
4720
4721 2011-06-30  Richard Guenther  <rguenther@suse.de>
4722
4723         PR tree-optimization/46787
4724         * tree-data-ref.c (dr_address_invariant_p): Remove.
4725         (find_data_references_in_stmt): Invariant accesses are ok now.
4726         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
4727         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
4728         invariant loads.
4729
4730 2011-06-30  Martin Jambor  <mjambor@suse.cz>
4731
4732         PR tree-optimization/49094
4733         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
4734         (build_accesses_from_assign): Use it.
4735
4736 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
4737
4738         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
4739         handling of BUILT_IN_ASSUME_ALIGNED.
4740
4741         PR debug/49364
4742         * dwarf2out.c (output_abbrev_section): Don't return early
4743         if abbrev_die_table_in_use is 1.
4744         (dwarf2out_finish): Instead don't call output_abbrev_section
4745         nor emit abbrev_section_label in that case.
4746
4747 2011-06-30  Nick Clifton  <nickc@redhat.com>
4748
4749         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
4750         for the V850E.
4751
4752 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
4753
4754         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
4755         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
4756
4757 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
4758
4759         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
4760         both pattern and original statements if necessary.
4761         (vect_transform_loop): Likewise.
4762         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
4763         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
4764         Mark the pattern statement only if the original statement doesn't
4765         have its own uses.
4766         (process_use): Call vect_mark_relevant with additional parameter.
4767         (vect_mark_stmts_to_be_vectorized): Likewise.
4768         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
4769         (vect_analyze_stmt): Handle both pattern and original statements
4770         if necessary.
4771         (vect_transform_stmt): Don't store vectorized pattern statement
4772         in the original statement.
4773         (vect_is_simple_use_1): Use related pattern statement only if the
4774         original statement is irrelevant.
4775         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
4776
4777 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
4778
4779         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
4780         option.
4781         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
4782         entry.
4783         (TARGET_AVX128_OPTIMAL): New definition.
4784         * config/i386/i386.c (initial_ix86_tune_features): Initialize
4785         X86_TUNE_AVX128_OPTIMAL entry.
4786         (ix86_option_override_internal): Enable the generation
4787         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
4788         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
4789         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
4790
4791 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
4792
4793         PR tree-optimization/49539
4794         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
4795         names by means of stmt_references_abnormal_ssa_name.
4796         (associate_plusminus): Call can_propagate_from before propagating
4797         from definition statements.
4798         (ssa_forward_propagate_and_combine): Remove superfluous newline.
4799
4800 2011-06-29  Richard Guenther  <rguenther@suse.de>
4801
4802         * doc/invoke.texi: Document -scev dump modifier.
4803         * tree-pass.h (TDF_SCEV): New dump flag.
4804         * tree-dump.c (dump_option_value_in): Add scev.
4805         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
4806         * tree-scalar-evolution.c: Likewise.
4807
4808 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
4809
4810         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
4811         (cxa_type_match): Correct declaration.
4812         (__gnu_unwind_pr_common): Reconstruct additional indirection
4813         when __cxa_type_match returns succeeded_with_ptr_to_base.
4814
4815 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4816
4817         PR rtl-optimization/49114
4818         * reload.c (struct replacement): Remove SUBREG_LOC member.
4819         (push_reload): Do not set it.
4820         (push_replacement): Likewise.
4821         (subst_reload): Remove dead code.
4822         (copy_replacements): Remove assertion.
4823         (copy_replacements_1): Do not handle SUBREG_LOC.
4824         (move_replacements): Likewise.
4825         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
4826         Detect subregs via recursive descent instead of via SUBREG_LOC.
4827
4828 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
4829
4830         * config/avr/avr.c (avr_encode_section_info): Dispatch to
4831         default_encode_section_info.
4832
4833 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
4834
4835         PR tree-optimization/49545
4836         * builtins.c (get_object_alignment_1): Update function comment.
4837         Do not use DECL_ALIGN for functions, but test
4838         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
4839         * fold-const.c (get_pointer_modulus_and_residue): Don't check
4840         for functions here.
4841         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
4842
4843 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
4844
4845         PR debug/49567
4846         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
4847         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
4848
4849 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
4850
4851         PR target/34734
4852         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
4853         about uninitialized data attributed 'progmem' from here...
4854         (avr_encode_section_info): ...to this new function.
4855         (TARGET_ENCODE_SECTION_INFO): New define.
4856         (avr_section_type_flags): For data in ".progmem.data", remove
4857         section flag SECTION_WRITE.
4858
4859 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
4860
4861         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
4862         _xmulhisi3_exit.
4863         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
4864         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
4865         (__umulhisi3): Ditto.
4866         * config/avr/avr.md (mulhisi3): New insn expender.
4867         (umulhisi3): New insn expender.
4868         (*mulhisi3_call): New insn.
4869         (*umulhisi3_call): New insn.
4870
4871 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
4872
4873         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
4874
4875 2011-06-28  Richard Henderson  <rth@redhat.com>
4876
4877         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
4878         all code and arguments that handled pushes.  Update all callers.
4879
4880 2011-06-28  Richard Henderson  <rth@redhat.com>
4881
4882         * config/arm/arm.c (arm_output_function_prologue): Don't call
4883         thumb1_output_function_prologue.
4884         (arm_expand_prologue): Avoid dead store.
4885         (number_of_first_bit_set): Use ctz_hwi.
4886         (thumb1_emit_multi_reg_push): New.
4887         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
4888         to emit the entire prologue as rtl.
4889         (thumb1_output_interwork): Split out from
4890         thumb1_output_function_prologue.
4891         (thumb1_output_function_prologue): Remove.
4892         (arm_attr_length_push_multi): Handle thumb1.
4893         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
4894         (prologue_thumb1_interwork): New.
4895         (*push_multi): Allow thumb1; use push_mult_memory_operand.
4896         * config/arm/predicates.md (push_mult_memory_operand): New.
4897
4898 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
4899
4900         * config/sparc/sync.md (*stbar): Delete.
4901         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
4902
4903 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
4904
4905         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
4906
4907 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4908
4909         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
4910         (TARGET_64BIT_DEFAULT): Define.
4911         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
4912         of tm_file.
4913         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
4914
4915 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
4916
4917         * common.opt (in_lto_p): New Variable entry.
4918         * flags.h (in_lto_p): Move to common.opt.
4919         * gcc.c: Include params.h.
4920         (set_option_handlers): Also use common_handle_option and
4921         target_handle_option.
4922         (main): Call global_init_params, finish_params and init_options_struct.
4923         * opts.c (debug_type_names): Move from toplev.c.
4924         (print_filtered_help): Access quiet_flag through opts pointer.
4925         (common_handle_option): Return early in the driver for some options.
4926         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
4927         opts pointer.
4928         * toplev.c (in_lto_p): Move to common.opt.
4929         (debug_type_names): Move to opts.c.
4930         * Makefile.in (OBJS): Remove opts.o.
4931         (OBJS-libcommon-target): Add opts.o.
4932         (gcc.o): Update dependencies.
4933
4934 2011-06-28  Kai Tietz  <ktietz@redhat.com>
4935
4936         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
4937
4938 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4939
4940         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
4941         with '=' constraint modifier.
4942         (*divdf3_vfp): Likewise.
4943         ("*mulsf3_vfp"): Likewise.
4944         ("*muldf3_vfp"): Likewise.
4945         ("*mulsf3negsf_vfp"): Likewise.
4946         ("*muldf3negdf_vfp"): Likewise.
4947
4948 2011-06-28  Nick Clifton  <nickc@redhat.com>
4949
4950         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
4951         relaxation when performing an incremental link.
4952
4953 2011-06-28  Kai Tietz  <ktietz@redhat.com>
4954
4955         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
4956         within BB from last to first.
4957
4958 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
4959
4960         * genattr-common.c: New.  Based on genattr.c.
4961         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
4962         (MOSTLYCLEANFILES): Add insn-attr-common.h.
4963         (opts.o): Update dependencies.
4964         (.PRECIOUS): Add insn-attr-common.h.
4965         (simple_rtl_generated_h): Add insn-attr-common.h.
4966         (build/genattr-common.o): New.
4967         (genprogrtl): Add attr-common.
4968         * genattr.c (main): Include insn-attr-common.h.  Don't generate
4969         definitions of DELAY_SLOTS or INSN_SCHEDULING.
4970         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
4971
4972 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
4973
4974         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
4975         avr-*-* and avr-*-rtems* targets.
4976
4977         * config/avr/elf.h: New file.
4978         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
4979         (TARGET_ASM_SELECT_SECTION): Define.
4980         (INIT_SECTION_ASM_OP): Undefine.
4981         (FINI_SECTION_ASM_OP): Undefine.
4982         (READONLY_DATA_SECTION_ASM_OP): Undefine.
4983         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
4984         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
4985         * config/avr/avr.h:
4986         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
4987         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
4988         (MAX_OFILE_ALIGNMENT): Move to elf.h.
4989         (STRING_LIMIT): Move to elf.h.
4990         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
4991         (ASM_DECLARE_OBJECT_NAME): Remove.
4992         (ESCAPES): Remove.
4993         (ASM_OUTPUT_SKIP): Remove.
4994         (DWARF2_DEBUGGING_INFO): Remove.
4995         (OBJECT_FORMAT_ELF): Remove.
4996         (USER_LABEL_PREFIX): Remove.
4997         (ASM_OUTPUT_EXTERNAL): Remove.
4998         (ASM_OUTPUT_ASCII): Remove.
4999         (TYPE_ASM_OP): Remove.
5000         (SIZE_ASM_OP): Remove.
5001         (WEAK_ASM_OP): Remove.
5002         (STRING_ASM_OP): Remove.
5003         (SET_ASM_OP): Remove.
5004         (ASM_WEAKEN_LABEL): Remove.
5005         (TYPE_OPERAND_FMT): Remove.
5006         (ASM_DECLARE_FUNCTION_SIZE): Remove.
5007         (ASM_FINISH_DECLARE_OBJECT): Remove.
5008         (NO_DOLLAR_IN_LABEL): Remove.
5009         (ASM_GENERATE_INTERNAL_LABEL): Remove.
5010         (ASM_OUTPUT_CASE_LABEL): Remove.
5011         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
5012         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
5013         (gas_output_ascii): Remove.
5014         (gas_output_limited_string): Remove.
5015         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
5016         * config/avr/avr-protos.h
5017         (gas_output_ascii): Remove prototye.
5018         (gas_output_limited_string): Remove prototype.
5019
5020 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
5021
5022         PR target/48637
5023         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
5024         asm operands.
5025
5026 2011-06-27  Jan Hubicka  <jh@suse.cz>
5027
5028         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
5029         node instead of references in node.
5030
5031 2011-06-27  Richard Henderson  <rth@redhat.com>
5032
5033         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
5034         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
5035         inside ifdef.
5036
5037 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
5038
5039         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
5040
5041         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
5042         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
5043         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
5044         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
5045         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
5046         (evaluate_stmt, execute_fold_all_builtins): Handle
5047         BUILT_IN_ASSUME_ALIGNED.
5048         * tree-ssa-dce.c (propagate_necessity): Likewise.
5049         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
5050         call_may_clobber_ref_p_1): Likewise.
5051         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
5052         (expand_builtin_assume_aligned): New function.
5053         * doc/extend.texi (__builtin_assume_aligned): Document.
5054
5055         PR debug/49544
5056         * cselib.c (promote_debug_loc): If cselib_preserve_constants
5057         and l has two DEBUG_INSN owned locs instead of just one, adjust
5058         the second location's setting_insn too.
5059
5060 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5061
5062         PR libmudflap/38738
5063         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
5064
5065 2011-06-27  Nick Clifton  <nickc@redhat.com>
5066
5067         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
5068         bit position of highest bit set into a count of the high zero bits.
5069
5070 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
5071
5072         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
5073
5074 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
5075
5076         PR lto/48492
5077         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
5078         to a NULL parent.
5079
5080 2011-06-27  Richard Guenther  <rguenther@suse.de>
5081
5082         PR tree-optimization/49394
5083         * passes.c (execute_one_pass): Restore current_pass after
5084         applying IPA transforms.
5085
5086 2011-06-27  Kai Tietz  <ktietz@redhat.com>
5087
5088         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
5089         out of type precision after operation.
5090         (find_bswap): Take for limit value the integer auto-promotion
5091         into account.
5092
5093 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
5094
5095         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
5096         forward scan as well.
5097
5098 2011-06-27  Tristan Gingold  <gingold@adacore.com>
5099
5100         PR target/44241
5101         * config/vms/vms-protos.h: New file.
5102         * config/vms/vms-crtlmap.map: New file.
5103         * config/vms/vms.c: New file.
5104         * config/vms/make-crtlmap.awk: New file.
5105         * config/vms/vms-crtl.h: File removed.
5106         * config/vms/vms-crtl-64.h: File removed.
5107         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
5108         * config/alpha/vms64.h: Do not include vms-crtl-64.h
5109         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
5110         clear some builtins on VMS.  Calls vms_patch_builtins.
5111         (avms_asm_output_external): Remove.
5112         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
5113         (struct crtl_name_spec): Remove
5114         (DO_CTRL_NAMES): Remove.
5115         * config/ia64/vms.h (struct crtl_name_spec): Remove
5116         (DO_CTRL_NAMES): Remove.
5117         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
5118         clear some builtins on VMS.  Calls vms_patch_builtins.
5119         (ia64_asm_output_external): Remove DO_CRTL_NAME.
5120         * config/ia64/vms64.h: Do not include vms-crtl-64.h
5121         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
5122
5123 2011-06-27  Tristan Gingold  <gingold@adacore.com>
5124
5125         * config/alpha/alpha.c (alpha_end_function): Always generate .end
5126         directive on VMS.
5127
5128 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
5129
5130         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
5131         the function receives nonlocal gotos.
5132
5133 2011-06-27  Richard Guenther  <rguenther@suse.de>
5134
5135         PR tree-optimization/49536
5136         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
5137         For non-scalar inner types use a scalar type according to
5138         the scalar inner mode.
5139
5140 2011-06-27  Richard Guenther  <rguenther@suse.de>
5141
5142         PR tree-optimization/49365
5143         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
5144
5145 2011-06-27  Richard Guenther  <rguenther@suse.de>
5146
5147         PR tree-optimization/49169
5148         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
5149         the alignment of function decls.
5150
5151 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
5152
5153         PR target/47997
5154         * config/darwin.c (darwin_mergeable_string_section): Place string
5155         constants in '.cstring' rather than '.const' when CF/NSStrings are
5156         active.
5157
5158 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
5159
5160         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
5161         (emit_save_register_window): Likewise.
5162         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
5163         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
5164         Swap back %o7/%i7 in register naming.
5165
5166 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
5167
5168         PR driver/49371
5169         * config/darwin.c (darwin_override_options): Improve warning when
5170         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
5171         is given with fpie/fPIE.
5172         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
5173         * config/darwin9.h (PIE_SPEC): New.
5174
5175 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
5176
5177         * timevar.c (timevar_print): Increase width for display of timevar
5178         name.
5179
5180 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
5181
5182         PR c++/46400
5183         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
5184         instead of TYPE_CHAIN for chain_next for types.
5185
5186 2011-06-24  Richard Henderson  <rth@redhat.com>
5187
5188         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
5189         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
5190         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
5191         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
5192         (sparc_flat_expand_prologue): Emit individual instructions
5193         instead of one of the above.
5194
5195 2011-06-24  Easwaran Raman  <eraman@google.com>
5196
5197         PR rtl-optimization/49429
5198         PR target/49454
5199         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
5200         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
5201         used to copy y into x.
5202         * calls.c (initialize_argument_information): Mark
5203         an argument addressable if it is passed by invisible reference.
5204         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
5205         if it is passed by reference.
5206
5207 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
5208
5209         PR rtl-optimization/49504
5210         * rtlanal.c (nonzero_bits1): Properly handle addition or
5211         subtraction of a pointer in Pmode if pointers extend unsigned.
5212         (num_sign_bit_copies1): Likewise.
5213
5214 2011-06-24  Martin Jambor  <mjambor@suse.cz>
5215
5216         PR tree-optimizations/49516
5217         * tree-sra.c (sra_modify_assign): Choose the safe path for
5218         aggregate copies if we also did scalar replacements.
5219
5220 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5221
5222         PR target/49335
5223         * config/arm/predicates.md (add_operator): New.
5224         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
5225
5226 2011-06-24  Andi Kleen  <ak@linux.intel.com>
5227
5228         * tree-sra.c (type_internals_preclude_sra_p): Add msg
5229         parameter. Split up ifs and report reason in *msg.
5230         (reject): Add.
5231         (find_var_candiate): Add msg variable.
5232         Split up ifs and report reason to reject.
5233         (find_param_candidates): Add msg variable.
5234         Pass msg to type_internals_preclude_sra_p.
5235
5236 2011-06-23  Jeff Law  <law@redhat.com>
5237
5238         PR middle-end/48770
5239         * reload.h (reload): Change to return a bool.
5240         * ira.c (ira): If requested by reload, run a fast DCE pass after
5241         reload has completed.  Fix comment typo.
5242         * reload1.c (need_dce): New file scoped static.
5243         (reload): Set reload_completed here.  Return whether or not a DCE
5244         pass after reload is needed.
5245         (delete_dead_insn): Set need_dce as needed.
5246
5247         PR middle-end/49465
5248         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
5249         to detect threading through joiner block.  If there was already
5250         an edge to the new target, then do not change the PHI nodes.
5251
5252 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
5253
5254         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
5255         get_pointer_alignment to see if base isn't sufficiently aligned.
5256
5257 2011-06-23  Jan Hubicka  <jh@suse.cz>
5258
5259         PR tree-optimize/49373
5260         * tree-pass.h (all_late_ipa_passes): Declare.
5261         * cgraphunit.c (init_lowered_empty_function): Fix properties.
5262         (cgraph_optimize): Execute late passes; remove unreachable funcions
5263         after materialization.
5264         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
5265         LTOing.
5266         * passes.c (all_late_ipa_passes): Declare.
5267         (dump_passes, register_pass): Handle late ipa passes.
5268         (init_optimization_passes): Move ipa_pta to late passes; schedule
5269         fixup_cfg at beggining of all_passes.
5270         (apply_ipa_transforms): New function.
5271         (execute_one_pass): When doing simple ipa pass, apply all transforms.
5272
5273 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
5274
5275         * params.c: Include common/common-target.h.  Don't include tm.h.
5276         (lang_independent_params): Move from toplev.c.
5277         (global_init_params): New.
5278         * params.h (global_init_params): Declare.
5279         * target.def (default_params): Move to common-target.def.
5280         * toplev.c (lang_independent_options): Remove.
5281         (lang_independent_params): Move to params.c.
5282         (general_init): Use global_init_params.
5283         * common/common-target.def (option_default_params): Move from
5284         target.def.
5285         * common/config/ia64/ia64-common.c: Include params.h.
5286         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
5287         from ia64.c.
5288         * common/config/rs6000/rs6000-common.c: Include params.h.
5289         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
5290         from rs6000.c.
5291         * common/config/sh/sh-common.c: Include params.h.
5292         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
5293         from sh.c.
5294         * common/config/spu/spu-common.c: Include params.h.
5295         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
5296         from spu.c.
5297         * config/ia64/ia64.c (ia64_option_default_params,
5298         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
5299         * config/rs6000/rs6000.c (rs6000_option_default_params,
5300         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
5301         * config/sh/sh.c (sh_option_default_params,
5302         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
5303         * config/spu/spu.c (spu_option_default_params,
5304         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
5305         * Makefile.in (OBJS): Remove params.o.
5306         (OBJS-libcommon-target): Add params.o.
5307         (params.o, $(common_out_object_file)): Update dependencies.
5308         * doc/tm.texi: Regenerate.
5309
5310 2011-06-23  Alan Modra  <amodra@gmail.com>
5311
5312         PR bootstrap/49383
5313         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
5314         invocation for 2011-06-09 changes.
5315
5316 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
5317
5318         PR libgomp/49490
5319         * omp-low.c (expand_omp_for_static_nochunk): Only
5320         use n ceil/ nthreads size for the first n % nthreads threads in the
5321         team instead of all threads except for the last few ones which
5322         get less work or none at all.
5323
5324         PR debug/49496
5325         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
5326         uses.
5327
5328 2011-06-22  Richard Guenther  <rguenther@suse.de>
5329
5330         PR tree-optimization/49493
5331         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
5332         Refer to the alias target of variables.
5333         (associate_varinfo_to_alias_1): Remove.
5334         (ipa_pta_execute): Do not associate aliases with anything.
5335         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
5336         (cgraph_function_node): Likewise.
5337         (cgraph_function_or_thunk_node): Likewise.
5338         (varpool_variable_node): Likewise.
5339
5340 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
5341
5342         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
5343         * config.gcc (arm*-*-linux*): Default to gnu tls.
5344         (arm*-*-*): Add --with-tls option.
5345         (all_defaults): Add 'tls'.
5346
5347 2011-06-22  Richard Henderson  <rth@redhat.com>
5348
5349         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
5350         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
5351         (dwarf2out_frame_debug_cfa_window_save): Rename from
5352         dwarf2out_window_save; make static.
5353         * tree.h (dwarf2out_window_save): Don't declare.
5354
5355         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
5356         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5357         (emit_save_register_window): Rename from gen_save_register_window;
5358         emit the insn and add REG_CFA_* notes.
5359         (sparc_expand_prologue): Update to match.
5360         * config/sparc/sparc.md (save_register_window_1): Simplify from
5361         save_register_window<P:mode>.
5362
5363 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
5364
5365         PR target/49497
5366         * config/i386/i386.md (*lea_general_2): Always allow SImode.
5367         (*lea_general_2_zext): Likewise.
5368         (imul to lea peepholes): Use const359_operand and check
5369         TARGET_PARTIAL_REG_STALL.
5370
5371         * config/i386/predicates.md (const359_operand): New.
5372
5373 2011-06-22  Michael Matz  <matz@suse.de>
5374
5375         * cgraphunit.c (assemble_thunk): Use correct return type.
5376
5377 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
5378             Dmitry Melnik  <dm@ispras.ru>
5379
5380         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
5381         (neon_output_shift_immediate): Ditto.
5382         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
5383         prototype.
5384         (neon_output_shift_immediate): Ditto.
5385         * config/arm/neon.md (vashl<mode>3): Modified constraint.
5386         (vashr<mode>3_imm): New insn pattern.
5387         (vlshr<mode>3_imm): Ditto.
5388         (vashr<mode>3): Modified constraint.
5389         (vlshr<mode>3): Ditto.
5390         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
5391         predicate.
5392         (imm_for_neon_rshift_operand): Ditto.
5393         (imm_lshift_or_reg_neon): Ditto.
5394         (imm_rshift_or_reg_neon): Ditto.
5395
5396         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
5397
5398 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
5399
5400         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
5401         builtin calls even if likelyvalue is not CONSTANT.
5402         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
5403         Return get_value_for_expr of first operand
5404         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
5405         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
5406         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
5407         their non-checking counterparts.
5408         (call_may_clobber_ref_p_1): Likewise.
5409         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
5410         like their non-checking counterparts.
5411         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
5412         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
5413         like their non-checking counterparts.
5414         (find_func_clobbers): Likewise.
5415         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
5416         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
5417
5418         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
5419         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
5420         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
5421         of base type reference as argument.
5422         (resolve_addr_in_expr): Likewise.  Fix keep computation.
5423         (convert_descriptor_to_signed): Renamed to...
5424         (convert_descriptor_to_mode): ... this.  For wider types convert to
5425         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
5426         (typed_binop): New function.
5427         (scompare_loc_descriptor, ucompare_loc_descriptor,
5428         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
5429         default to unsigned type instead of signed.
5430
5431         PR debug/47858
5432         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
5433         (gimple_build_debug_source_bind_stat): New prototype.
5434         (gimple_build_debug_source_bind): Define.
5435         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
5436         gimple_debug_source_bind_get_value,
5437         gimple_debug_source_bind_get_value_ptr,
5438         gimple_debug_source_bind_set_var,
5439         gimple_debug_source_bind_set_value): New inlines.
5440         * gimple.c (gimple_build_debug_source_bind_stat): New function.
5441         * gimple-pretty-print.c (dump_gimple_debug): Handle
5442         GIMPLE_DEBUG_SOURCE_BIND.
5443         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
5444         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
5445         * tree-parloops.c (eliminate_local_variables,
5446         separate_decls_in_region): Likewise.
5447         (separate_decls_in_region_debug): Renamed from
5448         separate_decls_in_region_debug_bind.  Handle
5449         gimple_debug_source_bind_p.
5450         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
5451         prototypes.
5452         (DECL_HAS_DEBUG_ARGS_P): Define.
5453         (struct tree_function_decl): Add has_debug_args_flag field.
5454         * tree.c (debug_args_for_decl): New variable.
5455         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
5456         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
5457         (rewrite_debug_stmt_uses): New function.
5458         (rewrite_stmt): Use it to rewrite debug stmt uses.
5459         * rtl.def (DEBUG_PARAMETER_REF): New.
5460         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
5461         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
5462         DEBUG_PARAMETER_REF.
5463         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
5464         * print-rtl.c (print_rtx): Likewise.
5465         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
5466         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
5467         debug stmts in the first bb.
5468         * tree-inline.c (remap_ssa_name): If remapping default def
5469         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
5470         a source bind debug stmt.
5471         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
5472         (maybe_move_debug_stmts_to_successors): Likewise.
5473         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
5474         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
5475         debug args vector from old_decl to new_decl.
5476         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
5477         or modified parameters, add debug bind stmts before call
5478         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
5479         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
5480         on DECL_DEBUG_EXPRs from debug args vector.
5481         (expand_debug_source_expr): New function.
5482         (expand_debug_locations): Use it for source bind insns.
5483         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
5484         * var-tracking.c (prepare_call_arguments): Add debug args
5485         to call_arguments if any.
5486         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
5487         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
5488         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
5489         (get_ref_die_offset, parameter_ref_descriptor): New functions.
5490         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
5491         (gen_subprogram_die): Handle parameters identified by
5492         DEBUG_PARAMETER_REF.
5493
5494 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
5495
5496         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
5497         * doc/install.texi (Configuration): Document --with-tls.
5498         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
5499         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
5500         (arm_tls_descseq_addr): New.
5501         (legitimize_tls_address): Add tlsdesc support.
5502         (arm_cannot_copy_insn_p): Check for tlscall.
5503         (arm_emit_tls_decoration): Likewise.
5504         * config/arm/arm.h (TARGET_GNU2_TLS): New.
5505         (OPTION_DEFAULT_SPECS): Add with-tls support.
5506         * config/arm/arm.md (R1_REGNUM): Define.
5507         (tlscall): New.
5508         * config/arm/arm.opt (tls_type): New enumeration type and values.
5509         (mtls-dialect): New switch.
5510         * config/arm/arm-opts.h (enum tls_type): New.
5511
5512 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
5513
5514         * attribs.c (register_attribute): Added assert to check that all
5515         attribute specs are registered with a name that is not empty and
5516         does not start with '_'.
5517         (decl_attributes): Avoid the lookup of the "naked" attribute spec
5518         if the function has no attributes.
5519         * tree.c (is_attribute_with_length_p): Removed.
5520         (is_attribute_p): Removed.
5521         (private_is_attribute_p): New.
5522         (private_lookup_attribute): New.
5523         (lookup_attribute): Removed.
5524         (lookup_ident_attribute): New.
5525         (remove_attribute): Require the first argument to be in the form
5526         'text', not '__text__'.  Updated asserts.
5527         (merge_attributes): Use lookup_ident_attributes instead of
5528         lookup_attribute.
5529         (merge_dllimport_decl_attributes): Use remove_attribute.
5530         (attribute_list_contained): Likewise.
5531         (attribute_list_equal): Immediately return 1 if the arguments are
5532         identical pointers.
5533         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
5534         'int'.  Require the first argument to be in the form 'text', not
5535         '__text__'.  Require the second argument to be an identifier.
5536         (lookup_attribute): Made inline.  Require the first argument to be
5537         in the form 'text', not '__text__'.
5538         (private_is_attribute_p, private_lookup_attribute): New.
5539         Updated comments.
5540
5541 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
5542
5543         * builtins.c: Add sync_ or SYNC__ to builtin names.
5544         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
5545         * omp-low.c: Add sync_ or SYNC__ to builtin names.
5546
5547 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
5548
5549         PR target/33049
5550         * config/avr/avr.md (extzv): New expander.
5551         (*extzv): New insn.
5552         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
5553         * config/avr/constraints.md (C04): New constraint.
5554         * doc/md.texi (Machine Constraints): Document it.
5555
5556 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
5557
5558         PR middle-end/49489
5559         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
5560         unsignedp argument instead of 1 for clrsb_optab.
5561         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
5562         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
5563         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
5564         * optabs.c (widen_leading): Call widen_operand and expand_unop
5565         with 0 as unsignedp argument instead of 1 for clrsb_optab.
5566         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
5567
5568 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
5569
5570         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
5571
5572 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
5573
5574         * gensupport.c (add_define_attr): New static function.
5575         (is_predicable): Allow multi-alternative lists for the "predicable"
5576         attribute.
5577         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
5578         (process_one_cond_exec): Call alter_attrs_for_insn.
5579         * doc/md.texi (Defining Attributes): Mention some standard names.
5580         (Conditional Execution): Update documentation for "predicable".
5581
5582         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
5583         __builtin_clrsbll): Document.
5584         * doc/rtl.texi (clrsb): New entry.
5585         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
5586         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
5587         (expand_unop): Handle clrsb_optab.
5588         (init_optabs): Initialize it.
5589         * optabs.h (enum optab_index): New entry OTI_clrsb.
5590         (clrsb_optab): Define.
5591         * genopinit.c (optabs): Add an entry for it.
5592         * builtins.c (expand_builtin): Handle clrsb builtin functions.
5593         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
5594         BUILT_IN_CLRSBLL): New.
5595         * rtl.def (CLRSB): New code.
5596         * dwarf2out.c (mem_loc_descriptor): Handle it.
5597         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
5598         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
5599         and popcount.
5600         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
5601         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
5602         (__ctzDI2): Move declaration.
5603         * config/bfin/bfin.md (clrsbsi2): New expander.
5604         (signbitssi2): Use the CLRSB rtx.
5605         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
5606         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
5607
5608 2011-06-21  Richard Guenther  <rguenther@suse.de>
5609
5610         * ipa-inline-transform.c (inline_transform): Fix previous change.
5611
5612 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
5613
5614         PR tree-optimization/49478
5615         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
5616         with constant operand.
5617
5618 2011-06-21  Richard Guenther  <rguenther@suse.de>
5619
5620         * ipa-inline-transform.c (inline_transform): Fix typo.
5621
5622 2011-06-21  Richard Guenther  <rguenther@suse.de>
5623
5624         PR tree-optimization/49483
5625         * tree-vect-stmts.c (vectorizable_assignment): Also handle
5626         VIEW_CONVERT_EXPR conversions.
5627
5628 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
5629
5630         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
5631         * config/avr/avr-tables.opt: New file (generated).
5632         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
5633         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
5634         avr-mcus.def.
5635         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
5636         (avr_option_override): Don't process -mmcu= argument here.  Set
5637         avr_current_device using avr_mcu_index.
5638         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
5639         * config/avr/avr.opt (mmcu=): Use Enum.
5640         * config/avr/t-avr (avr-devices.o): Update dependencies.
5641         ($(srcdir)/config/avr/avr-tables.opt): New.
5642         * target.def (help): Remove.
5643         * doc/tm.texi.in (TARGET_HELP): Remove.
5644         * doc/tm.texi: Regenerate.
5645         * opts.c: Don't include target.h.
5646         (common_handle_option): Don't call targetm.help.
5647         * system.h (TARGET_HELP): Poison.
5648         * Makefile.in (opts.o): Update dependencies.
5649
5650 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5651
5652         * config/usegld.h: New file.
5653         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
5654         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
5655         (LIB_SPEC): Likewise.  Search /lib.
5656         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
5657         (RDYNAMIC_SPEC): Handle GNU ld.
5658         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
5659         Define.
5660         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
5661         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
5662         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
5663         (STACK_CHECK_STATIC_BUILTIN): Define.
5664         * config/sol2.opt (compat-bsd): Remove.
5665         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
5666         * config/sol2-bi.h: New file.
5667         * config/sol2-gld.h: Remove.
5668         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
5669         (NO_DBX_BNSYM_ENSYM): Remove.
5670         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
5671         (STACK_CHECK_STATIC_BUILTIN): Remove.
5672         Test USE_GLD instead of TARGET_GNU_LD.
5673         * config/i386/sol2-10.h: Rename to ...
5674         * config/i386/sol2-bi.h .. this.
5675         (SUBTARGET_EXTRA_SPECS): Redefine.
5676         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
5677         (MULTILIB_DEFAULTS): Remove.
5678         (DEFAULT_ARCH32_P): Define.
5679         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
5680         (ARCH64_SUBDIR): Define.
5681         Test USE_GLD instead of TARGET_GNU_LD.
5682         (I386_EMULATION): Rename to ...
5683         (ARCH32_EMULATION): ... this.
5684         (X86_64_EMULATION): Rename to ...
5685         (ARCH64_EMULATION): ... this.
5686         (TARGET_LD_EMULATION): Remove.
5687         (LINK_ARCH_SPEC): Remove.
5688         * config/i386/sol2-gas.h: Remove.
5689         * config/i386/t-sol2-10: Rename to ...
5690         * config/i386/t-sol2-64: ... this.
5691         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
5692         (AS_SPARC64_FLAG): Define.
5693         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
5694         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
5695         depending on TARGET_CPU_DEFAULT.
5696         (CPP_CPU_SPEC): Redefine.
5697         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
5698         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
5699         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
5700         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
5701         ASM_ARCH_DEFAULT_SPEC): Redefine.
5702         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
5703         LINK_ARCH_DEFAULT_SPEC.
5704         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
5705         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
5706         (ARCH64_SUBDIR): Define.
5707         (LINK_ARCH64_SPEC): Redefine.
5708         (CC1_SPEC): Redefine.
5709         (OPTION_DEFAULT_SPECS): Redefine.
5710         (MULTILIB_DEFAULTS): Define.
5711         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
5712         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
5713         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
5714         (NO_DBX_BNSYM_ENSYM): Remove.
5715         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
5716         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
5717         (TARGET_ASM_NAMED_SECTION): Likewise.
5718         (STACK_CHECK_STATIC_BUILTIN): Remove.
5719         * config/sparc/sol2-bi.h: Remove.
5720         * config/sparc/sol2-gas-bi.h: Remove.
5721         * config/sparc/sol2-gas.h: Remove.
5722         * config/sparc/sol2-gld-bi.h: Remove.
5723         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
5724         common parts ...
5725         (*-*-solaris2*): ... here.
5726
5727 2011-06-21  Christian Bruel  <christian.bruel@st.com>
5728
5729         PR other/43564
5730         * ipa-inline.c (can_inline_edge_p): Check
5731         !DECL_DISREGARD_INLINE_LIMITS.
5732
5733 2011-06-21  Christian Bruel  <christian.bruel@st.com>
5734
5735         PR middle-end/49139
5736         * cgraphunit.c (process_function_and_variable_attributes): warn when
5737         always_inline functions that are not inline.
5738         * ipa-inline-transform.c (inline_transform): Always call
5739         optimize_inline.
5740         * tree-inline.c (tree_inlinable_function_p): Use error instead
5741         of sorry.
5742         (expand_call_inline): Likewise.
5743
5744 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
5745
5746         * Makefile.in (dg_target_exps): Set.
5747         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
5748         instead of 7, try to divide it more evenly.
5749
5750 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
5751
5752         PR target/49089
5753         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
5754         (avx256_split_unaligned_store): New definition.
5755         (ix86_option_override_internal): Enable avx256 unaligned load/store
5756         splitting only when avx256_split_unaligned_load/store is set.
5757
5758 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
5759
5760         * regrename.c (scan_rtx_reg): Handle the case where we write to an
5761         open chain in a smaller mode without failing the entire block.
5762
5763 2011-06-21  Alan Modra  <amodra@gmail.com>
5764
5765         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
5766         CONST high part large-toc address.
5767         (rs6000_tls_referenced_p): Make static.
5768         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
5769
5770 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5771
5772         PR target/49385
5773         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
5774         one of the operands is a register.
5775
5776 2011-06-20  Kai Tietz  <ktietz@redhat.com>
5777
5778         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
5779         operations in combination with binary and.
5780
5781 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
5782
5783         * regrename.c (do_replace): Don't update notes.
5784
5785 2011-06-20  Alan Modra  <amodra@gmail.com>
5786
5787         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
5788         of toc-relative address in CONST.
5789         (rs6000_delegitimize_address): Recognize changed address.
5790         (rs6000_legitimize_reload_address): Likewise.
5791         (rs6000_emit_move): Don't force these constants to memory.
5792         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
5793         toc-relative address in CONST.
5794         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
5795         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
5796
5797 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
5798
5799         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
5800         (count_trailing_zeros): Likewise.
5801
5802 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
5803
5804         PR other/49325
5805         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
5806         .init_array can be used with .ctors on targets.
5807         * configure: Regenerated.
5808
5809 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
5810
5811         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
5812         if the element type is volatile.
5813
5814 2011-06-18  Jan Hubicka  <jh@suse.cz>
5815
5816         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
5817         extra name aliases.
5818         (lto_symtab_resolve_can_prevail_p): Likewise.
5819         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
5820         * cgraphbuild.c (record_reference): Remove extra body alias code.
5821         (mark_load): Likewise.
5822         (mark_store): Likewise.
5823         * cgraph.h (varpool_node): Remove extra_name filed;
5824         add alias_of and extraname_alias.
5825         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
5826         (varpool_alias_aliased_node): New inline function.
5827         (varpool_variable_node): New function.
5828         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
5829         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
5830         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
5831         (input_varpool_node): Likewise.
5832         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
5833         (varpool_externally_visible_p): Remove extra body alias code.
5834         (function_and_variable_visibility): Likewise.
5835         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
5836         (ipa_pta_execute): Use it.
5837         * varpool.c (varpool_remove_node): Remove extra name alias code.
5838         (varpool_mark_needed_node): Likewise.
5839         (varpool_analyze_pending_decls): Analyze aliases.
5840         (assemble_aliases): New functoin.
5841         (varpool_assemble_decl): Use it.
5842         (varpool_create_variable_alias): New function.
5843         (varpool_extra_name_alias): Rewrite.
5844         (varpool_for_node_and_aliases): New function.
5845
5846 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
5847
5848         PR target/49411
5849         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
5850         last_arg_constant and last argument doesn't match its predicate,
5851         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
5852         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
5853         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
5854         spelling of error message.
5855         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
5856         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
5857         const_0_to_255_operand instead of const_int_operand.
5858
5859         Revert:
5860         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
5861
5862         * config/i386/sse.md (blendbits): Remove mode attribute.
5863         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
5864         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
5865         Check integer value of operand 3 in insn constraint.
5866
5867 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
5868
5869         PR rtl-optimization/48542
5870         * reload.c (find_equiv_reg): Stop looking when finding a
5871         setjmp-type call.
5872         * reload1.c (reload_as_needed): Invalidate all reload
5873         registers when crossing a setjmp-type call.
5874
5875 2011-06-16  Jeff Law  <law@redhat.com>
5876
5877         * tree-ssa-threadupdate.c (struct redirection_data): New field
5878         intermediate_edge.
5879         (THREAD_TARGET2): Define.
5880         (redirection_data_eq): Also check that the intermediate edge is equal.
5881         (lookup_redirection_data): Drop useless argument.  Extract the
5882         outgoing_edge and intermediate edge from E.  Callers updated.
5883         (copy_phi_args, update_destination_phis): New functions.
5884         (fix_duplicate_block_edges): Likewise.
5885         (create_edge_and_update_destination_phis): Duplicate all the edges
5886         hung off e->aux.  Use copy_phi_args.
5887         (create_duplicates): Use fix_duplicate_block_edges.
5888         (fixup_template_block): Likewise.
5889         (redirect_edges): If necessary, redirect the joiner block's incoming
5890         edge to the duplicate of the joiner block.
5891         (thread_block): Don't muck up loops when threading through a joiner
5892         block.
5893         (thread_through_loop_header): Handle threading through a joiner block.
5894         (mark_threaded_blocks, register_jump_thread): Likewise.
5895         * tree-flow.h (register_jump_thread): Add new argument.  Callers
5896         updated.
5897         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
5898         (thread_across_edge): Handle threading through a joiner block.
5899
5900 2011-06-16  Martin Jambor  <mjambor@suse.cz>
5901
5902         PR tree-optimization/49343
5903         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
5904         calculate offset, provide 2nd operand for the new COMPONENT_REF.
5905
5906 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
5907
5908         * config/darwin-protos.h (machopic_select_rtx_section): Move to
5909         inside RTX_CODE ifdef.
5910
5911 2011-06-16  Tom de Vries  <tom@codesourcery.com>
5912
5913         PR target/45098
5914         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
5915         Disallow NULL pointer for pointer arithmetic.
5916
5917 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5918
5919         PR target/49398
5920         Revert.
5921         2011-06-10  Wei Guozhi  <carrot@google.com>
5922
5923         PR target/45335
5924         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5925         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5926         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5927         related peephole2.
5928         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5929         related peephole2.
5930         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5931         (arm_legitimate_ldrd_p): New prototype.
5932         (arm_output_ldrd): New prototype.
5933         * config/arm/arm.c (arm_check_ldrd_operands): New function.
5934         (arm_legitimate_ldrd_p): New function.
5935         (arm_output_ldrd): New function.
5936
5937 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
5938
5939         PR middle-end/46500
5940         * doc/tm.texi.in: Update Copyright date.
5941         * doc/tm.texi: Regenerate.
5942         * targhooks.c (default_setup_incoming_varargs): Replace
5943         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5944         (default_pretend_outgoing_varargs_named): Likewise.
5945         (hook_pass_by_reference_must_pass_in_stack): Likewise.
5946         (hook_callee_copies_named): Likewise.
5947         (default_function_arg_advance): Likewise.
5948         (default_function_arg): Likewise.
5949         (default_function_incoming_arg): Likewise.
5950         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5951         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5952         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5953         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5954         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5955         * targhooks.h (default_setup_incoming_varargs): Likewise.
5956         (default_pretend_outgoing_varargs_named): Likewise.
5957         (hook_pass_by_reference_must_pass_in_stack): Likewise.
5958         (hook_callee_copies_named): Likewise.
5959         (default_function_arg_advance): Likewise.
5960         (default_function_arg): Likewise.
5961         (default_function_incoming_arg): Likewise.
5962         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5963         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5964         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5965         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5966         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5967         * target.def (pass_by_reference): Likewise.
5968         (setup_incoming_varargs, strict_argument_naming): Likewise.
5969         (pretend_outgoing_varargs_named, callee_copies): Likewise.
5970         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
5971         (function_incoming_arg): Likewise.
5972         * target.h: Don't include "tm.h" .
5973         (cumulative_args_t): New typedef.
5974         [GCC_TM_H] (get_cumulative_args): New static inline function.
5975         [GCC_TM_H] (pack_cumulative_args): Likewise.
5976         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
5977         argument type with cumulative_args_t.
5978         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
5979         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
5980         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
5981         (frv_arg_partial_bytes, frv_function_arg): Likewise.
5982         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
5983         (frv_function_arg_1): Likewise.
5984         * config/s390/s390.c (s390_pass_by_reference): Likewise.
5985         (s390_function_arg_advance, s390_function_arg): Likewise.
5986         * config/m32c/m32c.c (m32c_function_arg): Likewise.
5987         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
5988         (m32c_strict_argument_naming): Likewise.
5989         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
5990         (spu_function_arg_advance): Likewise.
5991         (spu_setup_incoming_varargs): Likewise.  Make static.
5992         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
5993         Remove prototype.
5994         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
5995         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5996         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
5997         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
5998         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
5999         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
6000         (mep_pass_by_reference, mep_function_arg): Likewise.
6001         (mep_function_arg_advance): Likewise.
6002         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
6003         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
6004         (m32r_function_arg, m32r_function_arg_advance): Likewise.
6005         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
6006         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
6007         (ix86_function_arg, ix86_pass_by_reference): Likewise.
6008         (ix86_setup_incoming_varargs): Likewise.
6009         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
6010         (sh_strict_argument_naming): Likewise.
6011         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
6012         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
6013         (sh_function_arg_advance, sh_function_arg): Likewise.
6014         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
6015         (pdp11_function_arg_advance): Likewise.
6016         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
6017         Likewise.
6018         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
6019         * config/avr/avr.c (avr_function_arg): Likewise.
6020         (avr_function_arg_advance): Likewise.
6021         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
6022         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
6023         (xtensa_function_arg_1): Likewise.
6024         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
6025         Likewise.
6026         (xstormy16_function_arg): Likewise.
6027         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
6028         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
6029         (fr30_function_arg_advance): Likewise.
6030         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
6031         (lm32_function_arg, lm32_function_arg_advance): Likewise.
6032         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
6033         (moxie_function_arg, moxie_function_arg_advance): Likewise.
6034         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
6035         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
6036         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
6037         (cris_function_arg, cris_function_incoming_arg): Likewise.
6038         (cris_function_arg_advance, cris_function_arg_1): Likewise.
6039         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
6040         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
6041         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
6042         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
6043         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
6044         (mn10300_arg_partial_bytes): Likewise.
6045         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
6046         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
6047         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
6048         (ia64_function_arg_1): Likewise.
6049         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
6050         (m68k_function_arg): Likewise.
6051         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
6052         (rs6000_function_arg, setup_incoming_varargs): Likewise.
6053         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
6054         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
6055         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
6056         (picochip_arg_advance): Likewise.
6057         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
6058         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
6059         (mcore_function_arg_advance): Likewise.
6060         * config/score/score.c (score_pass_by_reference): Likewise.
6061         (score_function_arg_advance): Likewise.
6062         (score_arg_partial_bytes): Likewise.  Make static.
6063         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
6064         * config/arm/arm.c (arm_arg_partial_bytes): Replace
6065         CUMULATIVE_ARGS* argument type with cumulative_args_t.
6066         (arm_function_arg, arm_function_arg_advance): Likewise.
6067         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
6068         * config/pa/pa.c (pa_pass_by_reference): Likewise.
6069         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
6070         (pa_function_arg): Likewise.
6071         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
6072         (mips_function_arg, mips_function_arg_advance): Likewise.
6073         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
6074         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
6075         * config/vax/vax.c (vax_function_arg): Likewise.
6076         (vax_function_arg_advance): Likewise.
6077         * config/h8300/h8300.c (h8300_function_arg): Likewise.
6078         (h8300_function_arg_advance): Likewise.
6079         * config/v850/v850.c (v850_pass_by_reference): Likewise.
6080         (v850_strict_argument_naming, v850_function_arg): Likewise.
6081         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
6082         (v850_setup_incoming_varargs): Likewise.
6083         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
6084         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
6085         (mmix_function_arg, mmix_pass_by_reference): Likewise.
6086         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
6087         with const void *.
6088         * config/bfin/bfin.c (setup_incoming_varargs): Replace
6089         CUMULATIVE_ARGS* argument type with cumulative_args_t.
6090         (bfin_function_arg_advance, bfin_function_arg): Likewise.
6091         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
6092         * calls.c (emit_call_1): Change type of args_so_far to
6093         cumulative_args_t.  Changed all callers.
6094         (initialize_argument_information): Likewise.
6095         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
6096         * dse.c (get_call_args): Likewise.
6097         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
6098         * function.c (pass_by_reference, reference_callee_copied): Likewise.
6099         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
6100         New member args_so_far_v.  Changed all users.
6101         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
6102         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
6103         * config/mips/mips.c (mips_output_args_xfer): Likewise.
6104         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
6105         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
6106         * config/microblaze/microblaze.c (microblaze_expand_prologue):
6107         Likewise.
6108         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
6109         m32r_pass_by_reference.
6110
6111 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
6112
6113         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
6114         argument to be a VEC of statements.
6115         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
6116         assert that pattern statements have to have their vector type set.
6117         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
6118         Change the first argument to be a VEC of statements.  Update
6119         documentation.
6120         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
6121         (vect_handle_widen_mult_by_const): New function.
6122         (vect_recog_widen_mult_pattern):  Change the first argument to be a
6123         VEC of statements.  Update documentation.  Check that the constant is
6124         INTEGER_CST.  Support multiplication by a constant that fits an
6125         intermediate type - call vect_handle_widen_mult_by_const.
6126         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
6127         call.  Handle additional pattern statements if necessary.
6128
6129 2011-06-16  Nick Clifton  <nickc@redhat.com>
6130
6131         PR target/49427
6132         * config.gcc: Set cpu_type to v850 for any V850 architecture.
6133         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
6134         md_file, extra_modes, out_file and extra_options are these are all
6135         deduced from cpu_type.
6136
6137 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
6138
6139         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
6140         truncation mask to 63.
6141
6142 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
6143
6144         PR target/49313
6145         PR target/29524
6146         * longlong.h: Add AVR support:
6147         (count_leading_zeros): New macro.
6148         (count_trailing_zeros): New macro.
6149         (COUNT_LEADING_ZEROS_0): New macro.
6150         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
6151         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
6152         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
6153         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
6154         (LIB2FUNCS_EXCLUDE): Add _clz.
6155         * config/avr/libgcc.S (XCALL): Move up in file.
6156         (XJMP): New C Macro.
6157         (DEFUN): New asm macro.
6158         (ENDF): New asm macro.
6159         (__ffssi2): New function.
6160         (__ffshi2): New function.
6161         (__loop_ffsqi2): New function.
6162         (__ctzsi2): New function.
6163         (__ctzhi2): New function.
6164         (__clzdi2): New function.
6165         (__clzsi2): New function.
6166         (__clzhi2): New function.
6167         (__paritydi2): New function.
6168         (__paritysi2): New function.
6169         (__parityhi2): New function.
6170         (__parityqi2): New function.
6171         (__popcounthi2): New function.
6172         (__popcountsi2): New function.
6173         (__popcountdi2): New function.
6174         (__popcountqi2): New function.
6175         (__bswapsi2): New function.
6176         (__bswapdi2): New function.
6177         (__ashldi3): New function.
6178         (__ashrdi3): New function.
6179         (__lshrdi3): New function.
6180         Fix suspicous lines.
6181
6182 2011-06-16  Richard Guenther  <rguenther@suse.de>
6183
6184         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
6185         the same as x != 0.
6186         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
6187         to (bool) X & 1.
6188         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
6189         equality compares against zero for the lower bit.
6190
6191 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
6192
6193         PR tree-optimization/49419
6194         * tree-vrp.c (execute_vrp): Call init_range_assertions
6195         before estimate_numbers_of_iterations, call
6196         free_number_of_iterations_estimates before calling
6197         remove_range_assertions.
6198
6199 2011-06-16  Revital Eres  <revital.eres@linaro.org>
6200
6201         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
6202         (struct partial_schedule): Add rows_length field.
6203         (verify_partial_schedule): Check rows_length.
6204         (ps_insert_empty_row): Handle rows_length.
6205         (create_partial_schedule): Likewise.
6206         (free_partial_schedule): Likewise.
6207         (reset_partial_schedule): Likewise.
6208         (create_ps_insn): Remove rest_count argument.
6209         (remove_node_from_ps): Update rows_length.
6210         (add_node_to_ps): Update rows_length and call create_ps_insn
6211         without passing row_rest_count.
6212         (rotate_partial_schedule): Update rows_length.
6213
6214 2011-06-16  Revital Eres  <revital.eres@linaro.org>
6215
6216         * ddg.c (add_intra_loop_mem_dep): New function.
6217         (build_intra_loop_deps): Call it.
6218
6219 2011-06-13  Jeff Law  <law@redhat.com>
6220
6221         * df-problems.c (df_lr_local_compute): Manually CSE
6222         PIC_OFFSET_TABLE_REGNUM.
6223         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
6224         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
6225
6226 2011-06-13  Jan Hubicka  <jh@suse.cz>
6227
6228         * cgraphunit.c (handle_alias_pairs): New function.
6229         (cgraph_finalize_compilation_unit): Use it.
6230         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
6231         as externally visible.
6232
6233 2011-06-15  Richard Guenther  <rguenther@suse.de>
6234
6235         * expr.c (expand_expr_real_2): Reduce all integral types to
6236         bitfield precision.
6237         (expand_expr_real_1): Likewise.
6238
6239 2011-06-15  Martin Jambor  <mjambor@suse.cz>
6240
6241         PR tree-optimization/48613
6242         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
6243         ipa_node_params_vector is NULL.
6244
6245 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
6246
6247         PR debug/49382
6248         * dwarf2out.c (dw_loc_list_node): Add force field.
6249         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
6250         location in the list, even if it is modified before first real insn.
6251         (output_loc_list): Emit empty ranges with force flag set.
6252         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
6253
6254 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
6255
6256         PR target/49349
6257         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
6258         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
6259         above a fence.  Update comments.
6260         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
6261         placed just above it.  Do not allow NULL place_to_insert.
6262
6263 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
6264
6265         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
6266         (slpeel_tree_peel_loop_to_edge): Don't call
6267         remove_dead_stmts_from_loop.
6268         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
6269         remove irrelevant pattern statements.  For irrelevant statements
6270         check if it is the last statement of a detected pattern, use
6271         corresponding pattern statement instead.
6272         (destroy_loop_vec_info): No need to remove pattern statements,
6273         only free stmt_vec_info.
6274         (vect_transform_loop): For irrelevant statements check if it is
6275         the last statement of a detected pattern, use corresponding
6276         pattern statement instead.
6277         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
6278         pattern statements.  Set basic block for the new statement.
6279         (vect_pattern_recog): Update documentation.
6280         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
6281         operands of pattern statements.
6282         (vectorizable_call): Fix printing.  In case of a pattern statement
6283         use the lhs of the original statement when creating a dummy
6284         statement to replace the original call.
6285         (vect_analyze_stmt): For irrelevant statements check if it is
6286         the last statement of a detected pattern, use corresponding
6287         pattern statement instead.
6288         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
6289         statements use gsi of the original statement.
6290
6291 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
6292
6293         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
6294         common/common-target-def.h.
6295         * target.def (default_target_flags, handle_option,
6296         supports_split_stack, optimization_table, init_struct,
6297         except_unwind_info, unwind_tables_default, have_named_sections):
6298         Move to common/common-target.def.
6299         * target.h (enum opt_levels, struct default_options): Move to
6300         common/common-target.h.
6301         * targhooks.c (default_except_unwind_info,
6302         dwarf2_except_unwind_info, sjlj_except_unwind_info,
6303         default_target_handle_option, empty_optimization_table): Move to
6304         common/common-targhooks.c.
6305         * targhooks.h (default_except_unwind_info,
6306         dwarf2_except_unwind_info, sjlj_except_unwind_info,
6307         default_target_handle_option, empty_optimization_table): Move to
6308         common/common-targhooks.h.
6309         * common/common-target-def.h: Include common/common-targhooks.h.
6310         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
6311         defined.
6312         * common/common-target.def (handle_option, option_init_struct,
6313         option_optimization_table, default_target_flags,
6314         except_unwind_info, supports_split_stack, unwind_tables_default,
6315         have_named_sections): Move from target.def.
6316         (HOOK_PREFIX): Undefine at end of file.
6317         * common/common-target.h: Include input.h.
6318         (enum opt_levels, struct default_options): Move from target.h.
6319         * common/common-targhooks.c, common/common-targhooks.h: New.
6320         * config.gcc (target_has_targetm_common): Default to yes.
6321         (moxie*): Set target_has_targetm_common=no.
6322         (hppa*-*-*): Don't set target_has_targetm_common=yes.
6323         * doc/tm.texi: Regenerate.
6324         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
6325         (C_TARGET_DEF_H): Add common/common-targhooks.h.
6326         (GCC_OBJS): Remove vec.o.
6327         (OBJS): Remove hooks.o and vec.o.
6328         (OBJS-libcommon-target): Add vec.o, hooks.o and
6329         common/common-targhooks.o.
6330         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
6331         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
6332         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
6333         cfglayout.o, $(out_object_file), $(common_out_object_file)):
6334         Update dependencies.
6335         (common/common-targhooks.o): New.
6336         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
6337         * common/config/pa/pa-common.c: Include more headers.  Take
6338         copyright dates from pa.c.
6339         (pa_option_optimization_table, pa_handle_option,
6340         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
6341         TARGET_HANDLE_OPTION): Move from pa.c.
6342         * common/config/alpha/alpha-common.c,
6343         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
6344         common/config/bfin/bfin-common.c,
6345         common/config/cris/cris-common.c,
6346         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
6347         common/config/h8300/h8300-common.c,
6348         common/config/i386/i386-common.c,
6349         common/config/ia64/ia64-common.c,
6350         common/config/iq2000/iq2000-common.c,
6351         common/config/lm32/lm32-common.c,
6352         common/config/m32c/m32c-common.c,
6353         common/config/m32r/m32r-common.c,
6354         common/config/m68k/m68k-common.c,
6355         common/config/mcore/mcore-common.c,
6356         common/config/mep/mep-common.c,
6357         common/config/microblaze/microblaze-common.c,
6358         common/config/mips/mips-common.c,
6359         common/config/mmix/mmix-common.c,
6360         common/config/mn10300/mn10300-common.c,
6361         common/config/pdp11/pdp11-common.c,
6362         common/config/picochip/picochip-common.c,
6363         common/config/rs6000/rs6000-common.c,
6364         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
6365         common/config/score/score-common.c, common/config/sh/sh-common.c,
6366         common/config/sparc/sparc-common.c,
6367         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
6368         common/config/vax/vax-common.c,
6369         common/config/xstormy16/xstormy16-common.c,
6370         common/config/xtensa/xtensa-common.c: New.
6371         * config/alpha/alpha.c: Include common/common-target.h.
6372         (alpha_option_optimization_table, alpha_handle_option,
6373         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6374         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
6375         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
6376         * config/arm/arm.c (arm_option_optimization_table,
6377         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
6378         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
6379         arm-common.c.
6380         * config/avr/avr.c (avr_option_optimization_table,
6381         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
6382         to avr-common.c.
6383         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
6384         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
6385         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
6386         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
6387         * config/cris/cris.c (cris_option_optimization_table,
6388         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6389         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
6390         cris-common.c.
6391         * config/fr30/fr30.c (fr30_option_optimization_table,
6392         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
6393         to fr30-common.c.
6394         * config/frv/frv.c (frv_option_optimization_table,
6395         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
6396         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
6397         * config/h8300/h8300.c (h8300_option_optimization_table,
6398         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
6399         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
6400         * config/i386/i386-protos.h (ix86_handle_option): Declare.
6401         * config/i386/i386.c: Include common/common-target.h.
6402         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
6403         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
6404         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
6405         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
6406         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
6407         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
6408         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
6409         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
6410         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
6411         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
6412         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
6413         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
6414         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
6415         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
6416         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
6417         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
6418         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
6419         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
6420         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
6421         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
6422         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
6423         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
6424         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
6425         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
6426         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
6427         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
6428         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
6429         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
6430         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
6431         ix86_option_optimization_table, ix86_option_init_struct,
6432         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
6433         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
6434         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
6435         i386-common.c.
6436         * config/i386/t-i386 (i386.o): Update dependencies.
6437         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
6438         * config/ia64/ia64.c (ia64_option_optimization_table,
6439         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
6440         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6441         ia64_handle_option): Move to ia64-common.c.
6442         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
6443         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
6444         * config/lm32/lm32.c (lm32_option_optimization_table,
6445         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
6446         to lm32-common.c.
6447         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
6448         m32c-common.c.
6449         * config/m32r/m32r.c (m32r_option_optimization_table,
6450         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6451         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
6452         m32r_handle_option): Move to m32r-common.c.
6453         (m32r_memory_move_cost): Remove comment referring to
6454         TARGET_HANDLE_OPTION.
6455         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
6456         Move to m68k-common.c.
6457         * config/mcore/mcore.c (mcore_option_optimization_table,
6458         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
6459         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
6460         * config/mep/mep.c (mep_option_optimization_table,
6461         mep_handle_option, TARGET_HANDLE_OPTION,
6462         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
6463         Move to mep-common.c.
6464         * config/microblaze/microblaze.c
6465         (microblaze_option_optimization_table,
6466         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
6467         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
6468         * config/mips/mips.c (mips_handle_option,
6469         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
6470         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
6471         mips-common.c.
6472         * config/mmix/mmix.c (mmix_option_optimization_table,
6473         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
6474         Move to mmix-common.c.
6475         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
6476         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
6477         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6478         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
6479         * config/pa/pa.c: Include common/common-target.h.
6480         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
6481         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6482         pa_handle_option): Move to pa-common.c.
6483         (pa_option_override): Use targetm_common.except_unwind_info.
6484         (pa_asm_output_mi_thunk, pa_function_section): Use
6485         targetm_common.have_named_sections.
6486         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
6487         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6488         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
6489         pdp11_handle_option, pdp11_option_init_struct): Move to
6490         pdp11-common.c.
6491         * config/picochip/picochip.c (picochip_option_optimization_table,
6492         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
6493         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
6494         * config/rs6000/rs6000.c: Include common/common-target.h.
6495         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
6496         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
6497         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
6498         rs6000_handle_option): Move to rs6000-common.c.
6499         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
6500         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
6501         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
6502         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
6503         * config/s390/s390.c (processor_flags_table,
6504         s390_option_optimization_table, s390_option_init_struct,
6505         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
6506         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
6507         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
6508         * config/s390/s390.h (processor_flags_table): Declare.
6509         * config/score/score.c (score_option_optimization_table,
6510         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6511         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
6512         score_handle_option): Move to score-common.c.
6513         * config/sh/sh.c (sh_option_optimization_table,
6514         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
6515         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6516         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
6517         * config/sparc/sparc.c: Include common/common-target.h.
6518         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
6519         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
6520         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
6521         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
6522         spu_option_init_struct): Move to spu-common.c.
6523         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6524         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
6525         * config/v850/v850.c (small_memory_physical_max,
6526         v850_handle_memory_optionn v850_handle_option,
6527         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
6528         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
6529         v850-common.c.
6530         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
6531         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
6532         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
6533         Move to xtensa-common.c.
6534         * cfglayout.c: Include common/common-target.h.
6535         (fixup_reorder_chain): Use targetm_common.have_named_sections.
6536         * cfgrtl.c: Include common/common-target.h.
6537         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
6538         targetm_common.have_named_sections.
6539         * dbxout.c: Include common/common-target.h.
6540         (dbxout_function_end): Use targetm_common.have_named_sections.
6541         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
6542         targetm_common.except_unwind_info.
6543         * dwarf2out.c: Include common/common-target.h.
6544         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
6545         dwarf2out_begin_prologue, dwarf2out_frame_init,
6546         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
6547         targetm_common.except_unwind_info.
6548         * except.c: Include common/common-target.h.
6549         (init_eh, finish_eh_generation,
6550         output_one_function_exception_table): Use
6551         targetm_common.except_unwind_info.
6552         (switch_to_exception_section): Use targetm_common.have_named_sections.
6553         * explow.c: Include common/common-target.h.
6554         * expr.c: Include common/common-target.h.
6555         (build_personality_function): Use targetm_common.except_unwind_info.
6556         * function.c: Include common/common-target.h.
6557         (expand_function_end): Use targetm_common.except_unwind_info.
6558         * haifa-sched.c: Include common/common-target.h.
6559         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
6560         * lto-opts.c: Include common/common-target.h instead of target.h.
6561         (lto_reissue_options): Use targetm_common.handle_option.
6562         * opts.c: Include common/common-target.h.
6563         (target_handle_option): Use targetm_common.handle_option.
6564         (init_options_struct): Update comment referring to
6565         targetm.target_option.optimization.  Use
6566         targetm_common.default_target_flags,
6567         targetm_common.unwind_tables_default and
6568         targetm_common.option_init_struct.
6569         (default_options_optimization): Use
6570         targetm_common.option_optimization_table.
6571         (finish_options): Use targetm_common.except_unwind_info,
6572         targetm_common.unwind_tables_default,
6573         targetm_common.have_named_sections and
6574         targetm_common.supports_split_stack.
6575         * toplev.c: Include common/common-target.h.
6576         (process_options): Use targetm_common.have_named_sections.
6577         * tree-tailcall.c: Include common/common-target.h.
6578         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
6579         * tree.c: Include common/common-target.h.
6580         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
6581         * varasm.c: Include common/common-target.h.
6582         (resolve_unique_section, hot_function_section,
6583         default_function_section): Use targetm_common.have_named_sections.
6584
6585 2011-06-14  Easwaran Raman  <eraman@google.com>
6586
6587         PR rtl-optimization/44194
6588         * dse.c: Include tree-flow.h
6589         (insn_info): Add new field non_frame_wild_read.
6590         (group_info): Add new fields escaped_n and escaped_p.
6591         (kill_on_calls): New variable.
6592         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
6593         (dse_step0): Initialize kill_on_calls.
6594         (can_escape): New function.
6595         (set_usage_bits): Add additional parameter; record information
6596         about escaped locations.
6597         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
6598         (dse_step2_nospill): Set kill_on_calls based on
6599         group->escaped_n and group->escaped_n.
6600         (add_wild_read): Refactor into...
6601         (reset_active_stores): ... New function, and
6602         (free_read_records): ... New function.
6603         (add_non_frame_wild_read): New function.
6604         (scan_insn): Call add_non_frame_wild_read on non-const calls.
6605         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
6606         (dse_step5_nospill): Call scan_reads_nospill for instructions
6607         marked as non_frame_wild_read.
6608         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
6609
6610 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
6611
6612         * common/common-target-def.h, common/common-target.def,
6613         common/common-target.h, common/config/default-common.c,
6614         common/config/pa/pa-common.c: New files.
6615         * Makefile.in (common_out_file, common_out_object_file,
6616         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
6617         (OBJS-libcommon-target): Include $(common_out_object_file).
6618         (prefix.o): Update dependencies.
6619         ($(common_out_object_file), common/common-target-hooks-def.h,
6620         s-common-target-hooks-def-h): New.
6621         (s-tm-texi): Also check timestamp on common-target.def.
6622         (build/genhooks.o): Update dependencies.
6623         * config.gcc (common_out_file, target_has_targetm_common): Define.
6624         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
6625         TARGET_ALWAYS_STRIP_DOTDOT.
6626         * configure.ac (common_out_object_file): Define.
6627         (common_out_file, common_out_object_file): Substitute.
6628         (common): Create directory.
6629         * configure: Regenerate.
6630         * doc/tm.texi.in (targetm_common): Document.
6631         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
6632         * doc/tm.texi: Regenerate.
6633         * genhooks.c (hook_array): Also include common/common-target.def.
6634         * prefix.c (tm.h): Don't include.
6635         (common/common-target.h): Include.
6636         (ALWAYS_STRIP_DOTDOT): Don't define.
6637         (update_path): Use targetm_common.always_strip_dotdot instead of
6638         ALWAYS_STRIP_DOTDOT.
6639         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
6640
6641 2011-06-14  David Li  <davidxl@google.com>
6642
6643         * passes.c (execute_function_todo): Remove TODO_dump_func.
6644         (execute_one_pass): Remove TODO_dump_func.
6645         (execute_function_dump): New function.
6646         * tree-vrp.c: Remove TODO_dump_func.
6647         * regrename.c: Remove TODO_dump_func.
6648         * fwprop.c: Remove TODO_dump_func.
6649         * tree-into-ssa.c: Remove TODO_dump_func.
6650         * tree-complex.c: Remove TODO_dump_func.
6651         * tracer.c: Remove TODO_dump_func.
6652         * tree-loop-distribution.c: Remove TODO_dump_func.
6653         * postreload-gcse.c: Remove TODO_dump_func.
6654         * postreload.c: Remove TODO_dump_func.
6655         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
6656         * tree-tailcall.c: Remove TODO_dump_func.
6657         * ipa-cp.c: Remove TODO_dump_func.
6658         * final.c: Remove TODO_dump_func.
6659         * tree-emutls.c: Remove TODO_dump_func.
6660         * omp-low.c: Remove TODO_dump_func.
6661         * tree-ssa-dse.c: Remove TODO_dump_func.
6662         * tree-ssa-uncprop.c: Remove TODO_dump_func.
6663         * auto-inc-dec.c: Remove TODO_dump_func.
6664         * reorg.c: Remove TODO_dump_func.
6665         * tree-ssa-copyrename.c: Remove TODO_dump_func.
6666         * tree-ssa-ccp.c: Remove TODO_dump_func.
6667         * compare-elim.c: Remove TODO_dump_func.
6668         * mode-switching.c: Remove TODO_dump_func.
6669         * modulo-sched.c: Remove TODO_dump_func.
6670         * tree-call-cdce.c: Remove TODO_dump_func.
6671         * cse.c: Remove TODO_dump_func.
6672         * web.c: Remove TODO_dump_func.
6673         * tree-stdarg.c: Remove TODO_dump_func.
6674         * lto-streamer-out.c: Remove TODO_dump_func.
6675         * tree-ssa-math-opts.c: Remove TODO_dump_func.
6676         * tree-ssa-dom.c: Remove TODO_dump_func.
6677         * tree-nrv.c: Remove TODO_dump_func.
6678         * loop-init.c: Remove TODO_dump_func.
6679         * gimple-low.c: Remove TODO_dump_func.
6680         * ipa-inline.c: Remove TODO_dump_func.
6681         * tree-ssa-sink.c: Remove TODO_dump_func.
6682         * jump.c: Remove TODO_dump_func.
6683         * ifcvt.c: Remove TODO_dump_func.
6684         * tree-ssa-loop.c: Remove TODO_dump_func.
6685         * recog.c: Remove TODO_dump_func.
6686         * dse.c: Remove TODO_dump_func.
6687         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
6688         * matrix-reorg.c: Remove TODO_dump_func.
6689         * tree-eh.c: Remove TODO_dump_func.
6690         * regmove.c: Remove TODO_dump_func.
6691         * function.c: Remove TODO_dump_func.
6692         * tree-vectorizer.c: Remove TODO_dump_func.
6693         * ipa-split.c: Remove TODO_dump_func.
6694         * gcse.c: Remove TODO_dump_func.
6695         * tree-if-conv.c: Remove TODO_dump_func.
6696         * init-regs.c: Remove TODO_dump_func.
6697         * tree-ssa-phiopt.c: Remove TODO_dump_func.
6698         * implicit-zee.c: Remove TODO_dump_func.
6699         * lower-subreg.c: Remove TODO_dump_func.
6700         * bt-load.c: Remove TODO_dump_func.
6701         * tree-dfa.c: Remove TODO_dump_func.
6702         * except.c: Remove TODO_dump_func.
6703         * emit-rtl.c: Remove TODO_dump_func.
6704         * store-motion.c: Remove TODO_dump_func.
6705         * cfgexpand.c: Remove TODO_dump_func.
6706         * tree-cfgcleanup.c: Remove TODO_dump_func.
6707         * cfgcleanup.c: Remove TODO_dump_func.
6708         * tree-ssa-pre.c: Remove TODO_dump_func.
6709         * tree-sra.c: Remove TODO_dump_func.
6710         * tree-mudflap.c: Remove TODO_dump_func.
6711         * tree-ssa-copy.c: Remove TODO_dump_func.
6712         * cfglayout.c: Remove TODO_dump_func.
6713         * tree-ssa-forwprop.c: Remove TODO_dump_func.
6714         * tree-ssa-dce.c: Remove TODO_dump_func.
6715         * ira.c: Remove TODO_dump_func.
6716         * tree-ssa.c: Remove TODO_dump_func.
6717         * integrate.c: Remove TODO_dump_func.
6718         * tree-optimize.c: Remove TODO_dump_func.
6719         * tree-ssa-phiprop.c: Remove TODO_dump_func.
6720         * tree-object-size.c: Remove TODO_dump_func.
6721         * combine.c: Remove TODO_dump_func.
6722         * bb-reorder.c: Remove TODO_dump_func.
6723         * cprop.c: Remove TODO_dump_func.
6724         * var-tracking.c: Remove TODO_dump_func.
6725         * tree-profile.c: Remove TODO_dump_func.
6726         * tree-vect-generic.c: Remove TODO_dump_func.
6727         * reg-stack.c: Remove TODO_dump_func.
6728         * sched-rgn.c: Remove TODO_dump_func.
6729         * tree-ssa-structalias.c: Remove TODO_dump_func.
6730         * tree-switch-conversion.c: Remove TODO_dump_func.
6731         * tree-cfg.c: Remove TODO_dump_func.
6732         * tree-ssa-reassoc.c: Remove TODO_dump_func.
6733         * combine-stack-adj.c: Remove TODO_dump_func.
6734         * dce.c: Remove TODO_dump_func.
6735         * tree-ssanames.c: Remove TODO_dump_func.
6736         * regcprop.c: Remove TODO_dump_func.
6737
6738 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
6739
6740         PR middle-end/47364
6741         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
6742         and properly handle result not in Pmode.
6743
6744 2011-06-14  Robert Millan  <rmh@gnu.org>
6745
6746         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
6747         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
6748         `config/linux.h'.
6749
6750         * config/i386/kfreebsd-gnu64.h: New file.
6751         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
6752         with `i386/kfreebsd-gnu64.h'.
6753
6754         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
6755         (GNU_USER_LINK_EMULATION64): New macros.
6756         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
6757         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
6758         of hardcoding `elf_i386' and `elf_x86_64'.
6759
6760 2011-06-14  Nick Clifton  <nickc@redhat.com>
6761
6762         PR target/49403
6763         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
6764
6765         PR target/49402
6766         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
6767
6768 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
6769
6770         PR fortran/49103
6771         * tree.h (DECL_NONSHAREABLE): Define.
6772         (struct tree_decl_common): Change decl_common_unused to
6773         decl_nonshareable_flag.
6774         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
6775         Ignore vars with DECL_NONSHAREABLE bit set.
6776         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
6777         on stores to automatic aggregate vars.
6778
6779         PR rtl-optimization/49390
6780         Revert:
6781         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
6782
6783         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
6784         MEM_ALIAS_SET.
6785
6786 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
6787             Tom de Vries  <tom@codesourcery.com>
6788
6789         PR target/45098
6790         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
6791         Document changed semantics.
6792         (max_stmt_executions, max_stmt_executions_int): Declare.
6793         * tree-data-ref.c (estimated_loop_iterations)
6794         (estimated_loop_iterations_int): Move functions...
6795         * tree-ssa-loop-niter.c (estimated_loop_iterations)
6796         (estimated_loop_iterations_int): here.
6797         (record_estimate): Change nb_iterations_upper_bound and
6798         nb_iterations_estimate semantics.
6799         (max_stmt_executions, max_stmt_executions_int): New function.
6800         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
6801         (max_stmt_executions_tree): this.
6802         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
6803         estimated_loop_iterations_tree.
6804         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
6805         max_stmt_executions_int instead of estimated_loop_iterations_int.
6806         * predict.c (predict_loops): Idem.
6807         * tree-parloops.c (parallelize_loops): Idem.
6808         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
6809         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
6810         (init_omega_for_ddr_1): Idem.
6811         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
6812         (loop_prefetch_arrays): Idem
6813         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
6814         max_stmt_executions instead of estimated_loop_iterations.
6815         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
6816         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
6817         instead of nb_iterations_upper_bound.
6818
6819 2011-06-13  Jan Hubicka  <jh@suse.cz>
6820
6821         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
6822
6823 2011-06-14  Richard Henderson  <rth@redhat.com>
6824
6825         PR debug/48459
6826         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
6827         (based_loc_descr): Assert it's true.
6828         (compute_frame_pointer_to_fb_displacement): Set it, rather than
6829         aborting immediately.
6830
6831 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
6832             Mingfeng Wu  <mingfeng@faraday-tech.com>
6833
6834         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
6835
6836 2011-06-13  Jan Hubicka  <jh@suse.cz>
6837
6838         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
6839
6840 2011-06-13  Jan Hubicka  <jh@suse.cz>
6841
6842         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
6843         similarly to DECL_COMDAT.
6844         * cgraphunit.c (cgraph_analyze_function): Likewise.
6845         * ipa.c (function_and_variable_visibility): Likewise.
6846
6847 2011-06-13  Jan Hubicka  <jh@suse.cz>
6848
6849         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
6850         BINFO_VIRTUALS when streaming for ltrans unit.
6851
6852 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
6853
6854         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
6855         (movdi_internal64): Same.
6856
6857 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
6858
6859         PR target/44618
6860         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
6861         a set of similar patterns, where the MATCH_OPERAND for the function
6862         argument is replaced with individual references to hardware registers.
6863         (save_fpregs_<mode>): Ditto
6864         (restore_gpregs_<mode>): Ditto
6865         (return_and_restore_gpregs_<mode>): Ditto
6866         (return_and_restore_fpregs_<mode>): Ditto
6867         (return_and_restore_fpregs_aix_<mode>): Ditto
6868
6869 2011-06-13  Jan Hubicka  <jh@suse.cz>
6870
6871         * ipa-utils.c (postorder_stack): New structure.
6872         (ipa_reverse_postorder): Handle aliases.
6873
6874 2011-06-13  Jan Hubicka  <jh@suse.cz>
6875
6876         * ipa-inline.c (reset_edge_caches): Walk aliases.
6877         (update_caller_keys): Do not test inlinability of aliases.
6878         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
6879         (do_estimate_growth): Fix typo.
6880
6881 2011-06-13  Jan Hubicka  <jh@suse.cz>
6882
6883         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
6884         (can_remove_node_now_p): ... here; handle same comdat groups.
6885         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
6886         (inline_call): Update use of can_remove_node_now_p.
6887
6888 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6889
6890         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
6891         condition to disallow non-identical memory locations.
6892         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
6893         preference to bit manipulation instructions.
6894
6895 2011-06-13  Jan Hubicka  <jh@suse.cz>
6896
6897         * cgraph.c (cgraph_for_node_thunks_and_aliases,
6898         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
6899         (nonremovable_p): New function.
6900         (cgraph_can_remove_if_no_direct_calls_p): New function.
6901         (used_from_object_file_p): New functoin.
6902         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
6903         references from aliases.
6904         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
6905         * ipa-inline.c (check_caller_edge): New function.
6906         (want_inline_function_called_once_p): Use it; accept aliases called
6907         once, too.
6908         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
6909
6910 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6911
6912         PR target/48454
6913         * config/arm/neon.md (vec_pack_trunc): Set the lengths
6914         correctly for the case with Quad vectors.
6915
6916 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
6917            Ira Rosen  <ira.rosen@linaro.org>
6918
6919         PR tree-optimization/49352
6920         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
6921         all, make sure loop_use_stmt after the loop is a def stmt of a used
6922         SSA_NAME that is the only one defined inside of the loop.  Don't
6923         check for COND_EXPR and GIMPLE_BINARY_RHS.
6924         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
6925         check_reduction is true.
6926
6927 2011-06-11  Jan Hubicka  <jh@suse.cz>
6928
6929         PR middle-end/49373
6930         * ipa.c (cgraph_externally_visible_p): Check resolution info.
6931
6932 2011-06-11  Jan Hubicka  <jh@suse.cz>
6933
6934         PR middle-end/48836
6935         * ipa-inline-transform.c: Include tree-pass.h
6936         (inline_transform): Set TODO_update_ssa_only_virtuals.
6937         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
6938
6939 2011-06-11  Jan Hubicka  <jh@suse.cz>
6940
6941         PR middle-end/49378
6942         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
6943         aliases and thunks.
6944
6945 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
6946
6947         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
6948         Take number of iterations to peel into account for equally frequent
6949         misalignment values.
6950
6951 2011-06-11  Jan Hubicka  <jh@suse.cz>
6952
6953         * lto-streamer-out.c (produce_symtab): Stream out the newly
6954         represented aliases.
6955
6956 2011-06-11  Jan Hubicka  <jh@suse.cz>
6957
6958         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
6959         varying args.
6960         (ipa_update_after_lto_read): Likewise.
6961         (ipa_write_node_info): Do not sream call_with_var_arguments.
6962         (ipa_read_node_info): Likewise.
6963
6964 2011-06-11  Jan Hubicka  <jh@suse.cz>
6965
6966         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
6967
6968 2011-06-11  Jan Hubicka  <jh@suse.cz>
6969
6970         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
6971         (lto_symtab_resolve_can_prevail_p): Likewise.
6972         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
6973         * cgraph.c (same_body_aliases_done): New global var.
6974         (cgraph_same_body_alias_1): Rename to ...
6975         (cgraph_create_function_alias): ... this one; reorg to new
6976         representation.
6977         (cgraph_same_body_alias): Use cgraph_create_function_alias;
6978         record references when asked to.
6979         (cgraph_add_thunk): Fix formating.
6980         (cgraph_get_node): Kill same body alias code.
6981         (cgraph_node_for_asm): Likewise.
6982         (cgraph_remove_same_body_alias): Remove.
6983         (cgraph_remove_node): Kill same body alias code.
6984         (cgraph_mark_address_taken_node): Mark also the aliased function
6985         as having address taken.
6986         (dump_cgraph_node): Dump same body aliases.
6987         (cgraph_for_node_thunks_and_aliases): Update for new alias
6988         representation.
6989         (cgraph_for_node_and_aliases): Likewise.
6990         * cgraph.h (same_body): Kll pointer.
6991         (same_body_alias): Update comment.
6992         (same_body_aliases_done): Declare.
6993         (cgraph_remove_same_body_alias): Remove declaration.
6994         (cgraph_create_function_alias): Declare.
6995         (cgraph_process_same_body_aliases): Declare.
6996         (cgraph_function_with_gimple_body_p): Check for alias.
6997         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
6998         (cgraph_alias_aliased_node): New function.
6999         (cgraph_function_node): Update for new aliases.
7000         (cgraph_function_or_thunk_node): Likewise.
7001         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
7002         (inline_call): Remove dead aliases.
7003         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
7004         name hack for same body aliases.
7005         (clone_of_p): Look through aliases.
7006         (verify_cgraph_node): Verify aliases.
7007         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
7008         (cgraph_process_same_body_aliases): New function.
7009         (process_function_and_variable_attributes): Disable weakref warning on
7010         alias.
7011         (cgraph_analyze_functions): Handle aliases.
7012         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
7013         (assemble_thunks): Rename to ...
7014         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
7015         (cgraph_expand_function): Remove alias output code.
7016         (cgraph_output_in_order): Skip aliases.
7017         (cgraph_preserve_function_body_p): Aliases don't need preserving.
7018         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
7019         (ipa_record_reference): Do not assert on alias references.
7020         (ipa_ref_has_aliases_p): New function.
7021         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
7022         (ipa_ref_has_aliases_p): Declare.
7023         * lto-cgraph.c (lto_output_node): Handle aliases.
7024         (input_node): Likewise.
7025         * lto-streamer-out.c (lto_output): Skip aliases.
7026         (produce_symtab): Kill same_body_alias code.
7027         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
7028         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
7029         * ipa-inline.c (update_caller_keys): Walk aliases.
7030         (inline_small_functions): Fix thinko in previous patch.
7031         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
7032         (function_and_variable_visibility): Do not walk same body aliases.
7033         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
7034         (ipa_pta_execute): Use it.
7035
7036 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
7037
7038         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
7039         (*vec_dupv2df): Rename from vec_dupv2df.
7040         (vec_dupv2df): New expander.
7041
7042 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
7043
7044         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
7045
7046 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
7047
7048         * config/i386/i386.md: Use default value in "isa" attribute.
7049         * config/i386/sse.md: Ditto.
7050         * config/i386/mmx.md: Ditto.
7051
7052 2011-06-10  Wei Guozhi  <carrot@google.com>
7053
7054         PR target/45335
7055         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
7056         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
7057         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
7058         related peephole2.
7059         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
7060         related peephole2.
7061         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
7062         (arm_legitimate_ldrd_p): New prototype.
7063         (arm_output_ldrd): New prototype.
7064         * config/arm/arm.c (arm_check_ldrd_operands): New function.
7065         (arm_legitimate_ldrd_p): New function.
7066         (arm_output_ldrd): New function.
7067
7068 2011-06-10  David Li  <davidxl@google.com>
7069
7070         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
7071         * passes.c (passr_eq): New function.
7072         (create_pass_tab): New function.
7073         (pass_traverse): New function.
7074         (dump_one_pass): New function.
7075         (dump_pass_list): New function.
7076         (dump_passes): New function.
7077
7078 2011-06-10  Jan Hubicka  <jh@suse.cz>
7079
7080         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
7081         setting the nothrow flag.
7082         * ipa-reference.c (propagate): Skip aliases.
7083         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
7084         (propagate_nothrow): Skip aliases; do not update cgraph.
7085         (local_pure_const): Do not update cgraph.
7086         * tree-profile.c (tree_profiling): Do fixup_cfg.
7087
7088 2011-06-10  Jan Hubicka  <jh@suse.cz>
7089
7090         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
7091         (cgraph_local_node_p): ... here; handle aliases.
7092         (has_addr_references_p): Break out from ...;
7093         (cgraph_remove_unreachable_nodes) ... here.
7094
7095 2011-06-10  Jan Hubicka  <jh@suse.cz>
7096
7097         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
7098         * common.opt (flag_inline_functions_called_once): Do not
7099         initialize to 1.
7100
7101 2011-06-10  Jan Hubicka  <jh@suse.cz>
7102
7103         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
7104         (ipcp_initialize_node_lattices): Do not deal with aliases;
7105         Do not try to propagate through thunks.
7106         (ipcp_change_tops_to_bottom): Do not deal with aliases.
7107
7108 2011-06-10  Jan Hubicka  <jh@suse.cz>
7109
7110         * ipa-prop.c (ipa_write_node_info): Stream jump functions
7111         for indirect calls.
7112         (ipa_read_node_info): Likewise.
7113
7114 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7115
7116         PR lto/49302
7117         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
7118         (build_and_insert_call): Likewise.
7119         (build_and_insert_ref): New.
7120         (gimple_expand_builtin_pow): Minor cleanup.
7121         (gimple_expand_builtin_cabs): New.
7122         (execute_cse_sincos): Add case for BUILT_IN_CABS.
7123
7124 2011-06-10  Jan Hubicka  <jh@suse.cz>
7125
7126         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
7127         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
7128         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
7129         (ipcp_propagate_stage): Skip aliases when propagating.
7130         (ipcp_need_redirect_p): Skip aliases.
7131         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
7132         collect_callers_of_node.
7133         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
7134         for aliases.
7135         (ipa_compute_jump_functions): Look through aliases.
7136
7137 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7138
7139         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
7140
7141 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
7142
7143         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
7144         Adjust comments.
7145         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
7146
7147 2011-06-10  Jan Hubicka  <jh@suse.cz>
7148
7149         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
7150         Update call of gimple_get_virt_method_for_binfo.
7151         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
7152         refuse_thunks parameter.
7153         (gimple_fold_call): Update.
7154         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
7155
7156 2011-06-10  Jan Hubicka  <jh@suse.cz>
7157
7158         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
7159         (not_all_callers_have_enough_arguments_p): ... this one; turn into
7160         worker for cgraph_for_node_and_aliases.
7161         (convert_callers_for_node): Break out from ...
7162         (convert_callers): ... here.
7163         (modify_function): Use collect_callers_of_node.
7164         (ipa_early_sra): Use cgraph_for_node_and_aliases.
7165
7166 2011-06-10  Richard Guenther  <rguenther@suse.de>
7167
7168         PR tree-optimization/49361
7169         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
7170         when not already in gimple form.
7171
7172 2011-06-10  Richard Guenther  <rguenther@suse.de>
7173
7174         PR bootstrap/49344
7175         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
7176         FOR_EACH_PHI_OR_STMT_USE.
7177
7178 2011-06-10  Jan Hubicka  <jh@suse.cz>
7179
7180         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
7181         (clone_inlined_nodes): ... here.
7182         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
7183         to real destination prior inlining.
7184         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
7185         can_early_inline_edge_p, want_early_inline_function_p,
7186         want_early_inline_function_p, want_inline_small_function_p,
7187         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
7188         edge_badness, update_all_callee_keys, lookup_recursive_calls,
7189         add_new_edges_to_heap, inline_small_functions, flatten_function,
7190         inline_always_inline_functions, early_inline_small_functions): Use
7191         cgraph_function_or_thunk_node.
7192         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
7193         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
7194         (do_estimate_edge_growth_1): Break out from ...
7195         (do_estimate_growth) ... here; walk aliases.
7196         (inline_generate_summary): Skip aliases.
7197
7198 2011-06-10  Richard Guenther  <rguenther@suse.de>
7199
7200         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
7201         forward when combining, visit inserted stmts when a stmt was changed.
7202
7203 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
7204
7205         * tree.h (error_operand_p): Add.
7206         * dbxout.c (dbxout_type_fields): Use the latter.
7207         * c-decl.c (add_stmt): Likewise.
7208         * gimplify.c (omp_add_variable, omp_notice_variable,
7209         gimplify_scan_omp_clauses): Likewise.
7210
7211 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
7212
7213         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
7214         when a value is actually passed in regs.
7215
7216 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
7217             Laurent Rougé  <laurent.rouge@menta.fr>
7218
7219         * doc/invoke.texi (SPARC options): Add -mflat.
7220         * config/sparc/sparc.opt: Likewise.
7221         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
7222         (sparc_flat_expand_prologue): Declare.
7223         (sparc_flat_expand_epilogue): Likewise.
7224         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
7225         (CPP_ENDIAN_SPEC): Replace with...
7226         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
7227         (CPP_SPEC): Adjust to above change.
7228         (EXTRA_SPECS): Likewise.
7229         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
7230         (INCOMING_REGNO): Likewise.
7231         (OUTGOING_REGNO): Likewise.
7232         (LOCAL_REGNO): Likewise.
7233         (SETUP_FRAME_ADDRESSES): Likewise.
7234         (FIXED_REGISTERS): Set 0 for %fp.
7235         (CALL_USED_REGISTERS): Likewise.
7236         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
7237         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
7238         (RETURN_ADDR_REGNUM): Define.
7239         (RETURN_ADDR_RTX): Use it.
7240         (INCOMING_RETURN_ADDR_REGNUM): Define.
7241         (INCOMING_RETURN_ADDR_RTX): Use it.
7242         (DWARF_FRAME_RETURN_COLUMN): Likewise.
7243         (EH_RETURN_REGNUM): Define.
7244         (EH_RETURN_STACKADJ_RTX): Use it.
7245         (EH_RETURN_HANDLER_RTX): Delete.
7246         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
7247         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
7248         Delete.
7249         (struct machine_function): Add frame_size, apparent_frame_size,
7250         frame_base_reg, frame_base_offset, n_global_fp_regs and
7251         save_local_in_regs_p fields.
7252         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
7253         sparc_frame_base_offset, sparc_n_global_fp_regs,
7254         sparc_save_local_in_regs_p): New macros.
7255         (sparc_option_override): Error out if -fcall-saved-REG is specified
7256         for Out registers.
7257         (eligible_for_restore_insn): Fix formatting.
7258         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
7259         (eligible_for_sibcall_delay): Likewise.
7260         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
7261         (sparc_legitimate_address_p): Adjust to above change.
7262         (save_global_or_fp_reg_p): New predicate.
7263         (return_addr_reg_needed_p): Likewise.
7264         (save_local_or_in_reg_p): Likewise.
7265         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
7266         (SORR_SAVE, SORR_RESTORE): Delete.
7267         (sorr_pred_t): New typedef.
7268         (sorr_act_t): New enum.
7269         (save_or_restore_regs): Rename to...
7270         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
7271         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
7272         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
7273         mechanism.  Add CFI information for double-word saves in 32-bit mode.
7274         (emit_adjust_base_to_offset): New function extracted from...
7275         (emit_save_or_restore_regs): ...this.  Rename the rest to...
7276         (emit_save_or_restore_regs_global_fp_regs): ...this.
7277         (emit_save_or_restore_regs_local_in_regs): New function.
7278         (gen_create_flat_frame_[123]): New functions.
7279         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
7280         (sparc_flat_expand_prologue): New function.
7281         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
7282         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
7283         (sparc_flat_expand_epilogue): New function.
7284         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
7285         (output_return): Likewise.
7286         (output_sibcall): Likewise.
7287         (sparc_output_mi_thunk): Likewise.
7288         (sparc_frame_pointer_required): Likewise.
7289         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
7290         function optimization.
7291         * config/sparc/sparc.md (flat): New attribute.
7292         (prologue): Add TARGET_FLAT handling.
7293         (save_register_window): Disable if TARGET_FLAT.
7294         (create_flat_frame_[123]): New patterns.
7295         (epilogue): Add TARGET_FLAT handling.
7296         (sibcall_epilogue): Likewise.
7297         (eh_return): New expander.
7298         (eh_return_internal): New insn and splitter.
7299         (return_internal): Add TARGET_FLAT handling.
7300         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
7301         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
7302         (nonlocal_goto): Add TARGET_FLAT handling.
7303         * config/sparc/t-elf: Add -mflat multilib.
7304         * config/sparc/t-leon: Likewise.
7305
7306 2011-06-10  Jan Hubicka  <jh@suse.cz>
7307
7308         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
7309         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
7310         (self_recursive_p): Use cgraph_function_node.
7311         (propagate_pure_const): Likewise.
7312         (propagate_nothrow): Likewise.
7313         * ipa-reference.c (ipa_reference_get_not_read_global): Use
7314         cgraph_function_node.
7315         (propagate_bits): Likewise.
7316         (propagate): Likewise.
7317
7318 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7319             Richard Earnshaw  <rearnsha@arm.com>
7320
7321         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
7322         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
7323         (*thumb2_movdi_vfp): Delete.
7324         (*arm_movdi_vfp_cortexa8): Delete.
7325         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
7326         (*movdi_vfp_cortexa8): Likewise.
7327
7328 2011-06-10  Richard Guenther  <rguenther@suse.de>
7329
7330         * stor-layout.c (initialize_sizetypes): Give names to all
7331         sizetype kinds.
7332
7333 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
7334
7335         PR tree-optimization/49318
7336         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
7337         irrelevant pattern statements.
7338
7339 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
7340
7341         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
7342
7343         PR bootstrap/49354
7344         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
7345         to last assignment.
7346
7347 2011-06-09  Jan Hubicka  <jh@suse.cz>
7348
7349         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
7350         do not recompute reachable flag.
7351         (cgraph_finalize_function, cgraph_analyze_functions): Set
7352         redefined_extern_inline here.
7353
7354 2011-06-09  Jan Hubicka  <jh@suse.cz>
7355
7356         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
7357         (cgraph_only_called_directly_p): ... this one; bring offline.
7358         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
7359         varpool_used_from_object_file_p): Drop names from the declaratoin.
7360         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
7361         collect_callers_of_node): New.
7362         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
7363         (cgraph_edge_recursive_p): Use cgraph_function_node.
7364         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
7365         (cgraph_node_cannot_be_local_p_1): Break out from ...
7366         (cgraph_node_can_be_local_p): ... here; walk aliases.
7367         (cgraph_for_node_thunks_and_aliases): New function.
7368         (cgraph_for_node_and_aliases): New function.
7369         (cgraph_make_node_local_1): Break out from ...
7370         (cgraph_make_node_local) ... here; use
7371         cgraph_for_node_thunks_and_aliases.
7372         (cgraph_set_nothrow_flag_1): Break out from ...
7373         (cgraph_set_nothrow_flag) ... here;
7374         use cgraph_for_node_thunks_and_aliases.
7375         (cgraph_set_const_flag_1): Break out from ...
7376         (cgraph_set_const_flag) ... here;
7377         use cgraph_for_node_thunks_and_aliases.
7378         (cgraph_set_pure_flag_1): Break out from ...
7379         (cgraph_set_pure_flag) ... here;
7380         use cgraph_for_node_thunks_and_aliases.
7381         (cgraph_propagate_frequency_1): Break out from ...
7382         (cgraph_propagate_frequency) ... here; use
7383         cgraph_for_node_thunks_and_aliases.
7384         (cgraph_used_from_object_file_p): Do not care about aliases.
7385         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
7386         New functions.
7387         (collect_callers_of_node_1, collect_callers_of_node): New functions.
7388
7389 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
7390
7391         PR rtl-optimization/49154
7392         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
7393         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
7394         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
7395         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
7396         * config/cris/cris.h (cris_register_move_cost): Remove
7397         !TARGET_V32 code.  Tweak comments.
7398
7399 2011-06-09  Jan Hubicka  <jh@suse.cz>
7400
7401         * cgraphbuild.c (record_eh_tables): Mark personality function as having
7402         address taken.
7403
7404 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
7405
7406         PR rtl-optimization/49154
7407         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
7408         is a matching slot in the hashtable, assign it to classes_ptr.
7409
7410         PR rtl-optimization/49154
7411         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
7412         register classes.
7413         * doc/tm.texi: Regenerate.
7414
7415 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
7416
7417         PR target/49307
7418         * config/sh/sh.md (UNSPEC_CHKADD): New.
7419         (chk_guard_add): New define_insn_and_split.
7420         (symGOT_load): Use chk_guard_add instead of blockage.
7421
7422 2011-06-09  Kai Tietz  <ktietz@redhat.com>
7423
7424         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
7425
7426 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
7427
7428         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
7429
7430 2011-06-09  Wei Guozhi  <carrot@google.com>
7431
7432         PR target/46975
7433         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
7434         (peephole2 for conditional move): Generate 16 bit instructions.
7435
7436 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
7437
7438         * config/i386/i386.md (*movdi_internal_rex64): Merge
7439         alternatives 6 and 8.
7440
7441 2011-06-09  David Li  <davidxl@google.com>
7442
7443         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
7444         * passes.c (passr_eq): New function.
7445         (create_pass_tab): New function.
7446         (pass_traverse): New function.
7447         (dump_one_pass): New function.
7448         (dump_pass_list): New function.
7449         (dump_passes): New function.
7450
7451 2011-06-09  David Li  <davidxl@google.com>
7452
7453         * tree-complex.c (tree_lower_complex): Gate cleanup.
7454         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
7455         (execute_optimize_stdarg): Ditto.
7456         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
7457         (execute_cleanup_eh_1): Ditto.
7458         (execute_cleanup_eh): Ditto.
7459         * gcse.c (gate_rtl_pre): Ditto.
7460         (execute_rtl_pre): Ditto.
7461         * except.c (finish_eh_generation): Ditto.
7462         (convert_to_eh_region_ranges): Ditto.
7463         * cprop.c (one_cprop_pass): Ditto.
7464
7465 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
7466
7467         PR target/48673
7468         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
7469         in all basic blocks.
7470
7471 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7472
7473         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
7474         (HAVE_ENABLE_EXECUTE_STACK): Define.
7475         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
7476         (HAVE_ENABLE_EXECUTE_STACK): Define.
7477         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
7478         (HAVE_ENABLE_EXECUTE_STACK): Define.
7479         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
7480         (ENABLE_EXECUTE_STACK): Remove.
7481         (HAVE_ENABLE_EXECUTE_STACK): Define.
7482         [IN_LIBGCC2]: Don't include <windows.h>.
7483         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
7484         (HAVE_ENABLE_EXECUTE_STACK): Define.
7485         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
7486         (HAVE_ENABLE_EXECUTE_STACK): Define.
7487         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
7488         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
7489         (HAVE_ENABLE_EXECUTE_STACK): Define.
7490         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
7491         (HAVE_ENABLE_EXECUTE_STACK): Define.
7492         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
7493         (HAVE_ENABLE_EXECUTE_STACK): Define.
7494         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
7495         (HAVE_ENABLE_EXECUTE_STACK): Define.
7496         * config/alpha/alpha.c (alpha_trampoline_init): Test
7497         HAVE_ENABLE_EXECUTE_STACK.
7498         * config/i386/i386.c (ix86_trampoline_init): Likewise.
7499         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
7500         (sparc64_initialize_trampoline): Likewise.
7501         * libgcc2.c [L_enable_execute_stack]: Remove.
7502         * system.h (ENABLE_EXECUTE_STACK): Poison.
7503         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
7504         * doc/tm.texi: Regenerate.
7505         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
7506
7507 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
7508
7509         PR middle-end/49308
7510         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
7511         variable.  After resetting and rescanning insn continue with previous
7512         statement.
7513
7514 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7515
7516         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
7517         (gcc_cv_ld_hidden): Likewise.
7518         * configure: Regenerate.
7519         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
7520         (ix86_stack_protect_fail): Mark unused.
7521         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
7522         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
7523         [TARGET_MACHO]: Don't define.
7524         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
7525         (TARGET_STACK_PROTECT_FAIL): Likewise.
7526         (rs6000_stack_protect_fail): Mark unused.
7527         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
7528         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
7529
7530 2011-06-08  Andi Kleen  <ak@linux.intel.com>
7531
7532         * varasm.c (get_section): Print location of other conflict
7533         for section conflicts.
7534
7535 2011-06-08  Andi Kleen  <ak@linux.intel.com>
7536
7537         * config/i386/driver-i386.c (host_detect_local_cpu):
7538         Add model 0x2d Intel CPU.
7539
7540 2011-06-08  Andi Kleen  <ak@linux.intel.com>
7541
7542         * reginfo.c (global_regs_decl): Add.
7543         (globalize_reg): Add decl parameter. Compute location.  Pass location
7544         to warnings and add inform. Store decl in global_regs_decl.
7545         * rtl.h (globalize_reg): Update prototype.
7546         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
7547
7548 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
7549
7550         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
7551
7552 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
7553
7554         PR target/49305
7555         * config/sh/predicates.md (general_movsrc_operand): Check
7556         mode for memory with indexed address for QI and HImode.
7557         (general_movdst_operand): Likewise.
7558
7559 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
7560
7561         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
7562
7563 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
7564
7565         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
7566         (num_ssa_operands): Likewise.
7567         (op_iter_init_phiuse): Forward-declare.
7568         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
7569
7570 2011-06-08  Nick Clifton  <nickc@redhat.com>
7571
7572         * doc/invoke.texi (ARM Options): Update description of
7573         -mthumb-interwork.
7574
7575 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
7576
7577         * config/i386/driver-i386.c (host_detect_local_cpu): Support
7578         unknown Intel family 0x6 CPUs.
7579
7580 2011-06-08  Martin Jambor  <mjambor@suse.cz>
7581
7582         * tree-sra.c (mark_rw_status): Removed.
7583         (analyze_access_subtree): New parameter parent instead of
7584         mark_read and mark_write, propagate from that.
7585
7586 2011-06-08  Julian Brown  <julian@codesourcery.com>
7587
7588         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
7589         for double-precision helper functions in hard-float mode if only
7590         single-precision arithmetic is supported in hardware.
7591
7592 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
7593
7594         PR rtl-optimization/49303
7595         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
7596         code_motion_path_driver returned 0 or 1.
7597         (sel_region_finish): Clear h_d_i_d.
7598
7599 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
7600
7601         * config/sh/sh.c (prepare_move_operands): Set pic register
7602         appropriately for global and local dynamic tls models even
7603         if flag_pic is unset.
7604
7605 2011-06-07  Jason Merrill  <jason@redhat.com>
7606
7607         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
7608
7609 2011-06-07  Xinliang David Li  <davidxl@google.com>
7610         * passes.c (enable_disable_pass): Handle assembler name.
7611         (is_pass_explicitly_enabled_or_disabled): Ditto.
7612
7613 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7614
7615         PR tree-optimization/48497
7616         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
7617
7618 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7619
7620         PR tree-optimization/46728
7621         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
7622         to use gimple_val_nonnegative_real_p.
7623         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
7624         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
7625
7626 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
7627
7628         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
7629
7630 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
7631
7632         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
7633         constant vectors.
7634
7635 2011-06-07  Richard Guenther  <rguenther@suse.de>
7636
7637         * stor-layout.c (initialize_sizetypes): Initialize all
7638         sizetypes based on target definitions.
7639         (set_sizetype): Remove.
7640         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
7641         * tree.h (set_sizetype): Remove.
7642
7643 2011-06-07  Nick Clifton  <nickc@redhat.com>
7644
7645         * config.gcc: Unify V850 architecture options and add support for
7646         newer V850 architectures.
7647         * config/v850/t-v850e: Delete.
7648
7649 2011-06-07  Richard Guenther  <rguenther@suse.de>
7650
7651         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
7652         Call set_sizetype from here.
7653
7654 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
7655
7656         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
7657         (*maddhisi4tb, *maddhisi4tt): New define_insns.
7658
7659 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
7660             Andrew Stubbs  <ams@codesourcery.com>
7661
7662         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
7663         multiplies.
7664         * doc/md.texi (Canonicalization of Instructions): Document widening
7665         multiply canonicalization.
7666
7667 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
7668
7669         PR gcov-profile/49299
7670         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
7671
7672 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
7673
7674         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
7675         a pointer.
7676         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
7677         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
7678         vect_recog_pow_pattern): Likewise.
7679         (vect_pattern_recog_1): Remove declaration.
7680         (widened_name_p): Remove declaration.  Add new argument to specify
7681         whether to check that both types are either signed or unsigned.
7682         (vect_recog_widen_mult_pattern): Update documentation.  Handle
7683         unsigned patterns and multiplication by constants.
7684         (vect_pattern_recog_1): Update vect_recog_func references.  Use
7685         statement information from the statement returned from pattern
7686         detection functions.
7687         (vect_pattern_recog): Update vect_recog_func reference.
7688         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
7689         multiplication by a constant use the type of the other operand.
7690
7691 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
7692
7693         PR rtl-optimization/49145
7694         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
7695
7696 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
7697
7698         PR debug/49262
7699         * dwarf2out.c (native_encode_initializer): Decrement count in each
7700         iteration.
7701
7702         PR debug/49294
7703         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
7704         non-MODE_INT modes.
7705
7706         PR c++/49264
7707         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
7708         if stmt folded into nothing.
7709         * tree-inline.c (fold_marked_statements): If a builtin at the end of
7710         a bb folded into nothing, just update cgraph edges and move to next bb.
7711         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
7712         to be NULL.  Don't compute count and frequency if new_call is NULL.
7713
7714 2011-06-04  Diego Novillo  <dnovillo@google.com>
7715
7716         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
7717         (cgraph.o): Likewise.
7718         (cgraphunit.o): Likewise.
7719         * cgraphunit.c: Include lto-streamer.h
7720         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
7721         if LTO is enabled.
7722         * lto-streamer-in.c (unpack_value_fields): Call
7723         streamer_hooks.unpack_value_fields if set.
7724         (lto_materialize_tree): For unhandled nodes, first try to
7725         call lto_streamer_hooks.alloc_tree, if it exists.
7726         (lto_input_ts_decl_common_tree_pointers): Move reading of
7727         DECL_INITIAL to lto_streamer_read_tree.
7728         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
7729         (lto_streamer_read_tree): New.
7730         (lto_reader_init): Rename from lto_init_reader.
7731         Move initialization code to lto/lto.c.
7732         * lto-streamer-out.c (pack_value_fields): Call
7733         streamer_hooks.pack_value_fields if set.
7734         (lto_output_tree_ref): For tree nodes that are not normally indexable,
7735         call streamer_hooks.indexable_with_decls_p before giving up.
7736         (lto_output_ts_decl_common_tree_pointers): Move handling
7737         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
7738         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
7739         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
7740         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
7741         (lto_streamer_write_tree): New.
7742         (lto_output): Call lto_streamer_init directly.
7743         (lto_writer_init): Remove.
7744         * lto-streamer.c (streamer_hooks): New.
7745         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
7746         instead of lto_preload_common_nodes.
7747         (lto_is_streamable): Move from lto-streamer.h
7748         (lto_streamer_hooks_init): New.
7749         (streamer_hooks): New.
7750         (streamer_hooks_init): New.
7751         * lto-streamer.h (struct output_block): Forward declare.
7752         (struct lto_input_block): Likewise.
7753         (struct data_in): Likewise.
7754         (struct bitpack_d): Likewise.
7755         (struct streamer_hooks): Declare.
7756         (streamer_hooks): Declare.
7757         (lto_streamer_hooks_init): Declare.
7758         (lto_streamer_write_tree): Declare.
7759         (lto_streamer_read_tree): Declare.
7760         (streamer_hooks_init): Declare.
7761         (lto_is_streamable): Move to lto-streamer.c
7762
7763 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7764
7765         * longlong.h (smul_ppmm): The resulting register pair contains the
7766         higher order word first.
7767
7768 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7769
7770         PR tree-optimization/46728
7771         * builtins.c (powi_table): Remove.
7772         (powi_lookup_cost): Remove.
7773         (powi_cost): Remove.
7774         (expand_powi_1): Remove.
7775         (expand_powi): Remove.
7776         (expand_builtin_pow_root): Remove.
7777         (expand_builtin_pow): Remove.
7778         (expand_builtin_powi): Eliminate handling of constant exponent.
7779         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
7780
7781 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
7782
7783         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
7784
7785 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
7786
7787         * dce.c (reset_unmarked_insns_debug_uses): New.
7788         (delete_unmarked_insns): Skip debug insns.
7789         (prescan_insns_for_dce): Likewise.
7790         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
7791         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
7792         active reg can be found.
7793         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
7794         (convert_regs_1): Use it.
7795
7796 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
7797
7798         * tree-pretty-print.c (dump_function_header): Add flags.
7799         Don't dump decl_uid with nouid.
7800         * tree-pretty-print.h (dump_function_header): Adjust.
7801         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
7802         * passes.c (pass_init_dump_file): Pass dump_flags on.
7803         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
7804
7805 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
7806
7807         PR bootstrap/49270
7808         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
7809
7810 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
7811
7812         PR tree-optimization/49243
7813         * calls.c (setjmp_call_p): Also check if fndecl has the
7814         returns_twice attribute.
7815
7816 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7817
7818         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
7819         -ffast-math etc.
7820
7821 2011-06-06  Richard Henderson  <rth@redhat.com>
7822             Georg-Johann Lay  <avr@gjlay.de>
7823
7824         PR target/42210
7825         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
7826         New predicates.
7827         * config/avr/avr.md ("insv"): New insn expander.
7828         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
7829         "*insv.not.io", "*insv.reg"): New insns.
7830
7831 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
7832
7833         PR target/49285
7834         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
7835         to nonimmediate_operand from memory_operand for the operand that is to
7836         be forced to memory by the expander.  Lose the constraints.
7837
7838 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
7839
7840         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
7841         EH return when delayed branches are disabled.
7842
7843 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
7844
7845         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
7846         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
7847         calculation.
7848         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
7849         Simplify MODE_V1DF and MODE_V2SF handling.
7850         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
7851         Simplify MODE_SF handling.
7852
7853 2011-06-04  Jan Hubicka  <jh@suse.cz>
7854
7855         PR tree-optimization/48893
7856         PR tree-optimization/49091
7857         PR tree-optimization/49179
7858         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
7859         Bounds check.
7860
7861 2011-06-04  Jan Hubicka  <jh@suse.cz>
7862
7863         PR lto/48954
7864         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
7865         bitmaps.
7866
7867 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
7868
7869         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
7870
7871 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
7872
7873         PR target/49281
7874         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
7875         to be strictly smaller than 1 << shiftcount.
7876
7877 2011-06-04  Jan Hubicka  <jh@suse.cz>
7878
7879         PR tree-optimize/48929
7880         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
7881         of empty predicate.
7882
7883 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
7884
7885         PR debug/48333
7886         * calls.c (emit_call_1): Prefer the __builtin declaration of
7887         builtin functions.
7888
7889 2011-06-03   Diego Novillo  <dnovillo@google.com>
7890
7891         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
7892         (lto_input_tree_pointers): Likewise.
7893         * lto-streamer-out.c (pack_value_fields): Likewise.
7894         (lto_output_tree_pointers): Likewise.
7895         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
7896         and OPTIMIZATION_NODE.
7897
7898 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7899
7900         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
7901         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
7902         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
7903         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
7904         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
7905         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
7906         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
7907         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
7908         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
7909         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
7910         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
7911         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
7912         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
7913         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
7914         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
7915         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
7916         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
7917         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
7918         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
7919         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
7920         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
7921         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
7922         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
7923         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
7924         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
7925         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
7926         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
7927         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
7928         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
7929         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
7930         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
7931         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
7932         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
7933         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
7934         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
7935         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
7936         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
7937         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
7938         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
7939         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
7940         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
7941         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
7942         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
7943         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
7944         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
7945         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
7946         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
7947         * system.h (MD_UNWIND_SUPPORT): Poison.
7948         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
7949         * doc/tm.texi: Regenerate.
7950         * unwind-dw2.c: Include md-unwind-support.h instead of
7951         MD_UNWIND_SUPPORT.
7952         * config/ia64/unwind-ia64.c: Likewise.
7953         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7954
7955 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
7956
7957         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
7958
7959 2011-06-03  Richard Henderson  <rth@redhat.com>
7960             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7961
7962         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
7963         (sigill_hdlr): Correct insn, insn size.
7964         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
7965
7966 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7967
7968         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
7969         t-slibgcc-dummy.
7970         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
7971         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
7972         * config/mips/t-iris: Remove.
7973         * config/mips/t-irix6: New file.
7974         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
7975
7976 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7977
7978         * Makefile.in (LIB2ADDEHDEP): Remove.
7979         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
7980         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
7981         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
7982         * config/t-darwin (LIB2ADDEHDEP): Remove.
7983         * config/t-freebsd (LIB2ADDEHDEP): Remove.
7984         * config/t-linux (LIB2ADDEHDEP): Remove.
7985
7986 2011-06-03  Diego Novillo  <dnovillo@google.com>
7987
7988         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
7989         (lto_register_var_decl_in_symtab): Likewise.
7990         (lto_register_function_decl_in_symtab): Likewise.
7991         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
7992         logic to uniquify_nodes.
7993
7994 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7995
7996         * config/alpha/t-osf5: Remove.
7997         * config/alpha/t-osf-pthread: Remove.
7998         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
7999         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
8000
8001 2011-06-03  Julian Brown  <julian@codesourcery.com>
8002
8003         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
8004         (strongarm1110): Use strongarm tuning.
8005         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
8006         * config/arm/arm.c (arm_strongarm_tune): New.
8007         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
8008         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
8009         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
8010         setting, using previous defaults or 1 for Cortex-A5.
8011         (arm_option_override): Set max_insns_skipped from current tuning.
8012
8013 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
8014
8015         * doc/install.texi (Options specification): Document --with-specs.
8016
8017 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8018
8019         * config/arm/neon.md (orndi3_neon): Actually split it.
8020
8021 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
8022
8023         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
8024         * var-tracking.c (reverse_op): Limite recurse depth to 5.
8025
8026 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
8027
8028         PR debug/47590
8029         * target.def (delay_sched2, delay_vartrack): New.
8030         * doc/tm.texi.in: Update.
8031         * doc/tm.texi: Rebuild.
8032         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
8033         * var-tracking.c (gate_handle_var_tracking): Likewise.
8034         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
8035         (bfin_flag_var_tracking): Drop.
8036         (output_file_start): Don't save and override flag_var_tracking.
8037         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
8038         (bfin_reorg): Test original variables.
8039         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8040         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
8041         (ia64_flag_var_tracking): Drop.
8042         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8043         (ia64_file_start): Don't save and override flag_var_tracking.
8044         (ia64_override_options_after_change): Ditto
8045         flag_schedule_insns_after_reload.
8046         (ia64_reorg): Test original variables.
8047         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
8048         (picochip_flag_var_tracking): Drop.
8049         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8050         (picochip_option_override): Don't save and override
8051         flag_schedule_insns_after_reload.
8052         (picochip_asm_file_start): Ditto flag_var_tracking.
8053         (picochip_reorg): Test original variables.
8054         * config/spu/spu.c (spu_flag_var_tracking): Drop.
8055         (TARGET_DELAY_VARTRACK): Define.
8056         (spu_var_tracking): New.
8057         (spu_machine_dependent_reorg): Call it.
8058         (asm_file_start): Don't save and override flag_var_tracking.
8059
8060 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
8061
8062         PR target/49163
8063         * config/sh/predicates.md (general_movsrc_operand): Return 0
8064         for memory and memory subreg of which address is an invalid
8065         indexed address for QI and HImode.
8066         (general_movdst_operand): Likewise.
8067
8068 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
8069
8070         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
8071         edges only, when there is a non-local label in the function.
8072         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
8073
8074 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
8075
8076         * config/i386/constraints.md (Y3): New register constraint.
8077         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
8078         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
8079         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
8080         *sse2_interleave_lowv2df.
8081
8082 2011-06-02  Julian Brown  <julian@codesourcery.com>
8083
8084         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
8085         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
8086         (arm_cortex_a5_tune): New.
8087
8088 2011-06-02  Julian Brown  <julian@codesourcery.com>
8089
8090         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
8091         * config/arm/arm.c (arm_default_branch_cost): New.
8092         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
8093         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
8094         (arm_fa726_tune): Set branch_cost field using
8095         arm_default_branch_cost.
8096         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
8097         current_tune structure.
8098         * dojump.c (tm_p.h): Include file.
8099
8100 2011-06-02  Julian Brown  <julian@codesourcery.com>
8101
8102         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
8103         tuning.
8104         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
8105         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
8106         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
8107         field.
8108         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
8109         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
8110         (arm_fa726te_tune): Add prefer_constant_pool setting.
8111         (arm_v6t2_tune, arm_cortex_tune): New.
8112         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
8113         prefer_constant_pool setting.
8114
8115 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
8116
8117         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
8118         switch statement.
8119         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
8120         (*movdf_internal) <case 6,7,8>: Ditto.
8121
8122         * config/i386/constraints.md (Y4): New register constraint.
8123         * config/i386/sse.md (vec_set<mode>_0): Merge with
8124         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
8125         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
8126         *vec_extractv2di_1_sse.
8127         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
8128         and *vec_concatv2di_rex64_sse.
8129
8130 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
8131
8132         PR target/48807
8133         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
8134         of cgraph_local_info for null before attempting to use it.
8135
8136 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
8137
8138         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
8139         (current_function_dynamic_alloc_count): Delete.
8140         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
8141         (expand_builtin_nonlocal_goto): Remove obsolete comment.
8142         (expand_builtin_update_setjmp_buf): Remove dead code.
8143         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
8144         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
8145         support.
8146         * function.c (instantiate_virtual_regs): Likewise.
8147         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
8148         for a block with a single abnormal incoming edge.
8149         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
8150         (SETJMP_VIA_SAVE_AREA): Delete.
8151         * config/sparc/sparc-protos.h (load_got_register): Declare.
8152         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
8153         (load_got_register): Make global.
8154         (sparc_frame_pointer_required): Add 'static'.
8155         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
8156         (sparc_builtin_setjmp_frame_value): New function.
8157         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
8158         (save_stack_nonlocal): New expander.
8159         (restore_stack_nonlocal): Likewise.
8160         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
8161         (nonlocal_goto_internal): New insn.
8162         (goto_handler_and_restore): Delete.
8163         (builtin_setjmp_setup): Likewise.
8164         (do_builtin_setjmp_setup): Likewise.
8165         (setjmp): Likewise.
8166         (builtin_setjmp_receiver): New expander.
8167
8168 2011-06-01  David Li  <davidxl@google.com>
8169
8170         PR middle-end/49261
8171         * tree-pretty-print.c (dump_function_header): Format cleanup.
8172
8173 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
8174
8175         PR target/49238
8176         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
8177         needed when original operands are used for msw_skip comparison.
8178
8179 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
8180
8181         PR debug/49250
8182         * var-tracking.c (add_uses, add_stores): Don't call
8183         cselib_subst_to_values on ENTRY_VALUE.
8184
8185 2011-06-01  Diego Novillo  <dnovillo@google.com>
8186
8187         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
8188         output_record_start with LTO_null instead of output_zero.
8189         (lto_output_ts_binfo_tree_pointers): Likewise.
8190         (lto_output_tree): Likewise.
8191         (output_eh_try_list): Likewise.
8192         (output_eh_region): Likewise.
8193         (output_eh_lp): Likewise.
8194         (output_eh_regions): Likewise.
8195         (output_bb): Likewise.
8196         (output_function): Likewise.
8197         (output_unreferenced_globals): Likewise.
8198         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
8199         instead of NUM_TREE_CODES.
8200         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
8201         (lto_output_int_in_range): Change << to >> when shifting VAL.
8202
8203 2011-06-01  Diego Novillo  <dnovillo@google.com>
8204
8205         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
8206         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
8207
8208 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
8209
8210         PR target/45074
8211         * optabs.h (valid_multiword_target_p): Declare.
8212         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
8213         doing multi-word operations.
8214         * optabs.c (expand_binop): Likewise.
8215         (expand_doubleword_bswap): Likewise.
8216         (expand_absneg_bit): Likewise.
8217         (expand_unop): Likewise.
8218         (expand_copysign_bit): Likewise.
8219         (multiword_target_p): New function.
8220
8221 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
8222
8223         PR rtl-optimization/48830
8224         PR rtl-optimization/48808
8225         PR rtl-optimization/48792
8226         * reload.c (push_reload): Check contains_reg_of_mode.
8227         * reload1.c (strip_paradoxical_subreg): New function.
8228         (gen_reload_chain_without_interm_reg_p): Use it to handle
8229         paradoxical subregs.
8230         (emit_output_reload_insns, gen_reload): Likewise.
8231
8232 2011-06-01  David Li  <davidxl@google.com>
8233
8234         * predict.c : Change pass name
8235         * ipa.c: Ditto.
8236         * dce.c: Ditto.
8237         * tree-profile.c: Ditto.
8238         * except.c: Ditto.
8239
8240 2011-06-01  David Li  <davidxl@google.com>
8241
8242         * tree-pretty-print.c (dump_function_header): New function.
8243         * final.c (rest_of_clean_state): Use header dumper.
8244         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
8245         * passes.c (pass_init_dump_file): Use header dumper.
8246
8247 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
8248
8249         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
8250         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
8251         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
8252         New functions.
8253         (mem_loc_descriptor): Use them.
8254
8255         * var-tracking.c (create_entry_value): New function.
8256         (vt_add_function_parameter): Use it.
8257
8258 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8259
8260         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
8261         Include <signal.h>, <ucontext.h>.
8262         (sigill_caught): Define.
8263         (sigill_hdlr): New function.
8264         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
8265         insns can be executed.
8266         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
8267         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
8268
8269 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8270
8271         * config/t-slibgcc-darwin: Move to ...
8272         * config/t-slibgcc-dummy: ... this.  Clarify comments.
8273         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
8274         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
8275         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
8276         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
8277         Remove i386/t-crtstuff from tmake_file.
8278         (i[34567]86-*-solaris2*): Remove t-svr4,
8279         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
8280         t-slibgcc-dummy.
8281         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
8282         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
8283         sparc/t-crtfm from tmake_file.
8284         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
8285         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
8286         Remove extra_parts.
8287         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
8288         * config/i386/t-nwld (SHLIB_LINK): Remove.
8289         * config/i386/t-rtems-i386: Rename to ...
8290         * config/i386/t-rtems: ... this.
8291         ($(T)crti.o, $(T)crtn.o): Remove.
8292         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
8293         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
8294         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
8295         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
8296         EXTRA_MULTILIB_PARTS): Remove.
8297         * config/sparc/t-sol2-64: Likewise.
8298         * config/sparc/t-sol2: Remove.
8299         * config/sparc/t-crtin: Remove.
8300         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
8301         * config/i386/gmon-sol2.c: Remove.
8302         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
8303         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
8304         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
8305         * config/i386/sol2-gc1.asm: Remove.
8306         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
8307         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
8308         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
8309         * config/t-slibgcc-sld: Remove.
8310
8311 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
8312
8313         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
8314         base_type_for_mode with op_mode instead of mode.
8315
8316 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
8317
8318         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
8319         Cortex-A15.
8320         * config/arm/arm-tune.md: Regenerate.
8321         * config/arm/arm-tables.opt: Regenerate.
8322         * config/arm/arm.c (FL_DIV): Rename...
8323         (FL_THUMB_DIV): ... to this.
8324         (FL_ARM_DIV): Define.
8325         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
8326         (arm_arch_hwdiv): Remove.
8327         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
8328         (arm_issue_rate): Add cortexr5.
8329         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
8330         __ARM_ARCH_EXT_IDIV__.
8331         (TARGET_IDIV): Define.
8332         (arm_arch_hwdiv): Remove.
8333         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
8334         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
8335         (divsi3, udivsi3): New patterns.
8336         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
8337         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
8338
8339 2011-06-01  Martin Jambor  <mjambor@suse.cz>
8340
8341         * ipa-utils.c (ipa_dfs_info): New field scc_no.
8342         * ipa-utils.c (searchc): Set scc_no.
8343
8344 2011-06-01  Martin Jambor  <mjambor@suse.cz>
8345
8346         * ipa-utils.c (searchc_env): New field allow_overwritable.
8347         (searchc): do not ignore edges to overwritable nodes if indicated
8348         by env->allow_overwritable.
8349         (ipa_reduced_postorder): Set env.allow_overwritable.
8350
8351 2011-06-01  Richard Guenther  <rguenther@suse.de>
8352
8353         * tree.c (free_lang_data): Do not reset boolean_type_node nor
8354         char_type_node.
8355         * lto-streamer.c (lto_record_common_node): Take node pointer,
8356         do not register types.
8357         (lto_preload_common_nodes): Explicitly skip preloading nodes
8358         that differ between frontends.
8359
8360 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
8361
8362         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
8363         NON_FLOAT_REGS.
8364
8365 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
8366
8367         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
8368         parameter value for dump. Dump cost on outermost call only.
8369         (rs6000_memory_move_cost): Dump cost on outermost call only.
8370
8371 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
8372
8373         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
8374         DW_OP_GNU_convert ops.
8375
8376         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
8377         cselib_preserve_constants.
8378         (cselib_lookup_1): If cselib_preserve_constants,
8379         a new VALUE is being created for REG and there is a VALUE for the
8380         same register in wider mode, add another loc with lowpart SUBREG of
8381         the wider VALUE.
8382         (cselib_subst_to_values): Handle ENTRY_VALUE.
8383         * var-tracking.c  (replace_expr_with_values): Return NULL for
8384         ENTRY_VALUE too.
8385         * dwarf2out.c (convert_descriptor_to_signed): New function.
8386         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
8387         instead of two shifts.
8388         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
8389         the right mode if needed.
8390         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
8391         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
8392         convert_descriptor_to_signed.
8393         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
8394         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
8395
8396         PR target/48688
8397         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
8398
8399 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
8400
8401         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
8402         of X87MODEI12 and SWI48x instead of SSEMODEI24.
8403         (SWI248x): New mode iterator, rename from X87MODEI.
8404         (X87MODEI): Remove mode iterator.
8405         (X87MODEI12): Ditto.
8406         (SSEMODEI24): Ditto.
8407
8408 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
8409
8410         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
8411         * doc/invoke.texi: Document max-vartrack-expr-depth.
8412         * var-tracking.c (EXPR_DEPTH): New.
8413         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
8414
8415 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
8416
8417         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
8418         * config/i386/sse.md: Add n to negated FMA pattern names.
8419
8420 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
8421
8422         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
8423
8424 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
8425
8426         * gengtype-state.c (read_state_params_structs): Initialize previous.
8427
8428 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
8429
8430         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
8431         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
8432
8433 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
8434
8435         * config/i386/i386.md (*movtf_internal): Avoid allocating general
8436         registers.  Penalize F*r->o alternative to prevent partial memory
8437         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
8438         CONST_DOUBLE immediates when optimizing function for size.  Do not move
8439         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
8440         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
8441         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
8442         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
8443         alternatives.
8444         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
8445
8446         (fp_register_operand splitters): Use fp_register_operand
8447         constraint.  Do not use FP_REG_P in insn condition.
8448         (any_fp_register_operand splitters): Use any_fp_register_operand
8449         constraint.  Do not use ANY_FP_REG_P in insn condition.
8450
8451 2011-05-31  Jan Hubicka  <jh@suse.cz>
8452
8453         * cgraph.h (cgraph_inline_failed_t): Give enum a name
8454         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
8455         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
8456         (lto_output_edge): Use output_enum and var_len_unsigned.
8457         (lto_output_varpool_node): Likewise.
8458         (input_overwrite_node): Do not take resolution parameter;
8459         extract it from a bitpack.
8460         (input_node): Do not read resolution; use input_enum and
8461         var_len_unsigned.
8462         (input_varpool_node): Likewise.
8463         (input_edge): Likewise.
8464         (input_cgraph_1): Likewise.
8465
8466 2011-05-31  Richard Guenther  <rguenther@suse.de>
8467
8468         * gimple.c (gimple_register_canonical_type): Do not register
8469         any types via gimple_register_type.
8470
8471 2011-05-31  Jan Hubicka  <jh@suse.cz>
8472
8473         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
8474         of thunks.
8475
8476 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
8477
8478         PR rtl-optimization/49235
8479         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
8480         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
8481
8482 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
8483
8484         PR tree-optimization/49093
8485         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
8486         data references.
8487
8488 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
8489
8490         PR debug/49047
8491         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
8492         for concrete functions containing the code of cloned functions.
8493
8494 2011-05-31  Richard Guenther  <rguenther@suse.de>
8495
8496         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
8497         to ...
8498         (forward_propagate_into_comparison_1): ... this.
8499         (forward_propagate_comparison): Rename to ...
8500         (forward_propagate_into_comparison): ... this.  Split out
8501         real forward propagation code to ...
8502         (forward_propagate_comparison): ... this.
8503         (forward_propagate_into_gimple_cond): Remove looping.
8504         (forward_propagate_into_cond): Likewise.
8505         (simplify_not_neg_expr): Return whether we have done something.
8506         (simplify_gimple_switch): Likewise.
8507         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
8508         (ssa_forward_propagate_and_combine): ... this.  Re-structure
8509         to do a forward forward-propagation walk on BBs and a backward
8510         stmt combining walk on BBs.  Consistently re-scan changed statements.
8511         (pass_forwprop): Adjust.
8512
8513 2011-05-30  Ian Lance Taylor  <iant@google.com>
8514
8515         * godump.c (go_format_type): Correct length of name added to
8516         obstack for anonymous field.
8517
8518 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
8519
8520         PR target/49186
8521         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
8522         part of the second operand is 0.
8523
8524 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
8525
8526         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
8527         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
8528         to memory for !TARGET_MEMORY_MISMATCH_STALL.
8529         (*movdf_internal_rex64): Do not penalize F->r alternative.
8530         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
8531         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
8532         when optimizing function for size.  Do not move CONST_DOUBLEs
8533         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
8534         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
8535         SUBREGs.  Do not check for MEM_P operands in the insn condition,
8536         check for ANY_FP_REGNO_P instead.
8537         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
8538         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
8539         function for speed.
8540         * config/i386/i386.c (ix86_option_override_internal): Do not
8541         set TARGET_INTEGER_DFMODE_MOVES here.
8542
8543 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
8544
8545         PR target/49168
8546         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
8547
8548 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
8549
8550         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
8551         DW_TAG_rvalue_reference_type even for
8552         -gdwarf-4 -fno-debug-types-section.
8553
8554 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8555
8556         PR tree-optimization/46728
8557         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
8558         (build_and_insert_binop): New.
8559         (gimple_expand_builtin_pow): Reorder args for
8560         build_and_insert_call; use build_and_insert_binop; add more
8561         optimizations for fractional exponents.
8562
8563 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
8564
8565         PR bootstrap/49190
8566
8567         Revert:
8568         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
8569
8570         * tree.h (struct tree_identifier): Inherit from tree_typed, not
8571         tree_common.
8572         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
8573         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
8574         TS_BASE instead of TS_COMMON.
8575         * varasm.c (assemble_name): Remove assert.
8576
8577 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
8578
8579         * config.gcc: Keep obselete list sorted.
8580
8581 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
8582             Eric Botcazou  <ebotcazou@adacore.com>
8583
8584         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
8585         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
8586         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
8587         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
8588         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
8589
8590 2011-05-30  Richard Guenther  <rguenther@suse.de>
8591
8592         * gimple.c (gimple_types_compatible_p_1): Compare record
8593         and union type members properly.
8594
8595 2011-05-30  Richard Guenther  <rguenther@suse.de>
8596
8597         PR tree-optimization/49210
8598         * ipa-split.c (split_function): Care for the case where the call
8599         result is not trivially convertible to the result holding variable.
8600
8601 2011-05-30  Richard Guenther  <rguenther@suse.de>
8602
8603         PR tree-optimization/49218
8604         * tree-vrp.c (adjust_range_with_scev): Properly check whether
8605         overflow occured.
8606
8607 2011-05-30  Richard Guenther  <rguenther@suse.de>
8608
8609         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
8610         New function split out from ...
8611         (forward_propagate_into_gimple_cond): ... here.  Adjust.
8612         (forward_propagate_into_cond): Likewise.
8613         (forward_propagate_comparison): Also propagate into
8614         comparisons on assignment RHS.  Change return value to
8615         behave similar to forward_propagate_into_cond.
8616         (tree_ssa_forward_propagate_single_use_vars): Handle
8617         strict-overflow warnings properly for forward_propagate_comparison.
8618
8619 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8620
8621         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
8622         from plugin linker.
8623         * configure: Regenerate.
8624
8625 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
8626
8627         PR tree-optimization/49199
8628         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
8629         non-reduction operands are either defined in the loop or by induction.
8630
8631 2011-05-29  Xinliang David Li  <davidxl@google.com>
8632
8633         * opts-global.c (handle_common_deferred_options): Handle new options.
8634         * passes.c (register_one_dump_file): Call register_pass_name.
8635         (execute_one_pass): Check explicit enable/disable flag.
8636         (passr_hash): New function.
8637         (passr_eq): Ditto.
8638         (register_pass_name): Ditto.
8639         (get_pass_by_name): Ditto.
8640         (pass_hash): Ditto.
8641         (pass_eq): Ditto.
8642         (enable_pass): Ditto.
8643         (disable_pass): Ditto.
8644         (is_pass_explicitly_enabled_or_disabled): Ditto.
8645
8646 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
8647
8648         * config/i386/i386.md (*movoi_internal_avx): Use
8649         standard_sse_constant_opcode for alternative 0.
8650         (*movti_internal_sse): Ditto.
8651         (*movti_internal_rex64): Use standard_sse_constant_opcode for
8652         alternative 2.
8653         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
8654         sselog1 type moves.
8655         (*movsi_internal): Ditto.
8656         (*movdi_internal): Ditto.  Add ssecvt type moves.
8657
8658 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
8659
8660         PR target/48830
8661         * rtlanal.c (simplify_subreg_regno): Adjust comment.
8662
8663 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
8664
8665         PR rtl-optimization/49095
8666         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
8667         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
8668
8669 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
8670
8671         PR target/43995
8672         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
8673         recurse_p argument.  Only follow register copies if it is set,
8674         and prevent mips_find_pic_call_symbol from recursing.
8675         (mips_find_pic_call_symbol): Add a recurse_p argument.
8676         Pass it to mips_pic_call_symbol_from_set.
8677         (mips_annotate_pic_calls): Update accordingly.
8678
8679 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
8680
8681         * emit-rtl.c (try_split): Use a loop to search for
8682         NOTE_INSN_CALL_ARG_LOCATIONs.
8683
8684 2011-05-29  Richard Guenther  <rguenther@suse.de>
8685
8686         PR tree-optimization/49217
8687         * ipa-pure-const.c (propagate_pure_const): Fix typos.
8688
8689 2011-05-28  Jan Hubicka  <jh@suse.cz>
8690
8691         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
8692         length.
8693         (string_slot_free): Remove
8694         (create_output_block): Initialize obstack.
8695         (destroy_output_block): Free obstack.
8696         (lto_string_index): Add PERSISTENT parameter; do not duplicate
8697         the string unless it needs to be added into the hash.
8698         (lto_output_string_with_length): Add persistent attribute;
8699         handle NULL strings.
8700         (lto_output_string): Add PERSISTENT parameter.
8701         (output_string_cst, output_identifier): Simplify.
8702         (lto_output_location_bitpack): Update.
8703         (lto_output_builtin_tree): Update.
8704         * lto-streamer.h (struct output_block): Add obstack.
8705         (lto_output_string, lto_output_string_with_length): Remove
8706         declarations; functions are static now.
8707
8708 2011-05-28  Jan Hubicka  <jh@suse.cz>
8709
8710         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
8711         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
8712         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
8713         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
8714         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
8715         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
8716         unpack_ts_decl_with_vis_value_fields,
8717         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
8718         lto_get_builtin_tree): Use enum and variable length i/o.
8719         * basic-block.h (profile_status_d): Add PROFILE_LAST.
8720         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
8721         New functions.
8722         (bp_pack_enum, bp_unpack_enum): New macros.
8723
8724 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
8725
8726         * genrecog.c: Remove redundant forward declarations.
8727
8728 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
8729
8730         * config.gcc: Deprecate mips*-*-openbsd*.
8731
8732 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
8733
8734         PR bootstrap/49195
8735         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
8736         for match_op_dup.
8737
8738 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
8739
8740         PR middle-end/48981
8741         * gengtype.c (vec_prefix_type): New function.
8742         (note_def_vec): Use vec_prefix_type and change the length
8743         attribute to be based on the prefix.
8744         * vec.c: Include coretypes.h before vec.h.
8745         (struct vec_prefix): Remove.
8746         (vec_gc_p_reserve): Change the offsetof to sizeof.
8747         (vec_gc_p_reserve_exact): Likewise.
8748         (vec_heap_p_reserve): Likewise.
8749         (vec_heap_p_reserve_exact): Likewise.
8750         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
8751         (vec_stack_p_reserve): Change the offsetof to sizeof.
8752         (vec_stack_p_reserve_exact): Likewise.
8753         * vec.h (struct vec_prefix): New struct definition.
8754         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
8755         (VEC_T_GTY(T,B)): Likewise.
8756         (DEF_VEC_FUNC_P(T)): Use prefix field.
8757         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
8758         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
8759
8760 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8761
8762         PR tree-optimization/46728
8763         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
8764         (powi_as_mults): Add gimple_set_location.
8765         (build_and_insert_call): New.
8766         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
8767         0.5, 0.25, 0.75, 1./3., or 1./6.
8768
8769 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
8770
8771         * doc/contrib.texi: Update copyright years.
8772         (Contributors): Add Zdenek Sojka.
8773
8774 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
8775
8776         * c-decl.c (c_push_function_context): Copy the current statement
8777         list stack.
8778         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
8779         (finish_struct): Call building_stmt_list_p instead of checking
8780         cur_stmt_list.
8781         * c-parser.c (c_parser_postfix_expression): Likewise.
8782         * c-typeck.c (c_end_compound_stmt): Likewise.
8783         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
8784         * tree-iterator.c (stmt_list_cache): Change to a VEC.
8785         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
8786         (free_stmt_list): Likewise.
8787         * tree.h (struct tree_statement_list): Include typed_tree instead
8788         of tree_common.
8789         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
8790         as TS_TYPED instead of TS_COMMON.
8791
8792 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8793             Uros Bizjak  <ubizjak@gmail.com>
8794
8795         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
8796         (HAVE_AS_IX86_TLSGDPTL): Define.
8797         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
8798         (HAVE_AS_IX86_TLSLDMPLT): Define.
8799         * configure: Regenerate.
8800         * config.in: Regenerate.
8801         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
8802         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
8803         TARGET_SUN_TLS, use @tlsgdplt or @plt.
8804         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
8805         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
8806         @tlsldmplt or @plt.
8807         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
8808
8809 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
8810
8811         * sched-int.h (struct _haifa_deps_insn_data): New members cond
8812         and reverse_cond.
8813         (INSN_COND, INSN_REVERSE_COND): New macros.
8814         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
8815         once.
8816         (sched_get_condition_with_rev): Cache the results, and look them up
8817         if possible.
8818         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
8819         are clobbered by the current insn.
8820         * target.def (exposed_pipline): New sched data hook.
8821         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
8822         * doc/tm.texi: Regenerate.
8823
8824 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8825
8826         PR tree-optimization/49170
8827         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
8828         sincos or cexp.
8829
8830 2011-05-27  Richard Guenther  <rguenther@suse.de>
8831
8832         PR middle-end/49189
8833         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
8834         of comparisons.
8835
8836 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
8837
8838         * haifa-sched.c (sched_scan_info): Remove.
8839         (schedule_block): Call sched_extend_luids rather than sched_init_luids
8840         with NULL args.
8841         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
8842         Remove functions.
8843         (sched_scan): Remove.
8844         (sched_extend_luids): Renamed from luids_extend_insn and no longer
8845         static.  All callers changed.
8846         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
8847         static.  All callers changed.
8848         (sched_init_luids): Remove all arguments except the first.  All
8849         callers changed.  Don't use sched_scan.
8850         (haifa_init_h_i_d): Likewise.
8851         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
8852         manually rather than using sched_init_luids.  Likewise with
8853         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
8854         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
8855         rather than sched_init_luids with NULL args.
8856         * sel-sched-ir.c (new_insns): Remove variable.
8857         (sched_scan): New static function, previously in haifa-sched.c.  Remove
8858         all arguments but the first two; all callers changed.
8859         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
8860         rather than sched_init_luids.
8861         (sel_init_bbs): Remove second argument.  All callers changed.
8862         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
8863         with NULL arguments.
8864         (create_insn_rtx_from_pattern): Likewise.
8865         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
8866         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
8867         (sched_init_insn_luid, sched_extend_luids): Declare.
8868         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
8869         declarations.
8870
8871 2011-05-27  Richard Guenther  <rguenther@suse.de>
8872
8873         PR middle-end/49177
8874         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
8875         A CMP B ? (T) true : (T) false for non-integral types T again.
8876
8877 2011-05-27  Jan Hubicka  <jh@suse.cz>
8878
8879         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
8880         so 0 means NULL string.
8881         (lto_output_string_with_length): ... here.
8882         (lto_output_string, output_string_cst, output_identifier): Update
8883         handling of NULL strings.
8884         (lto_output_location_bitpack): New function.
8885         (lto_output_location): Use it.
8886         (lto_output_tree_ref): Use output_record_start.
8887         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
8888         len values.
8889         * lto-streamer-in.c (string_for_index): Break out from ...; offset
8890         values by 1.
8891         (input_string_internal): ... here;
8892         (input_string_cst, input_identifier, lto_input_string): Update handling
8893         of NULL strings.
8894         (lto_input_location_bitpack): New function
8895         (lto_input_location): Use it.
8896         (unpack_ts_type_common_value_fields): Pack align & alias in var len
8897         values.
8898         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
8899         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
8900         (bp_pack_value): Sanity check the value range.
8901         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
8902         New functions.
8903         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
8904         New functions.
8905
8906 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
8907
8908         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
8909         call_arg_location instructions down the floor.
8910
8911 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
8912
8913         PR rtl-optimization/49154
8914         * ira.c (setup_pressure_classes): Process class without sublcasses
8915         as a candidate for pressure classes.
8916
8917 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
8918
8919         PR rtl-optimization/48575
8920         * genrecog.c (position_type): New enum.
8921         (position): New structure.
8922         (decision): Use position structure instead of a string.
8923         (root_pos, peep2_insn_pos_list): New variables.
8924         (next_position, compare_positions): New functions.
8925         (new_decision): Use position structures instead of strings.
8926         (maybe_both_true): Likewise.
8927         (change_state): Likewise.
8928         (write_tree): Likewise.
8929         (make_insn_sequence): Likewise.
8930
8931 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
8932
8933         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
8934         TS_BASE instead of TS_COMMON.
8935         (find_decls_types_r): Check for TS_TYPED structure before looking at
8936         TREE_TYPE.
8937         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
8938         Add chain field.
8939         (BLOCK_CHAIN): Use new chain field.
8940
8941 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
8942
8943         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
8944         moves expensive on Power7 also.
8945
8946 2011-05-26  Richard Guenther  <rguenther@suse.de>
8947
8948         * fold-const.c (fold_unary_loc): Remove bogus code.
8949
8950 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
8951
8952         * tree.h (struct tree_identifier): Inherit from tree_typed, not
8953         tree_common.
8954         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
8955         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
8956         TS_BASE instead of TS_COMMON.
8957         * varasm.c (assemble_name): Remove assert.
8958
8959 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
8960
8961         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
8962         substituted first.
8963         * libgcc-std.ver: Delete file.
8964
8965 2011-05-26  Richard Guenther  <rguenther@suse.de>
8966
8967         PR tree-optimization/48702
8968         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
8969         only when we know the base address is within bounds.
8970         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
8971         assume the base address of TARGET_MEM_REFs is in bounds.
8972
8973 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8974
8975         PR target/49099
8976         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
8977         declaration in TARGET_SOLARIS.
8978
8979 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
8980
8981         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
8982         The instruction is then expanded explicitly.
8983         (supported_compare): Callable instruction.
8984         (compare): Likewise.
8985
8986 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
8987
8988         PR c++/49165
8989         * gimplify.c (shortcut_cond_r): Don't special case
8990         COND_EXPRs if they have void type on one of their arms.
8991
8992 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
8993
8994         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
8995         to reduce duplication, and to achieve a slightly more logical order
8996         of operations.
8997
8998 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
8999
9000         PR tree-optimization/49161
9001         * tree-vrp.c (struct case_info): New type.
9002         (compare_case_labels): Sort case_info structs instead of
9003         trees, and not primarily by CASE_LABEL uids but by
9004         label_for_block indexes.
9005         (find_switch_asserts): Put case labels into struct case_info
9006         array instead of TREE_VEC, adjust sorting, compare label_for_block
9007         values instead of CASE_LABELs.
9008
9009 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9010
9011         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
9012         ("orndi3_neon"): Likewise.
9013         ("bic<mode>3_neon"): Likewise.
9014
9015 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
9016
9017         PR tree-optimization/49038
9018         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
9019         Ensure at least one epilogue iteration if required by data
9020         accesses with gaps.
9021         * tree-vectorizer.h (struct _loop_vec_info): Add new field
9022         to mark loops that require peeling for gaps.
9023         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
9024         (vect_get_known_peeling_cost): Take peeling for gaps into
9025         account.
9026         (vect_transform_loop): Generate epilogue if required by data
9027         access with gaps.
9028         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
9029         loop as requiring an epilogue if there are gaps in the end of
9030         the strided group.
9031
9032 2011-05-25  Ian Lance Taylor  <iant@google.com>
9033
9034         * godump.c (go_format_type): Output the first field with a usable
9035         Go type, if any.
9036
9037 2011-05-25  Ian Lance Taylor  <iant@google.com>
9038
9039         * godump.c (go_format_type): Check for invalid type names, pointer
9040         target types, and struct field types.
9041
9042 2011-05-25  Jason Merrill  <jason@redhat.com>
9043
9044         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
9045
9046 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
9047
9048         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
9049
9050 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
9051
9052         * config/i386/i386.md (*movqi_extv_1)): Put back
9053         "register_operand" check in "type" calculation.
9054         (*movqi_extzv_2): Likewise.
9055
9056 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
9057
9058         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
9059
9060 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
9061
9062         PR bootstrap/49160
9063         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
9064         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
9065         __divxc3, __divtc3): Wrap definitions in #ifndef.
9066
9067 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
9068
9069         PR target/49142
9070         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
9071         "register_operand" check and replace q_regs_operand with
9072         QIreg_operand in "type" calculation.
9073         (*movqi_extv_1): Likewise.
9074         (*movqi_extzv_2_rex64): Likewise.
9075         (*movqi_extzv_2): Likewise.
9076
9077         * config/i386/predicates.md (QIreg_operand): New.
9078
9079 2011-05-25  Richard Guenther  <rguenther@suse.de>
9080
9081         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
9082         type-based offset disambiguation, streamline MEM_REF and
9083         TARGET_MEM_REF handling.
9084
9085 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
9086
9087         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
9088         (bdesc_special_args): Add pause intrinsic.
9089
9090         * config/i386/i386.md (UNSPEC_PAUSE): New.
9091         (pause): Likewise.
9092         (*pause): Likewise.
9093         * config/i386/ia32intrin.h (__pause): Likewise.
9094
9095         * doc/extend.texi (X86 Built-in Functions): Add documentation for
9096         pause intrinsic.
9097
9098 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9099
9100         PR tree-optimization/46728
9101         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
9102         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
9103
9104 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
9105
9106         * tree.h (struct tree_exp): Inherit from struct tree_typed.
9107         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
9108         instead of TS_COMMON.
9109
9110 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
9111
9112         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
9113         LIBGCC2_GNU_PREFIX is defined.
9114         (__N): New macro.
9115         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
9116         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
9117         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
9118         __clz_tab): Define using __N.
9119         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
9120         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
9121         * target.def (libfunc_gnu_prefix): New hook.
9122         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
9123         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
9124         * doc/tm.texi: Regenerate.
9125         * system.h (LIBGCC2_GNU_PREFIX): Poison.
9126         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
9127         account.
9128         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
9129         (init_optabs): Likewise for the bswap libfuncs.
9130         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
9131         and divide.
9132         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
9133         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
9134         * libgcc-std.ver: Remove.
9135         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
9136         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
9137         libgcc-std.ver.
9138         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
9139         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
9140         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
9141         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
9142         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
9143         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
9144         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
9145         * config/fixed-bit.h (FIXED_OP): Define differently depending on
9146         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
9147         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
9148
9149 2011-05-25  Jan Hubicka  <jh@suse.cz>
9150
9151         * lto-streamer-out.c (output_record_start): Use lto_output_enum
9152         (lto_output_tree): Use output_record_start.
9153         * lto-streamer-in.c (input_record_start): Use lto_input_enum
9154         (lto_get_pickled_tree): Use input_record_start.
9155         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
9156         (lto_value_range_error): New function.
9157         * lto-streamer.h (lto_value_range_error): Declare.
9158         (lto_output_int_in_range, lto_input_int_in_range): New functions.
9159         (lto_output_enum, lto_input_enum): New macros.
9160
9161 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9162
9163         * common.opt (flag_stack_usage_info): New variable.
9164         (-Wstack-usage): New option.
9165         * doc/invoke.texi (Warning options): Document -Wstack-usage.
9166         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
9167         <OPT_fstack_usage>: Likewise.
9168         * toplev.c (output_stack_usage): Handle -Wstack-usage.
9169         * calls.c (expand_call): Test flag_stack_usage_info variable instead
9170         of flag_stack_usage.
9171         (emit_library_call_value_1): Likewise.
9172         * explow.c (allocate_dynamic_stack_space): Likewise.
9173         * function.c (instantiate_virtual_regs ): Likewise.
9174         (prepare_function_start): Likewise.
9175         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
9176         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
9177         * config/arm/arm.c (arm_expand_prologue): Likewise.
9178         (thumb1_expand_prologue): Likewise.
9179         * config/avr/avr.c (expand_prologue): Likewise.
9180         * config/i386/i386.c (ix86_expand_prologue): Likewise.
9181         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
9182         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
9183         * config/mips/mips.c (mips_expand_prologue): Likewise.
9184         * config/pa/pa.c (hppa_expand_prologue): Likewise.
9185         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
9186         * config/s390/s390.c (s390_emit_prologue): Likewise.
9187         * config/sh/sh.c (sh_expand_prologue): Likewise.
9188         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
9189         * config/spu/spu.c (spu_expand_prologue): Likewise.
9190
9191 2011-05-25  Richard Guenther  <rguenther@suse.de>
9192
9193         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
9194         (gimple_canonical_types_compatible_p): Likewise.
9195
9196 2011-05-25  Jan Hubicka  <jh@suse.cz>
9197
9198         PR middle-end/49062
9199         * ipa.c (function_and_variable_visibility): Only add to same
9200         comdat group list if DECL_ONE_ONLY.
9201
9202 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
9203
9204         PR rtl-optimization/49014
9205         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
9206
9207 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
9208
9209         PR target/49128
9210         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
9211
9212 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
9213
9214         PR rtl-optimization/48757
9215         * ira-build.c (loop_with_eh_edge_p): Rename to
9216         loop_with_complex_edge_p, check edges on complexity, make function
9217         conditional.
9218         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
9219         conditional.
9220
9221 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
9222
9223         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
9224         force flag_ira_share_save_slots to 0.
9225
9226 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
9227
9228         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
9229         (vt_initialize): Set PROLOGUE_BB unconditionally.
9230         Add block comment about CFA_BASE_RTX machinery.
9231         Reset FP_CFA_OFFSET to -1 on all invalid paths.
9232         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
9233
9234 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
9235
9236         PR objc/48187
9237         * c-parser.c (c_parser_objc_class_instance_variables): More robust
9238         parsing of syntax error in ObjC instance variable lists.  In
9239         particular, avoid an infinite loop if there is a stray ']'.
9240         Updated error message.
9241
9242 2011-05-24  Ian Lance Taylor  <iant@google.com>
9243
9244         * godump.c (go_define): Don't accept a string immediately after
9245         another operand.
9246
9247 2011-05-24  Ian Lance Taylor  <iant@google.com>
9248
9249         * godump.c (struct godump_container): Add invalid_hash field.
9250         (go_format_type): Return false if type is found in invalid_hash.
9251         (go_output_typedef): Add invalid type to invalid_hash.
9252         (go_finish): Create and delete invalid_hash.
9253
9254 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9255
9256         PR tree-optimization/46728
9257         * tree-ssa-math-opts.c (powi_table): New.
9258         (powi_lookup_cost): New.
9259         (powi_cost): New.
9260         (powi_as_mults_1): New.
9261         (powi_as_mults): New.
9262         (gimple_expand_builtin_powi): New.
9263         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
9264         (gate_cse_sincos): Remove sincos/cexp restriction.
9265
9266 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9267
9268         PR target/3746
9269         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
9270         mips-tdump native.
9271         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
9272         * mips-tdump.c: Likewise.
9273
9274 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
9275
9276         PR target/49128
9277         * config/i386/driver-i386.c (host_detect_local_cpu): Always
9278         add -mno-XXX.  Handle FMA.
9279
9280 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
9281
9282         PR rtl-optimization/48633
9283         * ira-build.c (loop_with_eh_edge_p): New function.
9284         (mark_loops_for_removal): Use it.
9285
9286 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
9287
9288         PR rtl-optimization/48971
9289         * ira.c (setup_pressure_classes): Don't check register move cost
9290         for classes with one registers.  Don't add pressure class if there
9291         is a pressure class with the same available hard registers.
9292         Check contains_reg_of_mode.  Fix a typo in collecting
9293         temp_hard_regset.  Ignore hard registers not belonging to a class.
9294
9295 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
9296
9297         PR target/49133
9298         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
9299
9300 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
9301             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9302
9303         PR gcov-profile/48845
9304         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
9305
9306 2011-05-24  Richard Guenther  <rguenther@suse.de>
9307
9308         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
9309         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
9310         (gimple_types_compatible_p_1): Adjust.
9311         (iterative_hash_canonical_type): Do not bother about complete vs.
9312         incomplete types.
9313         (gimple_canonical_types_compatible_p): Likewise.
9314
9315 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9316
9317         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
9318
9319 2011-05-24  Richard Guenther  <rguenther@suse.de>
9320
9321         PR bootstrap/49078
9322         * gimple.c (gimple_register_canonical_type): Revert
9323         previous change.
9324         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
9325         does not for a tree for the case where it matters.  Cache
9326         pointer-type alias-sets.
9327
9328 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
9329
9330         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
9331         (OBJS): Remove options.o, opts-common.o and prefix.o.
9332         (OBJS-libcommon-target): New.
9333         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
9334         (BACKEND): Include libcommon-target.a.
9335         (MOSTLYCLEANFILES): Include libcommon-target.a.
9336         (libcommon-target.a): New.
9337         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
9338         prefix.o.
9339
9340 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
9341
9342         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
9343         parts of output shared with the driver.
9344         * optc-gen.awk: Don't generate parts of output not shared with the
9345         driver.
9346         * opth-gen.awk: Remove GCC_DRIVER conditionals.
9347         * doc/options.texi (SourcerInclude): Mention options-save.c.
9348         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
9349         (OBJS): Add options-save.o.
9350         (options-save.c, options-save.o): New.
9351         (options.o): Update dependencies.
9352         (gcc-options.o): Remove.
9353         (mostlyclean): Remove options-save.c.
9354
9355 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
9356
9357         PR debug/49032
9358         * dbxout.c: Include cgraph.h.
9359         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
9360         and without value expr, return NULL if no varpool node exists for
9361         it or if it is not needed.
9362         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
9363
9364         PR c/49120
9365         * c-decl.c (start_decl): Convert expr to void_type_node.
9366
9367 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
9368
9369         PR rtl-optimization/48826
9370         * emit-rtl.c (try_split): When splitting a call that is followed
9371         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
9372
9373 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
9374
9375         * cfgexpand.c (expand_debug_expr): For unused non-addressable
9376         parameters passed in memory prefer using DECL_INCOMING_RTL over
9377         the pseudos it will be copied into.
9378
9379 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
9380
9381         PR target/47315
9382         * config/i386/i386.c (ix86_option_override_internal): Save the
9383         initial options after checking vzeroupper.
9384
9385 2011-05-23  David Li  <davidxl@google.com>
9386
9387         PR tree-optimization/48988
9388         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
9389         Initialize has_valid_pred for each pred chain.
9390
9391 2011-05-23  Richard Guenther  <rguenther@suse.de>
9392
9393         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
9394         (iterative_hash_gimple_type): Always hash type names.
9395
9396 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
9397
9398         * c-typeck.c (build_function_call_vec): Tweak call to
9399         check_function_arguments.
9400
9401 2011-05-23  Richard Guenther  <rguenther@suse.de>
9402
9403         PR tree-optimization/49115
9404         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
9405         is not necessarily carried out, do not claim it kills the ref.
9406         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
9407
9408 2011-05-23  Richard Guenther  <rguenther@suse.de>
9409
9410         PR middle-end/15419
9411         * builtins.c (fold_builtin_memory_op): Be less restrictive about
9412         what pointer types we accept for folding.
9413
9414 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9415
9416         * gthr-gnat.c: Remove.
9417         * gthr-gnat.h: Remove.
9418         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
9419         * config/t-freebsd (LIB2ADDEH): Likewise.
9420         * config/t-linux (LIB2ADDEH): Likewise.
9421         * config/t-sol2 (LIB2ADDEH): Likewise.
9422         * config/ia64/t-vms (LIB2ADDEH): Likewise.
9423         * configure.ac (target_thread_file): Remove gnat handling.
9424         * configure: Regenerate.
9425         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
9426
9427 2011-05-23  Tristan Gingold  <gingold@adacore.com>
9428             Eric Botcazou  <ebotcazou@adacore.com>
9429
9430         * gcov.c (create_file_names): If no object directory is specified,
9431         keep the directory of the file.
9432
9433 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9434
9435         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
9436         * configure: Regenerate.
9437
9438 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
9439
9440         PR middle-end/48973
9441         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
9442         failed and the comparison has a single bit signed type, use
9443         constm1_rtx instead of const1_rtx for true value.
9444         (do_store_flag): If ops->type is single bit signed type, disable
9445         signel bit test optimization and pass -1 instead of 1 as last
9446         parameter to emit_store_flag_force.
9447
9448 2011-05-23  Tom de Vries  <tom@codesourcery.com>
9449
9450         PR target/45098
9451         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
9452         function.
9453         (infer_loop_bounds_from_undefined): Use new function.
9454
9455 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
9456
9457         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
9458         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
9459         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
9460         and -O0 otherwise.
9461         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
9462
9463 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
9464
9465         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
9466         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
9467         returns true.
9468
9469 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
9470
9471         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
9472
9473 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
9474
9475         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
9476         UNSPEC_MOVE_PIC pattern.
9477
9478 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
9479
9480         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
9481         (sparc-*-rtems*): Likewise.
9482         (sparc64-*-elf*): Likewise.
9483         (sparc64-*-rtems*): Likewise.
9484         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
9485         * config/sparc/t-crtin: New file.
9486         * config/sparc/t-sol2 (crti.o): Delete rule.
9487         (crtn.o): Likewise.
9488         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
9489         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
9490         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
9491         (ENDFILE_SPEC): Add crtn.o.
9492
9493 2011-05-22  Tom de Vries  <tom@codesourcery.com>
9494
9495         PR middle-end/48689
9496         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
9497         CODE_CONTAINS_STRUCT (TS_COMMON).
9498
9499 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
9500
9501         PR middle-end/49029
9502         * expmed.c (extract_fixed_bit_field): Test whether target can be used
9503         only after deciding which mode to use.
9504
9505 2011-05-22  Tom de Vries  <tom@codesourcery.com>
9506
9507         PR target/45098
9508         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
9509         for call to get_shiftadd_cost.
9510
9511 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
9512
9513         PR target/49104
9514         * config/i386/cpuid.h (bit_MMXEXT): New define.
9515
9516 2011-05-22  Nick Clifton  <nickc@redhat.com>
9517
9518         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
9519         initialisation of non-existant args[2] element.  Use args[] array
9520         not arg[] array to pass arguments to build_function_type_list.
9521
9522 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
9523
9524         PR tree-optimization/49087
9525         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
9526
9527 2011-05-21  Jason Merrill  <jason@redhat.com>
9528
9529         PR c++/49092
9530         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
9531         static storage duration.
9532
9533 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
9534
9535         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
9536         frame pointer.
9537
9538 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
9539
9540         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
9541         false if there are call-saved registers here...
9542         (sparc_can_use_return_insn_p): ...but here instead.
9543         (save_or_restore_regs): Fix thinko.
9544         (sparc_expand_prologue): Use current_function_is_leaf.
9545         (sparc_frame_pointer_required): Likewise.
9546
9547 2011-05-21  Nick Clifton  <nickc@redhat.com>
9548
9549         PR target/49098
9550         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
9551
9552 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9553
9554         * gengtype.c (walk_type): Implemented "atomic" GTY option.
9555         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
9556
9557 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
9558
9559         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
9560         * optc-gen.awk: Move common code to opt-read.awk.
9561         * opth-gen.awk: Likewise.
9562         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
9563
9564 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
9565
9566         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
9567
9568 2011-05-20  Tom de Vries  <tom@codesourcery.com>
9569
9570         PR target/45098
9571         * tree-ssa-loop-ivopts.c: Include expmed.h.
9572         (get_shiftadd_cost): New function.
9573         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
9574
9575 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
9576
9577         PR bootstrap/49086
9578         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
9579         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
9580
9581 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
9582
9583         * Makefile.in: Update comment referring to $(OBJS-common).
9584
9585 2011-05-20  Ian Lance Taylor  <iant@google.com>
9586
9587         * godump.c (go_output_typedef): Put enum constants in the macro
9588         hash table to avoid duplicate Go const definitions.
9589
9590 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
9591
9592         * Makefile.in (LIBDEPS): Add libcommon.a.
9593         (LIBS): Likewise.
9594         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
9595         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
9596         pretty-print.o and version.o.
9597         (OBJS-libcommon): New.
9598         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
9599         (BACKEND): Add libcommon.a.
9600         (MOSTLYCLEANFILES): Likewise.
9601         (libcommon.a): New.
9602         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
9603         (cpp$(exeext)): Likewise.
9604         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
9605         pretty-print.o and input.o.
9606         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
9607         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
9608         (errors.o): Remove.
9609         (mips-tfile): Don't explicitly use version.o.
9610         (mips-tdump): Likewise.
9611         (gcov.o): Depend on $(DIAGNOSTIC_H).
9612         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
9613         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
9614         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
9615         * gcov-dump.c: Include intl.h and diagnostic.h.
9616         (main): Initialize diagnostics.
9617         * gcov.c: Include diagnostic.h.
9618         (fnotice): Remove.
9619         (main): Initialize diagnostics.
9620         * lto-wrapper.c: Include diagnostic.h.
9621         (main): Initialize diagnostics.
9622
9623 2011-05-20  Michael Matz  <matz@suse.de>
9624
9625         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
9626
9627 2011-05-20  Michael Matz  <matz@suse.de>
9628             Richard Guenther  <rguenther@suse.de>
9629
9630         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
9631         use lto_streamer_cache_append directly instead of returning a VEC.
9632         (preload_common_node): Remove.
9633         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
9634         track seen nodes.
9635         (lto_streamer_cache_create): Call lto_preload_common_nodes.
9636
9637 2011-05-20  Richard Guenther  <rguenther@suse.de>
9638
9639         PR tree-optimization/49079
9640         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
9641         MEM_REFs correctly for the trailing array access detection.
9642         Special case constants the same way as decls for overall size
9643         constraining.
9644
9645 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
9646
9647         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
9648         argument expansion.
9649
9650 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
9651
9652         PR tree-optimization/49073
9653         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
9654         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
9655         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
9656
9657 2011-05-20  Richard Guenther  <rguenther@suse.de>
9658
9659         PR middle-end/48849
9660         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
9661         of pointer types the same way the middle-end does.
9662
9663 2011-05-20  Richard Guenther  <rguenther@suse.de>
9664
9665         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
9666         or pointer-to chains.  Delay all fixup to uniquify_nodes.
9667
9668 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
9669
9670         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
9671         (fma4_fmaddsub): Likewise
9672
9673 2011-05-19  Jan Hubicka  <jh@suse.cz>
9674
9675         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
9676         (GIMPLE_TYPE_PAIR_SIZE): New macro.
9677         (type_pair_cache): New static var.
9678         (lookup_type_pair): Use fixed sized custom hash; make inline.
9679         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
9680         calls of lookup_type_pair.
9681         (print_gimple_types_stats): Remove cache stats.
9682         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
9683         and gtc_ob.
9684
9685 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
9686
9687         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
9688         when TARGET_RDRND is active.
9689         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
9690         Generate dummy SImode target register when target is NULL.
9691
9692 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
9693
9694         * config/arm/arm-fpus.def: New.
9695         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
9696         arm-fpus.def.
9697         * config/arm/arm-tables.opt: Regenerate.
9698         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
9699         (arm_option_override): Don't decode FPU name to string here.
9700         * config/arm/arm.opt (mfpu=): Use Enum.
9701         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
9702         Update dependencies.
9703
9704 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
9705
9706         * collect2.c: Include diagnostic.h.
9707         (fatal_perror, fatal, error, fancy_abort): Remove.
9708         (main): Set progname.  Call xmalloc_set_program_name and
9709         diagnostic_initialize.
9710         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
9711         scan_libraries, resolve_lib_name): Call fatal_error instead of
9712         fatal and fatal_perror.
9713         * collect2.h (error, fatal, fatal_perror): Don't declare.
9714         * tlink.c: Include diagnostic-core.h.
9715         (recompile_files): Call fatal_error instead of fatal_perror.
9716         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
9717         pretty-print.o and input.o.
9718         (collect2.o, tlink.o): Update dependencies.
9719
9720 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9721
9722         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
9723
9724 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9725
9726         PR target/40483
9727         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
9728         COMDAT group syntax, both SPARC and x86 variants.
9729         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
9730         * configure: Regenerate.
9731         * config/sol2.h (TARGET_SOLARIS): Define.
9732         (PUSHSECTION_FORMAT): Remove.
9733         (SECTION_NAME_FORMAT): Define.
9734         * config/sol2.c: Include hashtab.h.
9735         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
9736         expansion, using SECTION_NAME_FORMAT.
9737         (solaris_comdat_htab): New variable.
9738         (struct comdat_entry): Define.
9739         (comdat_hash): New function.
9740         (comdat_eq): New function.
9741         (solaris_elf_asm_comdat_section): New function.
9742         (solaris_define_comdat_signature): New function.
9743         (solaris_code_end): New function.
9744         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
9745         (solaris_code_end): Declare.
9746         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
9747         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
9748         solaris_code_end.
9749         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
9750         Remove ATTRIBUTE_UNUSED.
9751         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
9752         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
9753         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
9754         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
9755         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
9756         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
9757         (PUSHSECTION_FORMAT): Remove.
9758         (SECTION_NAME_FORMAT): Redefine.
9759
9760 2011-05-19  Kai Tietz  <ktietz@redhat.com>
9761
9762         * tree-cfg.c (verify_gimple_assign_binary): Barf on
9763         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
9764         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
9765
9766 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
9767             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9768
9769         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
9770
9771 2011-05-19  Richard Guenther  <rguenther@suse.de>
9772
9773         PR middle-end/48985
9774         * tree-object-size.c (addr_object_size): If the pointed-to
9775         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
9776
9777 2011-05-19  Richard Guenther  <rguenther@suse.de>
9778
9779         * gimple.c (gimple_types_compatible_p_1): Compare names of
9780         the types themselves.
9781         (iterative_hash_gimple_type): And hash them that way.
9782         (gimple_register_type_1): If we register a main variant properly
9783         initialize the leader to ourselves.
9784
9785 2011-05-19  Tom de Vries  <tom@codesourcery.com>
9786
9787         PR target/45098
9788         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
9789         get_loop_invariant_expr_id.
9790         (get_loop_invariant_expr_id): Use get_expr_id.
9791         (parm_decl_cost): New function.
9792         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
9793         Improve bound cost estimation.  Use different inv_expr_id for elim and
9794         express cases.
9795
9796 2011-05-19  Tom de Vries  <tom@codesourcery.com>
9797
9798         PR target/45098
9799         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
9800         cost_base.cost == 0.
9801
9802 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
9803
9804         PR target/49002
9805         * config/i386/sse.md
9806         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
9807         load cast.
9808
9809 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
9810
9811         PR tree-optimization/49039
9812         * tree-vrp.c (extract_range_from_binary_expr): For
9813         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
9814         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
9815
9816 2011-05-18  Tom de Vries  <tom@codesourcery.com>
9817
9818         PR target/45098
9819         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
9820
9821 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
9822
9823         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
9824         (*tls_global_dynamic_64): Ditto.
9825         (*tls_local_dynamic_base_32_gnu): Ditto.
9826         (*tls_local_dynamic_base_64): Ditto.
9827         (tls_initial_exec_64_sun): Ditto.
9828
9829 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
9830
9831         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
9832         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
9833         bf592-none.
9834         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
9835         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
9836         * config/bfin/bfin.c (bfin_cpus): Add bf592.
9837         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9838         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
9839         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
9840         * config/bfin/elf.h (LIB_SPEC): Add bf592.
9841
9842 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
9843
9844         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
9845         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
9846         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
9847         target_thread_pointer, arm_structure_size_boundary, struct
9848         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
9849         struct abi_name, arm_all_abis): Remove.
9850         (arm_option_override) Don't process most enumerated option values here.
9851         Don't process target_fpe_name here.  Work with integer not string for
9852         structure size boundary; use separate diagnostics for each case.
9853         * config/arm/arm.h (enum float_abi_type, enum
9854         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
9855         to arm-opts.h.
9856         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
9857         arm_structure_size_boundary): Remove.
9858         * config/arm/arm.opt (mabi=): Use Enum and Init.
9859         (arm_abi_type): New Enum and EnumValue entries.
9860         (mfloat-abi=): Use Enum and Init.
9861         (float_abi_type): New Enum and EnumValue entries.
9862         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
9863         (mfp16-format=): Use Enum and Init.
9864         (arm_fp16_format_type): New Enum and EnumValue entries.
9865         (mstructure-size-boundary=): Use UInteger and Init.
9866         (mtp=): Use Enum and Init.
9867         (arm_tp_type): New Enum and EnumValue entries.
9868
9869 2011-05-18  Richard Guenther  <rguenther@suse.de>
9870
9871         PR tree-optimization/49018
9872         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
9873         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
9874         gimple_has_side_effects.
9875
9876 2011-05-18  Richard Guenther  <rguenther@suse.de>
9877
9878         * gimple.c (gimple_register_type_1): New function, split out from ...
9879         (gimple_register_type): ... here.  Avoid infinite recursion.
9880
9881 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
9882
9883         PR tree-optimization/41881
9884         * tree-vectorizer.h (struct _loop_vec_info): Add new field
9885         reduction_chains along with a macro for its access.
9886         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
9887         (destroy_loop_vec_info): Free reduction chains.
9888         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
9889         (vect_is_slp_reduction): New function.
9890         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
9891         (vect_create_epilog_for_reduction): Support SLP reduction chains.
9892         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
9893         definition types for reduction chains.
9894         (vect_supported_load_permutation_p): Don't allow permutations for
9895         reduction chains.
9896         (vect_analyze_slp_instance): Support reduction chains.
9897         (vect_analyze_slp): Try to build SLP instance from reduction chains.
9898         (vect_get_constant_vectors):  Handle reduction chains.
9899         (vect_schedule_slp_instance): Mark the first statement of the
9900         reduction chain as reduction.
9901
9902 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
9903
9904         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
9905         names for group elements access.
9906         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
9907         reduction chains as well.  Remove data reference and interleaving
9908         related words from the fields names.
9909         * tree-vect-loop.c (vect_transform_loop): Use new names for group
9910         elements access.
9911         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
9912         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
9913         vect_update_interleaving_chain, vect_same_range_drs,
9914         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
9915         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
9916         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
9917         vect_analyze_group_access, vect_analyze_data_ref_access,
9918         vect_create_data_ref_ptr, vect_transform_strided_load,
9919         vect_record_strided_load_vectors): Likewise.
9920         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
9921         vect_model_load_cost, vectorizable_store, vectorizable_load,
9922         vect_remove_stores, new_stmt_vec_info): Likewise.
9923         * tree-vect-slp.c (vect_build_slp_tree,
9924         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
9925
9926 2011-05-18  Richard Guenther  <rguenther@suse.de>
9927
9928         PR middle-end/48989
9929         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
9930         operand verification.
9931         (verify_gimple_assign_binary): Likewise.
9932         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
9933         to non-1-precision BOOLEAN_TYPEs.
9934
9935 2011-05-18  Tom de Vries  <tom@codesourcery.com>
9936
9937         PR target/45098
9938         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
9939
9940 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
9941
9942         PR tree-optimization/49000
9943         * tree-ssa.c (execute_update_addresses_taken): Call
9944         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
9945         be rewritten and decl has been marked for renaming, reset
9946         the debug stmt.
9947
9948 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
9949
9950         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
9951         enum_opts_set when testing if attributes have set -mfpmath=.
9952
9953 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
9954
9955         * config/mips/mips.c (mips_handle_option): Remove unused variable.
9956
9957 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
9958
9959         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
9960         info->entry with 0
9961         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
9962         id.transform_lang_insert_block with NULL.
9963
9964 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
9965
9966         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
9967         (output_fp_compare): Change args 3 and 4 to bool.
9968         (ix86_expand_call): Change arg 6 to bool.
9969         (ix86_attr_length_immediate_default): Change arg 2 to bool.
9970         (ix86_attr_length_vex_default): Change arg 3 to bool.
9971         * config/i386/i386.md: Update all uses.
9972         * config/i386/i386.c: Ditto.
9973         (ix86_flags_dependent): Change return type to bool.
9974
9975 2011-05-17  Richard Guenther  <rguenther@suse.de>
9976
9977         * gimple.c (type_hash_pair_compare): Fix comparison.
9978
9979 2011-05-17  Richard Guenther  <rguenther@suse.de>
9980
9981         * gimple.c (iterative_hash_gimple_type): Simplify singleton
9982         case some more, fix final hash value of the non-singleton case.
9983
9984 2011-05-17  Richard Guenther  <rguenther@suse.de>
9985
9986         PR bootstrap/49013
9987         Revert
9988         2011-05-16  Richard Guenther  <rguenther@suse.de>
9989
9990         * gimple.c (gimple_types_compatible_p_1): Use names of the
9991         type itself, not its main variant.
9992         (iterative_hash_gimple_type): Likewise.
9993
9994 2011-05-17  Richard Guenther  <rguenther@suse.de>
9995
9996         * gimple.c (gimple_register_canonical_type): Use the main-variant
9997         leader for computing the canonical type.
9998
9999 2011-05-17  Nick Clifton  <nickc@redhat.com>
10000
10001         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
10002         moves.
10003
10004         * config/rx/rx.md: Add peephole to remove redundant extensions
10005         after loads.
10006         (bitset_in_memory): Use rx_restricted_mem_operand.
10007         (bitinvert_in_memory): Likewise.
10008         (bitclr_in_memory): Likewise.
10009
10010 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
10011             Nick Clifton  <nickc@redhat.com>
10012
10013         * config/rx/rx.md: Add peepholes to match a register move followed
10014         by a comparison of the moved register.  Replace these with an
10015         addition of zero that does both actions in one instruction.
10016
10017 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
10018
10019         PR target/48986
10020         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
10021         predicate to allow CONST_INT.
10022         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
10023
10024 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
10025
10026         * opts-common.c (opt_enum_arg_to_value): New.
10027         * opts.h (opt_enum_arg_to_value): Declare.
10028         * config/i386/i386.opt (fpmath): Remove.
10029         (mfpmath=): Use Enum, Init and Save.
10030         (fpmath_unit): New Enum and EnumValue entries.
10031         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
10032         name for function fpmath state.
10033         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
10034         * config/i386/i386.c: Include diagnostic.h.
10035         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
10036         (ix86_target_string): Take enum fpmath_unit value instead of string.
10037         (ix86_debug_options): Update call to ix86_target_string.
10038         (ix86_option_override_internal): Don't process fpmath strings here.
10039         (x86_function_specific_save, ix86_function_specific_restore):
10040         Don't handle fpmath state specially.
10041         (ix86_function_specific_print): Pass fpmath state to
10042         ix86_target_string instead of printing in this function.
10043         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
10044         Handle enum attributes.
10045         (IX86_ATTR_ENUM, ix86_opt_enum): New.
10046         (ix86_valid_target_attribute_tree): Update option_strings
10047         handling.  Handle fpmath as enum option.
10048         (ix86_can_inline_p): Update field names for function fpmath state.
10049         (ix86_expand_builtin): Update call to ix86_target_string.
10050         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
10051         (ix86_fpmath): Remove.
10052         * config/i386/t-i386 (i386.o): Update dependencies.
10053
10054 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
10055
10056         PR preprocessor/48677
10057         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
10058         from decoded_options[0], not from itself.
10059
10060 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
10061
10062         * config/i386/constraints.md (z): New constraint.
10063         * config/i386/i386.c (c): New mode attribute.
10064         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
10065         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
10066         constraint for operand 0.
10067         (*call_vzeroupper): Ditto.
10068         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
10069         (*call_rex64_ms_sysv_vzeroupper): Ditto.
10070         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
10071         Use "lzm" constraint for operand 0.
10072         (*call_pop_vzeroupper): Ditto.
10073         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
10074         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
10075         constraint for operand 0.
10076         (*sibcall_vzeroupper): Ditto.
10077         (*sibcall_rex64_ms_sysv): Ditto.
10078         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
10079         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
10080         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
10081         (*sibcall_pop_vzeroupper): Ditto.
10082         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
10083         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
10084         mode iterator.  Use "<c>zm" constraint for operand 1.
10085         (*call_value_vzeroupper): Ditto.
10086         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
10087         for operand 1.
10088         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
10089         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
10090         *call_value_pop_1.  Use "lzm" constraint for operand 1.
10091         (*call_value_pop_vzeroupper): Ditto.
10092         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
10093         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
10094         mode iterator.  Use "Uz" constraint for operand 1.
10095         (*sibcall_value_vzeroupper): Ditto.
10096         (*sibcall_value_rex64_ms_sysv): Ditto.
10097         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
10098         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
10099         constraint for operand 1.
10100         (*sibcall_value_pop_vzeroupper): Ditto.
10101         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
10102         and "z" constraint for operand 2.
10103         (*tls_global_dynamic_32_gnu): Ditto.
10104         (*tls_local_dynamic_base_32_gnu): Ditto.
10105         (*tls_local_dynamic_base_64): Ditto.
10106         (*tls_local_dynamic_32_once): Ditto.
10107         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
10108         Update all callers.
10109         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
10110
10111 2011-05-16  Richard Guenther  <rguenther@suse.de>
10112
10113         * gimple.c (gimple_types_compatible_p_1): Use names of the
10114         type itself, not its main variant.
10115         (iterative_hash_gimple_type): Likewise.
10116
10117 2011-05-16  Richard Guenther  <rguenther@suse.de>
10118
10119         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
10120         always visit pointer target and function result and argument types.
10121
10122 2011-05-16  Jason Merrill  <jason@redhat.com>
10123
10124         PR c++/48999
10125         * tree-inline.c (copy_statement_list): Put back recursion.
10126
10127 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
10128
10129         PR target/27663
10130         PR target/41076
10131         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
10132         * config/avr/avr.md ("*ior<mode>qi.byte0",
10133         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
10134
10135 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
10136
10137         PR target/45099
10138         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
10139         register is needed for a function argument.
10140
10141 2011-05-16  Richard Guenther  <rguenther@suse.de>
10142
10143         * gimple.c (struct type_hash_pair): New type.
10144         (type_hash_pair_compare): New function.
10145         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
10146
10147 2011-05-16  Revital Eres  <revital.eres@linaro.org>
10148
10149         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
10150
10151 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
10152
10153         * config/i386/i386.md (floating point move splitters): Fix
10154         usage of standard_80387_constant_p.
10155         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
10156
10157 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
10158
10159         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
10160
10161 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
10162
10163         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
10164         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
10165         (tree_ssa_lim_finalize): Likewise.
10166
10167 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
10168
10169         * config/i386/constraint.md (Yd, Yx): New register constraints.
10170         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
10171         Yd conditional register constraint.
10172         (*movtf_internal): Use standard_sse_constant_opcode.
10173         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
10174         Yx conditional register constraint.
10175         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
10176         Yd conditional register constraint.  Use standard_sse_constant_p to
10177         check for valid SSE constants and call standard_sse_constant_opcode to
10178         output SSE insn.
10179         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
10180         constants and call standard_sse_constant_opcode to output SSE insn.
10181         * config/i386/i386.c (ix86_option_ovverride_internal): Set
10182         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
10183         optimize_size is set.
10184         (standard_sse_constant_opcode): Output conditional AVX insn templates.
10185
10186 2011-05-14  Tobias Burnus  <burnus@net-b.de>
10187
10188         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
10189
10190 2011-05-13  Martin Jambor  <mjambor@suse.cz>
10191
10192         * ipa-prop.c (ipa_cst_from_jfunc): New function.
10193         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
10194         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
10195         (evaluate_conditions_for_ipcp_clone): Removed.
10196         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
10197         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
10198         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
10199
10200 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
10201
10202         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
10203         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
10204         lieu of MAY_HAVE_DEBUG_STMTS.
10205         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
10206         debug statements if !MAY_HAVE_DEBUG_STMTS.
10207
10208 2011-05-13  Martin Thuresson  <martint@google.com>
10209
10210         PR gcov-profile/47793
10211         * libgcov.c (gcov_exit): Support relative profile paths.
10212         * doc/invoke.texi (-fprofile-dir): Update for above change.
10213
10214 2011-05-13  Richard Guenther  <rguenther@suse.de>
10215
10216         * gimple.c (gimple_canonical_types_compatible_p): Do not use
10217         type-pair caching, do not compare hashes.
10218
10219 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
10220
10221         PR middle-end/48965
10222         * tree-cfg.c (edge_to_cases_cleanup): Return true.
10223         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
10224
10225 2011-05-13  Kai Tietz  <ktietz@redhat.com>
10226
10227         * gimplify.c (gimplify_expr): Make sure operand is boolified.
10228         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
10229         compatible type for TRUTH_NOT_EXPR.
10230
10231 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
10232
10233         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
10234         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
10235         can_create_pseudo_p ().
10236
10237 2011-05-13  Richard Guenther  <rguenther@suse.de>
10238
10239         PR lto/48978
10240         * gimple.c (iterative_hash_gimple_type): Revert change in
10241         pointer target and function result and argument hashing.
10242
10243 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
10244
10245         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
10246         (*movxf_internal_nointeger): Ditto.
10247         (*movdf_internal_rex64): Ditto.
10248         (*movdf_internal): Ditto.
10249         (*movdf_internal_nointeger): Ditto.
10250         (*movsf_internal): Ditto.
10251         (sincos splitters): Use can_create_pseudo ().
10252
10253 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
10254
10255         * config/i386/i386-opts.h: New.
10256         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
10257         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
10258         ix86_section_threshold): Remove.
10259         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
10260         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
10261         OPT_mbranch_cost_.
10262         (ix86_option_override_internal): Don't decode strings for options
10263         other than -march=, -mtune= and -mfpmath=.  Don't allow for
10264         __attribute__ uses in remaining diagnostics for options with
10265         string arguments.  Don't check for integer arguments being negative.
10266         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
10267         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
10268         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
10269         ix86_branch_cost, ix86_section_threshold): Remove.
10270         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
10271         HeaderInclude.
10272         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
10273         but not Var.
10274         (masm=): Use Enum and Init.
10275         (asm_dialect): New Enum and EnumValue entries.
10276         (mbranch-cost=): Use UInteger.
10277         (mlarge-data-threshold=): Use UInteger and Init.
10278         (mcmodel=): Use Enum and Init.
10279         (cmodel): New Enum and EnumValue entries.
10280         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
10281         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
10282         mregparm=): Use UInteger.
10283         (mstringop-strategy=): Use Enum and Init.
10284         (stringop_alg): New Enum and EnumValue entries.
10285         (mtls-dialect=): Use Enum and Init.
10286         (tls_dialect): New Enum and EnumValue entries.
10287         (mabi=): Use Enum and Init.
10288         (calling_abi): New Enum and EnumValue entries.
10289         (mveclibabi=): Use Enum and Init.
10290         (ix86_veclibabi): New Enum and EnumValue entries.
10291
10292 2011-05-13  Nick Clifton  <nickc@redhat.com>
10293
10294         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
10295         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
10296
10297 2011-05-13  Kai Tietz  <ktietz@redhat.com>
10298
10299         PR middle-end/48984
10300         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
10301         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
10302         (gimple_boolify): Check for cast for boolean_type_node instead for
10303         BOOLEAN_TYPE.
10304
10305 2011-05-13  Richard Guenther  <rguenther@suse.de>
10306
10307         PR tree-optimization/48172
10308         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
10309         multiplying by number of iterations for equal step.
10310         (vect_create_cond_for_alias_checks): Likewise.
10311
10312 2011-05-13  Andreas Schwab  <schwab@redhat.com>
10313
10314         * configure.ac: Use AS_HELP_STRING throughout.
10315         * configure: Regenerate.
10316
10317 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
10318
10319         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
10320         (ix86_emit_restore_regs_using_mov): Likewise.
10321         (ix86_emit_restore_sse_regs_using_mov): Likewise.
10322
10323 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
10324
10325         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
10326         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
10327         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
10328         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
10329         RTX_OK_FOR_OLO10_P): ...here.
10330         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
10331         SYMBOLIC_CONST.
10332
10333 2011-05-12  Kai Tietz  <ktietz@redhat.com>
10334
10335         * gimplify.c (gimple_boolify): Re-boolify expression
10336         arguments even if expression type is of kind BOOLEAN_TYPE.
10337         (gimplify_boolean_expr): Removed.
10338         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
10339         and XOR. Additional take care that we keep expression's type.
10340         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
10341         of TRUTH_AND|OR|XOR_EXPR.
10342
10343 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
10344
10345         PR tree-optimization/48975
10346         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
10347         on all bbs here and free and clear ifc_bbs at the end.
10348
10349 2011-05-12  Richard Guenther  <rguenther@suse.de>
10350
10351         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
10352         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
10353         until after simple checks.
10354         (gimple_types_compatible_p): Likewise.
10355         (iterative_hash_gimple_type): Always hash pointer targets
10356         and function return and argument types.
10357         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
10358         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
10359         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
10360         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
10361         completely in the simple compare section.
10362         (gimple_register_canonical_type): Query the cache again after
10363         registering.
10364
10365 2011-05-12  Richard Guenther  <rguenther@suse.de>
10366
10367         PR tree-optimization/48172
10368         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
10369         the number of iterations from the segment size calculation.
10370         (vect_create_cond_for_alias_checks): Adjust.
10371
10372 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
10373
10374         PR debug/48967
10375         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
10376         if validate_subreg fails.
10377
10378 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
10379
10380         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
10381         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
10382         early.
10383
10384 2011-05-12  DJ Delorie  <dj@redhat.com>
10385
10386         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
10387         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
10388         created builtin into rx_builtins array.
10389         (rx_builtin_decl): New function.
10390         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
10391
10392 2011-05-12  DJ Delorie  <dj@redhat.com>
10393             Nick Clifton  <nickc@redhat.com>
10394
10395         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
10396         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
10397         (rx_is_legitimate_address): Add pre-decrement and post-increment
10398         addressing in HImode and QImode.  Fix test for out of range
10399         REG+INT addressing.
10400         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
10401         (rx_align_for_label): Test label before extracting its usage count.
10402         (rx_adjust_insn_lengths): Fix selection of insn codes.
10403         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
10404
10405 2011-05-11  Jason Merrill  <jason@redhat.com>
10406
10407         * tree.c (type_hash_canon): Use struct tree_type_non_common.
10408
10409 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
10410
10411         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
10412         reindent the subsequent block.
10413
10414 2011-05-11  Satoru Takabayashi  <satorux@google.com>
10415             Paul Pluzhnikov  <ppluzhnikov@google.com>
10416
10417         * doc/install.texi (Configuration): Document --with-linker-hash-style.
10418         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
10419         * config.in: Add LINKER_HASH_STYLE.
10420         * configure.ac: Add --with-linker-hash-style.
10421         * configure: Regenerate.
10422
10423 2011-05-11  Richard Guenther  <rguenther@suse.de>
10424
10425         PR middle-end/48964
10426         * gimple.c (iterative_hash_canonical_type): Fix typo.
10427
10428 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
10429
10430         * config/i386/i386.c (legitimize_tls_address)
10431         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
10432         expanders directly for TARGET_GNU2_TLS.  Determine pic and
10433         __tls_get_addr symbol reference here.  Update call to
10434         gen_tls_global_dynamic_{32,64} for added arguments.
10435         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
10436         expanders directly for TARGET_GNU2_TLS.  Determine
10437         __tls_get_addr symbol reference here.  Update call to
10438         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
10439         unique UNSPEC REG_EQUIV to libcall block.
10440         (ix86_tls_get_addr): Declare static.
10441         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
10442         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
10443         Do not determine pic and __tls_get_addr symbol reference here. Do not
10444         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
10445         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
10446         (tls_global_dynamic_64): Add operand 2.  Do not determine
10447         __tls_get_addr symbol reference here.  Do not call
10448         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
10449         (tls_local_dynamic_base64): Ditto for operand 1.
10450
10451 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
10452
10453         * function.c (expand_function_start): Initialize stack_check_probe_note
10454         only if the generic stack checking mechanism is used.
10455
10456 2011-05-11  Richard Guenther  <rguenther@suse.de>
10457
10458         PR tree-optimization/15256
10459         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
10460         (A & B) | C, combine (A op CST1) op CST2.
10461         (tree_ssa_forward_propagate_single_use_vars): Only bother to
10462         visit assigns that have uses.
10463
10464 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
10465
10466         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
10467         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
10468         (unpack_ts_type_common_value_fields): ...this.  Update comment.
10469         (unpack_value_fields): Adjust for renaming.
10470         (lto_input_ts_type_tree_pointers): Split into...
10471         (lto_input_ts_type_common_tree_pointer): ...this and...
10472         (lto_input_ts_type_non_common_tree_pointers): ...this.
10473         (lto_input_tree_pointers): Adjust for above split.
10474         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
10475         (pack_ts_type_common_value_fields): ...this.  Update comment.
10476         (lto_output_ts_type_tree_pointers): Split into...
10477         (lto_output_ts_type_common_tree_pointers): ...this and...
10478         (lto_output_ts_type_non_common_tree_pointers): ...this.
10479         (lto_output_tree_pointers): Adjust for above split.
10480         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
10481         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
10482         * stor-layout.c (vector_type_mode): Adjust location of mode field.
10483         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
10484         Define.
10485         (struct tree_type): Split into...
10486         (struct tree_type_common: ...this and...
10487         (struct tree_type_with_lang_specific): ...this and...
10488         (struct tree_type_non_common): ...this.  Adjust accessor macros
10489         accordingly.
10490         (TYPE_VALUES_RAW): Define.
10491         (union tree_node): Update for above changes.
10492         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
10493         TS_TYPE_NON_COMMON.
10494         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
10495         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
10496         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
10497         * treestructu.def (TS_TYPE): Remove.
10498         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
10499         Define.
10500
10501 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
10502
10503         PR debug/48159
10504         * tree-ssa.c (reset_debug_uses): New function.
10505         * tree-flow.h (reset_debug_uses): New prototype.
10506         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
10507         * tree-loop-distribution.c (generate_loops_for_partition): Call
10508         reset_debug_uses on the stmts that will be removed.  Keep around
10509         all debug stmts, don't count them as bits in partition bitmap.
10510         (generate_builtin): Don't count debug stmts or labels as bits in
10511         partition bitmap.
10512
10513 2011-05-11  Richard Guenther  <rguenther@suse.de>
10514
10515         * gimple.c (gimple_type_hash_1): Merge with ...
10516         (gimple_type_hash): ... this.
10517         (gtc_visit): Remove mode parameter and simplify accordingly.
10518         (gimple_types_compatible_p_1): Likewise.
10519         (gimple_types_compatible_p): Likewise.
10520         (iterative_hash_gimple_type): Likewise.
10521         (visit): Likewise.
10522         (gimple_type_eq): Adjust.
10523
10524 2011-05-11  Revital Eres  <revital.eres@linaro.org>
10525
10526         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
10527         enters the branch create an anti edge in the opposite direction
10528         to prevent the creation of reg-moves.
10529         * modulo-sched.c: Adjust comment to reflect the fact we are
10530         scheduling closing branch.
10531         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
10532         (stage_count): New field in struct partial_schedule.
10533         (calculate_stage_count): New function.
10534         (normalize_sched_times): Rename to reset_sched_times and handle
10535         incrementing the sched time of the nodes by a constant value
10536         passed as parameter.
10537         (duplicate_insns_of_cycles): Skip closing branch.
10538         (sms_schedule_by_order): Schedule closing branch.
10539         (ps_insn_find_column): Handle closing branch.
10540         (sms_schedule): Call reset_sched_times and adjust the code to
10541         support scheduling of the closing branch.
10542         (ps_insert_empty_row): Update calls to normalize_sched_times
10543         and rotate_partial_schedule functions.
10544
10545 2011-05-11  Richard Guenther  <rguenther@suse.de>
10546
10547         PR middle-end/48953
10548         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
10549
10550 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
10551
10552         * opts.c (finish_options): Move warning settings from process_options.
10553         * toplev.c (process_options): Move warning settings to finish_options.
10554
10555 2011-05-11  Richard Guenther  <rguenther@suse.de>
10556
10557         PR tree-optimization/18041
10558         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
10559         (simplify_bitwise_binary): ... this.  Handle operand conversions
10560         by applying them to the result instead.
10561         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
10562
10563 2011-05-11  Richard Guenther  <rguenther@suse.de>
10564
10565         * gimple.c (gimple_canonical_types_compatible_p): Split out
10566         from gimple_types_compatible_p and friends.  Do not recurse
10567         to pointed-to types.
10568         (gimple_canonical_type_eq): Use it.
10569         (iterative_hash_canonical_type): Split out from
10570         iterative_hash_gimple_type and friends.  Do not recurse
10571         to pointed-to types.
10572         (gimple_canonical_type_hash): Use it, allocate the hash here.
10573
10574 2011-05-11  Revital Eres  <revital.eres@linaro.org>
10575
10576         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
10577         recognizing doloop.
10578
10579 2011-05-11  Revital Eres  <revital.eres@linaro.org>
10580
10581         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
10582         instead of PREV_INSN.
10583
10584 2011-05-11  Revital Eres  <revital.eres@linaro.org>
10585
10586         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
10587         * loop-doloop.c (doloop_condition_get): Likewise.
10588         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
10589         (doloop_end): New.
10590         * config/arm/arm.md (*addsi3_compare0): Remove "*".
10591
10592 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
10593
10594         * tree.def (CASE_LABEL_EXPR): Add an operand.
10595         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
10596
10597 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10598
10599         * c-decl.c (c_override_global_bindings_to_false): Remove.
10600         (global_bindings_p): Don't check
10601         c_override_global_bindings_to_false.
10602         * c-tree.h (c_override_global_bindings_to_false): Remove.
10603         * c-typeck.c (composite_type): Don't set
10604         c_override_global_bindings_to_false.
10605
10606 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
10607
10608         PR target/48857, 48495
10609         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
10610         (VSX_MODE): Ditto.
10611         (VSX_MOVE_MODE): Ditto.
10612         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
10613         VSX vector types.  Add V2DImode.
10614         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
10615         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
10616         (MODES_TIEABLE_P): Ditto.
10617
10618         * config/rs6000/rs6000.c (rs6000_emit_move): Use
10619         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
10620         VSX_VECTOR_MODE.
10621         (init_cumulative_args): Ditto.
10622         (rs6000_function_arg_boundary): Ditto.
10623         (rs6000_function_arg_advance_1): Ditto.
10624         (rs6000_function_arg): Ditto.
10625         (rs6000_function_ok_for_sibcall): Ditto.
10626         (emit_frame_save): Ditto.
10627         (rs6000_function_value): Ditto.
10628         (rs6000_libcall_value): Ditto.
10629
10630 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10631
10632         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
10633         i386/darwin-lib.h to $libgcc_tm_file.
10634         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
10635
10636 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10637
10638         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
10639
10640 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10641
10642         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
10643         * config/rs6000/rs6000-tables.opt: New file (generated).
10644         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
10645         rs6000/rs6000-tables.opt to extra_options.
10646         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
10647         * config/rs6000/rs6000.c (rs6000_select): Remove.
10648         (processor_target_table): Move contents to rs6000-cpus.def.
10649         (darwin_rs6000_override_options): Check
10650         global_options_set.x_rs6000_cpu_index instead of
10651         rs6000_select[1].string.
10652         (rs6000_option_override_internal): Likewise.
10653         (rs6000_handle_option): Don't assert that global structures are in
10654         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
10655         (rs6000_default_cpu): New variable.
10656         (rs6000_file_start): Set it instead of local default_cpu.  Check
10657         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
10658         global_options_set.x_rs6000_tune_index instead of rs6000_select.
10659         (rs6000_darwin_file_start): Check rs6000_default_cpu and
10660         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
10661         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
10662         rs6000_select): Remove.
10663         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
10664         Remove.
10665         (mcpu=, mtune=): Use Var, Init, Enum and Save.
10666         * config/rs6000/t-rs6000
10667         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
10668         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10669         global_options_set.x_rs6000_cpu_index instead of
10670         rs6000_select[1].string.
10671         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10672         global_options_set.x_rs6000_cpu_index instead of
10673         rs6000_select[1].string.
10674
10675 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10676
10677         * config.gcc (libgcc_tm_file): Define instead of including files
10678         from ../../libgcc/config/ in tm_file.
10679         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
10680         * configure: Regenerate.
10681         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
10682         libgcc_tm.h, cs-libgcc_tm.h): New.
10683         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
10684         (clean): Remove libgcc_tm.h.
10685         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
10686         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
10687         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
10688
10689 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
10690
10691         PR target/48896
10692         * config/avr/avr.c (avr_ret_register): Return unsigned int
10693         instead of int.
10694         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
10695         it to avr_libcall_value.
10696         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
10697         expand_expr.
10698         (avr_expand_binop_builtin): Ditto.
10699         (avr_expand_unop_builtin): Ditto.
10700
10701 2011-05-10  DJ Delorie  <dj@redhat.com>
10702
10703         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
10704         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
10705         * config/rx/rx.c (rx_align_for_label): Add label and
10706         uses_threshold parameters.  Do not align when the label is not
10707         used enough.
10708         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
10709
10710 2011-05-10  Richard Guenther  <rguenther@suse.de>
10711
10712         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
10713         a series of conversions and apply foldings similar to what
10714         fold-const does.
10715         (tree_ssa_forward_propagate_single_use_vars): Call it.
10716
10717 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
10718
10719         PR tree-optimization/48611
10720         PR tree-optimization/48794
10721         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
10722         referenced from RESX or EH_DISPATCH arguments.
10723
10724         PR debug/48928
10725         * dfp.c (decimal_to_decnumber): Handle conversion from
10726         dconst{1,2,m1,half}.
10727
10728 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10729
10730         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
10731         for !flag_prefer_avx128.
10732         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
10733
10734 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
10735
10736         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
10737         (fold_ternary_loc): Use expr_location_or.
10738
10739 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
10740
10741         PR debug/48853
10742         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
10743         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
10744         Pmode and mem_mode is not VOIDmode.
10745
10746 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
10747
10748         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
10749         TYPE_QUAL_RESTRICT): Convert to enum.
10750
10751 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10752
10753         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
10754         (const_pow2_1_to_8_operand): Ditto.
10755         (const_pow2_1_to_128_operand): Ditto.
10756         (const_pow2_1_to_32768_operand): Ditto.
10757         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
10758         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
10759         in insn constraint to check integer value of operand 3.
10760         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
10761
10762         (PINSR_MODE): New mode iterator.
10763         (sse2p4_1): New mode attribute.
10764         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
10765         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
10766         iterator.  Use const_int_operand instead of
10767         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
10768         exact_log2 in insn constraint to check integer value of operand 3.
10769
10770 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10771
10772         * config/i386/sse.md (blendbits): Remove mode attribute.
10773         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
10774         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
10775         Check integer value of operand 3 in insn constraint.
10776
10777 2011-05-09  Richard Guenther  <rguenther@suse.de>
10778
10779         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
10780         for diagnostics.
10781         (lto_symtab_merge): Likewise.  Do not register types here.
10782         (lto_symtab_merge_decls_2): Likewise.
10783         (lto_symtab_merge_decls_1): Likewise.
10784         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
10785         * gimple.c (enum gtc_mode): Declare.
10786         (gimple_types_compatible_p): Make static.
10787
10788 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10789
10790         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
10791         temporary register to match Pmode.
10792
10793 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10794
10795         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
10796         and *vec_concatv4si_1_avx.
10797
10798 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10799
10800         PR rtl-optimization/48927
10801         * ira-conflicts.c (commutative_constraint_p): Use
10802         recog_data.alternative_enabled_p to disable alternatives where
10803         "enabled" attribute is false.
10804         (get_dup_num): Ditto.
10805         * ira-lives.c (single_reg_class): Ditto.
10806         (ira_implicitly_set_insn_hard_regs): Ditto.
10807
10808 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
10809
10810         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
10811         (dataflow_set_preserve_mem_locs): Likewise.
10812
10813 2011-05-09  Philipp Thomas  <pth@suse.de>
10814
10815         * config/mep/mep.c (mep_validate_vliw): Syntax description
10816         should not be translated.
10817
10818 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
10819
10820         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
10821         * config/mips/mips-tables.opt: New file (generated).
10822         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
10823         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
10824         MIPS_ARCH_OPTION_NATIVE): Define.
10825         * config/mips/mips.c (mips_cpu_info_table): Move contents to
10826         mips-cpus.def.
10827         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
10828         mips_parse_cpu): Remove.
10829         (mips_cpu_info_from_opt, mips_default_arch): New.
10830         (mips_handle_option): Don't assert that global structures are in
10831         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
10832         (mips_option_override): Use new variables and functions to set
10833         state of these options.  Use strcmp to check for individual CPU names.
10834         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
10835         definition.
10836         * config/mips/mips.opt (march=): Use ToLower and Enum.
10837         (mips): Use ToLower, Enum and Var.
10838         (mtune=): Use ToLower and Enum.
10839         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
10840
10841 2011-05-08  Jan Hubicka  <jh@suse.cz>
10842
10843         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
10844         Arrange type pairs to be UID ordered.
10845         (gimple_lookup_type_leader): Make inline.
10846
10847 2011-05-09  Nick Clifton  <nickc@redhat.com>
10848
10849         PR target/48899
10850         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
10851         PROCESSOR_DEFAULT.
10852
10853         PR target/48897
10854         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
10855         variable 's'.
10856
10857 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
10858
10859         * combine.c (simplify_comparison): Abstract out parts into...
10860         (simplify_compare_const): ... new function.
10861         (try_combine): Generalize parallel arithmetic/compare combining
10862         to call simplify_compare_const() and CANONICALIZE_COMPARE().
10863
10864 2011-05-08  Jan Hubicka  <jh@suse.cz>
10865
10866         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
10867         (cgraph_create_virtual_clone): Call hooks once virtual clone
10868         is finished.
10869         * cgraph.h (cgraph_clone_node): Update prototype.
10870         * ipa-cp.c (ipcp_estimate_growth): Use
10871         estimate_ipcp_clone_size_and_time.
10872         * ipa-inline-transform.c (clone_inlined_nodes): Update.
10873         * lto-cgraph.c (input_node): Update.
10874         * ipa-inline.c (recursive_inlining): Update.
10875         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
10876         (evaluate_conditions_for_known_args): Break out from ...
10877         (evaluate_conditions_for_edge): ... here.
10878         (evaluate_conditions_for_ipcp_clone): New function.
10879         (inline_node_duplication_hook): Update clone summary based
10880         on parameter map.
10881         (estimate_callee_size_and_time): Rename to ...
10882         (estimate_node_size_and_time): take NODE instead of EDGE;
10883         take POSSIBLE_TRUTHS as argument.
10884         (estimate_callee_size_and_time): Update.
10885         (estimate_ipcp_clone_size_and_time): New function.
10886         (do_estimate_edge_time): Update.
10887
10888 2011-05-08  Richard Guenther  <rguenther@suse.de>
10889
10890         PR middle-end/48908
10891         PR middle-end/48905
10892         * expmed.c (expand_shift_1): Compute adjusted constant shift
10893         amount manually.
10894
10895 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
10896
10897         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
10898
10899 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
10900
10901         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
10902
10903 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
10904
10905         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
10906
10907 2011-05-07  Jan Hubicka  <jh@suse.cz>
10908
10909         * ipa-inline-transform.c (inline_call): Account when program size
10910         decreases.
10911         * ipa-inline.c (relative_time_benefit): New function.
10912         (edge_badness): Reorganize to be power 2 based; fix thinko when
10913         computing badness for negative growth; update comments to match
10914         reality; better dumps.
10915
10916 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
10917
10918         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
10919         type to bool and adjust comment.
10920         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
10921         (fold_mathfn_compare): Remove calls to global_bindings_p.
10922         (fold_inf_compare): Likewise.
10923         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
10924         * c-tree.h (global_bindings_p): Adjust prototype.
10925         * c-decl.c (global_bindings_p): Return bool and simplify.
10926
10927 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
10928
10929         PR tree-optimization/48837
10930         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
10931         when accumulator transformation is performed.
10932
10933 2011-05-06  Jan Hubicka  <jh@suse.cz>
10934
10935         * i386.h (ix86_tune_indices): Add
10936         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
10937         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
10938         * i386.c (initial_ix86_tune_features): Add
10939         X86_SOFTARE_PREFETCHING_BENEFICIAL.
10940         (software_prefetching_beneficial_p): Remove predicate.
10941         (ix86_option_override_internal): Use new macro.
10942
10943 2011-05-06  Jan Hubicka  <jh@suse.cz>
10944
10945         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
10946
10947 2011-05-06  Jan Hubicka  <jh@suse.cz>
10948
10949         * cgraph.c (cgraph_add_thunk): Create real function node instead
10950         of alias node; finalize it and mark needed/reachale; arrange visibility
10951         to be right and add it into the corresponding same comdat group list.
10952         (dump_cgraph_node): Dump thunks.
10953         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
10954         cgraph_function_with_gimple_body_p,
10955         cgraph_first_function_with_gimple_body,
10956         cgraph_next_function_with_gimple_body): New functions.
10957         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
10958         New macros.
10959         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
10960         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10961         * cgraphunit.c (cgraph_finalize_function): Only look into possible
10962         devirtualization when optimizing.
10963         (verify_cgraph_node): Verify thunks.
10964         (cgraph_analyze_function): Analyze thunks.
10965         (cgraph_mark_functions_to_output): Output thunks only in combination
10966         with function they are assigned to.
10967         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
10968         alias into normal node.
10969         (assemble_thunks): New functoin.
10970         (cgraph_expand_function): Use it.
10971         * lto-cgraph.c (lto_output_node): Stream thunks.
10972         (input_overwrite_node): Stream in thunks.
10973         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
10974         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
10975         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
10976         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
10977         (inline_analyze_function): Do not care about thunk jump functions.
10978         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
10979         * ipa-prop.c (ipa_prop_write_jump_functions): Use
10980         cgraph_function_with_gimple_body_p.
10981         * passes.c (do_per_function_toporder): Use
10982         cgraph_function_with_gimple_body_p.
10983         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10984         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
10985         (function_called_by_processed_nodes_p): Likewise.
10986
10987 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
10988
10989         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
10990         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
10991         entries.
10992         (mabi=): Replace with separate entries for mabi=altivec,
10993         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
10994         mabi=ieeelongdouble and mabi=ibmlongdouble.
10995         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
10996         check for -mabi=spe without SPE ABI support here.
10997         (rs6000_handle_option): Replace OPT_mabi_ handling with
10998         OPT_mabi_altivec and OPT_mabi_spe handling.
10999
11000 2011-05-06  Cary Coutant  <ccoutant@google.com>
11001
11002         * dwarf2out.c (contains_subprogram_definition): New function.
11003         (should_move_die_to_comdat): Call it.
11004
11005 2011-05-06  Jeff Law  <law@redhat.com>
11006
11007         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
11008         remove_ctrl_stmt_and_useless_edges.
11009         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
11010         (fixup_template_block, thread_single_edge): Likewise.
11011         (mark_threaded_blocks): Use THREAD_TARGET.
11012
11013 2011-05-06  Alan Modra  <amodra@gmail.com>
11014
11015         PR target/48900
11016         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
11017         const0_rtx as the arg to the dummy __tls_get_addr libcall.
11018
11019 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
11020
11021         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
11022         constraint modifier to "r".
11023
11024 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
11025
11026         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
11027         fall through for OPT_mcmodel_.
11028
11029 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11030
11031         * config/s390/s390.c (s390_asm_trampoline_template): Comment
11032         instruction sizes.
11033         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
11034
11035 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11036
11037         PR target/47930
11038         * config/arm/arm.opt (marm): Document it.
11039         (mthumb): Reject negative variant.
11040
11041 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
11042
11043         PR target/48898
11044         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
11045         Fix typo in "ccvt" variable name.
11046
11047 2011-05-06  Tristan Gingold  <gingold@adacore.com>
11048
11049         PR target/48895
11050         * config/vms/vms-ar.c (main): Remove cwd variable.
11051
11052 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
11053
11054         PR debug/48902
11055         * var-tracking.c (prepare_call_arguments): Move else before #endif.
11056
11057 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
11058
11059         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
11060         * gimplify.c (gimplify_switch_expr): Likewise.
11061         * omp-low.c (expand_omp_sections): Likewise.
11062         * tree-eh.c (lower_try_finally_switch): Likewise.
11063         (lower_eh_dispatch): Likewise.
11064         * tree.h (build_case_label): Declare.
11065         * tree.c (build_case_label): Define.
11066
11067 2011-05-05  Jason Merrill  <jason@redhat.com>
11068
11069         PR c++/40975
11070         * tree-inline.c (copy_tree_r): Use copy_statement_list.
11071         (copy_statement_list): Don't recurse.
11072         * stor-layout.c (copy_self_referential_tree_r): Don't allow
11073         STATEMENT_LIST.
11074
11075 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
11076
11077         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
11078         through from -mfpu= handling.
11079         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
11080
11081 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
11082
11083         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
11084         POST_MODIFY.
11085
11086 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
11087
11088         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
11089         for 11.31.
11090         (hppa[12]*-*-hpux11*): Ditto.
11091         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
11092         * config/ia64/hpux-unix2003.h: New.
11093         * config/pa/pa-hpux1131.opt: New.
11094         * config/pa/pa-hpux1131.h: New.
11095         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
11096         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
11097         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
11098
11099 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
11100
11101         PR debug/48853
11102         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
11103         instead of mode as 3rd argument to recursive call.
11104         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
11105         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
11106         VOIDmode.
11107         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
11108         don't give up if mode is Pmode and mem_mode is not VOIDmode.
11109         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
11110         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
11111
11112 2011-05-05  Julian Brown  <julian@codesourcery.com>
11113
11114         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
11115         parenthesis in D-register case.
11116
11117 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
11118
11119         * opt-functions.awk (var_type_struct): Handle Enum options.
11120         * optc-gen.awk: Don't check range of variables of character type.
11121         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
11122         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
11123         rs6000_sdata_name, rs6000_explicit_options): Remove.
11124         (rs6000_option_override_internal): Check for -malign-power here.
11125         Use global_options_set instead of rs6000_explicit_options.
11126         (rs6000_parse_fpu_option): Remove.
11127         (rs6000_handle_option): Access variables via opts and opts_set
11128         pointers.  Use error_at and warning_at.  Add fall-through
11129         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
11130         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
11131         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
11132         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
11133         here.  Don't use rs6000_parse_fpu_option.
11134         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
11135         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
11136         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
11137         (mrecip=): Use Var.
11138         (mspe): Use Var and Save.
11139         (mtraceback=): Use Enum and Var.
11140         (rs6000_traceback_type): New Enum and EnumValue entries.
11141         (mfloat-gprs=): Use Enum, Var and Save.
11142         (rs6000_float_gprs): New Enum and EnumValue entries.
11143         (mlong-double-): use Var and Save.
11144         (msched-costly-dep=, minsert-sched-nops=): Use Var.
11145         (malign-): Use Enum and Var.
11146         (rs6000_alignment_flags): New Enum and EnumValue entries.
11147         (mfpu=): Use Enum.
11148         (fpu_type_t): New Enum and EnumValue entries.
11149         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11150         global_options_set instead of rs6000_explicit_options.
11151         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11152         global_options_set instead of rs6000_explicit_options.
11153         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11154         global_options_set instead of rs6000_explicit_options.
11155         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11156         global_options_set instead of rs6000_explicit_options.
11157         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
11158         global_options_set instead of rs6000_explicit_options.
11159         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11160         global_options_set instead of rs6000_explicit_options.
11161         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
11162         definition.
11163         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11164         global_options_set instead of rs6000_explicit_options.
11165         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
11166         (rs6000_cmodel): New Enum and EnumValue entries.
11167         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11168         global_options_set instead of rs6000_explicit_options.
11169         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
11170         (mtls-size=): Use Enum and Var.
11171         (rs6000_tls_size): New Enum and EnumValue entries.
11172
11173 2011-05-05  Michael Matz  <matz@suse.de>
11174
11175         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
11176         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
11177         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
11178         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
11179         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
11180         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
11181         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
11182         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
11183         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
11184         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
11185         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
11186         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
11187         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
11188         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
11189         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
11190         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
11191
11192 2011-05-05  Richard Guenther  <rguenther@suse.de>
11193
11194         * expmed.c (expand_variable_shift): Rename to ...
11195         (expand_shift_1): ... this.  Take an expanded shift amount.
11196         For rotates recurse directly not building trees for the shift amount.
11197         (expand_variable_shift): Wrap around expand_shift_1.
11198         (expand_shift): Adjust.
11199
11200 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
11201
11202         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
11203
11204 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
11205
11206         * tree.h (get_pending_sizes): Remove prototype.
11207         (put_pending_size): Likewise.
11208         (put_pending_sizes): Likewise.
11209         * stor-layout.c (pending_sizes): Delete.
11210         (get_pending_sizes): Likewise.
11211         (put_pending_size): Likewise.
11212         (put_pending_sizes): Likewise.
11213         (variable_size): Do not call put_pending_size and tidy up.
11214         * function.h (struct function): Remove dont_save_pending_sizes_p.
11215         * lto-streamer-in.c (input_function): Do not stream it.
11216         * lto-streamer-out.c (output_function): Likewise.
11217         * tree-inline.c (initialize_cfun): Do not copy it.
11218         * c-decl.c (store_parm_decls): Do not set it.
11219         * omp-low.c (create_task_copyfn): Likewise.
11220         * tree-optimize.c (tree_rest_of_compilation): Likewise.
11221
11222 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
11223
11224         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
11225         conditions.
11226         (*movdf_internal): Ditto.
11227         (*movdf_internal_nointeger): Ditto.
11228         (*movsf_internal): Ditto.
11229
11230 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
11231
11232         * c-decl.c (finish_decl): Don't call get_pending_sizes.
11233         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
11234         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
11235         (c_variable_size): Remove.
11236         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
11237         call put_pending_sizes.
11238         (get_parm_info): Add parameter expr.  Use it to set
11239         arg_info->pending_sizes.
11240         (store_parm_decls): Use arg_info->pending_sizes instead or calling
11241         get_pending_sizes.
11242         * c-parser.c (c_parser_parms_declarator): Update call to
11243         c_parser_parms_list_declarator.
11244         (c_parser_parms_list_declarator): Take parameter expr.  Update
11245         call to push_parm_decl.  Update recursive call.  Don't call
11246         get_pending_sizes.  Update calls to get_parm_info.
11247         (c_parser_objc_method_definition): Update calls to
11248         c_parser_objc_method_decl and objc_start_method_definition.
11249         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
11250         (c_parser_objc_method_decl): Add parameter expr.  Update call to
11251         grokparm.
11252         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
11253         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
11254         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
11255
11256 2011-05-05  Michael Hope  <michael.hope@linaro.org>
11257
11258         PR pch/45979
11259         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
11260         __ARM_EABI__ hosts.
11261
11262 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11263
11264         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
11265         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
11266         (spu_output_mi_thunk): New function.
11267
11268 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11269
11270         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
11271         targetm.asm_out.print_operand.
11272         * config/sol2.c: Include target.h.
11273
11274 2011-05-04  Jan Hubicka  <jh@suse.cz>
11275
11276         * ipa-inline.c (reset_edge_caches): New function.
11277         (update_caller_keys): Add check_inlinablity_for; do not
11278         reset edge caches; remove now unnecesary loop.
11279         (update_callee_keys): Add comments; reset node_growth_cache of callee.
11280         (update_all_callee_keys): Likewise.
11281         (inline_small_functions): Sanity check cache; update code
11282         recomputing it.
11283
11284 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
11285
11286         PR rtl-optimization/47612
11287         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
11288         as the last insn of the sequence to be moved.
11289
11290 2011-05-04  Tobias Burnus  <burnus@net-b.de>
11291
11292         PR fortran/48864
11293         * doc/invoke.texi (Ofast): Document that it
11294         enables Fortran's -fno-protect-parens.
11295
11296 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
11297
11298         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
11299
11300 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
11301
11302         * stor-layout.c (variable_size): Do not issue errors.
11303
11304 2011-05-04  Richard Guenther  <rguenther@suse.de>
11305
11306         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
11307         for array-ref indices.
11308         (tree_coverage_counter_addr): Likewise.
11309         (build_fn_info_type): Use size_int for index types.
11310         (build_gcov_info): Likewise.
11311
11312 2011-05-04  Richard Guenther  <rguenther@suse.de>
11313
11314         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
11315         to build_int_cst.
11316         * c-typeck.c (really_start_incremental_init): Use bitsize_int
11317         for constructor indices.
11318         (push_init_level): Likewise.
11319
11320 2011-05-04  Richard Guenther  <rguenther@suse.de>
11321
11322         * explow.c (promote_mode): Move variable declarations before code.
11323
11324 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
11325
11326         * tree.h (build_function_type_array): Declare.
11327         (build_varargs_function_type_array): Declare.
11328         (build_function_type_vec, build_varargs_function_type_vec): Define.
11329         * tree.c (build_function_type_array_1): New function.
11330         (build_function_type_array): New function.
11331         (build_varargs_function_type_array): New function.
11332
11333 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
11334
11335         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
11336         before setting STMT_VINFO_TYPE.
11337
11338 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11339
11340         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
11341         instead of spu_pass_by_reference.
11342
11343 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11344
11345         * calls.c (emit_library_call_value_1): Invoke
11346         promote_function_mode hook on libcall arguments.
11347         * explow.c (promote_function_mode, promote_mode): Handle TYPE
11348         argument being NULL.
11349         * targhooks.c (default_promote_function_mode): Lisewise.
11350         * config/s390/s390.c (s390_promote_function_mode): Likewise.
11351         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
11352
11353         * doc/tm.texi: Document that TYPE argument might be NULL.
11354
11355 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
11356
11357         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
11358
11359 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
11360
11361         From Bernd Schmidt
11362         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
11363
11364 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11365
11366         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
11367         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
11368         Move ...
11369         * mips-tfile.c: ... here.
11370         Don't include coretypes.h, tm.h, filenames.h.
11371         (saber_stop): Remove definition and all calls.
11372         [__SABER__]: Remove.
11373         (__LINE__): Remove default.
11374         (Size_t, Ptrdiff_t): Remove definitions.
11375         Replace by size_t, ptrdiff_t.
11376         [!MIPS_DEBUGGING_INFO]: Remove.
11377         (SHASH_SIZE, THASH_SIZE): Remove defaults.
11378         (progname): Add const.
11379         (STATIC): Remove.
11380         Replace all uses by static.
11381         (ALIGN_SYMTABLE_OFFSET): Remove default.
11382         * mips-tdump.c: Don't include coretypes.h, tm.h.
11383         Remove !MIPS_IS_STAB guard.
11384         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
11385         $(TM_H), filenames.h dependencies.
11386         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
11387
11388 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
11389
11390         From Jie Zhang
11391         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
11392         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
11393
11394 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
11395
11396         From Bernd Schmidt
11397         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
11398         account and save/restore RETS.
11399         (PROFILE_BEFORE_PROLOGUE): Define.
11400         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
11401         the push insn to use predecrement.
11402
11403 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
11404
11405         From Jie Zhang
11406         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
11407
11408 2011-05-04  Nick Clifton  <nickc@redhat.com>
11409
11410         * config/mn10300/mn10300.c: Include cfgloop.h.
11411         (DUMP): New macro.
11412         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
11413         Lcc or a FLcc insn into the instruction stream.
11414         (mn10300_block_contains_call): New function.  Returns true if the
11415         given basic block contains a CALL insn.
11416         (mn10300_loop_contains_call_insn): New function.  Returns true if
11417         the given loop contains a CALL insn.
11418         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
11419         to use the SETLB and Lcc or FLcc insns.
11420         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
11421         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
11422         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
11423         disable the SETLB optimization.
11424         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
11425         __SETLB__ or __NO_SETLB__.
11426         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
11427         (movsf_internal): Handle MDR register.
11428         (cmpsi): Make visible.
11429         (setlb): New pattern.
11430         (Lcc): New pattern.
11431         (FLcc): New pattern.
11432
11433 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
11434
11435         PR target/48860
11436         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
11437         for reg<->xmm moves.
11438         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
11439         (vec_concatv2di_rex64_sse): Ditto.
11440         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
11441         (*vec_extractv2di_1_rex64): Ditto.
11442
11443         Revert:
11444         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
11445
11446         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
11447         reg<->xmm moves.
11448         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
11449
11450 2011-05-04  Richard Guenther  <rguenther@suse.de>
11451
11452         * tree.h (int_const_binop): Remove notrunc argument.
11453         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
11454         create integer constants that are properly truncated.
11455         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
11456         (const_binop): Remove zero notrunc argument to int_const_binop.
11457         (size_binop_loc): Likewise.
11458         (fold_div_compare): Likewise.
11459         (maybe_canonicalize_comparison_1): Likewise.
11460         (fold_comparison): Likewise.
11461         (fold_binary_loc): Likewise.
11462         (multiple_of_p): Likewise.
11463         * expr.c (store_constructor): Likewise.
11464         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
11465         (maybe_fold_stmt_addition): Likewise.
11466         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
11467         * stor-layout.c (layout_type): Likewise.
11468         * tree-data-ref.c (tree_fold_divides_p): Likewise.
11469         * tree-sra.c (build_ref_for_offset): Likewise.
11470         (build_user_friendly_ref_for_offset): Likewise.
11471         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
11472         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
11473         * tree-ssa-loop-niter.c (inverse): Likewise.
11474         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
11475         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
11476         * tree-switch-conversion.c (check_range): Likewise.
11477         (build_constructors): Likewise.
11478         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
11479         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
11480         (extract_range_from_assert): Likewise.
11481         (vrp_int_const_binop): Likewise.
11482         (extract_range_from_binary_expr): Likewise.
11483         (extract_range_from_unary_expr): Likewise.
11484         (check_array_ref): Likewise.
11485         (find_case_label_range): Likewise.
11486         (simplify_div_or_mod_using_ranges): Likewise.
11487         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
11488         comparing case labels for merging.
11489
11490 2011-05-03  Mark Wielaard  <mjw@redhat.com>
11491
11492         * dwarf2out.c (debug_str_hash_forced): Removed.
11493         (gen_label_for_indirect_string): Removed.
11494         (get_debug_string_label): Removed.
11495         (AT_string_form): Generate label directly.
11496         (output_indirect_string): Test indirect_string_node for
11497         DW_FORM_strp instead of checking label and refcount.
11498         (prune_indirect_string): Removed.
11499         (prune_unused_types): Don't check debug_str_hash_forced or
11500         call prune_indirect_string.
11501
11502 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
11503
11504         PR other/48093
11505         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
11506
11507 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
11508
11509         PR debug/47994
11510         PR debug/47919
11511         * combine.c (try_combine): Skip debug insns at m_split tests.
11512
11513 2011-04-26  Mark Wielaard  <mjw@redhat.com>
11514
11515         PR42288
11516         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
11517         when info_section_emitted.
11518
11519 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
11520
11521         * config/mips/mips-opts.h: New.
11522         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
11523         to mips-opts.h.
11524         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
11525         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
11526         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
11527         via opts pointer.
11528         * config/mips/mips.h (enum mips_code_readable_setting): Move to
11529         mips-opts.h.
11530         (mips_abi, mips_code_readable): Don't declare.
11531         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
11532         (mabi=): Use Enum and Var.
11533         (mips_abi): New Enum and EnumValue entries.
11534         (mcode-readable=): Use Enum and Var.
11535         (mips_code_readable_setting): New Enum and EnumValue entries.
11536         (mr10k-cache-barrier=): Use Enum and Var.
11537         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
11538
11539 2011-05-03  Jan Hubicka  <jh@suse.cz>
11540
11541         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
11542         replace hash by pointer map.
11543         (cgraph_node_set_element_def, cgraph_node_set_element,
11544         const_cgraph_node_set_element, varpool_node_set_element_def,
11545         varpool_node_set_element, const_varpool_node_set_element): Remove.
11546         (free_cgraph_node_set, free_varpool_node_set): New function.
11547         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
11548         * tree-emutls.c: Free varpool node set.
11549         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
11550         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
11551         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
11552         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
11553         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
11554         Move here from ipa.c; implement using pointer_map
11555         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
11556         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
11557         debug_cgraph_node_set, varpool_node_set_new,
11558         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
11559         dump_varpool_node_set, debug_varpool_node_set):
11560         Move to ipa-uitls.c.
11561         * passes.c (ipa_write_summaries): Update.
11562
11563 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11564
11565         From Mike Frysinger:
11566         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
11567         bf542/bf544/bf547/bf548/bf549.
11568
11569 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
11570
11571         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
11572
11573 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11574
11575         From Bernd Schmidt:
11576         * config/bfin/bfin.md (MOVCC): New mode_macro.
11577         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
11578         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
11579         comments from generated assembly.
11580
11581 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11582
11583         From Bernd Schmidt
11584         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
11585         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
11586         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
11587         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
11588         * config/bfin/lib1funcs.asm (___muldi3): New function.
11589
11590 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11591
11592         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
11593         build_function_type_list instead of build_function_type.
11594         Rearrange initialization of `args' to do so.
11595
11596 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11597
11598         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
11599         instead of build_function_type.
11600
11601 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11602
11603         * config/rs6000/rs6000.c (spe_init_builtins): Call
11604         build_function_type_list instead of build_function_type.
11605         (paired_init_builtins, altivec_init_builtins): Likewise.
11606         (builtin_function_type): Likewise.
11607
11608 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11609
11610         * config/sh/sh.c (sh_media_init_builtins): Call
11611         build_function_type_list instead of build_function_type.
11612
11613 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11614
11615         * config/sparc/sparc.c (sparc_file_end): Call
11616         build_function_type_list instead of build_function_type.
11617
11618 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11619
11620         * config/alpha/alpha.c (alpha_init_builtins): Call
11621         build_function_type_list instead of build_function_type.
11622
11623 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11624
11625         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
11626         build_function_type_list instead of build_function_type.
11627
11628 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11629
11630         * config/iq2000/i2000.c (iq2000_init_builtins): Call
11631         build_function_type_list instead of build_function_type.
11632         Delete `endlink' variable.
11633
11634 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11635
11636         * config/avr/avr.c (avr_init_builtins): Call
11637         build_function_type_list instead of build_function_type.
11638
11639 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11640
11641         * config/picochip/picochip.c (picochip_init_builtins): Call
11642         build_function_type_list instead of build_function_type.
11643         Delete `endlink' variable.
11644
11645 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11646
11647         * config/bfin/bfin.c (bfin_init_builtins): Call
11648         build_function_type_list instead of build_function_type.
11649
11650 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11651
11652         From Bernd Schmidt
11653         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
11654         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
11655
11656 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11657
11658         From Jie Zhang:
11659         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
11660         libbffastfp overrides libgcc when -mfast-fp.
11661
11662 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11663
11664         Originally from Bernd Schmidt
11665         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
11666         * config/bfin/bfin.c (override_options): Test it and error if
11667         TARGET_FDPIC.
11668
11669 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11670
11671         Originally From Bernd Schmidt
11672         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
11673         FD-PIC.
11674
11675 2011-05-03  Jeff Law  <law@redhat.com>
11676
11677         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
11678         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
11679         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
11680         than accessing AUX field directly.  Free the AUX field before
11681         clearing it.
11682         (thread_block, thread_through_loop_header): Likewise.
11683         (thread_single_edge, mark_threaded_blocks): Likewise.
11684         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
11685         (register_jump_thread): Do not attempt to thread to a NULL edge.
11686
11687 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
11688
11689         * function.c (init_function_start): Call decide_function_section.
11690         * varasm.c (decide_function_section): New function.
11691         (assemble_start_function): When not using
11692         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
11693         or first_function_block_is_cold.
11694         * rtl.h (decide_function_section): Declare.
11695
11696 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
11697             Jakub Jelinek  <jakub@redhat.com>
11698
11699         PR target/48774
11700         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
11701         only succeed if req_mode is the same as set_mode.
11702
11703 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
11704
11705         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
11706         * genemit.c (gen_exp): Handle RETURN.
11707         * emit-rtl.c (verify_rtx_sharing): Likewise.
11708         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
11709         * rtl.c (copy_rtx): RETURN is shared.
11710         * rtl.h (enum global_rtl_index): Add GR_RETURN.
11711         (ret_rtx): New.
11712         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
11713         * config/s390/s390.c (s390_emit_epilogue): Likewise.
11714         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
11715         * config/cris/cris.c (cris_expand_return): Likewise.
11716         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
11717         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
11718         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
11719         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
11720         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
11721         Likewise.
11722         * config/v850/v850.c (expand_epilogue): Likewise.
11723         * config/bfin/bfin.c (bfin_expand_call): Likewise.
11724         * config/arm/arm.md (epilogue): Likewise.
11725         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
11726         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
11727         variable to ret_reg.
11728
11729 2011-05-03  Richard Guenther  <rguenther@suse.de>
11730
11731         PR lto/48846
11732         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
11733         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
11734         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
11735
11736 2011-05-03  Richard Guenther  <rguenther@suse.de>
11737
11738         * c-decl.c (grokdeclarator): Instead of looking at
11739         TREE_OVERFLOW check if the constant fits in the index type.
11740
11741 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
11742
11743         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
11744         (vec_store_lanes<mode><mode>): Likewise.
11745
11746 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
11747
11748         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
11749         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
11750         convert_optab_index values.
11751         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
11752         * genopinit.c (optabs): Initialize the new optabs.
11753         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
11754         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
11755         (expand_STORE_LANES): New functions.
11756         * tree.h (build_array_type_nelts): Declare.
11757         * tree.c (build_array_type_nelts): New function.
11758         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
11759         (vect_model_load_cost): Likewise.
11760         (vect_store_lanes_supported, vect_load_lanes_supported)
11761         (vect_record_strided_load_vectors): Declare.
11762         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
11763         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
11764         (vect_transform_strided_load): Split out statement recording into...
11765         (vect_record_strided_load_vectors): ...this new function.
11766         * tree-vect-stmts.c (create_vector_array, read_vector_array)
11767         (write_vector_array, create_array_ref): New functions.
11768         (vect_model_store_cost): Add store_lanes_p argument.
11769         (vect_model_load_cost): Add load_lanes_p argument.
11770         (vectorizable_store): Try to use store-lanes functions for
11771         interleaved stores.
11772         (vectorizable_load): Likewise load-lanes and loads.
11773         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
11774         to vect_model_store_cost.
11775         (vect_build_slp_tree): Likewise vect_model_load_cost.
11776
11777 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
11778
11779         * hooks.h (hook_bool_mode_uhwi_false): Declare.
11780         * hooks.c (hook_bool_mode_uhwi_false): New function.
11781         * target.def (array_mode_supported_p): New hook.
11782         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
11783         * doc/tm.texi: Regenerate.
11784         * stor-layout.c (mode_for_array): New function.
11785         (layout_type): Use it.
11786         * config/arm/arm.c (arm_array_mode_supported_p): New function.
11787         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
11788
11789 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
11790
11791         PR target/48723
11792         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
11793         for -fstack-check if the size to allocate is negative.
11794
11795 2011-05-02  Lawrence Crowl  <crowl@google.com>
11796
11797         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
11798         (timevar_cond_start): New for starting a timer only when it is not
11799         already running.
11800         (timevar_cond_stop): New for stopping a timer when it was not already
11801         running.
11802
11803         * timevar.c (timevar_stop): Enable start/stop timers to start again.
11804         (timevar_cond_start): New as above.
11805         (timevar_cond_stop): New as above.
11806
11807         * timevar.def: Add start/stop timers for compiler phases,
11808         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
11809         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
11810         and TV_PHASE_FINALIZE.
11811         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
11812         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
11813         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
11814         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
11815         Make unused TV_OVERLOAD into a start/stop timer.
11816
11817         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
11818         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
11819         to indicate that they are start/stop timers.
11820
11821         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
11822         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
11823         Move initialization to do_compile.
11824         (do_compile): Add initialization from above.
11825         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
11826
11827         * c-decl.c (c_write_global_declarations): Add start/stop of
11828         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
11829
11830         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
11831         or TV_PARSE_INLINE, as appropriate.
11832         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
11833         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
11834
11835 2011-05-02  Jason Merrill  <jason@redhat.com>
11836
11837         PR c++/40975
11838         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
11839
11840 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
11841
11842         PR c/35445
11843         * c-decl.c (finish_decl): Only create a composite if the types are
11844         compatible.
11845
11846 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
11847
11848         * config/fr30/fr30-protos.h (Mmode): Don't define.
11849         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
11850         definition where used.
11851         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
11852         define.  Expand definitions where used.
11853         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
11854         Expand definitions where used.
11855         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
11856         rx_function_arg, rx_function_arg_advance,
11857         rx_function_arg_boundary): Expand definitions of those macros.
11858         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
11859         definition where used.
11860
11861 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
11862
11863         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
11864         reg<->xmm moves.
11865         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
11866         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
11867         with *movv2sf_internal_rex64_avx.
11868         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
11869         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
11870         Use %v prefix in insn mnemonic to handle TARGET_AVX.
11871         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
11872         "vex" in "prefix" attribute calculation.
11873         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
11874
11875 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
11876
11877         PR target/47951
11878         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
11879         inputs match the output.
11880
11881 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
11882
11883         PR target/47955
11884         * config/m68k/m68k.c (m68k_expand_prologue): Set
11885         current_function_static_stack_size.
11886
11887 2011-05-02   Jan Hubicka  <jh@suse.cz>
11888
11889         * lto-streamer.c (lto_streamer_cache_insert_1,
11890         lto_streamer_cache_lookup, lto_streamer_cache_create,
11891         lto_streamer_cache_delete): Use pointer map instead of hashtable.
11892         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
11893
11894 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
11895
11896         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
11897         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
11898         config/m68k/t-opts: New files.
11899         * config/m68k/m68k-tables.opt: New file (generated).
11900         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
11901         extra_options and m68k/t-opts to tmake_file.
11902         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
11903         (all_isas): Initialize using m68k-isas.def.
11904         (all_microarchs): Initialize using m68k-microarchs.def.
11905         (m68k_find_selection): Remove.
11906         (m68k_handle_option): Don't assert that global structures are in
11907         use.  Use error_at.  Access variables via opts pointer.  Don't
11908         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
11909         directly for -m68020-40 and -m68020-60.
11910         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
11911         m68k_tune_entry here.
11912         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
11913         to m68k-opts.h.
11914         (m68k_library_id_string): Remove declaration.
11915         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
11916         (m68k_library_id_string): New Variable.
11917         (march=, mcpu=, mtune=): Use Enum and Var.
11918
11919 2011-05-02  Richard Guenther  <rguenther@suse.de>
11920
11921         * varasm.c (output_constructor_regular_field): Compute zero-based
11922         index with double-ints.  Make sure to ICE instead of producing
11923         wrong code.
11924         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
11925         in asserts.  Properly use a signed type.
11926
11927 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
11928
11929         * config/i386/sse.md (V): New mode iterator.
11930         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
11931         TARGET_SSE2.
11932         (V_256): Rename from AVX256MODE.
11933         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
11934         condition to all users.
11935         (VF1): Ditto.
11936         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
11937         condition to all users.
11938         (VF_128): Make V4SF mode unconditional.
11939         (VF_256): Rename from AVX256MODEF2P.
11940         (VI4F_128): Rename from SSEMODE4S.
11941         (VI8F_128): Rename from SSEMODE2D.
11942         (VI4F_256): Rename from AVX256MODE8P.
11943         (VI8F_256): Rename from AVX256MODE4P.
11944         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
11945         (ssescalarmodesuffix): Remove SF and DF modes.
11946         (SSEMODE124): Remove.
11947         (SSEMODE1248): Ditto.
11948         (SSEMODEF2P): Ditto.
11949         (AVXMODEF2P): Ditto.
11950         (AVXMODEFDP): Ditto.
11951         (AVXMODEFSP): Ditto.
11952         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
11953         unconditional.
11954         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
11955         unconditional.
11956         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
11957         xop_pcmov_<mode>256.  Use V mode iterator.
11958
11959         Adjust RTX patterns globally for renamed mode attributes.
11960
11961 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11962
11963         * haifa-sched.c (sched_emit_insn): Emit insn before first
11964         non-scheduled insn.  Inform back-end about new insn.  Add
11965         new insn to scheduled_insns list.
11966
11967 2011-05-02  Richard Guenther  <rguenther@suse.de>
11968
11969         PR tree-optimization/48822
11970         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
11971         (process_scc): Indicate which iteration we start.
11972
11973 2011-05-02  Jan Hubicka  <jh@suse.cz>
11974
11975         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
11976         (lto_section_overrun): New.
11977         * lto-section-out.c (append_block): Rename to ...
11978         (lto_append_block): ... this one; export.
11979         (lto_output_1_stream): Move lto lto-streamer.h
11980         (lto_output_data_stream): Update.
11981         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
11982         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
11983         functions.
11984
11985 2011-05-02  Richard Guenther  <rguenther@suse.de>
11986
11987         * tree.c (tree_code_counts): New global array.
11988         (record_node_allocation_statistics): Count individual tree codes.
11989         (dump_tree_statistics): Dump individual code stats.
11990
11991 2011-05-01  Jan Hubicka  <jh@suse.cz>
11992
11993         * ipa-inline.c (caller_growth_limits): Fix thinko when
11994         looking for largest stack frame.
11995         * ipa-inline.h (dump_inline_summary): Declare.
11996         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
11997         on stack usage.
11998         (dump_inline_summary): Export.
11999         (debug_inline_summary): Declare as DEBUG_FUNCTION.
12000
12001 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
12002
12003         * reginfo.c (memory_move_cost): Change rclass argument type form
12004         'enum reg_class' to reg_class_t.
12005         * reload.h (memory_move_cost): Update prototype.
12006         * postreload.c reload_cse_simplify_set): Change type dclass var to
12007         reg_class_t.
12008         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
12009         Update prototype.
12010         (ira_allocate_and_set_costs): Change aclass argument type form
12011         'enum reg_class' to reg_class_t.
12012         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
12013         Change aclass argument type to reg_class_t.
12014         (update_conflict_hard_reg_costs): Change type aclass and pref vars
12015         to reg_class_t.
12016         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
12017         memory_move_cost call.
12018
12019         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
12020         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
12021         Change type tmp var to reg_class_t.
12022
12023 2011-04-30  Jan Hubicka  <jh@suse.cz>
12024
12025         * ipa-inline.c (can_inline_edge_p): Disregard limits when
12026         inlining into function with flatten attribute.
12027         (want_inline_small_function_p): Be more realistic about inlining
12028         cold calls where callee size grows.
12029
12030 2011-04-30  Jan Hubicka  <jh@suse.cz>
12031
12032         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
12033         flags.
12034
12035 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
12036
12037         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
12038         PRINT_OPERAND_PUNCT_VALID_P): Remove.
12039         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
12040         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
12041         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12042         (print_operand): Rename to...
12043         (sparc_print_operand): ...this. Make static. Adjust
12044         sparc_print_operand function call.
12045         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
12046         functions.
12047
12048 2011-04-30  Jan Hubicka  <jh@suse.cz>
12049
12050         PR middle-end/48752
12051         * ipa-inline.c (early_inliner): Disable when doing late
12052         addition of function.
12053
12054 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
12055
12056         * dwarf2out.c (get_address_mode): New inline.
12057         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
12058         if not dwarf_strict emit
12059         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
12060         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
12061         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
12062         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
12063         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
12064         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
12065         mem_loc_descriptor callers.
12066         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
12067         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
12068         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
12069         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
12070         (base_types): New variable.
12071         (get_base_type_offset, calc_base_type_die_sizes,
12072         base_type_for_mode, mark_base_types, base_type_cmp,
12073         move_marked_base_types): New functions.
12074         (calc_die_sizes): Assert that die_offset is 0 or equal to
12075         next_die_offset.
12076         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
12077         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
12078         callers.  If not dwarf_strict, call mem_loc_descriptor even for
12079         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
12080         (gen_subprogram_die): Don't give up on call site parameters
12081         with non-integral or large integral modes.  Adjust
12082         mem_loc_descriptor callers.
12083         (prune_unused_types): Call prune_unused_types_mark on base_types
12084         vector entries.
12085         (resolve_addr): Call mark_base_types.
12086         (dwarf2out_finish): Call move_marked_base_types.
12087
12088         PR tree-optimization/48809
12089         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
12090         type.
12091         (gen_inbound_check): Don't compute index_expr - range_min in utype
12092         again, instead reuse SSA_NAME initialized in build_arrays.
12093         Remove two useless gsi_for_stmt calls.
12094
12095 2011-04-29  Jeff Law  <law@redhat.com>
12096
12097         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
12098
12099 2011-04-29  Martin Jambor  <mjambor@suse.cz>
12100
12101         * cgraph.h (cgraph_postorder): Remove declaration.
12102         * ipa-utils.h (ipa_free_postorder_info): Declare.
12103         (ipa_reverse_postorder): Likewise.
12104         * cgraphunit.c: Include ipa-utils.h.
12105         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
12106         * ipa-inline.c: Include ipa-utils.h.
12107         (ipa_inline): Update call to ipa_reverse_postorder.
12108         * ipa-pure-const.c (propagate_pure_const): Update call to
12109         ipa_reduced_postorder and ipa_print_order.  Call
12110         ipa_free_postorder_info to clean up.
12111         (propagate_nothrow): Likewise.
12112         * ipa-reference.c (propagate): Removed a useless call to
12113         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
12114         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
12115         * ipa.c: Include ipa-utils.h.
12116         (ipa_profile): Update call to ipa_reverse_postorder.
12117         (cgraph_postorder): Moved to...
12118         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
12119         (ipa_utils_print_order): Renamed to ipa_print_order.
12120         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
12121         comments.
12122         (ipa_free_postorder_info): New function.
12123         * passes.c: Include ipa-utils.h.
12124         (do_per_function_toporder): Update call to ipa_reverse_postorder.
12125         (ipa_write_summaries): Likewise.
12126         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
12127         (cgraphunit.o): Likewise.
12128         (ipa.o): Likewise.
12129         (ipa-inline.o): Likewise.
12130
12131 2011-04-29  Jan Hubicka  <jh@suse.cz>
12132
12133         * gcc.dg/tree-ssa/inline-10.c: New testcase.
12134         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
12135         * ipa-inline.h (clause_t): Turn into unsigned int.
12136         * ipa-inline-analysis.c (add_clause): Do more simplification.
12137         (and_predicates): Shortcut more cases.
12138         (predicates_equal_p): Move forward; check that clauses are properly
12139         ordered.
12140         (or_predicates): Shortcut more cases.
12141         (edge_execution_predicate): Rewrite as...
12142         (set_cond_stmt_execution_predicate): ... this function; handle
12143         __builtin_constant_p.
12144         (set_switch_stmt_execution_predicate): New .
12145         (compute_bb_predicates): New.
12146         (will_be_nonconstant_predicate): Update TODO.
12147         (estimate_function_body_sizes): Use compute_bb_predicates
12148         and free them later, always try to estimate if stmt is constant.
12149         (estimate_time_after_inlining, estimate_size_after_inlining):
12150         Gracefully handle optimized out edges.
12151         (read_predicate): Fix off by one error.
12152
12153 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12154
12155         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
12156
12157 2011-04-27  Xinliang David Li  <davidxl@google.com>
12158
12159         * tree-profile.c (init_ic_make_global_vars): Set
12160         tls attribute on ic vars.
12161         * coverage.c (coverage_end_function): Initialize
12162         function_list with zero.
12163
12164 2011-04-29  Richard Guenther  <rguenther@suse.de>
12165
12166         * builtins.c (fold_builtin_classify_type): Use integer_type_node
12167         for the type of the result.
12168         (fold_builtin_isascii): Likewise.
12169         (fold_builtin_toascii): Use integer_type_node where appropriate.
12170         (fold_builtin_logb): Likewise.
12171         (fold_builtin_frexp): Likewise.
12172         (fold_builtin_strstr): Likewise.
12173         (fold_builtin_strpbrk): Likewise.
12174         (fold_builtin_fputs): Likewise.
12175         (fold_builtin_sprintf): Likewise.
12176         (fold_builtin_snprintf): Likewise.
12177         (fold_builtin_printf): Likewise.
12178         (do_mpfr_remquo): Use a proper type for the assigned constant.
12179         (do_mpfr_lgamma_r): Likewise.
12180         * dwarf2out.c (resolve_one_addr): Use size_int.
12181         * except.c (init_eh): Likewise.
12182         (assign_filter_values): Use integer_type_node for filter values.
12183         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
12184         indices.
12185         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
12186         for EH region numbers.
12187         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
12188         for the shift amount.
12189
12190 2011-04-29  Richard Guenther  <rguenther@suse.de>
12191
12192         * expr.h (expand_shift): Rename to ...
12193         (expand_variable_shift): ... this.
12194         (expand_shift): Take a constant shift amount.
12195         * expmed.c (expand_shift): Rename to ...
12196         (expand_variable_shift): ... this.
12197         (expand_shift): New wrapper around expand_variable_shift.
12198         * expr.c (convert_move, emit_group_load_1, emit_group_store,
12199         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
12200         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
12201         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
12202         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
12203         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
12204         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
12205         emit_store_flag_1, emit_store_flag): Likewise.
12206         * builtins.c (expand_builtin_signbit): Likewise.
12207         * calls.c (load_register_parameters): Likewise.
12208         * function.c (assign_parm_setup_block): Likewise.
12209         * lower-subreg.c (resolve_shift_zext): Likewise.
12210         * optabs.c (widen_bswap, expand_abs_nojump,
12211         expand_one_cmpl_abs_nojump, expand_float): Likewise.
12212         * spu/spu.c (spu_expand_extv): Likewise.
12213         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
12214
12215 2011-04-29  Richard Guenther  <rguenther@suse.de>
12216
12217         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
12218         for the remapped region number.
12219         * predict.c (build_predict_expr): Use integer_type_node for the
12220         predict kind.
12221         * fold-const.c (fold_binary_loc): Use integer_type_node for
12222         the shift amount.  Use a proper type for the PLUS_EXPR operand.
12223
12224 2011-04-29  Michael Matz  <matz@suse.de>
12225
12226         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
12227         other trees that just builtins.
12228         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
12229
12230 2011-04-29  Richard Guenther  <rguenther@suse.de>
12231
12232         * tree-nested.c (get_trampoline_type): Use size_int.
12233         (get_nl_goto_field): Likewise.
12234         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
12235         for all indexes.
12236         (lower_eh_constructs_2): Likewise.
12237         (lower_resx): Likewise.
12238         (lower_eh_dispatch): Likewise.
12239         * tree-mudflap.c (mf_build_string): Use size_int.
12240         (mudflap_register_call): Use integer_type_node for the flag.
12241         (mudflap_enqueue_constant): Use size_int.
12242         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
12243         instead of rebuilding it.
12244
12245 2011-04-29  Richard Guenther  <rguenther@suse.de>
12246
12247         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
12248         Handle OBJ_TYPE_REF.
12249         (find_func_aliases_for_call): Use it more consistently.
12250
12251 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
12252
12253         * haifa-sched.c (last_nondebug_scheduled_insn): New.
12254         (rank_for_schedule): Use it.
12255         (schedule_block): Set it.
12256
12257 2011-04-28  David Li  <davidxl@google.com>
12258
12259         * tree.c (crc32_string): Use crc32_byte.
12260         (crc32_byte): New function.
12261         * tree.h (crc32_byte): New function.
12262         * gcov.c (read_graph_file): Handle new cfg_cksum.
12263         (read_count_file): Ditto.
12264         * profile.c (instrument_values): Ditto.
12265         (get_exec_counts): Ditto.
12266         (read_profile_edge_counts): Ditto.
12267         (compute_branch_probabilities): Ditto.
12268         (compute_value_histograms): Ditto.
12269         (branch_prob): Ditto.
12270         (end_branch_prob): Ditto.
12271         * coverage.c (read_counts_file): Ditto.
12272         (get_coverage_counts): Ditto.
12273         (tree_coverage_counter_addr): Ditto.
12274         (coverage_checksum_string): Ditto.
12275         (coverage_begin_output): Ditto.
12276         (coverage_end_function): Ditto.
12277         (build_fn_info_type): Ditto.
12278         (build_fn_info_value): Ditto.
12279         * libgcov.c (gcov_exit): Ditto.
12280         * gcov-dump.c (tag_function): Ditto.
12281         (compute_checksum): Remove.
12282
12283 2011-04-29  Alan Modra  <amodra@gmail.com>
12284
12285         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
12286         unspec plus offset.  Tidy macho code.
12287
12288 2011-04-29  Martin Jambor  <mjambor@suse.cz>
12289
12290         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
12291         node instead of a decl.  Update all callers.
12292         * cgraph.h: Update declaration.
12293
12294 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
12295
12296         PR tree-optimization/48765
12297         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
12298         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
12299         to indicate if loop aware SLP is being used.  Scan the statements
12300         and update the vectorization factor according to the type of
12301         vectorization before statement analysis.
12302         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
12303         pass it to vect_analyze_loop_operations.
12304         (vectorizable_reduction): Set number of copies to 1 in case of pure
12305         SLP statement.
12306         * tree-vect-stmts.c (vectorizable_conversion,
12307         vectorizable_assignment, vectorizable_shift,
12308         vectorizable_operation, vectorizable_type_demotion,
12309         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
12310         Likewise.
12311         (vectorizable_condition): Move the check that it is not SLP
12312         vectorization before the number of copies check.
12313         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
12314         to vectorize the loop using SLP.
12315
12316 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
12317
12318         PR middle-end/48597
12319         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
12320         inline asm.
12321
12322 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
12323
12324         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
12325         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
12326         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
12327         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
12328         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
12329         linux*.h headers.
12330         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
12331         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
12332         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
12333         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
12334         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
12335         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
12336         REG_NAME.
12337         * config/i386/linux.h (REG_NAME): Don't define.
12338         * config/i386/linux64.h (REG_NAME): Don't define.
12339         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
12340         Undefine before defining.
12341
12342 2011-04-28  Jan Hubicka  <jh@suse.cz>
12343
12344         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
12345         nonconstant_names array.
12346         (estimate_function_body_sizes): Build nonconstant_names array; handle
12347         BUILT_IN_CONSTANT_P.
12348
12349 2011-04-28  Richard Guenther  <rguenther@suse.de>
12350
12351         PR bootstrap/48804
12352         Revert
12353         2011-04-28  Richard Guenther  <rguenther@suse.de>
12354
12355         * tree-ssa-structalias.c (solve_constraints): Build succ graph
12356         as late as possible.
12357
12358 2011-04-28  Richard Guenther  <rguenther@suse.de>
12359
12360         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
12361         (debug_constraint): Do it here.
12362         (dump_constraints): And here.
12363         (rewrite_constraints): And here.
12364         (dump_constraint_edge): Remove.
12365         (dump_constraint_graph): Rewrite to produce DOT output.
12366         (solve_constraints): Build succ graph as late as possible.
12367         Dump constraint graphs before and after solving.
12368
12369 2011-04-28  Richard Guenther  <rguenther@suse.de>
12370
12371         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12372         New function split out from ...
12373         (find_func_aliases): ... here.  Call it.
12374         (find_func_aliases_for_call): Likewise.
12375
12376 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12377
12378         * internal-fn.h (internal_fn_name_array): Declare.
12379         (internal_fn_flags_array): Likewise.
12380
12381 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
12382
12383         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
12384         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
12385         Move from sse.md.
12386         (ssemodefsuffix): Remove.
12387         (ssevecmodesuffix): New mode attribute.
12388         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
12389         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
12390         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
12391         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
12392         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
12393         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
12394         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
12395         ssemodesuffix mode attribute.
12396         (float splitters): Use ssevecmodesuffix mode attribute.
12397         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
12398         (sseinsmode): Rename from avxvecmode.
12399         (avxsizesuffix): Rename from avxmodesuffix.
12400         (sseintvecmode): Rename from avxpermvecmode.
12401         (ssedoublevecmode): Rename from ssedoublesizemode.
12402         (ssehalfvecmode): Rename from avxhalfvecmode.
12403         (ssescalarmode): Rename from avxscalarmode.
12404         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
12405         templates for ssemodesuffix mode attribute.
12406         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
12407         mode attribute.
12408
12409         Adjust RTX patterns globally for renamed mode attributes.
12410
12411 2011-04-27  Jan Hubcika  <jh@suse.cz>
12412
12413         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
12414         * ipa-inline-analysis.c: Include alloc-pool.h.
12415         (edge_predicate_pool): New.
12416         (trye_predicate_p): New function
12417         (false_predicate_p): New function.
12418         (add_clause): Sanity check that false clauses are "optimized";
12419         never add clauses to predicate that is already known to be false.
12420         (and_predicate): Use flase_predicate_p.
12421         (evaulate_predicate): Rename to ...
12422         (evaluate_predicate): ... this one; update all callers; assert
12423         that false is not listed among possible truths.
12424         (dump_predicate): Use true_predicate_p.
12425         (account_size_time): Use false_predicate_p.
12426         (evaulate_conditions_for_edge): Rename to ...
12427         (evaluate_conditions_for_edge) ... this one.
12428         (edge_set_predicate): New function.
12429         (inline_edge_duplication_hook): Duplicate edge predicates.
12430         (inline_edge_removal_hook): Free edge predicates.
12431         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
12432         (dump_inline_summary): Update.
12433         (estimate_function_body_sizes): Set edge predicates.
12434         (estimate_calls_size_and_time): Handle predicates.
12435         (estimate_callee_size_and_time): Update.
12436         (remap_predicate): Add toplev_predicate; update comment.
12437         (remap_edge_predicates): New function.
12438         (inline_merge_summary): Compute toplev predicate; update.
12439         (read_predicate): New function.
12440         (read_inline_edge_summary): Use it.
12441         (inline_read_section): Likewise.
12442         (write_predicate): New function.
12443         (write_inline_edge_summary): Use it.
12444         (inline_write_summary): Likewise.
12445         (inline_free_summary): Free alloc pool and edge summary vec.
12446
12447 2011-04-27  Richard Guenther  <rguenther@suse.de>
12448
12449         * tree-ssa-structalias.c (changed_count): Remove.
12450         (changed): Use a bitmap.
12451         (unify_nodes): Adjust.
12452         (do_sd_constraint): Likewise.
12453         (do_ds_constraint): Likewise.
12454         (do_complex_constraint): Likewise.
12455         (solve_graph): Likewise.
12456
12457 2011-04-27  Jan Hubicka  <jh@suse.cz>
12458
12459         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
12460
12461 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
12462
12463         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
12464         (avx_vperm2f128_*_operand): Ditto.
12465         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
12466         Use avx_vpermilp_parallel in insn condition.
12467         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
12468         Use avx_vperm2f128_parallel in insn condition.
12469
12470 2011-04-27  Richard Guenther  <rguenther@suse.de>
12471
12472         * Makefile.in (tree-ssa-structalias.o): Remove
12473         gt-tree-ssa-structalias.h dependency.
12474         (GTFILES): Remove tree-ssa-structalias.c.
12475         * tree.c (allocate_decl_uid): New function.
12476         (make_node_stat): Use it.
12477         (copy_node_stat): Likewise.
12478         * tree.h (allocate_decl_uid): Declare.
12479         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
12480         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
12481         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
12482         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
12483         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
12484         (struct heapvar_map): Likewise.
12485         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
12486         heapvar_insert): Likewise.
12487         (make_heapvar_for): Rename to ...
12488         (make_heapvar): ... this.  Simplify.
12489         (fake_var_decl_obstack): New global var.
12490         (build_fake_var_decl): New function.
12491         (make_constraint_from_heapvar): Adjust.
12492         (handle_lhs_call): Likewise.
12493         (create_function_info_for): Likewise.
12494         (intra_create_variable_infos): Likewise.
12495         (init_alias_vars): Allocate fake_var_decl_obstack.
12496         (init_alias_heapvars, delete_alias_heapvars): Remove.
12497         (compute_points_to_sets): Do not call init_alias_heapvars.
12498         (ipa_pta_execute): Likewise.
12499         (delete_points_to_sets): Free fake_var_decl_obstack.
12500
12501 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12502
12503         * config/spu/divmovti4.c (union qword_UTItype): New data type.
12504         (si_from_UTItype, si_to_UTItype): New functions.
12505         (__udivmodti4): Use them to implement type-punning.
12506         * config/spu/multi3.c (union qword_TItype): New data type.
12507         (si_from_TItype, si_to_TItype): New functions.
12508         (__multi3): Use them to implement type-punning.
12509
12510 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12511
12512         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
12513
12514 2011-04-27  Jan Hubicka  <jh@suse.cz>
12515
12516         * ipa-prop.c (function_insertion_hook_holder): New holder.
12517         (ipa_add_new_function): New function.
12518         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
12519         Register/deregister holder.
12520
12521 2011-04-27  Richard Guenther  <rguenther@suse.de>
12522
12523         PR tree-optimization/48772
12524         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
12525
12526 2011-04-27  Richard Guenther  <rguenther@suse.de>
12527
12528         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
12529         TARGET_MEM_REF handling.
12530
12531 2011-04-27  Nick Clifton  <nickc@redhat.com>
12532
12533         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
12534         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
12535         (REG_CLASS_NAMES): Likewise.
12536         (REG_CLASS_CONTENTS): Likewise.
12537         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
12538         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
12539         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
12540         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
12541         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
12542         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
12543         duplicate register classes.
12544         (frv_class_likely_spilled_p): Likewise.
12545         (frv_register_move_cost): Likewise.
12546
12547         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
12548         end of the regno_reg_class array.
12549
12550 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
12551
12552         PR c/48742
12553         * c-typeck.c (build_binary_op): Don't wrap arguments if
12554         int_operands is true.
12555
12556 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
12557
12558         PR target/48767
12559         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
12560         targetm.calls.must_pass_in_stack for void type.
12561
12562 2011-04-26  Jan Hubicka  <jh@suse.cz>
12563
12564         * cgraphbuild.c (build_cgraph_edges): Update call
12565         of cgraph_create_edge and cgraph_create_indirect_edge.
12566         * cgraph.c (cgraph_create_edge_including_clones,
12567         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
12568         cgraph_update_edges_for_call_stmt_node): Do not take nest
12569         argument; do not initialize call_stmt_size/time.
12570         (dump_cgraph_node): Do not dump nest.
12571         (cgraph_clone_edge): Do not take loop_nest argument;
12572         do not propagate it; do not clone call_stmt_size/time.
12573         (cgraph_clone_node): Likewise.
12574         (cgraph_create_virtual_clone): Update.
12575         * cgraph.h (struct cgraph_edge): Remove
12576         call_stmt_size/call_stmt_time/loop_nest.
12577         (cgraph_create_edge, cgraph_create_indirect_edge,
12578         cgraph_create_edge_including_clones, cgraph_clone_node): Update
12579         prototype.
12580         * tree-emutls.c (gen_emutls_addr): Update.
12581         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
12582         loop_nest; handle indirect calls, too.
12583         (clone_inlined_nodes): Do not care about updating inline summaries.
12584         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
12585         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
12586         stream call_stmt_size/call_stmt_time/loop_nest.
12587         * ipa-inline.c (edge_badness): Update.
12588         (ipa_inline): dump summaries after inlining.
12589         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
12590         New.
12591         (inline_edge_summary): New function.
12592         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
12593         (inline_edge_removal_hook): Handle edge summaries.
12594         (inline_edge_duplication_hook): New hook.
12595         (inline_summary_alloc): Alloc hooks.
12596         (initialize_growth_caches): Do not register removal hooks.
12597         (free_growth_caches); Do not free removal hook.
12598         (dump_inline_edge_summary): New function.
12599         (dump_inline_summary): Use it.
12600         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
12601         (inline_update_callee_summaries): New function.
12602         (inline_merge_summary): Use it.
12603         (do_estimate_edge_time, do_estimate_edge_growth): Update.
12604         (read_inline_edge_summary): New function.
12605         (inline_read_section): Use it.
12606         (write_inline_edge_summary): New function.
12607         (inline_write_summary): Use it.
12608         (inline_free_summary): Free edge new holders.
12609         * tree-inline.c (copy_bb): Update.
12610
12611 2011-04-26  Jason Merrill  <jason@redhat.com>
12612
12613         * tree-eh.c (lower_try_finally_switch): Create the label along with
12614         the CASE_LABEL_EXPR.
12615
12616 2011-04-26  David S. Miller  <davem@davemloft.net>
12617             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12618
12619         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
12620         * configure: Regenerate.
12621
12622 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
12623
12624         PR target/48258
12625         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
12626         reduction.
12627         (VEC_reduc): New code iterator and splitters for vector reduction.
12628         (VEC_reduc_name): Ditto.
12629         (VEC_reduc_rtx): Ditto.
12630         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
12631         (reduc_<VEC_reduc_name>_v4sf): Ditto.
12632
12633         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
12634         support for extracting SF on VSX.
12635
12636         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
12637         generating xscvspdp.
12638         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
12639         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
12640         double add, minimum, maximum vector reduction.
12641         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
12642         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
12643         optimize double vector reduction.
12644         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
12645
12646 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
12647
12648         * config/fr30/fr30.h (inhibit_libc): Don't define.
12649         * config/m32r/m32r-protos.h: Correct comment.
12650         * config/v850/v850.h (GHS_default_section_names,
12651         GHS_current_section_names): Use tree, not union tree_node *.
12652
12653 2011-04-26  Xinliang David Li  <davidxl@google.com>
12654
12655         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
12656         * c-family/c-opts.c (c_common_handle_option): Set
12657         warn_maybe_uninitialized.
12658         * opts.c (common_handle_option): Ditto.
12659         * common.opt:  New option.
12660         * tree-ssa.c (warn_uninit): Add one more parameter.
12661         (warn_uninitialized_var): Pass warning code.
12662         * tree-flow.h: Interface change.
12663
12664 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12665
12666         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
12667         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
12668         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
12669
12670 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12671
12672         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
12673         * config/mips/mips.opt (mmips-tfile): Remove.
12674
12675         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
12676         mips-tdump reference to ...
12677         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
12678         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
12679         reference by Tru64 UNIX.
12680
12681 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
12682
12683         PR debug/48768
12684         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
12685         is error_mark_node, set value to NULL.
12686
12687         PR tree-optimization/48734
12688         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
12689         if return value from maybe_fold_*_comparsions isn't something
12690         the code is prepared to handle.
12691
12692 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
12693
12694         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
12695         mode check.
12696         (ext_QIreg_nomode_operands): Remove.
12697         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
12698         (*andsi_1): Ditto.
12699         (*andhi_1): Ditto.
12700
12701 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
12702
12703         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
12704
12705 2011-04-26  Richard Guenther  <rguenther@suse.de>
12706
12707         * c-typeck.c (build_unary_op): Do not expand array-refs via
12708         pointer arithmetic.  Only adjust qualifiers for function types.
12709
12710 2011-04-26  Richard Guenther  <rguenther@suse.de>
12711
12712         PR middle-end/48694
12713         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
12714         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
12715         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
12716         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
12717
12718 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
12719
12720         * doc/extend.texi: Document __underlying_type.
12721
12722 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
12723
12724         * config/rs6000/titan.md (automata_option "progress"): Remove.
12725
12726 2011-04-25  Jeff Law  <law@redhat.com>
12727
12728         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
12729
12730 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
12731
12732         * system.h (ENUM_BITFIELD): Remove.
12733
12734 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
12735             Eric Botcazou  <ebotcazou@adacore.com>
12736
12737         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
12738         for STORE_FLAG_VALUE==-1 case.
12739
12740 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
12741
12742         PR target/43804
12743         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
12744         LEGITIMATE_PIC_OPERAND_P.
12745
12746 2011-04-24  Jan Hubicka  <jh@suse.cz>
12747
12748         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
12749         WPA hack.
12750         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
12751         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
12752         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
12753         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
12754         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
12755         Sanity check predicate length.
12756         (remap_predicate): Likewise; sanity check jump functions.
12757         (inline_read_section, inline_write_summary): Sanity check
12758         predicate length.
12759
12760 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
12761
12762         PR other/48748
12763         * doc/extend.texi (Type Traits): Document __is_standard_layout,
12764         __is_literal_type, and __is_trivial; update throughout about
12765         possibly cv-qualified void types.
12766
12767 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
12768
12769         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
12770         testsuite and make it version agnostic.
12771
12772 2011-04-22  Jan Hubicka  <jh@suse.cz>
12773
12774         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
12775
12776 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
12777
12778         PR c/48685
12779         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
12780         to VOID_TYPE even around MODIFY_EXPR.
12781
12782 2011-04-22  Mike Stump  <mikestump@comcast.net>
12783
12784         * gensupport.c (read_md_rtx): Fix typo in comment.
12785         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
12786         comment.
12787
12788 2011-04-22  Jan Hubicka  <jh@suse.cz>
12789
12790         * gengtype.c (open_base_files): Add ipa-inline.h include.
12791         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
12792         ipa-prop.c; update all uses.
12793         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
12794         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
12795         merge summary of inlined function into former caller.
12796         * ipa-inline.c (max_benefit): Remove.
12797         (edge_badness): Compensate for removal of benefits.
12798         (update_caller_keys): Use
12799         reset_node_growth_cache/reset_edge_growth_cache.
12800         (update_callee_keys): Likewise.
12801         (update_all_callee_keys): Likewise.
12802         (inline_small_functions): Do not collect max_benefit; do not reset
12803         estimated_growth; call free_growth_caches and initialize_growth_caches.
12804         * ipa-inline.h (struct condition, type clause_t, struct predicate,
12805         struct size_time_entry): New structures.
12806         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
12807         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
12808         and estimated_growth.
12809         (edge_growth_cache_entry): New structure.
12810         (node_growth_cache, edge_growth_cache): New global vars.
12811         (estimate_growth): Turn into inline.
12812         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
12813         initialize_growth_caches, free_growth_caches): Declare.
12814         (estimate_edge_growth): Rewrite.
12815         (estimate_edge_time): Implement as inline cache lookup.
12816         (reset_node_growth_cache, reset_edge_growth_cache): New inline
12817         functions.
12818         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
12819         (NUM_CONDITIONS): New constant.
12820         (predicate_conditions): New enum.
12821         (IS_NOT_CONSTANT): New constant.
12822         (edge_removal_hook_holder): New var.
12823         (node_growth_cache, edge_growth_cache): New global vars.
12824         (true_predicate, single_cond_predicate, false_predicate,
12825         not_inlined_predicate, add_condition, add_clause, and_predicates,
12826         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
12827         dump_clause, dump_predicate, account_size_time,
12828         evaulate_conditions_for_edge): New functions.
12829         (inline_summary_alloc): Move to heap.
12830         (inline_node_removal_hook): Clear condition and entry vectors.
12831         (inline_edge_removal_hook): New function.
12832         (initialize_growth_caches, free_growth_caches): New function.
12833         (dump_inline_summary): Update.
12834         (edge_execution_predicate): New function.
12835         (will_be_nonconstant_predicate): New function.
12836         (estimate_function_body_sizes): Compute BB and constantness predicates.
12837         (compute_inline_parameters): Do not clear estimated_growth.
12838         (estimate_edge_size_and_time): New function.
12839         (estimate_calls_size_and_time): New function.
12840         (estimate_callee_size_and_time): New function.
12841         (remap_predicate): New function.
12842         (inline_merge_summary): New function.
12843         (do_estimate_edge_time): New function based on...
12844         (estimate_edge_time): ... this one.
12845         (do_estimate_edge_growth): New function.
12846         (do_estimate_growth): New function based on....
12847         (estimate_growth): ... this one.
12848         (inline_analyze_function): Analyze after deciding on jump functions.
12849         (inline_read_section): New function.
12850         (inline_read_summary): Use it.
12851         (inline_write_summary): Write all the new data.
12852         * ipa-prop.c (ipa_get_param_decl_index): Export.
12853         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
12854         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
12855         Declare.
12856         (ipa_get_lattice): Move here from ipa-cp.c
12857         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
12858         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
12859         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
12860         cgraph_edge_inlinable_p): Remove.
12861         * cgraphunit.c: Include ipainline.h
12862         (cgraph_process_new_functions): Update call of
12863         compute_inline_parameters.
12864
12865 2011-04-22  Richard Guenther  <rguenther@suse.de>
12866
12867         * tree.c (build_int_cst): Properly create canonicalized integer
12868         constants.
12869         (build_int_cst_type): Remove scary comments.
12870
12871 2011-04-22  Xinliang David Li  <davidxl@google.com>
12872
12873         * toplev.c (process_options): Enable -Werror=coverage-mismatch
12874         by default when -Wno-error is not specified.
12875         * opts-global.c (decode_options): Remove call to
12876         control_warning_options.
12877
12878 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
12879
12880         PR tree-optimization/48717
12881         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
12882         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
12883
12884 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
12885
12886         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
12887         definition where used.
12888
12889 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
12890
12891         PR c/48716
12892         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
12893         TREE_STATIC variables declared inside of some OpenMP construct.
12894
12895 2011-04-22  Martin Jambor  <mjambor@suse.cz>
12896
12897         PR middle-end/48585
12898         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
12899
12900 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
12901
12902         PR c/36750
12903         * c-typeck.c (pop_init_level): Do not warn about initializing
12904         with ` = {0}'.
12905
12906 2011-04-22  Alan Modra  <amodra@gmail.com>
12907
12908         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
12909         when returning call_cookie.
12910         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
12911         pointers, to functions with no more vector args than the current
12912         function, and some non-local calls for ABI_V4.
12913         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
12914         sibcall_nonlocal_aix64): Combine to ..
12915         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
12916         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
12917         (sibcall_value_nonlocal_aix<mode>): ..likewise.
12918         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
12919         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
12920         operand.
12921         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
12922         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
12923         sibcall_value_symbolic_64): Delete.
12924
12925 2011-04-21  Xinliang David Li  <davidxl@google.com>
12926
12927         * cgraph.h: Remove pid.
12928         * cgraph.c: Remove pid.
12929         * value-prof.c (init_node_map): New function.
12930         (del_node_map): New function.
12931         (find_func_by_funcdef_no): New function.
12932         (gimple_ic_transform): Call new function.
12933         * cgraphunit.c (cgraph_finalize_function): Remove pid.
12934         * function.c (get_last_funcdef_no): New function.
12935         * function.h (get_last_funcdef_no): New function.
12936         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
12937         to libgcov function.
12938         (tree-profiling): Call node map init and delete function.
12939
12940 2011-04-21  Ian Lance Taylor  <iant@google.com>
12941
12942         * godump.c (go_format_type): Use exported Go name for anonymous
12943         field name.
12944
12945 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12946
12947         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
12948         Call builtin_function_type_list instead of builtin_function_type.
12949         (UNARY, BINARY, TRINARY, QUAD): Likewise.
12950
12951 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12952
12953         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
12954         build_function_type_list instead of build_function_type.
12955         Delete variable `endlink'.
12956
12957 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12958
12959         * config/s390/s390.c (s390_init_builtins): Call
12960         build_function_type_list instead of build_function_type.
12961
12962 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12963
12964         * config/ia64/ia64.c (ia64_init_builtins): Call
12965         build_function_type_list instead of builtin_function_type.
12966
12967 2011-04-21  Easwaran Raman  <eraman@google.com>
12968
12969         * cfgexpand.c (stack_var): Remove OFFSET...
12970         (add_stack_var): ...and its reference here...
12971         (expand_stack_vars): ...and here.
12972         (stack_var_cmp): Sort by descending order of size.
12973         (partition_stack_vars): Change heuristic.
12974         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
12975         (dump_stack_var_partition): Add newline after each partition.
12976
12977 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
12978             Jeff Law  <law@redhat.com>
12979
12980         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
12981         * gengtype.c (matching_file_name_substitute): Likewise.
12982
12983 2011-04-21  Richard Guenther  <rguenther@suse.de>
12984
12985         PR lto/48703
12986         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
12987
12988 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
12989
12990         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
12991
12992 2011-04-21  Richard Guenther  <rguenther@suse.de>
12993
12994         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
12995         file name.
12996
12997 2011-04-21  Richard Guenther  <rguenther@suse.de>
12998
12999         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
13000         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
13001         Use DECL_P, not SSA_VAR_P.
13002         (ptr_derefs_may_alias_p): Likewise.
13003         (ptr_deref_may_alias_ref_p_1): Likewise.
13004         (decl_refs_may_alias_p): Likewise.
13005         (refs_may_alias_p_1): Likewise.
13006         (ref_maybe_used_by_call_p_1): Likewise.
13007         (call_may_clobber_ref_p_1): Likewise.
13008         (indirect_ref_may_alias_decl_p): Assume indirect refrences
13009         are either MEM_REF or TARGET_MEM_REF.
13010         (indirect_refs_may_alias_p): Likewise.
13011         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
13012         for MEM_EXPR of indirect calls.
13013
13014 2011-04-21  Tristan Gingold  <gingold@adacore.com>
13015
13016         * vmsdbgout.c (write_srccorr): Compute file length from the string.
13017         (dst_file_info_struct): Remove flen field.
13018         (lookup_filename): Remove code that set flen field.
13019
13020 2011-04-21  Tristan Gingold  <gingold@adacore.com>
13021
13022         * config/ia64/ia64.c (ia64_start_function): Add a guard.
13023
13024 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
13025
13026         PR target/48708
13027         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
13028         vec_extract and vec_concat for non-SSE4_1 targets.
13029
13030 2011-04-21  Richard Guenther  <rguenther@suse.de>
13031
13032         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
13033         return statements.
13034
13035 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
13036
13037         * config/i386/cygming.h (union tree_node, TREE): Don't define or
13038         undefine.
13039         (FILE): Don't undefine.
13040
13041 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
13042
13043         * config/alpha/alpha.c (struct machine_function): Use rtx, not
13044         struct rtx_def *.
13045         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
13046         struct rtx_def *.
13047         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
13048         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
13049         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
13050         rtx_def *.
13051         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
13052         definitions where used.
13053         * config/microblaze/microblaze.h (struct microblaze_args): Use
13054         rtx, not struct rtx_def *.
13055         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
13056         rtx_def *.
13057         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
13058         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
13059         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
13060         not struct rtx_def *.
13061         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
13062         struct rtx_def *.
13063         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
13064         rtx_def *.
13065         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
13066
13067 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
13068
13069         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
13070         operand_equal_p to compare DR_BASE_ADDRESSes.
13071         (vect_check_interleaving): Likewise.
13072
13073 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
13074
13075         PR target/46329
13076         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
13077         for all Neon struct constants.
13078
13079 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
13080
13081         * target.def (legitimate_constant_p): New hook.
13082         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
13083         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
13084         * doc/tm.texi: Regenerate.
13085         * hooks.h (hook_bool_mode_rtx_true): Declare.
13086         * hooks.c (hook_bool_mode_rtx_true): Define.
13087         * system.h (LEGITIMATE_CONSTANT_P): Poison.
13088         * calls.c (precompute_register_parameters): Replace uses of
13089         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
13090         (emit_library_call_value_1): Likewise.
13091         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
13092         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
13093         * ira-costs.c (scan_one_insn): Likewise.
13094         * recog.c (general_operand, immediate_operand): Likewise.
13095         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
13096         * reload1.c (init_eliminable_invariants): Likewise.
13097
13098         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
13099         mode argument.
13100         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
13101         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
13102         argument.
13103         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13104         * config/alpha/predicates.md (input_operand): Update call to
13105         alpha_legitimate_constant_p.
13106
13107         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
13108         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
13109         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
13110         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13111         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
13112         (arm_legitimate_constant_p): New functions.
13113         (arm_cannot_force_const_mem): Make static.
13114
13115         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
13116
13117         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
13118         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
13119         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
13120         instead of bfin_legitimate_constant_p.
13121         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
13122         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13123
13124         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
13125
13126         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
13127
13128         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
13129         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
13130         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13131         (frv_legitimate_constant_p): Make static.  Add a mode argument.
13132
13133         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
13134         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
13135         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
13136
13137         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
13138         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
13139         * config/i386/i386.c (legitimate_constant_p): Rename to...
13140         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
13141         argument.
13142         (ix86_cannot_force_const_mem): Update accordingly.
13143         (ix86_legitimate_address_p): Likewise.
13144         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13145         * config/i386/i386.md: Update commentary.
13146
13147         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
13148         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
13149         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13150         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
13151
13152         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
13153
13154         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
13155         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
13156         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13157         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
13158
13159         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
13160         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
13161         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
13162
13163         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
13164         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13165         (m32r_legitimate_constant_p): New function.
13166
13167         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
13168         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
13169         LEGITIMATE_CONSTANT_P.
13170         (LEGITIMATE_CONSTANT_P): Delete.
13171         * config/m68k/m68k.c (m68k_expand_prologue): Call
13172         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
13173         (m68k_legitimate_constant_p): New function.
13174         * config/m68k/m68k.md: Update comments.
13175
13176         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
13177         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13178         (mcore_legitimate_constant_p): New function.
13179
13180         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
13181         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
13182         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
13183         Add a mode argument.
13184         (mep_legitimate_address): Update accordingly.
13185         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13186
13187         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
13188         Delete.
13189         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
13190         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
13191         static.  Check OP's mode for VOIDmode.
13192         (microblaze_legitimate_constant_p): New function.
13193         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13194
13195         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
13196         * config/mips/mips.c (mips_legitimate_constant_p): New function.
13197         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
13198         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13199         * config/mips/predicates.md: Update comments.
13200
13201         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
13202         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
13203         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13204         (mmix_legitimate_constant_p): Make static, return a bool, and take
13205         a mode argument.
13206         (mmix_print_operand_address): Update accordingly.
13207
13208         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
13209         Delete.
13210         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
13211         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
13212         static.  Add a mode argument.
13213         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13214
13215         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
13216
13217         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
13218         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13219         (pa_legitimate_constant_p): New function.
13220
13221         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
13222
13223         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
13224         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13225         (pdp11_legitimate_constant_p): New function.
13226
13227         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
13228         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13229         (rs6000_legitimate_constant_p): New function.
13230
13231         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
13232         (rx_legitimate_constant_p): ...this.
13233         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
13234         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
13235         (rx_legitimate_constant_p): ...this.
13236         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13237         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
13238
13239         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
13240         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
13241         * config/s390/s390.c (legitimate_constant_p): Rename to...
13242         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
13243         and add a mode argument.
13244         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13245
13246         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
13247
13248         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
13249         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13250         (sh_legitimate_constant_p): New function.
13251
13252         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
13253         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
13254         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13255         (legitimate_constant_p): Rename to...
13256         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
13257         argument.
13258         (constant_address_p): Update accordingly.
13259
13260         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
13261         argument and return a bool.
13262         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
13263         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13264         (spu_legitimate_constant_p): Add a mode argument and return a bool.
13265         (spu_rtx_costs): Update accordingly.
13266         * config/spu/predicates.md (vec_imm_operand): Likewise.
13267
13268         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
13269
13270         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
13271         * config/v850/v850.c (v850_legitimate_constant_p): New function.
13272         (TARGET_LEGITIMATE_CONSTANT_P): Define.
13273
13274         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
13275         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
13276         * config/vax/vax.c (legitimate_constant_p): Likewise.
13277
13278         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
13279         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13280         (xtensa_legitimate_constant_p): New function.
13281
13282 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
13283
13284         * target.def (cannot_force_const_mem): Add a mode argument.
13285         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
13286         * doc/tm.texi: Regenerate.
13287         * hooks.h (hook_bool_mode_rtx_false): Declare.
13288         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
13289         (hook_bool_mode_const_rtx_true): Likewise.
13290         (hook_bool_mode_rtx_false): New function.
13291         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
13292         to be non-VOID.  Update call to cannot_force_const_mem.
13293         (find_reloads): Update accordingly.
13294         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
13295         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
13296         argument.
13297         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
13298         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
13299         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
13300         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
13301         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
13302         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
13303         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
13304         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
13305         (m68k_cannot_force_const_mem): ...this new function.
13306         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
13307         argument.
13308         (mips_const_insns, mips_legitimize_const_move): Update calls.
13309         (mips_secondary_reload_class): Likewise.
13310         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
13311         (pa_cannot_force_const_mem): ...this new function.
13312         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
13313         (rs6000_cannot_force_const_mem): ...this new function.
13314         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
13315         argument.
13316         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
13317         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
13318         to...
13319         (xtensa_cannot_force_const_mem): ...this new function.
13320
13321 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
13322
13323         * config/mips/mips.c (mips16_build_function_stub): Call
13324         build_function_type_list instead of build_function_type.
13325         (mips16_build_call_stub): Likewise.
13326
13327 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
13328
13329         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
13330         instead of build_function_type.
13331
13332 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
13333
13334         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
13335         instead of build_function_type.
13336
13337 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
13338
13339         PR target/48678
13340         * config/i386/i386.md (insv): Change operand 0 constraint to
13341         "register_operand".  Change operand 1 and 2 constraint to
13342         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
13343         * config/i386/sse.md (sse4_1_pinsrb): Export.
13344         (sse2_pinsrw): Ditto.
13345         (sse4_1_pinsrd): Ditto.
13346         (sse4_1_pinsrq): Ditto.
13347         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
13348         * config/i386/i386.c (ix86_expand_pinsr): New.
13349
13350 2011-04-20  Easwaran Raman  <eraman@google.com>
13351
13352         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
13353         containing union type only with -fstrict-aliasing.
13354
13355 2011-04-20  Jim Meyering  <meyering@redhat.com>
13356
13357         Remove useless if-before-free tests.
13358         * calls.c (expand_call, save_area): Likewise.
13359         * cfgcleanup.c (try_forward_edges): Likewise.
13360         * collect2.c (collect_execute): Likewise.
13361         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
13362         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
13363         * coverage.c (coverage_checksum_string): Likewise.
13364         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
13365         * cselib.c (cselib_init): Likewise.
13366         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
13367         (df_set_clean_cfg): Likewise.
13368         * function.c (free_after_compilation): Likewise.
13369         * gcc.c (do_spec_1, main): Likewise.
13370         * gcov.c (create_file_names): Likewise.
13371         * gensupport.c (identify_predicable_attribute): Likewise.
13372         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
13373         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
13374         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
13375         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
13376         * ipa-pure-const.c (local_pure_const): Likewise.
13377         * ipa-reference.c (propagate): Likewise.
13378         * ira-costs.c (free_ira_costs): Likewise.
13379         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
13380         * matrix-reorg.c (mat_free): Likewise.
13381         * prefix.c (get_key_value): Likewise.
13382         * profile.c (compute_value_histograms): Likewise.
13383         * reload1.c (free_reg_equiv): Likewise.
13384         * sched-deps.c (free_deps): Likewise.
13385         * sel-sched-ir.c (fence_clear): Likewise.
13386         * sese.c (set_rename, if_region_set_false_region): Likewise.
13387         * tree-data-ref.c (free_rdg): Likewise.
13388         * tree-eh.c (lower_try_finally): Likewise.
13389         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
13390         * tree-ssa-live.c (delete_var_map): Likewise.
13391         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
13392         * tree-ssa-pre.c (phi_trans_add): Likewise.
13393
13394 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
13395
13396         PR tree-optimization/48611
13397         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
13398         beyond ERT_MUST_NOT_THROW region.
13399
13400 2011-04-20  Catherine Moore  <clm@codesourcery.com>
13401
13402         * config/mips/mips.opt (mfix-24k): New.
13403         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
13404         * config/mips/mips.md (length): Increase by 4 for stores if
13405         fixing 24K errata.
13406         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
13407         all noreorder if fixing 24K errata.
13408         * doc/invoke.texi: Document mfix-24k.
13409
13410 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
13411
13412         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
13413         quad-word modes, reduce to 9-bit index range when above 1016 limit.
13414
13415 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
13416
13417         * config/arm/arm.c (arm_gen_constant): Move movw support ....
13418         (const_ok_for_op): ... to here.
13419
13420 2011-04-20  Kai Tietz  <ktietz@redhat.com>
13421
13422         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
13423         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
13424
13425 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
13426
13427         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
13428
13429 2011-04-20  Richard Guenther  <rguenther@suse.de>
13430
13431         PR tree-optimization/47892
13432         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
13433         are if-convertible.
13434
13435 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
13436
13437         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
13438
13439 2011-04-20  Tristan Gingold  <gingold@adacore.com>
13440
13441         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
13442
13443 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
13444
13445         PR target/18145
13446
13447         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
13448         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
13449         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
13450         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
13451         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
13452
13453         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
13454         New prototype.
13455
13456         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
13457         (avr_asm_named_section, avr_asm_output_aligned_common,
13458         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
13459         New functions to update...
13460         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
13461         (avr_asm_init_sections): Overwrite section callbacks for
13462         data_section, bss_section.
13463         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
13464         from here to...
13465         (avr_file_end): ...here.
13466
13467 2011-04-20  Richard Guenther  <rguenther@suse.de>
13468
13469         PR middle-end/48695
13470         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
13471         objects and types here.  Adjust for their offset before comparing.
13472
13473 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
13474
13475         * tree-vect-stmts.c (vectorizable_store): Only chain one related
13476         statement per copy.
13477
13478 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
13479
13480         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
13481         (GIMPLE_H): Include $(INTERNAL_FN_H).
13482         (OBJS-common): Add internal-fn.o.
13483         (internal-fn.o): New rule.
13484         * internal-fn.def: New file.
13485         * internal-fn.h: Likewise.
13486         * internal-fn.c: Likewise.
13487         * gimple.h: Include internal-fn.h.
13488         (GF_CALL_INTERNAL): New gf_mask.
13489         (gimple_statement_call): Put fntype into a union with a new
13490         internal_fn field.
13491         (gimple_build_call_internal): Declare.
13492         (gimple_build_call_internal_vec): Likewise.
13493         (gimple_call_same_target_p): Likewise.
13494         (gimple_call_internal_p): New function.
13495         (gimple_call_internal_fn): Likewise.
13496         (gimple_call_fntype): Return null for internal calls.
13497         (gimple_call_set_fntype): Assert that the function is not internal.
13498         (gimple_call_set_fn): Likewise.
13499         (gimple_call_set_fndecl): Likewise.
13500         (gimple_call_set_internal_fn): New function.
13501         (gimple_call_addr_fndecl): Handle null functions.
13502         (gimple_call_return_type): Likewise null types.
13503         * gimple.c (gimple_build_call_internal_1): New function.
13504         (gimple_build_call_internal): Likewise.
13505         (gimple_build_call_internal_vec): Likewise.
13506         (gimple_call_same_target_p): Likewise.
13507         (gimple_call_flags): Handle calls to internal functions.
13508         (gimple_call_fnspec): New function.
13509         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
13510         (gimple_has_side_effects): Handle null functions.
13511         (gimple_rhs_has_side_effects): Likewise.
13512         (gimple_call_copy_skip_args): Handle calls to internal functions.
13513         * cfgexpand.c (expand_call_stmt): Likewise.
13514         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
13515         * gimple-fold.c (gimple_fold_call): Handle null functions.
13516         (gimple_fold_stmt_to_constant_1): Don't fold
13517         calls to internal functions.
13518         * gimple-low.c (gimple_check_call_args): Handle calls to internal
13519         functions.
13520         * gimple-pretty-print.c (dump_gimple_call): Likewise.
13521         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
13522         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
13523         (do_warn_unused_result): Likewise.
13524         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
13525         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
13526         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
13527         the target of a call.
13528         (initialize_hash_element): Update accordingly.
13529         (hashable_expr_equal_p): Use gimple_call_same_target_p.
13530         (iterative_hash_hashable_expr): Handle calls to internal functions.
13531         (print_expr_hash_elt): Likewise.
13532         * tree-ssa-pre.c (can_value_number_call): Likewise.
13533         (eliminate): Handle null functions.
13534         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
13535         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
13536         (find_func_aliases): Likewise.
13537         * value-prof.c (gimple_ic_transform): Likewise.
13538         (gimple_indirect_call_to_profile): Likewise.
13539         * lto-streamer-in.c (input_gimple_stmt): Likewise.
13540         * lto-streamer-out.c (output_gimple_stmt): Likewise.
13541
13542 2011-04-19  Jan Hubicka  <jh@suse.cz>
13543
13544         * ipa-inline-transform.c (save_inline_function_body): Add comments.
13545         * ipa-inline.c (inline_small_functions): Compute summaries first,
13546         populate heap later.
13547
13548 2011-04-19  Jan Hubicka  <jh@suse.cz>
13549
13550         * cgraph.h (save_inline_function_body): Remove.
13551         * ipa-inline-transform.c: New file, broke out of...
13552         * ipa-inline.c: ... this one; Update toplevel comment.
13553         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
13554         make global.
13555         (update_noncloned_frequencies): Move to ipa-inline-transform.c
13556         (cgraph_mark_inline_edge): Rename to inline_call; move to
13557         ipa-inline-transform.c.
13558         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
13559         move to ipa-inline-transform.c
13560         (recursive_inlining, inline_small_functions, flatten_function,
13561         ipa_inline, inline_always_inline_functions,
13562         early_inline_small_functions): Update.
13563         (inline_transform): Move to ipa-inline-transform.c.
13564         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
13565         Declare.
13566         * Makefile.in (ipa-inline-transform.o): New file.
13567         * cgraphunit.c (save_inline_function_body): Move to
13568         ipa-inline-transform.c
13569
13570 2011-04-19  DJ Delorie  <dj@redhat.com>
13571
13572         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
13573         registers if we already know there aren't any.
13574         (m32c_emit_epilogue): Don't emit a barrier here.
13575         (m32c_emit_eh_epilogue): Likewise.
13576         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
13577         operands at expand time.
13578         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
13579         int" wchar type.
13580         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
13581         duplicates.  Provide aliases instead.
13582         * config/m32c/prologue.md (eh_return): Emit a barrier here.
13583         (eh_epilogue): Add a "(return)" here as a hint to other parts of
13584         the compiler.
13585
13586 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
13587
13588         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
13589         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
13590         (general_or_i64_p, sparc_register_move_cost): New function.
13591
13592 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13593
13594         * doc/install.texi (Configuration, --enable-threads): Remove mach.
13595         Add lynx, mipssde.  Sort table.
13596
13597 2011-04-19  Xinliang David Li  <davidxl@google.com>
13598
13599         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
13600         not negative.
13601
13602 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
13603
13604         PR target/48678
13605         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
13606         is a SUBREG with non-MODE_INT mode inside of it.
13607
13608 2011-04-19  Martin Jambor  <mjambor@suse.cz>
13609
13610         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
13611         also according to actual contants.
13612         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
13613         (gimple_fold_call): Use it.
13614         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
13615
13616 2011-04-19  Martin Jambor  <mjambor@suse.cz>
13617
13618         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
13619         non-pointer assignments.
13620
13621 2011-04-19  Martin Jambor  <mjambor@suse.cz>
13622
13623         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
13624         account anc_offset and otr_type from the indirect edge info.
13625         * ipa-prop.c (get_ancestor_addr_info): New function.
13626         (compute_complex_ancestor_jump_func): Assignment analysis moved to
13627         get_ancestor_addr_info, call it.
13628         (ipa_note_param_call): Do not initialize information about polymorphic
13629         calls, return the indirect call graph edge.  Remove the last
13630         parameter, adjust all callers.
13631         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
13632         parameters.  Initialize polymorphic information in the indirect edge.
13633
13634 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
13635
13636         PR lto/48148
13637         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
13638         the types if they have different enumeration identifiers.
13639
13640 2011-04-19  Jan Hubicka  <jh@suse.cz>
13641
13642         * cgraph.h (cgraph_optimize_for_size_p): Declare.
13643         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
13644         * predict.c (cgraph_optimize_for_size_p): Break out from ...
13645         (optimize_function_for_size_p) ... here.
13646
13647 2011-04-19  Richard Guenther  <rguenther@suse.de>
13648
13649         PR lto/48207
13650         * tree.c (free_lang_data): Do not reset the decl-assembler-name
13651         langhook.
13652
13653 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
13654
13655         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
13656         if DECL_NO_INLINE_WARNING_P is set on the function.
13657
13658 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
13659
13660         PR fortran/47976
13661         * reload1.c (inc_for_reload): Return void. All callers changed.
13662         (emit_input_reload_insns): Don't try to delete previous output
13663         reloads to a register, or record spill_reg_store for autoincs.
13664
13665 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
13666
13667         * gengtype.h: Updated copyright year.
13668         (struct input_file_st): Add inpisplugin field.
13669         (type_fileloc): New function.
13670         * gengtype.c
13671         (write_typed_struct_alloc_def): Add gcc_assert.
13672         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
13673         (write_typed_alloc_defns): Don't output for plugin files.
13674         (input_file_by_name): Clear inpisplugin field.
13675         (main): Set inpisplugin field for plugin files.
13676
13677 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
13678
13679         * gengtype-state.c (string_eq): New.
13680         (read_state): Use string_eq instead of strcmp when creating the
13681         state_ident_tab.
13682
13683 2011-04-19  Wei Guozhi  <carrot@google.com>
13684
13685         PR target/47855
13686         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
13687         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
13688         linkage.
13689         * config/arm/constraints.md (Uu): New constraint.
13690         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
13691
13692 2011-04-19  Tristan Gingold  <gingold@adacore.com>
13693
13694         * config.gcc (-*-*-*vms): Added.
13695         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
13696         definitions moved.
13697         * config/vms/vms-ld.c: New file.
13698         * config/vms/vms-ar.c: New file.
13699         * config/vms/t-vmsnative: New file.
13700
13701 2011-04-18  Xinliang David Li  <davidxl@google.com>
13702
13703         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
13704
13705 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
13706
13707         PR middle-end/48661
13708         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
13709         if TREE_TYPE (v) is non-NULL.
13710
13711         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
13712         gimple_get_virt_mehtod_for_binfo.
13713         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
13714         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
13715         callers.
13716         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
13717
13718 2011-04-18  Michael Matz  <matz@suse.de>
13719             Steve Ellcey  <sje@cup.hp.com>
13720
13721         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
13722         use its mode as source mode if it isn't VOIDmode.
13723
13724 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
13725
13726         * doc/passes.texi: Fill crossref nodes.
13727
13728 2011-04-18  Jim Meyering  <meyering@redhat.com>
13729
13730         Fix doubled-word typos in comments and strings
13731         * config/alpha/vms-unwind.h: s/for for/for/
13732         * config/arm/unwind-arm.h: Likewise.
13733         * config/microblaze/microblaze.c: Likewise.
13734         * config/sh/constraints.md: s/in in/in/
13735         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
13736
13737 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
13738
13739         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
13740         (AVX_FLOAT_MODE_P): Ditto.
13741         (AVX128_VEC_FLOAT_MODE_P): Ditto.
13742         (AVX256_VEC_FLOAT_MODE_P): Ditto.
13743         (AVX_VEC_FLOAT_MODE_P): Ditto.
13744         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
13745         (UNSPEC_MASKSTORE): Ditto.
13746         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
13747         Merge from <sse>_movmsk<ssemodesuffix> and
13748         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
13749         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
13750         iterator.
13751         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
13752         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
13753         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
13754
13755 2011-04-18  Jan Hubicka  <jh@suse.cz>
13756
13757         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
13758
13759         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
13760         (want_inline_function_called_once_p): Break out the logic from
13761         ipa_inline.
13762         (edge_badness): Ensure that profile is not misupdated.
13763         (lookup_recursive_calls): Prioritize by call frequencies.
13764         (inline_small_functions): Move program size estimates here;
13765         actually process whole queue even when unit growth has been
13766         met. (to properly compute inline_failed reasons and for the
13767         case unit size decrease.) Revisit comments on recursive inlining.
13768         (ipa_inline): Remove unit summary code; first inline hot calls
13769         of functions called once, cold calls next.
13770         (order, nnodes): Remove unused variables.
13771         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
13772         (GTFILES): Remove ipa-inline.c
13773         * sel-sched.c (fill_insns): Silence uninitialized var warning.
13774
13775 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
13776
13777         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
13778
13779 2011-04-18  Jie Zhang  <jie@codesourcery.com>
13780             Richard Earnshaw  <rearnsha@arm.com>
13781
13782         * arm.c (neon_builtin_type_bits): Remove.
13783         (typedef enum neon_builtin_mode): New.
13784         (T_MAX): Don't define.
13785         (typedef enum neon_builtin_datum): Remove bits, codes[],
13786         num_vars and base_fcode.  Add mode, code and fcode.
13787         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
13788         VAR10): Change accordingly.
13789         (neon_builtin_data[]): Change accordingly
13790         (arm_init_neon_builtins): Change accordingly.
13791         (neon_builtin_compare): Remove.
13792         (locate_neon_builtin_icode): Remove.
13793         (arm_expand_neon_builtin): Change accordingly.
13794
13795         * arm.h (enum arm_builtins): Move to ...
13796         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
13797
13798         * arm.c (arm_builtin_decl): Declare.
13799         (TARGET_BUILTIN_DECL): Define.
13800         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
13801         (arm_builtin_decls[]): New.
13802         (arm_init_neon_builtins): Store builtin declarations in
13803         arm_builtin_decls[].
13804         (arm_init_tls_builtins): Likewise.
13805         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
13806         (arm_builtin_decl): New.
13807
13808 2011-04-18  Richard Guenther  <rguenther@suse.de>
13809
13810         * tree.c (upper_bound_in_type): Build properly canonicalized
13811         INTEGER_CSTs.
13812         (lower_bound_in_type): Likewise.
13813
13814 2011-04-18  Richard Guenther  <rguenther@suse.de>
13815
13816         * gimple.h (gimple_call_addr_fndecl): New function.
13817         (gimple_call_fndecl): Use it.
13818         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
13819         for direct calls.
13820         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
13821         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
13822
13823 2011-04-18  Richard Guenther  <rguenther@suse.de>
13824
13825         PR middle-end/48650
13826         * tree.c (build_string): STRING_CST is now derived from tree_typed.
13827
13828 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
13829
13830         PR lto/48492
13831         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
13832         DECL_IN_CONSTANT_POOL without RTL.
13833
13834 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
13835             Ira Rosen  <ira.rosen@linaro.org>
13836
13837         PR target/48252
13838         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
13839         to match neon_vzip/vuzp/vtrn_internal.
13840         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
13841         outputs explicitly dependent on both inputs.
13842         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
13843
13844 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
13845
13846         PR tree-optimization/48616
13847         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
13848         whether the shift is by scalar or vector based on whether all SLP
13849         scalar stmts have the same rhs.
13850
13851 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
13852
13853         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
13854         memory operands.
13855
13856 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
13857
13858         PR target/43700
13859         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
13860         registers.
13861
13862 2011-04-17  Jan Hubicka  <jh@suse.cz>
13863
13864         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
13865         * cgrpahunit.c (cgraph_finalize_function): Do not set
13866         finalized_by_frontend.
13867         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13868         finalized_by_frontend.
13869
13870 2011-04-17  Jan Hubicka  <jh@suse.cz>
13871
13872         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
13873         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
13874         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
13875         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
13876         method.
13877         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
13878         gimple-fold.c
13879         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
13880
13881 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
13882
13883         PR lto/48538
13884         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
13885         is non-null before accessing it.
13886         (input_cgraph): Remove trailing spaces.
13887
13888 2011-04-17  Revital Eres  <revital.eres@linaro.org>
13889
13890         * params.def (sms-min-sc): New param flag.
13891         * modulo-sched.c (sms_schedule): Use it.
13892         * doc/invoke.texi (sms-min-sc): Document it.
13893
13894 2011-04-17  Jan Hubicka  <jh@suse.cz>
13895
13896         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
13897         present, also set gimple_call_set_cannot_inline.
13898         * ipa-inline.c: Update toplevel comment.
13899         (MAX_TIME): Remove.
13900         (cgraph_clone_inlined_nodes): Fix linebreaks.
13901         (cgraph_check_inline_limits): Restructure to ...
13902         (caller_growth_limits): ... this one; be more tolerant
13903         on growth in nested inline chains; add explanatory comment;
13904         fix stack accounting thinko introduced by previous patch.
13905         (cgraph_default_inline_p): Remove.
13906         (report_inline_failed_reason): New function.
13907         (can_inline_edge_p): New function.
13908         (can_early_inline_edge_p): New function.
13909         (leaf_node_p): Move upwards in file.
13910         (want_early_inline_function_p): New function.
13911         (want_inline_small_function_p): New function.
13912         (want_inline_self_recursive_call_p): New function.
13913         (cgraph_edge_badness): Rename to ...
13914         (edge_badness) ... this one; fix linebreaks.
13915         (update_edge_key): Update call of edge_baddness; add
13916         detailed dump about queue updates.
13917         (update_caller_keys): Use can_inline_edge_p and
13918         want_inline_small_function_p.
13919         (cgraph_decide_recursive_inlining): Rename to...
13920         (recursive_inlining): Use can_inline_edge_p and
13921         want_inline_self_recursive_call_p; simplify and remove no longer
13922         valid FIXME.
13923         (cgraph_set_inline_failed): Remove.
13924         (add_new_edges_to_heap): Use can_inline_edge_p and
13925         want_inline_small_function_p.
13926         (cgraph_decide_inlining_of_small_functions): Rename to ...
13927         (inline_small_functions): ... this one; cleanup; use
13928         can/want predicates; cleanup debug ouput; work edges till fibheap
13929         is exhausted and do not stop once unit growth is reached; remove
13930         later loop processing remaining edges.
13931         (cgraph_flatten): Rename to ...
13932         (flatten_function): ... this one; use can_inline_edge_p
13933         and can_early_inline_edge_p predicates.
13934         (cgraph_decide_inlining): Rename to ...
13935         (ipa_inline): ... this one; remove unreachable nodes before
13936         inlining functions called once; simplify the pass.
13937         (cgraph_perform_always_inlining): Rename to ...
13938         (inline_always_inline_functions): ... this one; use
13939         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
13940         (cgraph_decide_inlining_incrementally): Rename to ...
13941         (early_inline_small_functions): ... this one; simplify
13942         using new predicates; cleanup; make dumps prettier.
13943         (cgraph_early_inlining): Rename to ...
13944         (early_inliner): newer inline regular functions into always-inlines;
13945         fix updating of call stmt summaries.
13946         (pass_early_inline): Update for new names.
13947         (inline_transform): Fix formating.
13948         (gate_cgraph_decide_inlining): Rename to ...
13949         (pass_ipa_inline): ... this one.
13950         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
13951         * ipa-inline-analysis.c (dump_inline_summary): Update.
13952         (compute_inline_parameters): Do not compute disregard_inline_limits;
13953         look for mismatching arguments.
13954         (estimate_growth): Fix handlig of non-trivial self recursion.
13955         (inline_read_summary): Do not read info->disregard_inline_limits.
13956         (inline_write_summary): Do not write info->disregard_inline_limits.
13957         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
13958         and move all checks into can_inline_edge_p predicate; re-enable code
13959         comparing optimization levels.
13960         (expand_call_inline): Do not test inline_forbidden_into_p.
13961         * Makefile.in (ipa-inline.o): Update arguments.
13962
13963 2011-04-17  Revital Eres  <revital.eres@linaro.org>
13964
13965         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
13966
13967 2011-04-17  Revital Eres  <revital.eres@linaro.org>
13968
13969         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
13970
13971 2011-04-17  Michael Matz  <matz@suse.de>
13972
13973         PR tree-optimization/48622
13974         PR lto/48645
13975         * ipa-inline-analysis.c (inline_read_summary): Read size/time
13976         in same order as they're written.
13977
13978 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13979
13980         * config/pa/predicates.md: Reorganize and simplify predicates.
13981         Eliminate duplicate code checks.
13982         (arith_operand): Rename to arith14_operand
13983         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
13984         * config/pa/pa.md: Use renamed operands.
13985         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
13986         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
13987         arith11_operand, adddi3_operand, indexed_memory_operand,
13988         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
13989         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
13990         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
13991         move_dest_operand, move_src_operand, prefetch_cc_operand,
13992         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
13993         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
13994         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
13995         div_operand, int5_operand, movb_comparison_operator,
13996         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
13997         arith_double_operand, ireg_operand, lhs_lshift_operand,
13998         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
13999         integer_store_memory_operand): Likewise.
14000         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
14001         (integer_store_memory_operand, read_only_operand,
14002         function_label_operand, borx_reg_operand,
14003         non_hard_reg_operand): Likewise.
14004         (eq_neq_comparison_operator): Delete unused operator.
14005         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
14006         function_label_operand.
14007         (emit_move_sequence): Likewise.
14008
14009 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
14010
14011         * config/i386/sse.md (sseunpackmode): New mode attribute.
14012         (ssepackmode): Ditto.
14013         (vec_pack_trunc_<mode>): Macroize expander from
14014         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
14015         (vec_unpacks_lo_<mode>): Macroize expander from
14016         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14017         (vec_unpacks_hi_<mode>): Macroize expander from
14018         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14019         (vec_unpacku_lo_<mode>): Macroize expander from
14020         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14021         (vec_unpacku_hi_<mode>): Macroize expander from
14022         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14023         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
14024         ix86_expand_sse4_unpack.
14025         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
14026
14027 2011-04-16  Jan Hubicka  <jh@suse.cz>
14028
14029         * cgraphbuild.c: Include ipa-inline.h.
14030         (reset_inline_failed): Use initialize_inline_failed.
14031         * cgraph.c: Include ipa-inline.h.
14032         (cgraph_create_node_1): Do not initialize estimated_growth.
14033         (initialize_inline_failed): More to ipa-inline-analysis.c
14034         (dump_cgraph_node): Do not dump inline flags.
14035         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
14036         and disregard_inline_limits flags.
14037         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
14038         time, size, estimated_growth.
14039         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
14040         Update.
14041         * cgraphunit.c (cgraph_decide_is_function_needed): Use
14042         DECL_DISREGARD_INLINE_LIMITS.
14043         (cgraph_analyze_function): Do not initialize
14044         node->local.disregard_inline_limits.
14045         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
14046         inlinable, versionable and disregard_inline_limits.
14047         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
14048         cgraph_check_inline_limits, cgraph_default_inline_p,
14049         cgraph_edge_badness, update_caller_keys, update_callee_keys,
14050         add_new_edges_to_heap): Update.
14051         (cgraph_decide_inlining_of_small_function): Update; set
14052         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
14053         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
14054         cgraph_decide_inlining_incrementally): Update.
14055         * ipa-inline.h (inline_summary): Add inlinable, versionable,
14056         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
14057         time, size and estimated_growth parameters.
14058         (estimate_edge_growth): Update.
14059         (initialize_inline_failed): Declare.
14060         * ipa-split.c: Include ipa-inline.h
14061         (execute_split_functions): Update.
14062         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
14063         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
14064         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
14065         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
14066         estimated_growth to INT_MIN.
14067         (inline_node_duplication_hook): Likewise.
14068         (dump_inline_summary): Dump new fields.
14069         (compute_inline_parameters): Update.
14070         (estimate_edge_time, estimate_time_after_inlining,
14071         estimate_size_after_inlining, estimate_growth, inline_read_summary,
14072         inline_write_summary):
14073         (initialize_inline_failed): Move here from cgraph.c.
14074         * tree-sra.c: Include ipa-inline.h.
14075         (ipa_sra_preliminary_function_checks): Update.
14076         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
14077         ipa-inline.h.
14078
14079 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
14080
14081         * config/i386/sse.md (V16): New mode iterator.
14082         (VI1, VI8): Ditto.
14083         (AVXMODEQI, AVXMODEDI): Remove.
14084         (sse2, sse3): New mode attribute.
14085         (mov<mode>): Use V16 mode iterator.
14086         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
14087         (push<mode>1): Use V16 mode iterator.
14088         (movmisalign<mode>): Ditto.
14089         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
14090         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
14091         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
14092         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
14093         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
14094         avx_movdqu<avxmodesuffix>.
14095         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
14096         *avx_movdqu<avxmodesuffix>.
14097         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
14098         avx_lddqu<avxmodesuffix>.
14099         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
14100         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
14101         avx_movnt<AVXMODEDI:mode>.
14102         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
14103         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
14104
14105 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
14106
14107         PR target/48629
14108         * haifa-sched.c (prune_ready_list, schedule_block): Use
14109         sched_pressure_p rather than flag_sched_pressure.
14110
14111 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
14112
14113         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
14114         cgraph_get_node instead of cgraph_get_create_node.
14115
14116 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
14117
14118         * cfgexpand.c (expand_debug_expr): Use
14119         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
14120
14121 2011-04-15  Michael Matz  <matz@suse.de>
14122
14123         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
14124         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
14125         * function.c (gimplify_parameters): Ditto.
14126         * gimplify.c (gimplify_vla_decl): Ditto.
14127
14128         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
14129         (gimple_call_set_alloca_for_var): New inline function.
14130         (gimple_call_alloca_for_var_p): Ditto.
14131         * gimple.c (gimple_build_call_from_tree): Remember
14132         CALL_ALLOCA_FOR_VAR_P state.
14133         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
14134
14135         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
14136         calls if they were for VLA objects.
14137
14138 2011-04-15  Martin Jambor  <mjambor@suse.cz>
14139
14140         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
14141         of ADR_EXPRs.
14142
14143 2011-04-15  Martin Jambor  <mjambor@suse.cz>
14144
14145         PR middle-end/48601
14146         * tree-emutls.c (lower_emutls_function_body): Call
14147         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
14148         result is non-NULL.
14149
14150 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
14151
14152         * c-decl.c (detect_field_duplicates): Call
14153         objc_detect_field_duplicates instead of objc_get_interface_ivars.
14154
14155 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
14156
14157         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
14158         * gimple.c (gimple_asm_clobbers_memory_p): Define.
14159         * ipa-pure-const.c (check_stmt): Call it.
14160         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
14161
14162 2011-04-15  Richard Guenther  <rguenther@suse.de>
14163
14164         PR tree-optimization/48290
14165         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
14166         Properly decide inhibiting propagation based on the valueized
14167         operand.  Do loop-closed SSA form preserving here ...
14168         (init_copy_prop): ... not here.
14169
14170 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
14171
14172         PR target/48612
14173         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
14174         (*ieee_smax<mode>3): Likewise.
14175
14176 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14177
14178         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
14179         Replace match_operand with match_dup for the third operand in
14180         these expanders.
14181
14182 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
14183
14184         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
14185         to track processing of conditionals.  Update all callers.
14186         (try_combine, simplify_if_then_else): Update.
14187
14188 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
14189
14190         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
14191         -fsched-pressure.
14192
14193 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
14194
14195         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
14196         instead of match_operand for operand 3.
14197
14198 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
14199
14200         * recog.h (insn_operand_data): Add an "allows_mem" field.
14201         * genoutput.c (output_operand_data): Initialize it.
14202         * optabs.c (maybe_legitimize_operand_same_code): New function.
14203         (maybe_legitimize_operand): Use it when matching the original
14204         op->value.
14205
14206 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
14207
14208         * gimplify.c: Fix issues in comments throughout.
14209         (voidify_wrapper_expr): Fix long line.
14210         (build_stack_save_restore): Likewise.
14211         (gimplify_loop_expr): Likewise.
14212         (gimplify_compound_lval): Likewise.
14213         (gimplify_init_ctor_eval): Likewise.
14214         (gimplify_modify_expr_rhs): Likewise.
14215         (omp_notice_threadprivate_variable): Likewise.
14216
14217 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
14218
14219         * cfgexpand.c (expand_call_stmt): Convert the function type to the
14220         original one if this is not a builtin function.
14221
14222 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
14223
14224         PR target/48605
14225         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
14226         offset it as needed based on top 2 bits in operands[3], change
14227         MEM mode to SFmode and mask those 2 bits away from operands[3].
14228
14229 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
14230
14231         * c-parser.c (c_parser_objc_protocol_definition): Updated for
14232         change from objc_declare_protocols() to objc_declare_protocol().
14233
14234 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
14235
14236         * config/i386/sse.md (sse4_1): New mode attribute.
14237         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
14238         avx_blend<ssemodesuffix><avxmodesuffix> and
14239         sse4_1_blend<ssemodesuffix> using VF mode iterator.
14240         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
14241         avx_blendv<ssemodesuffix><avxmodesuffix> and
14242         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
14243         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
14244         avx_dp<ssemodesuffix><avxmodesuffix> and
14245         sse4_1_dp<ssemodesuffix> using VF mode iterator.
14246         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
14247         (sse4_1_packusdw): Merge with *avx_packusdw.
14248         (sse4_1_pblendvb): Merge with *avx_pblendvb.
14249         (sse4_1_pblendw): Merge with *avx_pblendw.
14250         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
14251         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
14252         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
14253         VF mode iterator.
14254         (sse4_1_round<ssescalarmodesuffix>): Merge with
14255         *avx_round<ssescalarmodesuffix>.
14256         (aesenc): Merge with *avx_aesenc.
14257         (aesenclast): Merge with *avx_aesenclast.
14258         (aesdec): Merge with *avx_aesdec.
14259         (aesdeclast): Merge with *avx_aesdeclast.
14260         (pclmulqdq): Merge with *pclmulqdq.
14261         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
14262         New predicate.
14263         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
14264
14265 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
14266
14267         PR middle-end/48608
14268         * cfgexpand.c (get_decl_align_unit): Renamed to ...
14269         (align_local_variable): This.  Update DECL_ALIGN.
14270         (add_stack_var): Updated.
14271         (expand_one_stack_var): Likewise.
14272
14273 2011-04-14  Richard Guenther  <rguenther@suse.de>
14274
14275         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
14276         Remove.
14277         (dse_initialize_block_local_data, dse_leave_block,
14278         record_voperand_set, get_stmt_uid): Likewise.
14279         (dse_possible_dead_store_p): Allow any kind of killing stmt.
14280         (dse_optimize_stmt): Remove voperand set handling code.
14281         Simplify and improve to handle any kind of killing stmt.
14282         (dse_record_phi): Remove.
14283         (dse_enter_block): Simplify.
14284         (tree_ssa_dse): Likewise.
14285         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
14286
14287 2011-04-14  Jan Hubicka  <jh@suse.cz>
14288
14289         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
14290         * cgraph.h (struct inline_summary): Move to ipa-inline.h
14291         (cgraph_local_info): Remove inline_summary.
14292         * ipa-cp.c: Include ipa-inline.h.
14293         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
14294         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
14295         accesor.
14296         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
14297         (input_overwrite_node): Do not set inline summary.
14298         (input_node): Do not stream inline summary.
14299         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
14300         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
14301         growth; we do not have inline parameters computed for that anyway.
14302         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
14303         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
14304         (inline_summary_t): New type and VECtor.
14305         (debug_inline_summary, dump_inline_summaries): Declare.
14306         (inline_summary): Use VOCtor.
14307         (estimate_edge_growth): Kill hack computing call stmt size directly.
14308         * lto-section-in.c (lto_section_name): Add inline section.
14309         * ipa-inline-analysis.c: Include lto-streamer.h
14310         (node_removal_hook_holder, node_duplication_hook_holder): New holders
14311         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
14312         (inline_summary_vec): Define.
14313         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
14314         dump_inline_summaries): New functions.
14315         (estimate_function_body_sizes): Properly compute size/time of outgoing
14316         calls.
14317         (compute_inline_parameters): Alloc inline_summary; do not compute
14318         size/time of incomming calls.
14319         (estimate_edge_time): Avoid missing time summary hack.
14320         (inline_read_summary): Read inline summary info.
14321         (inline_write_summary): Write inline summary info.
14322         (inline_free_summary): Free all hooks and inline summary vector.
14323         * lto-streamer.h: Add LTO_section_inline_summary section.
14324         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
14325         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
14326
14327 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
14328
14329         * tree-vectorizer.h (vect_strided_store_supported): Add a
14330         HOST_WIDE_INT argument.
14331         (vect_strided_load_supported): Likewise.
14332         (vect_permute_store_chain): Return void.
14333         (vect_transform_strided_load): Likewise.
14334         (vect_permute_load_chain): Delete.
14335         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
14336         count argument.  Check that the count is a power of two.
14337         (vect_strided_load_supported): Likewise.
14338         (vect_permute_store_chain): Return void.  Update after above changes.
14339         Assert that the access is supported.
14340         (vect_permute_load_chain): Likewise.
14341         (vect_transform_strided_load): Return void.
14342         * tree-vect-stmts.c (vectorizable_store): Update calls after
14343         above interface changes.
14344         (vectorizable_load): Likewise.
14345         (vect_analyze_stmt): Don't check for strided powers of two here.
14346
14347 2011-04-14  Richard Guenther  <rguenther@suse.de>
14348
14349         PR tree-optimization/48590
14350         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
14351         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
14352         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
14353         BUILT_IN_STACK_SAVE.
14354         * tree-ssa-dce.c (propagate_necessity): Handle
14355         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
14356
14357 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
14358
14359         * c-parser.c (c_parser_objc_class_declaration): Updated call to
14360         objc_declare_class.
14361
14362 2011-04-14  Richard Guenther  <rguenther@suse.de>
14363
14364         * tree.h (get_object_alignment_1): Declare.
14365         * builtins.c (get_object_alignment_1): Split out worker from ...
14366         (get_object_alignment): ... here.
14367         * fold-const.c (get_pointer_modulus_and_residue): Use
14368         get_object_alignment_1.
14369
14370 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
14371
14372         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
14373         type parameter.
14374         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
14375         parameter.  Generalise code to handle arrays as well as vectors.
14376         (vect_setup_realignment): Update accordingly.
14377         * tree-vect-stmts.c (vectorizable_store): Likewise.
14378         (vectorizable_load): Likewise.
14379
14380 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
14381
14382         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
14383         within the per-copy loop.
14384
14385 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
14386
14387         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
14388         in the dump file.
14389
14390 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
14391
14392         * doc/options.texi (Negative): Explicitly mention that the
14393         Negative chain must be circular.
14394
14395 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
14396
14397         * function.h (block_chainon): Declare.
14398         * function.c (block_chainon): Define.
14399
14400 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
14401             Eric Weddington  <eric.weddington@atmel.com>
14402             Georg-Johann Lay  <avr@gjlay.de>
14403
14404         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
14405         New Includes
14406         (avr_init_builtins, avr_expand_builtin,
14407         avr_expand_delay_cycles, avr_expand_unop_builtin,
14408         avr_expand_binop_builtin ): New functions.
14409         (avr_builtin_id): New enum
14410         (struct avr_builtin_description): New struct
14411         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
14412         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
14413
14414         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
14415         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
14416         UNSPECV_DELAY_CYCLES): new enumeration values
14417         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
14418         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
14419         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
14420         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
14421         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
14422         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
14423         "fmulsu"): New insns
14424
14425         * config/avr/avr-c.c: fix line endings
14426         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
14427         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
14428         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
14429         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
14430         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
14431
14432         * doc/extend.texi (AVR Built-in Functions): New node
14433         (Target Builtins): Add documentation of AVR
14434         built-in functions.
14435
14436 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
14437
14438         PR target/44643
14439         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
14440         alone. Error if non-const data has attribute progmem.
14441
14442 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
14443
14444         * tree.h (struct tree_constructor): Include tree_typed instead of
14445         tree_common.
14446         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
14447         TS_TYPED instead of TS_COMMON.
14448
14449 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
14450
14451         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
14452         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
14453         (sse2_psadbw): Merge with *avx_psadbw.
14454         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
14455         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
14456         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
14457         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
14458         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
14459         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
14460         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
14461         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
14462         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
14463         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
14464         (ssse3_palignrti): Merge with *avx_palignrti.
14465
14466 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
14467
14468         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
14469         * tree-ssanames.c (fini_ssanames): VEC_free it.
14470         (make_ssa_name_fn): Update for VECness of free_ssanames.
14471         (release_ssa_name, release_dead_ssa_names): Likewise.
14472         * tree.h (struct tree_ssa_name): Include tree_typed instead of
14473         tree_common.
14474         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
14475         TS_TYPED instead of TS_COMMON.
14476
14477 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
14478
14479         * postreload-gcse.c (gcse_after_reload_main): Add calls to
14480         statistics_counter_event.
14481         * tree-ssa-copyrename.c (stats): Define.
14482         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
14483         statistics_counter_event.
14484         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
14485         (bswap_stats, widen_mul_stats): Define.
14486         (insert_reciprocals): Increment rdivs_inserted.
14487         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
14488         rfuncs_inserted.  Add calls to statistics_counter_event.
14489         (execute_cse_sincos_1): Increment inserted.
14490         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
14491         statistics_counter_event.
14492         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
14493         of bswap_stats.  Add calls to statistics_counter_event.
14494         (convert_mult_to_widen): Increment widen_mults_inserted.
14495         (convert_plusminus_to_widen): Increment maccs_inserted.
14496         (convert_mult_to_fma): Increment fmas_inserted.
14497         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
14498         calls to statistics_counter_event.
14499
14500 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
14501
14502         PR rtl-optimization/48455
14503         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
14504         `temp_costs->mem_cost'.
14505
14506 2011-04-13  Jan Hubicka  <jh@suse.cz>
14507
14508         * ipa-inline.h: New file.
14509         * ipa-inline-analysis.c: New file. Broken out of ...
14510         * ipa-inline.c: ... this file; update toplevel comment;
14511         include ipa-inline.h
14512         (inline_summary): Move to ipa-inline.h
14513         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
14514         ipa-inline-analysis.c.
14515         (cgraph_estimate_time_after_inlining): Rename to
14516         estiamte_time_after_inlining; move to ipa-inline-analysis.c
14517         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
14518         to estimate_edge_growth.
14519         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
14520         rename to estimate_size_after_inlining.
14521         (cgraph_mark_inline_edge): Update for new naming convention.
14522         (cgraph_check_inline_limits): Likewise.
14523         (cgraph_edge_badness): Likewise.
14524         (cgraph_decide_recursive_inlining): Likewise.
14525         (cgraph_decide_inlining_of_small_functions): Likewise.
14526         (cgraph_decide_inlining_incrementally): Likewise.
14527         (cgraph_estimate_growth): Rename to estimate_growth; move to
14528         ipa-inline-analysis.c.
14529         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
14530         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
14531         (compute_inline_parameters): Likewise.
14532         (compute_inline_parameters_for_current): Likewise.
14533         (pass_inline_parameters): Likewise.
14534         (inline_indirect_intraprocedural_analysis): Likewise.
14535         (analyze_function): Rename to inline_analyze_function; likewise.
14536         (add_new_function): Move to ipa-inline-analysis.c.
14537         (inline_generate_summary): Likewise.
14538         (inline_read_summary): Likewise.
14539         (inline_write_summary): Likewise.
14540         * Makefile.in (ipa-inline-analysis.c): New file.
14541
14542 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14543
14544         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
14545         * configure: Regenerate.
14546
14547 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
14548
14549         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
14550         instead of tree_common.
14551         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
14552         Likewise.
14553         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
14554         TS_TYPED rather than TS_COMMON.
14555         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
14556
14557 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
14558
14559         PR target/45263
14560         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
14561         r20 around calls of __tablejump_elpm__
14562
14563 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
14564
14565         PR middle-end/48591
14566         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
14567         NULL.
14568         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
14569
14570 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
14571
14572         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
14573         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
14574         (cfi_vec): New typedef.
14575         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
14576         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
14577         (cie_cfi_vec): New static variable.
14578         (cie_cfi_head): Delete.
14579         (add_cfi): Accept a cfi_vec * as first argument. All callers and
14580         declaration changed. Use vector rather than list operations.
14581         (new_cfi): Don't initialize the dw_cfi_next field.
14582         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
14583         rather than list operations.
14584         (lookup_cfa): Use vector rather than list operations.
14585         (output_cfis): New argument upto. Accept a cfi_vec rather than
14586         a dw_cfi_ref list head as argument. All callers changed.
14587         Iterate over the vector using upto as a maximum index.
14588         (output_all_cfis): New static function.
14589         (output_fde): Use vector rather than list operations. Use the
14590         new upto argument for output_cfis rather than manipulating a
14591         list.
14592         (dwarf2out_begin_prologue): Change initializations to match
14593         new struct members.
14594         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
14595         from the vector length rather than searching for the end of a list.
14596         Use output_all_cfis.
14597         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
14598
14599 2011-04-13  Nick Clifton  <nickc@redhat.com>
14600
14601         * config/rx/rx.md (movmemsi): Do not use this pattern when
14602         volatile pointers are involved.
14603
14604 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
14605
14606         * config/i386/sse.md (pinsrbits): Remove.
14607         (sse2_packsswb): Merge with *avx_packsswb.
14608         (sse2_packssdw): Merge with *avx_packssdw.
14609         (sse2_packuswb): Merge with *avx_packuswb.
14610         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
14611         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
14612         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
14613         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
14614         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
14615         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
14616         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
14617         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
14618         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
14619         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
14620         (sse2_loadld): Merge with *avx_loadld.
14621         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
14622         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
14623         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
14624         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
14625         (vec_concatv2di): Merge with *vec_concatv2di_avx.
14626
14627 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
14628
14629         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
14630         calling TREE_CHAIN.
14631         * print-tree.c (print_node): Likewise.
14632         * tree-inline.c (copy_tree_r): Likewise.
14633         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
14634         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
14635         instead of TS_COMMON.
14636         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
14637         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
14638         (copy_node_stat): Zero TREE_CHAIN only if necessary.
14639         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
14640         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
14641         ...and these...
14642         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
14643         * tree.h: ...here.
14644         (TREE_CHAIN): Check for a TS_COMMON structure.
14645         (TREE_TYPE): Check for a TS_TYPED structure.
14646
14647 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
14648
14649         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
14650         cgraph_get_create_node instead of cgraph_node.
14651
14652 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14653
14654         * c-parser.c (c_parser_initelt): Updated call to
14655         objc_build_message_expr.
14656         (c_parser_postfix_expression): Likewise.
14657
14658 2011-04-12  Kai Tietz  <ktietz@redhat.com>
14659
14660         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
14661         MASK_MS_BITFIELD_LAYOUT bit.
14662
14663 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
14664
14665         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
14666         assert it is always true.
14667         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
14668         moves.
14669
14670 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14671
14672         * c-parser.c (c_lex_one_token): Rewritten conditional used when
14673         compiling Objective-C to be more efficient.
14674
14675 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
14676
14677         * opts-common.c (decode_cmdline_options_to_array): Remove variable
14678         argv_copied.
14679
14680 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
14681
14682         * recog.h, genoutput.c, optabs.c: Revert last patch.
14683
14684 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14685
14686         PR target/48090
14687         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
14688
14689 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
14690
14691         * recog.h (insn_operand_data): Add an "allows_mem" field.
14692         * genoutput.c (output_operand_data): Initialize it.
14693         * optabs.c (maybe_legitimize_operand_same_code): New function.
14694         (maybe_legitimize_operand): Use it when matching the original
14695         op->value.
14696
14697 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
14698
14699         * genpreds.c (process_define_predicate): Move most processing
14700         to gensupport.c.  Continue to validate the expression.
14701         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
14702         (process_define_predicate): Move processing to gensupport.c.
14703         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
14704         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
14705         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
14706         argument.
14707         (valid_predicate_name_p): New function, split out from old
14708         genpreds.c:process_define_predicate.
14709         (process_define_predicate): New function, combining code from
14710         old genpreds.c and genrecog.c functions.
14711         (process_rtx): Call it for DEFINE_PREDICATE and
14712         DEFINE_SPECIAL_PREDICATE.
14713
14714 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
14715
14716         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
14717         size of a '%A' memory reference.
14718         (T_DREG, T_QREG): New neon_builtin_type_bits.
14719         (arm_init_neon_builtins): Assert that the load and store operands
14720         are neon_struct_operands.
14721         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
14722         (NEON_ARG_MEMORY): New builtin_arg.
14723         (neon_dereference_pointer): New function.
14724         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
14725         Handle NEON_ARG_MEMORY.
14726         (arm_expand_neon_builtin): Update after above interface changes.
14727         Use NEON_ARG_MEMORY for loads and stores.
14728         * config/arm/predicates.md (neon_struct_operand): New predicate.
14729         * config/arm/iterators.md (V_two_elem): Tweak formatting.
14730         (V_three_elem): Use BLKmode for accesses that have no associated mode.
14731         (V_four_elem): Tweak formatting.
14732         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
14733         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
14734         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
14735         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
14736         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
14737         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
14738         (neon_vst4<mode>): Replace pointer operand with a memory operand.
14739         Use %A in the output template.
14740         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
14741         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
14742         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
14743         the width of the memory access.  Remove post-increment.
14744         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
14745
14746 2011-04-12  Nick Clifton  <nickc@redhat.com>
14747
14748         * config/v850/v850.c (expand_prologue): Do not use the CALLT
14749         instruction for interrupt handlers if the target is the basic V850
14750         architecture.
14751         (expand_epilogue): Likewise.
14752
14753 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
14754
14755         PR rtl-optimization/48549
14756         * combine.c (propagate_for_debug): Also stop after BB_END of
14757         this_basic_block.  Process LAST and just stop processing after it.
14758         (combine_instructions): If last_combined_insn has been deleted,
14759         set last_combined_insn to its PREV_INSN.
14760
14761 2011-04-12  Richard Guenther  <rguenther@suse.de>
14762
14763         PR tree-optimization/46076
14764         * gimple.h (struct gimple_statement_call): Add fntype field.
14765         (gimple_call_fntype): Adjust.
14766         (gimple_call_set_fntype): New function.
14767         * gimple.c (gimple_build_call_1): Set the call function type.
14768         * gimplify.c (gimplify_call_expr): Preserve the function
14769         type the frontend used for the call.
14770         (gimplify_modify_expr): Likewise.
14771         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
14772         function type.
14773         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
14774         function type.
14775         * tree-ssa.c (useless_type_conversion_p): Function pointer
14776         conversions are useless.
14777
14778 2011-04-12  Martin Jambor  <mjambor@suse.cz>
14779
14780         * cgraph.h (cgraph_node): Remove function declaration.
14781         (cgraph_create_node): Declare.
14782         (cgraph_get_create_node): Likewise.
14783         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
14784         Updated all callers.
14785         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
14786         the decl does not already exist.  Call cgraph_get_create_node instead
14787         of cgraph_node.
14788         (cgraph_get_create_node): New function.
14789         (cgraph_same_body_alias): Update comment.
14790         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
14791         assert it does not return NULL.
14792         (cgraph_update_edges_for_call_stmt): Likewise.
14793         (cgraph_clone_edge): Likewise.
14794         (cgraph_create_virtual_clone): Likewise.
14795         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
14796         instead of cgraph_node.
14797         (cgraph_add_new_function): Call cgraph_create_node or
14798         cgraph_get_create_node instead of cgraph_node.
14799         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
14800         instead of cgraph_node.
14801         (record_eh_tables): Likewise.
14802         (mark_address): Likewise.
14803         (mark_load): Likewise.
14804         (build_cgraph_edges): Call cgraph_get_create_node instead
14805         of cgraph_node.
14806         (rebuild_cgraph_edges): Likewise.
14807         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
14808         instead of cgraph_node.
14809         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
14810         cgraph_node.
14811         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
14812         cgraph_create_node instead of cgraph_node.
14813         * c-decl.c (finish_function): Call cgraph_get_create_node instead
14814         of cgraph_node.
14815         * lto-cgraph.c (input_node): Likewise.
14816         * lto-streamer-in.c (input_function): Likewise.
14817         * varasm.c (mark_decl_referenced): Likewise.
14818         (assemble_alias): Likewise.
14819
14820 2011-04-12  Martin Jambor  <mjambor@suse.cz>
14821
14822         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
14823         instead of cgraph_node and assert it does not return NULL.
14824         * lto-streamer-in.c (lto_read_body): Likewise.
14825         * omp-low.c (new_omp_context): Likewise.
14826         (create_task_copyfn): Likewise.
14827         * tree-emutls.c (lower_emutls_function_body): Likewise.
14828         * matrix-reorg.c (transform_allocation_sites): Likewise.
14829
14830 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
14831
14832         PR c/48552
14833         * c-typeck.c (build_asm_expr): Error out on attempts to use
14834         void type outputs or inputs for constraints that allow reg or
14835         don't allow memory.
14836
14837 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
14838             Richard Earnshaw  <rearnsha@arm.com>
14839
14840         PR target/48250
14841         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
14842         to use sign-magnitude offsets. Reject unsupported unaligned
14843         cases. Add detailed description in comments.
14844         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
14845         condition from TARGET_32BIT to TARGET_ARM.
14846
14847 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
14848
14849         * tree.h (struct typed_tree): New.
14850         (struct tree_common): Include it instead of tree_base.
14851         (TREE_TYPE): Update for new location of type field.
14852         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
14853         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
14854         (union tree_node): Add typed field.
14855         * treestruct.def (TS_TYPED): New.
14856         * lto-streamer.c (check_handled_ts_structures): Handle it.
14857         * tree.c (MARK_TS_TYPED): New macro.
14858         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
14859
14860 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
14861
14862         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
14863         (force_nonfallthru): Do not alter the loop nest if no basic block
14864         was created.
14865
14866 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
14867
14868         * config/i386/sse.md (VI): New mode iterator.
14869         (SSEMODEI): Remove.
14870         (AVX256MODEI): Ditto.
14871         (AVXMODEF4P): Ditto.
14872         (avxvecpsmode): Ditto.
14873         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
14874         (sse2_andnot<mode>3): New expander.
14875         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
14876         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
14877         (<any_logic:code><mode>3): Use VI mode iterator.
14878         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
14879         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
14880         (*andnottf3): Handle AVX three-operand constraints.
14881         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
14882
14883 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14884             Robert Millan  <rmh@gnu.org>
14885
14886         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
14887         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
14888         GNU_USER_DYNAMIC_LINKER64): Define.
14889         (REG_NAME): Don't undefine.
14890         (MD_UNWIND_SUPPORT): Undefine.
14891         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
14892         (REG_NAME): Don't undefine.
14893         (MD_UNWIND_SUPPORT): Undefine.
14894         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
14895
14896 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14897
14898         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
14899         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
14900
14901 2011-04-11  Xinliang David Li  <davidxl@google.com>
14902
14903         * value-profile.c (check_ic_target): New function.
14904         (gimple_ic_transform): Sanity check indirect call target.
14905         * gimple-low.c (gimple_check_call_args): Interface change.
14906         (gimple_check_call_matching_types): New function.
14907         * tree-inline.c (tree_can_inline_p): Call new function.
14908
14909 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
14910
14911         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
14912         tree-pretty-print.h & realmpfr.h.
14913
14914 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
14915
14916         PR middle-end/48464
14917         * ira.c (setup_pressure_classes): Fix typo in loop condition.
14918         (setup_allocno_and_important_classes): Ditto.
14919
14920 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14921
14922         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
14923         GNU_USER_DYNAMIC_LINKER.
14924         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
14925         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14926         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
14927         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14928         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14929         GNU_USER_TARGET_OS_CPP_BUILTINS.
14930         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
14931         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14932         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14933         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14934         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
14935         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14936         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14937         GNU_USER_TARGET_OS_CPP_BUILTINS.
14938         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14939         GNU_USER_DYNAMIC_LINKER.
14940         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14941         GNU_USER_TARGET_OS_CPP_BUILTINS.
14942         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
14943         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14944         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
14945         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14946         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
14947         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
14948         GNU_USER_DYNAMIC_LINKER64): Remove.
14949         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
14950         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14951         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14952         GNU_USER_DYNAMIC_LINKER.
14953         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14954         GNU_USER_TARGET_OS_CPP_BUILTINS.
14955         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14956         GNU_USER_TARGET_OS_CPP_BUILTINS.
14957         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
14958         to GNU_USER_TARGET_OS_CPP_BUILTINS.
14959         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14960         GNU_USER_TARGET_OS_CPP_BUILTINS.
14961         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
14962         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
14963         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14964         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
14965         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14966         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14967         GNU_USER_DYNAMIC_LINKER.
14968         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14969         GNU_USER_TARGET_OS_CPP_BUILTINS.
14970         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
14971         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14972         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14973         GNU_USER_DYNAMIC_LINKER.
14974         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14975         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14976         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
14977         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14978         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14979         GNU_USER_DYNAMIC_LINKER.
14980         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
14981         GNU_USER_DYNAMIC_LINKERN32.
14982         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
14983         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
14984         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
14985         GNU_USER_DYNAMIC_LINKER32.
14986         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
14987         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14988         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14989         GNU_USER_DYNAMIC_LINKER.
14990         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14991         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14992         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
14993         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14994         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14995         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
14996         GNU_USER_DYNAMIC_LINKER32.
14997         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14998         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
14999         GNU_USER_DYNAMIC_LINKER.
15000         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
15001         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15002         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
15003         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
15004         GNU_USER_DYNAMIC_LINKER64.
15005         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
15006         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15007         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15008         GNU_USER_DYNAMIC_LINKER.
15009         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
15010         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15011         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15012         GNU_USER_DYNAMIC_LINKER.
15013         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
15014         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15015         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
15016         GNU_USER_DYNAMIC_LINKER32.
15017         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
15018         GNU_USER_DYNAMIC_LINKER64.
15019         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
15020         GNU_USER_DYNAMIC_LINKER64.
15021         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
15022         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15023         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
15024         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15025         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15026
15027 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
15028
15029         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
15030         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
15031         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
15032         GNU_USER_DYNAMIC_LINKER.
15033         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
15034         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
15035         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
15036         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
15037         GNU_USER_DYNAMIC_LINKER64.
15038         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
15039         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
15040         GNU_USER_LINK_EMULATION.
15041         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
15042         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
15043         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
15044         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
15045         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
15046         CPP_SPEC, CC1_SPEC): Remove.
15047         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
15048         (GNU_USER_DYNAMIC_LINKER): Define.
15049         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
15050         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
15051         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
15052         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
15053         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
15054         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
15055         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
15056         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
15057         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
15058         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
15059         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
15060         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
15061         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
15062         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
15063         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
15064         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
15065         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15066         GNU_USER_DYNAMIC_LINKER.
15067         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15068         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
15069         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15070         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
15071         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15072         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
15073         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
15074         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
15075         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
15076         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
15077
15078 2011-04-11  Kai Tietz  <ktietz@redhat.com>
15079
15080         PR target/9601
15081         PR target/11772
15082         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
15083         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
15084         comment.
15085         (ix86_is_msabi_thiscall): Removed.
15086         (ix86_is_type_thiscall): Likewise.
15087         (ix86_get_callcvt): New function.
15088         (ix86_comp_type_attributes): Simplify check.
15089         (ix86_function_regparm): Use ix86_get_callcvt for calling
15090         convention attribute checks.
15091         (ix86_return_pops_args): Likewise.
15092         (ix86_static_chain): Likewise.
15093         (x86_this_parameter): Likewise.
15094         (x86_output_mi_thunk): Likewise.
15095         (ix86_function_type_abi): Optimize check for types without attributes.
15096         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
15097         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
15098         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
15099         by flag-values.
15100         (IX86_BASE_CALLCVT): Helper macro.
15101         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
15102         Use ix86_get_callcvt for calling convention attribute checks and avoid
15103         symbol-decoration for stdcall in TARGET_RTD case.
15104         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
15105         Likewise.
15106         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
15107         for declaration.
15108
15109 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
15110
15111         * config/i386/sse.md (VI_128): New mode iterator.
15112         (VI12_128): Rename from SSEMODE12.
15113         (VI14_128): Rename from SSEMODE14.
15114         (VI124_128): New mode iterator.
15115         (VI24_128): Rename from SSEMODE248.
15116         (VI248_128): Rename from SSEMODE248.
15117         (SSEMODE124C8): Remove.
15118         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
15119         (*sse2_<plusminus_insn><mode>3): Merge with
15120         *avx_<plusminus_insn><mode>3.
15121         (*mulv8hi3): Merge with *avx_mulv8hi3.
15122         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
15123         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
15124         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
15125         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
15126         (ashr<mode>3): Merge with *avx_ashr<mode>3.
15127         (lshr<mode>3): Merge with *avx_lshr<mode>3.
15128         (ashl<mode>3): Merge with *avx_ashl<mode>3.
15129         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
15130         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
15131         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15132         (*<smaxmin:code>v8hi3): Ditto.
15133         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
15134         (*<smaxmin:code>v16qi3): Ditto.
15135         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
15136         (*sse2_eq<mode>3): Ditto.
15137         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
15138         (*sse2_gt<mode>3): Ditto.
15139         (vcondv2di): Split out of vcond<mode>.
15140         (vconduv2di): Split out of vcondu<mode>.
15141
15142 2011-04-11  Richard Guenther  <rguenther@suse.de>
15143
15144         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
15145         before calling tree_low_cst.
15146
15147 2011-04-11  Richard Guenther  <rguenther@suse.de>
15148
15149         * stor-layout.c (layout_type): Compute all array index size operations
15150         in the original type.
15151         (initialize_sizetypes): Add comment.
15152         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
15153
15154 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
15155
15156         * common.opt (Tbss=, Tdata=, Ttext=): New options.
15157
15158 2011-04-11  Martin Jambor  <mjambor@suse.cz>
15159
15160         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
15161         of cgraph_node, handle NULL return value.
15162         (cgraph_global_info): Likewise.
15163         (cgraph_rtl_info): Likewise.
15164         * tree-inline.c (estimate_num_insns): Likewise.
15165         * gimplify.c (unshare_body): Likewise.
15166         (unvisit_body): Likewise.
15167         (gimplify_body): Likewise.
15168         * predict.c (optimize_function_for_size_p): Likewise.
15169         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
15170         (call_may_clobber_ref_p_1): Likewise.
15171         * varasm.c (function_section_1): Likewise.
15172         (assemble_start_function): Likewise.
15173
15174 2011-04-11  Martin Jambor  <mjambor@suse.cz>
15175
15176         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
15177         of cgraph_node.
15178         * final.c (rest_of_clean_state): Likewise.
15179         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
15180         * passes.c (pass_init_dump_file): Likewise.
15181         (execute_all_ipa_transforms): Likewise.
15182         (function_called_by_processed_nodes_p): Likewise.
15183         * predict.c (maybe_hot_frequency_p): Likewise.
15184         (probably_never_executed_bb_p): Likewise.
15185         (compute_function_frequency): Likewise.
15186         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
15187         (unnest_nesting_tree_1): Likewise.
15188         (lower_nested_functions): Likewise.
15189         * tree-optimize.c (execute_fixup_cfg): Likewise.
15190         (tree_rest_of_compilation): Likewise.
15191         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
15192         * tree-sra.c (ipa_early_sra): Likewise.
15193         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
15194         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
15195         * ipa.c (record_cdtor_fn): Likewise.
15196         * ipa-inline.c (cgraph_early_inlining): Likewise.
15197         (compute_inline_parameters_for_current): Likewise.
15198         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
15199         * ipa-pure-const.c (local_pure_const): Likewise.
15200         * ipa-split.c (split_function): Likewise.
15201         (execute_split_functions): Likewise.
15202         * cgraphbuild.c (build_cgraph_edges): Likewise.
15203         (rebuild_cgraph_edges): Likewise.
15204         (cgraph_rebuild_references): Likewise.
15205         (remove_cgraph_callee_edges): Likewise.
15206         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
15207         (verify_cgraph_node): Likewise.
15208         (cgraph_analyze_functions): Likewise.
15209         (cgraph_preserve_function_body_p): Likewise.
15210         (save_inline_function_body): Likewise.
15211         (save_inline_function_body): Likewise.
15212         * tree-inline.c (copy_bb): Likewise.
15213         (optimize_inline_calls): Likewise.
15214
15215 2011-04-11  Martin Jambor  <mjambor@suse.cz>
15216
15217         PR tree-optimization/48195
15218         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
15219         ipa_check_create_edge_args.
15220         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
15221         ipa_check_create_edge_args.
15222         * ipa-inline.c (inline_generate_summary): Do not call
15223         ipa_check_create_node_params and ipa_check_create_edge_args.
15224         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
15225         ipa_check_create_edge_args.
15226
15227 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
15228
15229         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
15230         instead of loop.
15231         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
15232         * function.c (record_hard_reg_sets): Likewise.
15233         * ira.c (compute_regs_asm_clobbered): Likewise.
15234         * sched-deps.c (sched_analyze_1): Likewise.
15235         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
15236
15237 2011-04-09  Xinliang David Li  <davidxl@google.com>
15238
15239         PR tree-optimization/PR48484
15240         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
15241         has_valid_pred lazily
15242
15243 2011-04-09  Duncan Sands  <baldrick@free.fr>
15244
15245         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
15246
15247 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
15248
15249         * combine.c (combine_validate_cost): Adjust comments.  Set registered
15250         cost of I0 to zero at the end, if any.
15251
15252 2011-04-08  Xinliang David Li  <davidxl@google.com>
15253
15254         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
15255         to insane profile data.
15256
15257 2011-04-08  Xinliang David Li  <davidxl@google.com>
15258
15259         * ipa-cp.c (ipcp_update_profiling): Correct
15260          negative scale factor due to insane profile data.
15261
15262 2011-04-08  Xinliang David Li  <davidxl@google.com>
15263
15264         * final.c (dump_basic_block_info): New function.
15265         (final): Dump basic block.
15266         (final_scan_insn): Remove old dump.
15267
15268 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
15269
15270         PR target/47829
15271         * config.gcc (i386-*-freebsd): Disable unwind table generation for
15272         crtbegin/crtend.
15273
15274 2011-04-08  Michael Matz  <matz@suse.de>
15275
15276         PR middle-end/48389
15277         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
15278         functions.
15279         (rebuild_jump_labels): Call rebuild_jump_labels_1.
15280         * rtl.h (rebuild_jump_labels_chain): Declare.
15281         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
15282         insns inserted on edges.
15283
15284 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
15285
15286         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
15287         * config/arm/arm-arches.def: New.
15288         * config/arm/arm-opts.h: New.
15289         * config/arm/genopt.sh: New.
15290         * config/arm/arm-tables.opt: New (generated).
15291         * config/arm/arm.c (arm_handle_option, arm_target_help,
15292         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
15293         (all_architectures): Get most table contents from arm-arches.def.
15294         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
15295         arm_selected_tune here.
15296         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
15297         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
15298         (march=, mcpu=, mtune=): Use Enum and Var.
15299         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
15300         (arm.o): Update dependencies.
15301
15302 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
15303
15304         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
15305         of header_file.
15306         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
15307         (write_typed_alloc_defns): Likewise.
15308         (main): Calls write_typed_alloc_defns with output_header.
15309
15310 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
15311
15312         PR inline-asm/48435
15313         * ira-color.c (setup_profitable_hard_regs): Add comments.
15314         Don't take prohibited hard regs into account.
15315         (setup_conflict_profitable_regs): Rename to
15316         get_conflict_profitable_regs.
15317         (check_hard_reg_p): Check prohibited hard regs.
15318
15319 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
15320
15321         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
15322         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
15323         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
15324
15325 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15326
15327         PR target/48366
15328         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
15329         move from floating point to shift amount register.
15330         (emit_move_sequence): Remove secondary reload support for floating
15331         point to shift amount amount register copies.
15332         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
15333         amount register copies.
15334         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
15335         register, return false if mode isn't a scalar integer mode.
15336         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
15337
15338 2011-04-08  Richard Guenther  <rguenther@suse.de>
15339
15340         * gimple.c (gimple_call_flags): Remove kludge.
15341
15342 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
15343
15344         * sel-sched.c (sel_region_init): Move call to
15345         sel_setup_region_sched_flags after setup_current_loop_nest.
15346
15347 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
15348
15349         PR rtl-optimization/48272
15350         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
15351         init_insn_reg_pressure_info.  Adjust a caller.
15352         * sched-int.h (init_insn_reg_pressure_info): Declare.
15353         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
15354         when sched-pressure is enabled.
15355
15356 2011-04-08  Richard Guenther  <rguenther@suse.de>
15357
15358         * gimple.c (gimple_set_modified): Do not queue calls to
15359         MODIFIED_NORETURN_CALLS here ...
15360         * tree-ssa-operands.c (update_stmt_operands): ... but here.
15361
15362 2011-04-08  Richard Guenther  <rguenther@suse.de>
15363
15364         PR lto/48467
15365         * toplev.c (lang_dependent_init): Do not open asm_out_file
15366         in WPA mode, nor perform debug machinery initialization.
15367         (finalize): Do not unlink asm_out_file in WPA mode.
15368
15369 2011-04-08  Richard Guenther  <rguenther@suse.de>
15370
15371         * gimple.h (gimple_call_fntype): New function.
15372         (gimple_call_return_type): Use it.
15373         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
15374         * gimple-low.c (gimple_check_call_args): Likewise.
15375         * gimple.c (gimple_call_flags): Likewise.
15376         (gimple_call_arg_flags): Likewise.
15377         (gimple_call_return_flags): Likewise.
15378         * tree-cfg.c (verify_gimple_call): Likewise.
15379         (do_warn_unused_result): Likewise.
15380         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
15381         * value-prof.c (gimple_ic_transform): Fix fndecl check.
15382
15383 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
15384
15385         PR rtl-optimization/48235
15386         * sel-sched.c (code_motion_process_successors): Recompute the last
15387         insn in basic block if control flow changed.
15388         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
15389         Update condition for ilist_remove.
15390
15391 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
15392
15393         PR rtl-optimization/48302
15394         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
15395         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
15396         it to record added preheader blocks.
15397         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
15398         on to sel_add_loop_preheaders.
15399         (sel_region_init): Move call to setup_current_loop_nest after
15400         sel_init_bbs.
15401
15402 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
15403
15404         PR target/48273
15405         * cfgloop.h (loop_has_exit_edges): New helper.
15406         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
15407         non-clonable.
15408         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
15409         that have no exit edges.
15410
15411 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
15412
15413         PR rtl-optimization/48442
15414         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
15415         all callers.  Adjust assert.
15416
15417 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
15418
15419         PR tree-optimization/48377
15420         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
15421         is_packed to true even for types with smaller TYPE_ALIGN than
15422         TYPE_SIZE.
15423
15424 2011-04-08  Richard Guenther  <rguenther@suse.de>
15425
15426         PR bootstrap/48513
15427         * doc/tm.texi: Re-generate.
15428
15429 2011-04-08  Wei Guozhi  <carrot@google.com>
15430
15431         PR target/47855
15432         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
15433         * config/arm/arm.c (arm_attr_length_push_multi): New function.
15434         * config/arm/arm.md (*push_multi): Change the length computation to
15435         call a C function.
15436
15437 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
15438
15439         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
15440         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
15441         * doc/tm.texi: Regenerate.
15442         * system.h (ASM_OUTPUT_BSS): Poison.
15443         * varasm.c (asm_output_bss): Remove function.
15444         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
15445
15446         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
15447         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
15448         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
15449         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
15450         Likewise.
15451         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
15452         Likewise.
15453         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
15454         Likewise.
15455         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
15456
15457 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
15458
15459         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
15460         EnumValue lines.
15461
15462 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
15463
15464         * config/m68k/m68k.c (m68k_handle_option): Don't handle
15465         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
15466         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
15467         OPT_mcpu32.
15468         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
15469         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
15470         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
15471         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
15472         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
15473         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
15474         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
15475         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
15476         options.  Don't map other m68k options manually.  Don't handle
15477         old-style options as canonical.
15478         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
15479         * doc/install.texi (m68k-*-*): Document binutils version requirement.
15480
15481 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
15482
15483         * basic-block.h (force_nonfallthru): Move to...
15484         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
15485         (force_nonfallthru): ...here.
15486         * cfghooks.c (force_nonfallthru): New function.
15487         * cfgrtl.c (force_nonfallthru): Rename into...
15488         (rtl_force_nonfallthru): ...this.
15489         (commit_one_edge_insertion): Do not set AUX field.
15490         (commit_edge_insertions): Do not discover new basic blocks.
15491         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
15492         (cfg_layout_rtl_cfg_hooks): Likewise.
15493         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
15494         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
15495         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
15496
15497 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
15498
15499         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
15500         Remove macros.
15501
15502 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
15503
15504         * config/i386/sse.md: Update copyright year.
15505         (avxcvtvecmode): Remove.
15506         (sse_movhlps): Merge with *avx_movhlps.
15507         (sse_movlhps): Merge with *avx_movlhps.
15508         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
15509         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
15510         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
15511         (sse_loadhps): Merge with *avx_loadhps.
15512         (sse_storelps): Merge with *avx_storelps.
15513         (sse_loadlps): Merge with *avx_loadlps.
15514         (sse_movss): Merge with *avx_movss.
15515         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
15516         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
15517         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
15518         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
15519         (vec_set<mode>_0): Ditto.
15520         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
15521         (sse4_1_insertps): Merge with *avx_insertps.
15522         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
15523         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
15524         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
15525         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
15526         (sse2_storehpd): Merge with *avx_storehpd.
15527         (sse2_loadhpd): Merge with *avx_loadhpd.
15528         (sse2_loadlpd): Merge with *avx_loadlpd.
15529         (sse2_movsd): Merge with *avx_movsd.
15530         (*vec_concatv2df): Merge with *vec_concatv2df.
15531
15532 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
15533
15534         PR debug/48343
15535         * combine.c (combine_instructions): Add last_combined_insn,
15536         update it if insn is after it, pass it to all try_combine calls.
15537         (try_combine): Add last_combined_insn parameter, pass it instead of
15538         i3 to propagate_for_debug.
15539
15540 2011-04-07  Nick Clifton  <nickc@redhat.com>
15541
15542         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
15543         to handle MDR <-> data register transfers.
15544         (movhi_internal): Likewise.
15545
15546 2011-04-07  Alan Modra  <amodra@gmail.com>
15547
15548         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
15549         previous stack info.
15550
15551 2011-04-07  Tom de Vries  <tom@codesourcery.com>
15552
15553         PR target/43920
15554         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
15555         flow_find_cross_jump.  Swap variables to implement backward replacement.
15556         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
15557
15558 2011-04-07  Tom de Vries  <tom@codesourcery.com>
15559
15560         PR target/43920
15561         * cfgcleanup.c (walk_to_nondebug_insn): New function.
15562         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
15563         and bb2.
15564         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
15565         src1 or src2.  Redirect edges to the last basic block.  Update
15566         frequency and count on multiple basic blocks in case of fallthru.
15567
15568 2011-04-07  Tom de Vries  <tom@codesourcery.com>
15569
15570         PR target/43920
15571         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
15572         function.
15573         (old_insns_match_p): Change return type.  Replace return false/true
15574         with return dir_none/dir_both.  Use can_replace_by.
15575         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
15576         direction from dir_p.  Register replacement direction in dir, last_dir
15577         and afterlast_dir.  Handle new return type of old_insns_match_p using
15578         merge_dir.  Return replacement direction in dir_p.
15579         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
15580         return type of old_insns_match_p.
15581         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
15582         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
15583         flow_find_cross_jump.
15584         * basic-block.h (enum replace_direction): New type.
15585         (flow_find_cross_jump): Add parameter to declaration.
15586
15587 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
15588
15589         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
15590         (AVXMODEDCVTPS2DQ): Ditto.
15591         (VEC_FLOAT_MODE): Ditto.
15592         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
15593         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
15594         (<any_logic:code><mode>3): Use VF mode iterator.
15595         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
15596         Use VF mode iterator.
15597         (copysign<mode>3): Use VF mode iterator.
15598         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
15599         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
15600         (*<any_logic:code><MODEF:mode>3): Merge with
15601         *avx_<any_logic:code><MODEF:mode>3.
15602         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
15603         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
15604         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
15605         (avx_cvtdq2ps<avxmodesuffix>): Remove.
15606         (sse2_cvtdq2ps): Use %v modifier.
15607         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
15608         (avx_cvtps2dq<avxmodesuffix>): Remove.
15609         (sse2_cvtps2dq): Use %v modifier.
15610         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
15611         (avx_cvttps2dq<avxmodesuffix>): Remove.
15612         (sse2_cvttps2dq): Use %v modifier.
15613         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
15614         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
15615         (sse2_cvtsd2siq): Fix insn template.
15616         (sse2_cvtsd2siq_2): Ditto.
15617         (sse2_cvttsd2siq): Ditto.
15618         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
15619         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
15620
15621 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
15622
15623         * gcov-io.c: Use GCC Runtime Library Exception.
15624
15625 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
15626
15627         PR debug/48466
15628         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
15629         as base_reg whatever register reg has been eliminated to, instead
15630         of hardcoding STACK_POINTER_REGNUM.
15631
15632 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
15633
15634         * doc/tm.texi.in: Document C target hooks as separate from general
15635         target hooks.
15636         * doc/tm.texi: Regenerate.
15637         * genhooks.c (struct hook_desc): Add docname field.
15638         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
15639         docname field.
15640         (hook_array): Include c-target.def.
15641         (emit_documentation): Use docname field in output.
15642         (emit_init_macros): Take docname argument.  Only emit definitions
15643         for hooks matching docname.
15644         (main): Expect additional arguments in all cases.  Pass argument
15645         to emit_init_macros.
15646         * target.def: Move initial macro definitions and comments to
15647         target-hooks-macros.h.
15648         (gcc_targetcm): Move to c-family/c-target.def.
15649         * target.h (targetcm): Move declaration to c-family/c-target.h.
15650         * targhooks.c (default_handle_c_option): Move to
15651         c-family/c-opts.c.
15652         * targhooks.h (default_handle_c_option): Move declaration to
15653         c-family/c-common.h.
15654         * target-hooks-macros.h: New file.
15655         * config.gcc (target_has_targetcm): Define and use to add to
15656         c_target_objs and cxx_target_objs.
15657         * config/default-c.c: New file.
15658         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
15659         of target.h and target-def.h.
15660         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
15661         (darwin_objc_construct_string, darwin_cfstring_ref_p,
15662         darwin_check_cfstring_format_arg): Make static.
15663         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
15664         TARGET_STRING_OBJECT_REF_TYPE_P,
15665         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
15666         * config/darwin-protos.h (darwin_objc_construct_string,
15667         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
15668         declare.
15669         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
15670         TARGET_STRING_OBJECT_REF_TYPE_P,
15671         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
15672         * config/t-darwin (darwin-c.o): Update dependencies.
15673         * system.h (TARGET_HAS_TARGETCM): Poison.
15674         * Makefile.in (TARGET_H): Update.
15675         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
15676         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
15677         (default-c.o): New target.
15678         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
15679         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
15680         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
15681         c-target.def.
15682         (build/genhooks.o): Update dependencies.
15683
15684 2011-04-06  Richard Guenther  <rguenther@suse.de>
15685
15686         * ipa-inline.c (enum inlining_mode): Remove.
15687         (cgraph_flatten): Use some other token.
15688         (cgraph_edge_early_inlinable_p): New function, split out from ...
15689         (cgraph_perform_always_inlining): New function, split out from ...
15690         (cgraph_decide_inlining_incrementally): ... here.
15691         (cgraph_mark_inline_edge): Adjust.
15692         (cgraph_early_inlining): Re-structure.
15693         (pass_early_inline): Require SSA form.
15694
15695 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
15696             Julian Brown  <julian@codesourcery.com>
15697             Mark Shinwell  <shinwell@codesourcery.com>
15698
15699         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
15700         LO_REGS only for Thumb-1.
15701         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
15702         be used in short instructions when optimising for size on Thumb-2.
15703
15704 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
15705
15706         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
15707         associated with user returns to be preserved.
15708
15709 2011-04-06  Tristan Gingold  <gingold@adacore.com>
15710
15711         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
15712         symbol_queue_size, DBXOUT_DECR_NESTING,
15713         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
15714         if XCOFF_DEBUGGING_INFO.
15715
15716 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
15717
15718         * config/i386/i386.md (attribute isa): New.
15719         (attribute enabled): New.
15720         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
15721         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
15722         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
15723         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
15724         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
15725         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15726         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
15727         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
15728
15729         * config/i386/sse.md (VF): New mode iterator.
15730         (VF1): Ditto.
15731         (VF2): Ditto.
15732         (VF_128): Ditto.
15733         (SSEMODEF4): Remove.
15734         (attribute sse): Handle V8SF and V4DF modes.
15735         (<absneg:code><mode>2): Use VF mode iterator.
15736         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
15737         mode iterator.
15738         (<plusminus_insn><mode>3): Use VF mode iterator.
15739         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
15740         Use VF mode iterator.
15741         (<sse>_vm<plusminus_insn><mode>3): Merge with
15742         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
15743         (mul<mode>3): Use VF mode iterator.
15744         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
15745         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
15746         mode iterator.
15747         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
15748         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
15749         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
15750         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
15751         mode iterator.
15752         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
15753         Use VF1 mode iterator.
15754         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
15755         (sqrt<VF2:mode>2): New expander.
15756         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
15757         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
15758         and sqrtv2df2.  Use VF mode iterator.
15759         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
15760         mode iterator.
15761         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
15762         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
15763         Use VF1 mode iterator.
15764         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
15765         (<smaxmin:code><mode>3): Use VF mode iterator.
15766         (*<smaxmin:code><mode>3_finite): Merge with
15767         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
15768         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15769         (<sse>_vm<smaxmin:code><mode>2): Merge with
15770         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
15771         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
15772         mode iterator.
15773         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
15774         mode iterator.
15775         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
15776         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
15777         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
15778         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
15779         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
15780         VF mode iterator.
15781         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
15782         Use VF_128 mode iterator.
15783         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
15784         mode iterator.
15785         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
15786         VF_128 mode iterator.
15787         (vcond<mode>): Use VF mode iterator.
15788         * config/i386/predicates.md (sse_comparison_operator): Merge with
15789         avx_comparison_float_operator.  Do not declare as special_predicate.
15790         * config/i386/i386.c (struct builtin_description): Update for renamed
15791         compare patterns.
15792         (ix86_expand_args_builtin): Ditto.
15793         (ix86_expand_sse_compare_mask): Ditto.
15794
15795 2011-04-06  Richard Guenther  <rguenther@suse.de>
15796
15797         * tree-inline.c (estimate_num_insns): For calls simply account
15798         for all passed arguments and a used return value.
15799
15800 2011-04-06  Richard Guenther  <rguenther@suse.de>
15801
15802         PR tree-optimization/47663
15803         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
15804         call_stmt_time fields.
15805         (cgraph_edge_inlinable_p): Declare.
15806         (cgraph_edge_recursive_p): New inline function.
15807         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
15808         (cgraph_clone_edge): Copy it.
15809         * ipa-inline.c (cgraph_estimate_edge_time): New function.
15810         Account for call stmt time.
15811         (cgraph_estimate_time_after_inlining): Take edge argument.
15812         (cgraph_estimate_edge_growth): Account call stmt size.
15813         (cgraph_estimate_size_after_inlining): Take edge argument.
15814         (cgraph_mark_inline_edge): Adjust.
15815         (cgraph_check_inline_limits): Likewise.
15816         (cgraph_recursive_inlining_p): Remove.
15817         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
15818         (cgraph_decide_recursive_inlining): Take edge argument and
15819         adjust.
15820         (cgraph_decide_inlining_of_small_functions): Do not avoid
15821         diags for recursive inlining here.
15822         (cgraph_flatten): Adjust.
15823         (cgraph_decide_inlining_incrementally): Likewise.
15824         (estimate_function_body_sizes): Remove call cost handling.
15825         (compute_inline_parameters): Initialize caller edge call costs.
15826         (cgraph_estimate_edge_growth): New function.
15827         (cgraph_estimate_growth): Use it.
15828         (cgraph_edge_badness): Likewise.
15829         (cgraph_check_inline_limits): Take an edge argument.
15830         (cgraph_decide_inlining_of_small_functions): Adjust.
15831         (cgraph_decide_inlining): Likewise.
15832         * tree-inline.c (estimate_num_insns): Only account for call
15833         return value if it is used.
15834         (expand_call_inline): Avoid diagnostics on recursive inline
15835         functions here.
15836         * lto-cgraph.c (lto_output_edge): Output edge call costs.
15837         (input_edge): Input edge call costs.
15838
15839 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15840
15841         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
15842
15843 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
15844
15845         * doc/invoke.texi (Spec Files): Fix typo.
15846
15847 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
15848
15849         * profile.c (branch_prob): Move declaration of local variable.  Remove
15850         obsolete ??? comment.  Expand the location explicitly instead of using
15851         the LOCATION_FILE and LOCATION_LINE macros.
15852
15853 2011-04-06  Wei Guozhi  <carrot@google.com>
15854
15855         PR target/47855
15856         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
15857         (arm_cond_branch): Likewise.
15858         (arm_cond_branch_reversed): Likewise.
15859         (arm_jump): Likewise.
15860         (push_multi): Likewise.
15861         * config/arm/constraints.md (Py): New constraint.
15862
15863 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15864
15865         PR bootstrap/48471
15866         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
15867         Move these...
15868         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
15869         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
15870         #ifdef DBX_DEBUGGING_INFO.
15871
15872 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
15873
15874         PR bootstrap/48403
15875         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
15876         if old and new states differ.
15877
15878 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
15879
15880         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
15881         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
15882         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
15883         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
15884         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
15885         mcfv4e): Use Alias.
15886         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
15887         ColdFire options to -mcpu= options.
15888
15889 2011-04-05  Jeff Law  <law@redhat.com>
15890
15891         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
15892         check if BB is a successor of LOOP->header and return
15893         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
15894
15895 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
15896
15897         * cprop.c (struct reg_use): Remove.
15898         (reg_use_table): Make an array of RTX.
15899         (find_used_regs, constprop_register, local_cprop_pass,
15900         bypass_block): Simplify users of reg_use_table.
15901         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
15902         on one of the uses found by find_used_regs.
15903
15904 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15905
15906         PR bootstrap/48469
15907         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
15908         declaration.
15909
15910 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15911
15912         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
15913         as an rtx.
15914         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
15915
15916 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
15917
15918         PR middle-end/48441
15919         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
15920
15921 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15922
15923         * combine.c: Include obstack.h.
15924         (struct insn_link): Define.
15925         (uid_log_links): Adjust type.
15926         (FOR_EACH_LOG_LINK): New macro.
15927         (insn_link_obstack): Declare.
15928         (alloc_insn_link): Define.
15929         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
15930         type of link variables.
15931         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
15932         (try_combine, record_promoted_values, distribute_notes): Likewise.
15933         (distribute_links): Likewise.  Tweak prototype.
15934         (clear_log_links): Delete.
15935         (adjust_for_new_dest): Call alloc_insn_link.
15936         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
15937
15938 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15939
15940         * gcse.c (modify_mem_list): Convert to an array of VECs.
15941         (canon_modify_mem_list, compute_transp): Tweak formatting.
15942         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
15943         (load_killed_in_block_p): Likewise.
15944         (record_last_mem_set_info): Likewise.
15945         (clear_modify_mem_tables): Likewise.
15946
15947 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15948
15949         PR middle-end/48461
15950         * function.c (emit_use_return_register_into_block): Only define if
15951         HAVE_return.
15952
15953 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
15954
15955         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
15956
15957 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
15958
15959         * config/rx/rx-opts.h: New.
15960         * config/rx/rx.c (rx_cpu_type): Remove.
15961         (rx_handle_option): Don't assert that global structures are in
15962         use.  Access variables via opts pointer.  Defer most handling of
15963         OPT_mint_register_.  Use error_at.
15964         (rx_option_override): Handle deferred OPT_mint_register_ here.
15965         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
15966         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
15967         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
15968         (rx_cpu_types): New Enum and EnumValue entries.
15969         (mint-register=): Use Defer and use Var accordingly.
15970
15971 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15972
15973         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
15974         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
15975         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
15976         Move these...
15977         (debug_free_queue, debug_nesting, symbol_queue_index):
15978         ...and these...
15979         * dbxout.c: ...to here.  Make static.
15980
15981 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15982
15983         * gcse.c (modify_pair): Define.  Define a VEC of it.
15984         (canon_modify_mem_list): Convert to an array of VECs.
15985         (free_insn_expr_list_list): Delete.
15986         (clear_modify_mem_tables): Call VEC_free instead.
15987         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
15988         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
15989         (canon_list_insert, compute_transp): Likewise.
15990
15991 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15992
15993         PR target/43920
15994         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
15995         for size.
15996
15997 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15998
15999         PR target/43920
16000         * function.c (emit_use_return_register_into_block): New function.
16001         (thread_prologue_and_epilogue_insns): Use
16002         emit_use_return_register_into_block.
16003
16004 2011-04-05  Tom de Vries  <tom@codesourcery.com>
16005
16006         PR target/43920
16007         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
16008         insn.
16009
16010 2011-04-05  Tom de Vries  <tom@codesourcery.com>
16011
16012         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
16013
16014 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
16015
16016         * config/arm/arm.md (define_constants for unspec): Replace with
16017         define_c_enum.
16018         (define_constants for unspecv): Replace with define_c_enum.
16019         * config/arm/neon.md (define_constants for unspec): Replace with
16020         define_c_enum.
16021
16022 2011-04-04  Richard Henderson  <rth@redhat.com>
16023
16024         PR bootstrap/48400
16025         * dwarf2out.c (output_line_info): Always emit line info from
16026         at least one section.
16027         (dwarf2out_init): Create text_section_line_info here ...
16028         (set_cur_line_info_table): ... not here.
16029
16030 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
16031
16032         PR target/48380
16033         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
16034         not called.
16035
16036         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
16037
16038 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
16039
16040         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
16041         (expr_equiv_p): Remove.
16042         (insert_set_in_table): Look at <dest, src> pair instead of expr.
16043         (hash_scan_set): Update call to insert_set_in_table.
16044         (dump_hash_table): Dump <dest, src> pair.
16045         (lookup_set): Simplify.  Lookup <dest, src> pair.
16046         (compute_transp): Remove, fold heavily simplified code into...
16047         (compute_local_properties): ...here.  Expect COMP and TRANSP
16048         unconditionally.
16049         (find_avail_set): Take set directly from struct expr.
16050         (find_bypass-set): Likewise.
16051         (bypass_block): Likewise.
16052         (cprop_insn): Likewise.  Remove redundant INSN_P test.
16053
16054         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
16055         checks on form of COND from find_implicit_sets to here.
16056         (find_implicit_sets): Cleanup control flow. Split critical edges
16057         if it exposes implicit sets.  Allocate/resize implicit_sets as
16058         necessary.
16059         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
16060         changed something.  Run df_analyze after find_implicit_sets if any
16061         edges were split.  Do not allocate implicit_sets here.
16062
16063         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
16064         (gcse_obstack): Renamed to cprop_obstack.
16065         (GNEW, GNEWVEC, GNEWVAR): Remove.
16066         (gmalloc): Remove.
16067         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
16068         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
16069         (gcse_alloc): Likewise, and rename to cprop_alloc.
16070         (alloc_gcse_men, free_gcse_mem): Remove.
16071         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
16072         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
16073         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
16074
16075         * cprop.c (oprs_not_set_p): Remove.
16076         (mark_set, mark_clobber): Remove.
16077         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
16078         (reg_not_set_p): New function.
16079         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
16080         (cprop_insn): Likewise.
16081         (cprop_jump): Use FOR_EACH_EDGE.
16082
16083 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
16084
16085         PR bootstrap/48403
16086         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
16087         (rank_for_schedule): Use scheduled_insns vector instead of
16088         last_scheduled_insn.
16089         (ok_for_early_queue_removal): Likewise.
16090         (queue_to_ready): Search forward in nonscheduled_insns_begin if
16091         we have a dbg_cnt.
16092         (choose_ready): Likewise.
16093         (commit_schedule): Use VEC_iterate.
16094         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
16095         a dbg_cnt, use it and ensure the first insn is in the ready list.
16096         (haifa_sched_init): Allocate scheduled_insns.
16097         (sched_extend_ready_list): Don't allocate it; reserve space.
16098         (haifa_sched_finish): Free it.
16099
16100 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
16101
16102         * optc-gen.awk: Always remove type from Variable entry before
16103         recording in var_seen.
16104
16105 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
16106
16107         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
16108         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
16109         call to tidy_fallthru_edges.
16110
16111 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
16112
16113         * doc/options.texi (ToLower): Document.
16114         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
16115         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
16116         * opts.h (cl_option): Add cl_tolower field.
16117         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
16118         arguments with lowercase strings.
16119         * config/rx/rx.opt (mcpu=): Add ToLower.
16120         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
16121         argument.
16122
16123 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
16124
16125         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
16126
16127 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
16128
16129         * config/vax/vax.c: Include reload.h.
16130
16131 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
16132
16133         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
16134         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
16135         (sparc_preferred_reload_class): New function.
16136
16137 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
16138
16139         PR debug/48401
16140         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
16141         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
16142
16143 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
16144
16145         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
16146         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
16147
16148 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
16149
16150         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
16151         (ASM_OUTPUT_ALIGNED_BSS): Define.
16152
16153 2011-04-03  Michael Matz  <matz@suse.de>
16154
16155         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
16156         and next_slot members.
16157         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
16158         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
16159         (lto_streamer_cache_append): Declare.
16160         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
16161         unsigned index, remove offset parameter, ensure that we append
16162         or update existing entries.
16163         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
16164         parameter, update next_slot for append.
16165         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
16166         parameter.
16167         (lto_streamer_cache_insert_at): Likewise.
16168         (lto_streamer_cache_append): New function.
16169         (lto_streamer_cache_lookup): Use unsigned index.
16170         (lto_streamer_cache_get): Likewise.
16171         (lto_record_common_node): Don't test tree_node_can_be_shared.
16172         (preload_common_node): Adjust call to lto_streamer_cache_insert.
16173         (lto_streamer_cache_delete): Don't free offsets member.
16174         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
16175         (lto_output_string_with_length): Use lto_output_data_stream.
16176         (lto_output_tree_header): Remove ix parameter, don't write it.
16177         (lto_output_builtin_tree): Likewise.
16178         (lto_write_tree): Adjust callers to above, don't track and write
16179         offset, write unsigned index.
16180         (output_unreferenced_globals): Don't emit all global vars.
16181         (write_global_references): Use unsigned indices.
16182         (lto_output_decl_state_refs): Likewise.
16183         (write_symbol): Likewise.
16184         * lto-streamer-in.c (lto_input_chain): Move earlier.
16185         (input_function): Use unsigned index.
16186         (input_alias_pairs): Don't read and then ignore all global vars.
16187         (lto_materialize_tree): Remove ix_p parameter, don't read index,
16188         don't pass it back, use lto_streamer_cache_append.
16189         (lto_register_var_decl_in_symtab): Use unsigned index.
16190         (lto_register_function_decl_in_symtab): Likewise.
16191         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
16192         index.
16193         (lto_get_builtin_tree): Don't read index, use
16194         lto_streamer_cache_append.
16195         (lto_read_tree): Adjust call to lto_materialize_tree.
16196
16197         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
16198         don't use function calls in arguments to MIN.
16199
16200         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
16201         twice.
16202
16203         * gimple.c (gimple_type_leader_entry): Mark deletable.
16204
16205 2011-04-03  Alan Modra  <amodra@gmail.com>
16206
16207         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
16208
16209 2011-04-03  Michael Matz  <matz@suse.de>
16210
16211         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
16212         an integer.
16213         * tree.h (tree_decl_non_common.vindex): Adjust comment.
16214
16215 2011-04-03  Michael Matz  <matz@suse.de>
16216
16217         * cgraphbuild.c (record_reference): Canonicalize constructor values.
16218         * gimple-fold.c (canonicalize_constructor_val): Accept being called
16219         without function context.
16220         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
16221         current_function_decl and cfun.
16222
16223 2011-04-03  Michael Matz  <matz@suse.de>
16224
16225         * tree.c (decl_init_priority_insert): Don't create entry for
16226         default priority.
16227         (decl_fini_priority_insert): Ditto.
16228         (fields_compatible_p, find_compatible_field): Remove.
16229         * tree.h (fields_compatible_p, find_compatible_field): Remove.
16230         * gimple.c (gimple_compare_field_offset): Adjust block comment.
16231
16232 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
16233
16234         * combine.c (try_combine): Remove useless local variable.
16235
16236 2011-04-03  Richard Guenther  <rguenther@suse.de>
16237             Ira Rosen  <ira.rosen@linaro.org>
16238
16239         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
16240         non-variable offsets and compare the remaining bases of the two
16241         accesses instead of looking for exact same data-ref.
16242
16243 2011-04-02  Kai Tietz  <ktietz@redhat.com>
16244
16245         PR target/48416
16246         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
16247
16248         * i386.c (ix86_is_msabi_thiscall): New helper function.
16249         (ix86_is_type_thiscall): New helper function.
16250         (ix86_comp_type_attributes): Handle thiscall for method-functions
16251         special.
16252         (init_cumulative_args): Likewise.
16253         (find_drap_reg): Likewise.
16254         (ix86_static_chain): Likewise.
16255         (x86_this_parameter): Likewise.
16256         (x86_output_mi_thunk): Likewise.
16257
16258 2011-04-01  Olivier Hainque  <hainque@adacore.com>
16259             Nicolas Setton  <setton@adacore.com>
16260             Eric Botcazou  <ebotcazou@adacore.com>
16261
16262         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
16263         (add_gnat_descriptive_type_attribute): New function.
16264         (gen_array_type_die): Call it.
16265         (gen_enumeration_type_die): Likewise.
16266         (gen_struct_or_union_type_die): Likewise.
16267         (modified_type_die): Likewise.
16268         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
16269         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
16270         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
16271
16272 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
16273
16274         PR bootstrap/48148
16275         * dwarf2out.c (resolve_addr): Don't call force_decl_die
16276         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
16277
16278         Revert:
16279         2011-03-17  Richard Guenther  <rguenther@suse.de>
16280
16281         PR bootstrap/48148
16282         * lto-cgraph.c (input_overwrite_node): Clear the abstract
16283         origin for decls in other ltrans units.
16284         (input_varpool_node): Likewise.
16285
16286 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
16287
16288         PR middle-end/48335
16289         * expr.c (expand_assignment): Handle all possibilities
16290         if TO_RTX is CONCAT.
16291         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
16292         (store_split_bit_field): If SUBREG_REG (op0) or
16293         op0 itself has smaller mode than word, return it
16294         for offset 0 and const0_rtx for out-of-bounds stores.
16295         If word is const0_rtx, skip it.
16296
16297 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
16298
16299         * config/h8300/h8300.c (print_operand_address): Rename to...
16300         (h8300_print_operand_address): ...this. Make static. Adjust comments.
16301         Call h8300_print_operand and h8300_print_operand_address instead of
16302         print_operand and print_operand_address. Declare.
16303         (print_operand): Renake to...
16304         (h8300_print_operand): ...this. Make static. Adjust comments.
16305         Call h8300_print_operand instead of print_operand. Declare.
16306         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
16307         (h8300_register_move_cost): Likewise.
16308         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
16309         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
16310         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
16311         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
16312         * config/h8300/h8300-protos.h (print_operand): Delete.
16313         (print_operand_address): Delete.
16314
16315 2011-04-01  Richard Henderson  <rth@redhat.com>
16316
16317         PR 48400
16318         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
16319         in strict mode before dwarf4.  Re-order tests to early out
16320         before switching sections.
16321
16322 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
16323
16324         * config/h8300/constraints.md: New file.
16325         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
16326         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
16327         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
16328         * config/h8300/predicates.md (bit_operand): Likewise.
16329         (incdec_operand): Use satisfies_constraint_M and
16330         satisfies_constraint_O.  Don't use C code block.
16331         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
16332         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
16333         (compute_mov_length): Use satisfies_constraint_G.
16334         (fix_bit_operand): Use satisfies_constraint_U.
16335         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
16336         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
16337         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
16338         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
16339         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
16340         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
16341         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16342         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
16343         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
16344         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
16345         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
16346         (EXTRA_MEMORY_CONSTRAINT): Delete.
16347
16348 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
16349             Michael Meissner  <meissner@linux.vnet.ibm.com>
16350
16351         PR target/48262
16352         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
16353         operands, as per the specifications.
16354
16355         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
16356         (vec_extract_evenv4sf): Ditto.
16357         (vec_extract_evenv8hi): Ditto.
16358         (vec_extract_evenv16qi): Ditto.
16359         (vec_extract_oddv4si): Ditto.
16360
16361 2011-03-31  Mark Wielaard  <mjw@redhat.com>
16362
16363         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
16364         high_pc attribute if the CU has no associated code. Only output
16365         DW_AT_entry_pc for CU if not generating strict dwarf and
16366         dwarf_version < 4.
16367
16368 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
16369
16370         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
16371         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
16372         out of ...
16373         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
16374         * final.c (final_start_function): Call the new function rather
16375         than using a NULL argument for dwarf2out_frame_debug.
16376
16377         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
16378         that contains the prologue.
16379
16380         * haifa-sched.c (queue_insn): New arg REASON.  All callers
16381         changed.  Print it in debugging output.
16382
16383         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
16384
16385         * sched-ebb.c (begin_schedule_ready): Remove second argument.
16386         Split most of the code into...
16387         (begin_move_insn): ... here.  New function.
16388         (ebb_sched_info): Add a pointer to it.
16389         * haifa-sched.c (scheduled_insns): New static variable.
16390         (sched_extend_ready_list): Allocate it.
16391         (schedule_block): Use it to record the order of scheduled insns.
16392         Perform RTL changes to move insns only after all scheduling
16393         decisions have been made.
16394         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
16395         begin_move_insn field.
16396         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
16397         * sched-int.h (struct haifa_sched_info): Remove second argument
16398         from begin_schedule_ready hook.  Add new member begin_move_insn.
16399         * sched-rgn.c (begin_schedule_ready): Remove second argument.
16400         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
16401
16402         * haifa-sched.c (prune_ready_list): New function, broken out of
16403         schedule_block.
16404         (schedule_block): Use it.
16405
16406 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16407
16408         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
16409
16410 2011-04-01  Kai Tietz  <ktietz@redhat.com>
16411
16412         * config.gcc (*-*-mingw*): Allow as option the
16413         posix threading model.
16414         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
16415         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
16416         definition.
16417         (CPP_SPEC): Add pthread/no-pthread handling.
16418         (LIB_SPEC): Likewise.
16419         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
16420         (LIB_SPEC): Likewise.
16421         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
16422         flag to pass -pthread option for shared libgcc build.
16423         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
16424         for shared libgcc build.
16425         * config/i386/t-mingw-pthread: New file.
16426         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
16427         New define to enable use of library pthread by default.
16428         * config/i386/mingw.opt (pthread): New driver option.
16429         (no-pthread): New driver option.
16430         * config/i386/cygming.opt: Make sure trailing empty line is retained.
16431         * config/i386/mingw-w64.opt: Likewise.
16432
16433 2011-04-01  Gary Funck  <gary@intrepid.com>
16434
16435         * c-decl.c (grokdeclarator): Fix formatting.
16436
16437 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
16438
16439         * expr.c (emit_block_move_via_movmem): Use n_generator_args
16440         instead of n_operands.
16441         (set_storage_via_setmem): Likewise.
16442         * optabs.c (maybe_gen_insn): Likewise.
16443         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
16444         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
16445         (mips_expand_builtin_direct): Likewise.
16446         * config/spu/spu.c (expand_builtin_args): Likewise.
16447
16448 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
16449
16450         * recog.h (insn_data_d): Add n_generator_args.
16451         * genoutput.c (data): Likewise.
16452         (output_insn_data): Print it.
16453         (max_opno, num_dups): Delete.
16454         (scan_operands): Just fill in "d->operand[...]".
16455         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
16456
16457 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
16458
16459         * gensupport.h (pattern_stats): New structure.
16460         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
16461         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
16462         (max_operand_1, max_operand_vec): Delete.
16463         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
16464
16465 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
16466
16467         * emit-rtl.c (emit_pattern_after_setloc): New function.
16468         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
16469         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
16470         (emit_pattern_after): New function.
16471         (emit_insn_after, emit_jump_insn_after): Call it.
16472         (emit_call_insn_after, emit_debug_insn_after): Likewise.
16473         (emit_pattern_before_setloc): New function.
16474         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
16475         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
16476         Likewise.
16477         (emit_pattern_before): New function.
16478         (emit_insn_before, emit_jump_insn_before): Call it.
16479         (emit_call_insn_before, emit_debug_insn_before): Likewise.
16480
16481 2011-03-31  Richard Henderson  <rth@redhat.com>
16482
16483         * dwarf2out.c (dw_separate_line_info_ref): Remove.
16484         (dw_separate_line_info_entry): Remove.
16485         (enum dw_line_info_opcode): New.
16486         (dw_line_info_entry): Use it.
16487         (dw_line_info_table, dw_line_info_table_p): New.
16488         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
16489         (line_info_table, line_info_label_num): Remove.
16490         (line_info_table_in_use): Remove.
16491         (separate_line_info_table): Remove.
16492         (separate_line_info_table_allocated): Remove.
16493         (separate_line_info_table_in_use): Remove.
16494         (LINE_INFO_TABLE_INCREMENT): Remove.
16495         (line_info_label_num): New.
16496         (cur_line_info_table): New.
16497         (text_section_line_info, cold_text_section_line_info): New.
16498         (separate_line_info): New.
16499         (SEPARATE_LINE_CODE_LABEL): Remove.
16500         (print_dwarf_line_table): Remove.
16501         (debug_dwarf): Don't dump it.
16502         (output_one_line_info_table): New.
16503         (output_line_info): Use it.
16504         (new_line_info_table): New.
16505         (set_cur_line_info_table): New.
16506         (dwarf2out_switch_text_section): Use it.
16507         (dwarf2out_begin_function): Likewise.
16508         (push_dw_line_info_entry): New.
16509         (dwarf2out_source_line): Rewrite for new line info tables.
16510         (dwarf2out_init): Remove dead initailizations.
16511
16512 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
16513
16514         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
16515         various flags.
16516         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
16517         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
16518         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
16519         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
16520         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
16521         * opt-functions.awk (flag_init, switch_bit_fields): New.
16522         (switch_flags): Don't handle flags moved to bit-fields.  Don't
16523         generate CL_MISSING_OK or CL_SAVE.
16524         * optc-gen.awk: Update to generate bit-field output as well as
16525         flags field.
16526         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
16527         bit-field instead of CL_REJECT_DRIVER flag.
16528         * opts-common.c (generate_canonical_option,
16529         decode_cmdline_option): Use bit-fields instead of CL_* flags.
16530         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
16531         instead of CL_REJECT_NEGATIVE flag.
16532         * toplev.c (print_switch_values): Use cl_report bit-field instead
16533         of CL_REPORT flag.
16534
16535 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
16536
16537         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
16538         a zero minimum index only if it is redundant.
16539
16540 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
16541
16542         PR rtl-optimization/48381
16543         * ira-color.c (assign_hard_reg): Use hard reg set intersection
16544         instead of ira_class_hard_reg_index for calculating conflicting
16545         hard registers.
16546
16547 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
16548
16549         * cprop.c: Clean up hash table building.
16550         (reg_avail_info): Remove.
16551         (oprs_available_p): Remove.
16552         (record_last_reg_set_info): Remove.
16553         (record_last_set_info): Remove.
16554         (reg_available_p): New function.
16555         (gcse_constant_p): Do not treat unfolded conditions as constants.
16556         (make_set_regs_unavailable): New function.
16557         (hash_scan_set): Simplify with new reg_available_p.
16558         (compute_hash_table_work): Traverse insns stream only once.
16559         Do not compute reg_avail_info. Traverse insns in reverse order.
16560         Record implicit sets after recording explicit sets from the block.
16561
16562 2011-03-31  Michael Matz  <matz@suse.de>
16563
16564         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
16565
16566 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
16567
16568         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
16569         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
16570         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16571         (h8300_mode_dependent_address_p): New function.
16572         (h8300_get_index): Make static.
16573
16574 2011-03-31  Jeff Law  <law@redhat.com>
16575
16576         * reload1.c (elimination_effects): Fix typo in recent change.
16577
16578         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
16579         typo potentially leading to null pointer dereference.
16580
16581         * caller-save.c (new_saved_hard_reg): Eliminate return value.
16582         (setup_save_areas): Corresponding changes to avoid useless
16583         assignments.
16584
16585         * jump.c (reversed_comparison_code_parts): Avoid successive return
16586         statements when REVERSE_CONDITION is defined.
16587
16588         * expr.c (expand_assignment): Avoid useless assignments.
16589         (expand_expr_real_1): Likewise.
16590         (expand_expr_real_2): Avoid useless statements.
16591
16592         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
16593
16594         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
16595
16596         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
16597         statements.
16598
16599         * stmt.c (expand_expr_stmt): Avoid useless assignment.
16600
16601 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
16602
16603         PR target/47109
16604         * doc/tm.texi.in (TARGET_VERSION): Remove.
16605         * doc/tm.texi: Regenerate.
16606         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
16607         * collect2.c (main): Don't use TARGET_VERSION.
16608         * mips-tdump.c (main): Don't use TARGET_VERSION.
16609         * mips-tfile.c (main): Don't use TARGET_VERSION.
16610         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
16611         * config/rs6000/vxworksae.h: Remove.
16612         * config/alpha/alpha.h (TARGET_VERSION): Remove.
16613         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
16614         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
16615         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
16616         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
16617         * config/arm/arm.h (TARGET_VERSION): Remove.
16618         * config/arm/coff.h (TARGET_VERSION): Remove.
16619         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
16620         * config/arm/elf.h (TARGET_VERSION): Remove.
16621         * config/arm/freebsd.h (TARGET_VERSION): Remove.
16622         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
16623         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
16624         * config/arm/pe.h (TARGET_VERSION): Remove.
16625         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
16626         * config/arm/semi.h (TARGET_VERSION): Remove.
16627         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
16628         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
16629         * config/arm/vxworks.h (TARGET_VERSION): Remove.
16630         * config/avr/avr.h (TARGET_VERSION): Remove.
16631         * config/bfin/bfin.h (TARGET_VERSION): Remove.
16632         * config/fr30/fr30.h (TARGET_VERSION): Remove.
16633         * config/frv/frv.h (TARGET_VERSION): Remove.
16634         * config/h8300/h8300.h (TARGET_VERSION): Remove.
16635         * config/i386/cygwin.h (TARGET_VERSION): Remove.
16636         * config/i386/darwin.h (TARGET_VERSION): Remove.
16637         * config/i386/darwin64.h (TARGET_VERSION): Remove.
16638         * config/i386/djgpp.h (TARGET_VERSION): Remove.
16639         * config/i386/freebsd.h (TARGET_VERSION): Remove.
16640         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
16641         * config/i386/gnu.h (TARGET_VERSION): Remove.
16642         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
16643         * config/i386/i386elf.h (TARGET_VERSION): Remove.
16644         * config/i386/linux.h (TARGET_VERSION): Remove.
16645         * config/i386/linux64.h (TARGET_VERSION): Remove.
16646         * config/i386/lynx.h (TARGET_VERSION): Remove.
16647         * config/i386/mingw32.h (TARGET_VERSION): Remove.
16648         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
16649         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
16650         * config/i386/netware.h (TARGET_VERSION): Remove.
16651         * config/i386/nto.h (TARGET_VERSION): Remove.
16652         * config/i386/openbsd.h (TARGET_VERSION): Remove.
16653         * config/i386/vxworks.h (TARGET_VERSION): Remove.
16654         * config/ia64/elf.h (TARGET_VERSION): Remove.
16655         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
16656         * config/ia64/hpux.h (TARGET_VERSION): Remove.
16657         * config/ia64/linux.h (TARGET_VERSION): Remove.
16658         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
16659         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
16660         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
16661         * config/lm32/lm32.h (TARGET_VERSION): Remove.
16662         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
16663         * config/m32c/m32c.h (TARGET_VERSION): Remove.
16664         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
16665         * config/m32r/m32r.h (TARGET_VERSION): Remove.
16666         * config/m68k/linux.h (TARGET_VERSION): Remove.
16667         * config/m68k/m68k.h (TARGET_VERSION): Remove.
16668         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
16669         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
16670         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
16671         * config/mep/mep.h (TARGET_VERSION): Remove.
16672         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
16673         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
16674         * config/mips/iris6.h (MACHINE_TYPE): Remove.
16675         * config/mips/linux.h (TARGET_VERSION): Remove.
16676         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
16677         * config/mips/vxworks.h (TARGET_VERSION): Remove.
16678         * config/mmix/mmix.h (TARGET_VERSION): Remove.
16679         * config/mn10300/linux.h (TARGET_VERSION): Remove.
16680         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
16681         * config/pa/pa.h (TARGET_VERSION): Remove.
16682         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
16683         * config/picochip/picochip.h (TARGET_VERSION): Remove.
16684         * config/rs6000/aix.h (TARGET_VERSION): Remove.
16685         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
16686         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
16687         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
16688         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
16689         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
16690         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
16691         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
16692         * config/rs6000/linux.h (TARGET_VERSION): Remove.
16693         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
16694         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
16695         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
16696         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
16697         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
16698         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
16699         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
16700         * config/s390/linux.h (TARGET_VERSION): Remove.
16701         * config/s390/s390.h (TARGET_VERSION): Remove.
16702         * config/s390/tpf.h (TARGET_VERSION): Remove.
16703         * config/score/score.h (TARGET_VERSION): Remove.
16704         * config/sh/linux.h (TARGET_VERSION): Remove.
16705         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
16706         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
16707         * config/sh/sh.h (TARGET_VERSION): Remove.
16708         * config/sh/sh64.h (TARGET_VERSION): Remove.
16709         * config/sh/superh.h (TARGET_VERSION): Remove.
16710         * config/sh/vxworks.h (TARGET_VERSION): Remove.
16711         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
16712         * config/sparc/linux.h (TARGET_VERSION): Remove.
16713         * config/sparc/linux64.h (TARGET_VERSION): Remove.
16714         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
16715         TARGET_NAME32, TARGET_NAME): Remove.
16716         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
16717         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
16718         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
16719         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
16720         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
16721         * config/spu/spu.h (TARGET_VERSION): Remove.
16722         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
16723         * config/v850/v850.h (TARGET_VERSION): Remove.
16724         * config/vax/linux.h (TARGET_VERSION): Remove.
16725         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
16726         * config/xtensa/elf.h (TARGET_VERSION): Remove.
16727         * config/xtensa/linux.h (TARGET_VERSION): Remove.
16728
16729 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
16730
16731         PR target/48142
16732         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
16733         frame-related from frame-unrelated adjustments to the stack pointer.
16734
16735 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
16736
16737         * common.opt (fdebug-types-section): Move earlier.
16738         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
16739
16740 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
16741
16742         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
16743         var.
16744
16745 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
16746
16747         * tree.h (CASE_CHAIN): Define.
16748         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
16749         (gimple_redirect_edge_and_branch): Likewise.
16750
16751 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
16752
16753         PR middle-end/48367
16754         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
16755         calculation.
16756
16757 2011-03-30  Jeff Law  <law@redhat.com>
16758
16759         * PR bootstrap/48371
16760         * reload1.c (reload): Fix botch in last change.
16761
16762         * reload.h (struct reload): Fix typo introduced in last change.
16763
16764 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
16765
16766         * config/arm/arm.opt (mhard-float, msoft-float): Mark
16767         Undocumented.  Remove help text.
16768         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
16769         -mhard-float.
16770
16771 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
16772
16773         * doc/options.texi (NegativeAlias): Document.
16774         (Alias): Mention NegativeAlias.
16775         * opt-functions.awk: Handle NegativeAlias.
16776         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
16777         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
16778         * opts.h (CL_NEGATIVE_ALIAS): Define.
16779         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
16780         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
16781         OPT_mspe_.
16782         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
16783         Alias entries.
16784         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
16785         mno-spe and mno-isel instead of mspe=no and -misel=no.
16786
16787 2011-03-29  Mark Wielaard  <mjw@redhat.com>
16788
16789         * common.opt (fdebug-types-section): New flag.
16790         * doc/invoke.texi: Document new -fno-debug-types-section flag.
16791         * dwarf2out.c (use_debug_types): New define.
16792         (struct die_struct): Mark die_id with GTY desc use_debug_types.
16793         (print_die): Guard output of type unit signatures using
16794         use_debug_types.
16795         (build_abbrev_table): Replace assert of dwarf_version >= 4
16796         with assert on use_debug_types.
16797         (size_of_die): Likewise.
16798         (unmark_dies): Likewise.
16799         (value_format): Decide AT_ref_external form on use_debug_types.
16800         (output_die): Replace dwarf_version version check guard with
16801         use_debug_types where appropriate.
16802         (modified_type_die): Likewise.
16803         (gen_reference_type_die): Likewise.
16804         (dwarf2out_start_source_file): Likewise.
16805         (dwarf2out_end_source_file): Likewise.
16806         (prune_unused_types_walk_attribs): Likewise.
16807         (dwarf2out_finish): Likewise.
16808
16809 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
16810
16811         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
16812
16813 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
16814
16815         PR rtl-optimization/48332
16816         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
16817         mode of input operand N and modeN to its actual mode.
16818
16819 2011-03-30  Jeff Law  <law@redhat.com>
16820
16821         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
16822         define accessor macro.
16823         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
16824         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
16825         (reg_equiv_init): Likewise.
16826         (reg_equivs_size): New variable.
16827         (reg_equiv_init_size): Remove.
16828         (allocate_initial_values): Move prototype to here from....
16829         * integrate.h (allocate_initial_values): Remove prototype.
16830         * integrate.c: Include reload.h.
16831         (allocate_initial_values): Corresponding changes.
16832         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
16833         (fix_reg_equiv_init, no_equiv): Corresponding changes.
16834         (update_equiv_regs): Corresponding changes.
16835         (ira): Corresponding changes.
16836         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
16837         (push_secondary_reload): Corresponding changes.
16838         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
16839         (make_memloc, find_reloads_address): Corresponding changes.
16840         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
16841         (find_reloads_address_1): Corresponding changes.
16842         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
16843         (refers_to_regno_for_reload_p): Corresponding changes.
16844         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
16845         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
16846         * reload1.c: Include ggc.h.
16847         (grow_reg_equivs): New function.
16848         (replace_pseudos_in, reload): Corresponding changes.
16849         (calculate_needs_all_insns, alter_regs): Corresponding changes.
16850         (eliminate_regs_1, elimination_effects): Corresponding changes.
16851         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
16852         (delete_output_reload): Likewise.
16853         * caller-save.c (mark_referenced_regs): Corresponding changes.
16854         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
16855         * frv/predicates.md (frv_load_operand): Corresponding changes.
16856         * microblaze/microblaze.c (double_memory_operand): Corresponding
16857         changes.
16858         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
16859         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
16860         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
16861         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
16862         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
16863         changes.
16864         * pa/pa.c (emit_move_sequence): Corresponding changes.
16865         * vax/vax.c (nonindexed_address_p): Corresponding changes.
16866
16867 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
16868
16869         PR target/47551
16870         * config/arm/arm.c (coproc_secondary_reload_class): Handle
16871         structure modes.  Don't check neon_vector_mem_operand for
16872         vector or structure modes.
16873
16874 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
16875             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16876
16877         PR target/43590
16878         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
16879         operand 1 and reshuffle the operands to match.
16880         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
16881
16882 2011-03-30  Christian Schüler  <cschueler@gmx.de>
16883
16884         PR driver/48208
16885         * config/c.opt (F): Added 'Driver' to -F option.
16886
16887         PR driver/48260
16888         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
16889           handler function.
16890         * config/darwin.opt: Added '-arch' option.
16891
16892 2011-03-30  Nick Clifton  <nickc@redhat.com>
16893
16894         * config/rx/rx.md: Add peepholes and patterns to combine
16895         extending loads and simple arithmetic instructions.
16896         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
16897         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
16898         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
16899         modes to use pre-decrement and post-increment addressing.
16900         (rx_is_restricted_memory_address): Add range checking of REG+INT
16901         addresses.
16902         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
16903         (rx_memory_move_cost): Adjust cost of stores.
16904         (rx_adjust_insn_length): New function.
16905
16906 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
16907
16908         PR c/48305
16909         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
16910         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
16911         matching arg00/arg01 types.
16912
16913 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
16914
16915         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
16916         last_location to UNKNOWN_LOCATION.
16917
16918 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
16919
16920         PR target/48349
16921         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
16922         FLOAT_SSE_REGS.
16923
16924 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
16925             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16926
16927         PR bootstrap/48337
16928         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
16929         Init(PROCESSOR_V7).
16930         (sparc_cpu): Likewise.
16931         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
16932         PROCESSOR_V7.
16933
16934 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
16935
16936         PR target/48336
16937         PR middle-end/48342
16938         PR rtl-optimization/48345
16939         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
16940         hard regs for given mode from profitable regs when doing secondary
16941         allocation.
16942
16943 2011-03-29  Jeff Law  <law@redhat.com>
16944
16945         PR bootstrap/48327
16946         * tree-ssa-threadupdate.c (struct redirection_data): Remove
16947         do_not_duplicate field.
16948         (lookup_redirection_data): Corresponding changes.
16949         (create_duplicates): Always create a template block.
16950         (redirect_edges): Remove code which reused the original block
16951         when it was going to become unreachable code.
16952         (thread_block): Don't set do_not_duplicate field.
16953
16954 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
16955
16956         * lto-opts.c (register_user_option_p, lto_register_user_option):
16957         Make type argument unsigned.
16958         * lto-streamer.h (lto_register_user_option): Make type argument
16959         unsigned.
16960         * opth-gen.awk: Make CL_* macros unsigned.
16961         * opts-common.c (find_opt): Make lang_mask argument unsigned.
16962         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
16963         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
16964         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
16965         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
16966         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
16967         (find_opt): Make lang_mask argument unsigned.
16968
16969 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
16970
16971         PR rtl-optimization/48331
16972         PR rtl-optimization/48334
16973         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
16974         for any used algorithm.
16975
16976 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
16977
16978         * ira-conflicts.c (build_object_conflicts): Add unused attribute
16979         to parent_max.
16980
16981 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
16982
16983         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
16984         (alpha_option_override): Don't set alpha_sr_alias_set.
16985         (emit_frame_store_1): Use gen_frame_mem rather than calling
16986         set_mem_alias_set.
16987         (alpha_expand_epilogue): Ditto.
16988
16989 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
16990
16991         PR tree-optimization/48290
16992         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
16993         vectorization, check that relevant phis in the basic block after
16994         the inner loop are really inner loop's exit phis.
16995
16996 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
16997
16998         PR debug/48190
16999         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
17000         (cached_dw_loc_list_def): New structure.
17001         (cached_dw_loc_list): New typedef.
17002         (cached_dw_loc_list_table): New variable.
17003         (cached_dw_loc_list_table_hash): New function.
17004         (cached_dw_loc_list_table_eq): Likewise.
17005         (add_location_or_const_value_attribute): Take a bool cache_p.
17006         Cache the list when the parameter is true.
17007         (gen_formal_parameter_die): Update caller.
17008         (gen_variable_die): Likewise.
17009         (dwarf2out_finish): Likewise.
17010         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
17011         while generating debug info for the decl.
17012         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
17013         (dwarf2out_init): Initialize cached_dw_loc_list_table.
17014         (resolve_addr): Cache the result of resolving a chain of
17015         location lists.
17016
17017 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
17018
17019         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
17020         conflict object hard regset nodes have intersecting hard reg sets.
17021
17022         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
17023         after regstat_init_n_sets_and_refs.
17024
17025         * ira.c: Add more comments at the top.
17026         (setup_stack_reg_pressure_class, setup_pressure_classes):
17027         Add comments how we compute the register pressure classes.
17028         (setup_allocno_and_important_classes): Add more comments.
17029         (setup_class_translate_array, reorder_important_classes)
17030         (setup_reg_class_relations): Add comments.
17031
17032         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
17033         start of the file.
17034
17035         * ira-color.c: Add 2011 to the Copyright line.
17036         (assign_hard_reg):  Add more comments.
17037         (improve_allocation): Ditto.
17038
17039         * ira-costs.c: Add 2011 to the Copyright line.
17040         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
17041         comments.
17042         (setup_regno_cost_classes_by_mode): Ditto.
17043
17044         Initial patches from ira-improv branch:
17045
17046         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
17047
17048         * ira-build.c (ira_create_object): Remove initialization of
17049         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
17050         (ira_create_allocno): Remove initialization of
17051         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
17052         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
17053         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
17054         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
17055         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
17056         Initialize ALLOCNO_ADD_DATA.
17057         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
17058         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
17059         ALLOCNO_REG.
17060         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
17061         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
17062
17063         * ira.c (ira_reallocate): Remove.
17064         (setup_pressure_classes): Call
17065         ira_init_register_move_cost_if_necessary.  Use
17066         ira_register_move_cost instead of ira_get_register_move_cost.
17067         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
17068         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
17069
17070         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
17071         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
17072         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
17073         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
17074         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
17075         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
17076         Fix formatting.
17077         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
17078         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
17079         (struct allocno_color_data): New.
17080         (allocno_color_data_t): New typedef.
17081         (allocno_color_data): New definition.
17082         (ALLOCNO_COLOR_DATA): New macro.
17083         (struct object_color_data): New.
17084         (object_color_data_t): New typedef.
17085         (object_color_data): New definition.
17086         (OBJECT_COLOR_DATA): New macro.
17087         (update_copy_costs, calculate_allocno_spill_cost): Call
17088         ira_init_register_move_cost_if_necessary.  Use
17089         ira_register_move_cost instead of ira_get_register_move_cost.
17090         (move_spill_restore, update_curr_costs): Ditto.
17091         (allocno_spill_priority): Make it inline.
17092         (color_pass): Allocate and free allocno_color_dat and object_color_data.
17093         (struct coalesce_data, coalesce_data_t): New.
17094         (allocno_coalesce_data): New definition.
17095         (ALLOCNO_COALESCE_DATA): New macro.
17096         (merge_allocnos, coalesced_allocno_conflict_p): Use
17097         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
17098         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
17099         (coalesce_allocnos): Ditto.
17100         (setup_coalesced_allocno_costs_and_nums): Ditto.
17101         (collect_spilled_coalesced_allocnos): Ditto.
17102         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
17103         (setup_slot_coalesced_allocno_live_ranges): Ditto.
17104         (coalesce_spill_slots): Ditto.
17105         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
17106         free allocno_coalesce_data.
17107
17108         * ira-conflicts.c: Fix formatting.
17109         (process_regs_for_copy): Call
17110         ira_init_register_move_cost_if_necessary.  Use
17111         ira_register_move_cost instead of ira_get_register_move_cost.
17112         (build_object_conflicts): Optimize.
17113
17114         * ira-costs.c (record_reg_classes): Optimize.  Call
17115         ira_init_register_move_cost_if_necessary.  Use
17116         ira_register_move_cost, ira_may_move_in_cost, and
17117         ira_may_move_out_cost instead of ira_get_register_move_cost and
17118         ira_get_may_move_cost.
17119         (record_address_regs): Ditto.
17120         (scan_one_insn): Optimize.
17121         (find_costs_and_classes): Optimize.
17122         (process_bb_node_for_hard_reg_moves): Call
17123         ira_init_register_move_cost_if_necessary.  Use
17124         ira_register_move_cost instead of ira_get_register_move_cost.
17125
17126         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
17127         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
17128         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
17129         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
17130         definitions.
17131         (ira_initiate_emit_data, ira_finish_emit_data)
17132         (create_new_allocno): New functions.
17133         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
17134         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
17135         Use ira_register_move_cost instead of ira_get_register_move_cost.
17136
17137         * ira-int.h: Fix some comments.
17138         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
17139         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
17140         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
17141         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
17142         add_data.
17143         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
17144         bitfield after mode.  Make hard_regno a short int.  Make
17145         hard_regno short.  Remove first_coalesced_allocno and
17146         next_coalesced_allocno.  Move mem_optimized_dest_p,
17147         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
17148         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
17149         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
17150         temp, colorable_p.  Add new member add_data.
17151         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
17152         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
17153         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
17154         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
17155         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
17156         (ALLOCNO_ADD_DATA): New macro.
17157         (ira_emit_data_t): New typedef.
17158         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
17159         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
17160         from struct ira_allocno.
17161         (ALLOCNO_EMIT_DATA): New macro.
17162         (ira_allocno_emit_data, allocno_emit_reg): New.
17163         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
17164         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
17165         (OBJECT_ADD_DATA): New macro.
17166         (ira_reallocate): Remove.
17167         (ira_initiate_emit_data, ira_finish_emit_data): New.
17168         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
17169         (ira_init_register_move_cost_if_necessary): New.
17170         (ira_object_conflict_iter_next): Merge into
17171         ira_object_conflict_iter_cond.
17172         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
17173
17174         * ira-live.c (process_single_reg_class_operands): Call
17175         ira_init_register_move_cost_if_necessary.  Use
17176         ira_register_move_cost instead of ira_get_register_move_cost.
17177
17178         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
17179
17180         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
17181
17182         * ira-costs.c: Fix formatting.
17183         (cost_classes, cost_classes_num): Remove.
17184         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
17185         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
17186         (cost_classes_del, cost_classes_htab): New.
17187         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
17188         (initiate_regno_cost_classes, setup_cost_classes): New.
17189         (setup_regno_cost_classes_by_aclass): New.
17190         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
17191         (record_reg_classes): Use regno_cost_classes instead of
17192         cost_classes.  Move checking opposite operand up.
17193         (record_address_regs): Use regno_cost_classes
17194         instead of cost_classes.
17195         (scan_one_insn): Ditto.  Use always general register.
17196         (print_allocno_costs): Use regno_cost_classes instead of
17197         cost_classes.
17198         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
17199         (find_costs_and_classes): Set up cost classes for each registers.
17200         Use also their mode for this.  Use regno_cost_classes instead of
17201         cost_classes.
17202         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
17203         cost_classes.
17204         (free_ira_costs, ira_init_costs): Don't use cost_classes.
17205         (ira_costs, ira_set_pseudo_classes): Call
17206         initiate_regno_cost_classes and finish_regno_cost_classes.
17207
17208         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
17209
17210         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
17211
17212         * target.def (ira_cover_classes): Remove.
17213
17214         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
17215
17216         * doc/tm.texi.in: Ditto.
17217
17218         * ira-conflicts.c: Remove mentioning cover classes from the file.
17219         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
17220         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
17221
17222         * targhooks.c (default_ira_cover_classes): Remove.
17223
17224         * targhooks.h (default_ira_cover_classes): Ditto.
17225
17226         * haifa-sched.c: Remove mentioning cover classes from the file.
17227         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
17228         ira_pressure_classes and ira_pressure_classes_num instead of
17229         ira_reg_class_cover_size and ira_reg_class_cover.  Use
17230         sched_regno_pressure_class instead of sched_regno_cover_class.
17231         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
17232         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
17233
17234         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
17235         classes from the file.
17236         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
17237         (struct object_hard_regs, struct object_hard_regs_node): New.
17238         (struct ira_object): New members profitable_hard_regs,
17239         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
17240         (struct ira_allocno): Rename cover_class to aclass.  Rename
17241         cover_class_cost and updated_cover_class_cost to class_cost and
17242         updated_class_cost.  Remove splay_removed_p and
17243         left_conflict_size.  Add new members colorable_p.
17244         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
17245         (ALLOCNO_COLORABLE_P): New macro.
17246         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
17247         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
17248         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
17249         (OBJECT_...): Rename parameter C to O.
17250         (OBJECT_PROFITABLE_HARD_REGS): New macro.
17251         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
17252         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
17253         (struct target_ira_int): New members x_ira_max_memory_move_cost,
17254         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
17255         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
17256         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
17257         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
17258         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
17259         x_ira_reg_class_subunion.
17260         (ira_max_memory_move_cost, ira_max_register_move_cost)
17261         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
17262         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
17263         (ira_important_class_nums, ira_reg_class_superunion): New macros.
17264         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
17265         (ira_reg_class_union): Rename to ira_reg_class_subunion.
17266         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
17267         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
17268         (ira_tune_allocno_costs_and_cover_classes): Rename to
17269         ira_tune_allocno_costs.
17270         (ira_debug_hard_regs_forest): New.
17271         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
17272         (ira_object_conflict_iter_next): Fix comments.
17273         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
17274         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
17275         cover_class to aclass.
17276         (ira_allocate_and_accumulate_costs): Ditto.
17277         (ira_allocate_and_set_or_copy_costs): Ditto.
17278
17279         * opts.c (decode_options): Remove ira_cover_class check.
17280
17281         * ira-color.c: Remove mentioning cover classes from the file.  Use
17282         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
17283         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
17284         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
17285         (splay-tree.h): Remove include.
17286         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
17287         before copy_freq_compare_func.
17288         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
17289         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
17290         New definitions.
17291         (hard_regs_roots, hard_regs_node_vec): Ditto.
17292         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
17293         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
17294         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
17295         (create_new_object_hard_regs_node): Ditto.
17296         (add_new_object_hard_regs_node_to_forest): Ditto.
17297         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
17298         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
17299         Ditto.
17300         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
17301         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
17302         (remove_unused_object_hard_regs_nodes): Ditto.
17303         (enumerate_object_hard_regs_nodes): Ditto.
17304         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
17305         (object_hard_regs_subnode_t): Ditto.
17306         (struct object_hard_regs_subnode): Ditto.
17307         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
17308         (setup_object_hard_regs_subnode_index): Ditto.
17309         (get_object_hard_regs_subnodes_num): Ditto.
17310         (form_object_hard_regs_nodes_forest): Ditto.
17311         (finish_object_hard_regs_nodes_tree): Ditto.
17312         (finish_object_hard_regs_nodes_forest): Ditto.
17313         (allocnos_have_intersected_live_ranges_p): Rename to
17314         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
17315         (pseudos_have_intersected_live_ranges_p): Rename to
17316         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
17317         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
17318         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
17319         (update_copy_costs): Remove assert.  Skip cost update if the hard
17320         reg does not belong the class.
17321         (assign_hard_reg): Process only profitable hard regs.
17322         (uncolorable_allocnos_num): Make it scalar.
17323         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
17324         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
17325         and ira_reg_class_max_nregs.
17326         (bucket_allocno_compare_func): Check frequency first.
17327         (sort_bucket): Add compare function as a parameter.
17328         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
17329         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
17330         (push_allocno_to_stack): Rewrite for checking new allocno
17331         colorability.
17332         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
17333         (push_only_colorable): Pass new parameter to sort_bucket.
17334         (push_allocno_to_spill): Remove.
17335         (allocno_spill_priority_compare): Make it inline and rewrite.
17336         (splay_tree_allocate, splay_tree_free): Remove.
17337         (allocno_spill_sort_compare): New function.
17338         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
17339         build and use splay tree.  Choose first allocno in uncolorable
17340         allocno bucket to spill.  Remove setting spill cost.
17341         (all_conflicting_hard_regs): Remove.
17342         (setup_allocno_available_regs_num): Check only profitable hard
17343         regs.  Print info about hard regs nodes.
17344         (setup_allocno_left_conflicts_size): Remove.
17345         (put_allocno_into_bucket): Don't call
17346         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
17347         (improve_allocation): New.
17348         (color_allocnos): Call setup_profitable_hard_regs,
17349         form_object_hard_regs_nodes_forest, improve_allocation,
17350         finish_object_hard_regs_nodes_forest.  Setup spill cost.
17351         (print_loop_title): Use pressure classes.
17352         (color_allocnso): Ditto.
17353         (do_coloring): Remove allocation and freeing splay_tree_node_pool
17354         and allocnos_for_spilling.
17355         (ira_sort_regnos_for_alter_reg): Don't setup members
17356         {first,next}_coalesced_allocno.
17357         (color): Remove allocating and freeing removed_splay_allocno_vec.
17358         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
17359         prohibited_class_mode_regs.
17360
17361         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
17362         formatting.
17363         (update_allocno_pressure_excess_length): Use pressure classes.
17364         (inc_register_pressure, dec_register_pressure): Check for pressure
17365         class.
17366         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
17367         pressure class.  Use ira_reg_class_nregs instead of
17368         ira_reg_class_max_nregs.
17369         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
17370         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
17371         (single_reg_class): Use ira_reg_class_nregs instead of
17372         ira_reg_class_max_nregs.
17373         (process_bb_node_lives): Use pressure classes.
17374
17375         * ira-emit.c: Remove mentioning cover classes from the file.  Use
17376         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
17377         (change_loop): Use pressure classes.
17378         (modify_move_list): Call ira_set_allocno_class instead of
17379         ira_set_allocno_cover_class.
17380
17381         * ira-build.c: Remove mentioning cover classes from the file.  Use
17382         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
17383         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
17384         ALLOCNO_UPDATED_CLASS_COST instead of
17385         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
17386         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
17387         (ira_create_allocno): Remove initialization of
17388         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
17389         ALLOCNO_COLORABLE_P.
17390         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
17391         Update conflict regs for the objects.
17392         (create_cap_allocno): Remove assert.  Don't propagate
17393         ALLOCNO_AVAILABLE_REGS_NUM.
17394         (ira_free_allocno_costs): New function.
17395         (finish_allocno): Change a part of code into call of
17396         ira_free_allocno_costs.
17397         (low_pressure_loop_node_p): Use pressure classes.
17398         (object_range_compare_func): Don't compare classes.
17399         (setup_min_max_conflict_allocno_ids): Ditto.
17400
17401         * loop-invariant.c: Remove mentioning cover classes from the file.
17402         Use ira_pressure_classes and ira_pressure_classes_num instead of
17403         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
17404         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
17405         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
17406         Use reg_allocno_class instead of reg_cover_class.
17407         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
17408         STACK_REG_COVER_CLASS.
17409         (get_regno_cover_class): Rename to get_regno_pressure_class.
17410         (move_loop_invariants): Initialize and finalize regstat.
17411
17412         * ira.c: Remove mentioning cover classes from the file.  Add
17413         comments about coloring without cover classes.  Use ALLOCNO_CLASS
17414         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
17415         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
17416         setup_class_subset_and_memory_move_costs.
17417         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
17418         (setup_cover_and_important_classes): Rename to
17419         setup_allocno_and_important_classes.
17420         (setup_class_translate_array): New.
17421         (setup_class_translate): Call it for allocno and pressure classes.
17422         (cover_class_order): Rename to allocno_class_order.
17423         (comp_reg_classes_func): Use ira_allocno_class_translate instead
17424         of ira_class_translate.
17425         (reorder_important_classes): Set up ira_important_class_nums.
17426         (setup_reg_class_relations): Set up ira_reg_class_superunion.
17427         (print_class_cover): Rename to print_classes.  Add parameter.
17428         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
17429         Print pressure classes too.
17430         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
17431         setup_reg_subclasses.
17432         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
17433         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
17434         (setup_prohibited_class_mode_regs): Use
17435         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
17436         (clarify_prohibited_class_mode_regs): New function.
17437         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
17438         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
17439         (ira_init_once): Initialize them.
17440         (free_register_move_costs): Process them.
17441         (ira_init): Move calls of find_reg_classes and
17442         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
17443         Call clarify_prohibited_class_mode_regs.
17444         (ira_no_alloc_reg): Remove.
17445         (too_high_register_pressure_p): Use pressure classes.
17446
17447         * sched-deps.c: Remove mentioning cover classes from the file.
17448         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
17449         ira_pressure_classes and ira_pressure_classes_num instead of
17450         ira_reg_class_cover_size and ira_reg_class_cover.
17451         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
17452         sched_regno_pressure_class instead of sched_regno_cover_class.
17453         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
17454         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
17455
17456         * ira.h: Add 2010 to Copyright.
17457         (ira_no_alloc_reg): Remove external.
17458         (struct target_ira): Rename x_ira_hard_regno_cover_class,
17459         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
17460         x_ira_class_translate to x_ira_hard_regno_allocno_class,
17461         x_ira_allocno_classes_num, x_ira_allocno_classes, and
17462         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
17463         x_ira_pressure_classes, x_ira_pressure_class_translate, and
17464         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
17465         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
17466         x_ira_no_alloc_regs.
17467         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
17468         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
17469         ira_allocno_classes_num and ira_allocno_classes.
17470         (ira_class_translate): Rename to ira_allocno_class_translate.
17471         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
17472         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
17473         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
17474         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
17475         (ira_no_alloc_regs): New.
17476
17477         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
17478         classes from the file.  Use ALLOCNO_CLASS instead of
17479         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
17480         ALLOCNO_COVER_CLASS_COST.
17481         (regno_cover_class): Rename to regno_aclass.
17482         (record_reg_classes): Use ira_reg_class_subunion instead of
17483         ira_reg_class_union.
17484         (record_address_regs): Check overflow.
17485         (scan_one_insn): Ditto.
17486         (print_allocno_costs): Print total mem cost fore regional allocation.
17487         (print_pseudo_costs): Use REG_N_REFS.
17488         (find_costs_and_classes): Use classes intersected with them on the
17489         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
17490         ira_reg_class_union.  Use ira_allocno_class_translate and
17491         regno_aclass instead of ira_class_translate and regno_cover_class.
17492         Modify code for finding regno_aclass.  Setup preferred classes for
17493         the next pass.
17494         (setup_allocno_cover_class_and_costs): Rename to
17495         setup_allocno_class_and_costs.  Use regno_aclass instead of
17496         regno_cover_class.  Use ira_set_allocno_class instead of
17497         ira_set_allocno_cover_class.
17498         (init_costs, finish_costs): Use regno_aclass instead of
17499         regno_cover_class.
17500         (ira_costs): Use setup_allocno_class_and_costs instead of
17501         setup_allocno_cover_class_and_costs.
17502         (ira_tune_allocno_costs_and_cover_classes): Rename to
17503         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
17504         by processing objects.  Use ira_reg_class_max_nregs instead of
17505         ira_reg_class_nregs.
17506
17507         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
17508
17509         * sched-int.h: Remove mentioning cover classes from the file.
17510         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
17511
17512         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
17513         classes from the file.
17514         (struct reg_pref): Rename coverclass into allocnoclass.
17515         (reg_cover_class): Rename to reg_allocno_class.
17516
17517         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
17518
17519         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
17520
17521         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
17522
17523         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
17524
17525         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
17526
17527         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
17528
17529         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
17530
17531         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
17532
17533         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
17534
17535         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
17536
17537         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
17538         (i386_ira_cover_classes): Ditto.
17539
17540         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
17541
17542         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
17543
17544         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
17545
17546         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
17547
17548         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
17549
17550         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
17551
17552         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
17553         (mips_ira_cover_classes): Ditto.
17554
17555         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
17556
17557         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
17558
17559         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
17560
17561         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
17562
17563         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
17564
17565         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
17566         (IRA_COVER_CLASSES_VSX): Ditto.
17567
17568         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
17569         (rs6000_ira_cover_classes): Ditto.
17570
17571         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
17572
17573         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
17574
17575         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
17576
17577         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
17578
17579         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
17580
17581         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
17582
17583         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
17584
17585         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
17586
17587         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
17588
17589         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
17590
17591 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
17592
17593         PR debug/48253
17594         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
17595         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
17596         dw_fde_unlikely_section_end_label, cold_in_std_section,
17597         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
17598         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
17599         fields.
17600         (output_fde): Use dw_fde_second_{begin,end} if second is
17601         true, otherwise dw_fde_{begin,end}.
17602         (output_call_frame_info): Test dw_fde_second_begin != NULL
17603         instead of dw_fde_switched_sections.
17604         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
17605         fields, initialize new fields.  Initialize in_std_section
17606         unconditionally from the first partition.
17607         (dwarf2out_end_epilogue): Don't override dw_fde_end when
17608         dw_fde_second_begin is non-NULL.
17609         (dwarf2out_switch_text_section): Stop initializing removed
17610         dw_fde_struct fields, initialize new fields, initialize
17611         also dw_fde_end here.  Set dw_fde_switch_cfi even when
17612         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
17613         (struct var_loc_list_def): Add last_before_switch field.
17614         (arange_table, arange_table_allocated, arange_table_in_use,
17615         ARANGE_TABLE_INCREMENT, add_arange): Removed.
17616         (size_of_aranges): Count !in_std_section and !second_in_std_section
17617         hunks in fdes, instead of looking at arange_table_in_use.
17618         (output_aranges): Add aranges_length argument, don't call
17619         size_of_aranges here.  Instead of using aranges_table*
17620         emit ranges for fdes when !in_std_section resp.
17621         !second_in_std_section.
17622         (dw_loc_list): Break ranges crossing section switch.
17623         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
17624         use dw_fde_second_end instead of dw_fde_end as end of last range.
17625         (gen_subprogram_die): Don't call add_arange.  Use
17626         dw_fde_{begin,end} for first partition and if switched
17627         section dw_fde_second_{begin,end} for the second.
17628         (var_location_switch_text_section_1,
17629         var_location_switch_text_section): New functions.
17630         (dwarf2out_begin_function): Initialize cold_text_section even
17631         when function_section () isn't text_section.
17632         (prune_unused_types): Don't walk arange_table.
17633         (dwarf2out_finish): Don't needlessly test
17634         flag_reorder_blocks_and_partition when testing cold_text_section_used.
17635         If info_section_emitted, call size_of_aranges and if it indicates
17636         non-empty .debug_aranges, call output_aranges with the computed
17637         size.  Stop using removed dw_fde_struct fields, use
17638         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
17639         for second.
17640
17641         PR debug/48203
17642         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
17643         create ENTRY_VALUE if incoming or address of incoming's MEM
17644         is a hard REG.
17645         * dwarf2out.c (mem_loc_descriptor): Don't emit
17646         DW_OP_GNU_entry_value of DW_OP_fbreg.
17647         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
17648         on ENTRY_VALUE is able to find the canonical parameter VALUE.
17649         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
17650         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
17651         ENTRY_VALUE_EXPs.
17652         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
17653         is a REG_P or MEM_P with REG_P address, compute hash directly
17654         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
17655         (preserve_only_constants): Don't clear VALUES forwaring
17656         ENTRY_VALUE to some other VALUE.
17657
17658 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
17659
17660         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
17661         instead of GEN_INT.
17662
17663 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
17664
17665         * cfgexpand.c (expand_gimple_cond): Always set the source location and
17666         block before expanding the statement.
17667         (expand_gimple_stmt_1): Likewise.  Set them here...
17668         (expand_gimple_stmt): ...and not here.  Tidy.
17669         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
17670         unknown.
17671
17672 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
17673
17674         * Makefile.in: New rule for cprop.o.
17675         * gcse.c: Move constant/copy propagation to cprop.c.
17676         (compute_local_properties): Only handle expression tables.
17677         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
17678         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
17679         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
17680         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
17681         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
17682         compute_cprop_data, find_used_regs, try_replace_reg,
17683         find_avail_set, cprop_jump, constprop_register, cprop_insn,
17684         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
17685         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
17686         find_bypass_set, reg_killed_on_edge, bypass_block,
17687         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
17688         execute_rtl_cprop, pass_rtl_cprop): Move to...
17689         * cprop.c: ...here.  New file, constant/copy propagation for RTL
17690         moved from gcse.c to here with minor cleanups in duplicated code.
17691
17692 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
17693
17694         * config/i386/i386.c (flag_opts): Fix a typo in
17695         -mavx256-split-unaligned-store.
17696
17697 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
17698
17699         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
17700         LIBCALL_VALUE): Remove macros.
17701         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17702         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17703         (h8300_function_value, h8300_libcall_value,
17704         h8300_function_value_regno_p): New functions.
17705
17706 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
17707
17708         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
17709
17710 2011-03-28  Jeff Law  <law@redhat.com>
17711
17712         * tree-ssa-threadupdate.c (redirect_edges): Call
17713         create_edge_and_update_destination_phis as needed.
17714         (create_edge_and_update_destination_phis): Accept new BB argument.
17715         All callers updated.
17716         (thread_block): Do not update the profile when threading around
17717         intermediate blocks.
17718         (thread_single_edge): Likewise.
17719         (determine_bb_domination_status): If BB is not a successor of the
17720         loop header, return NONDOMINATING.
17721         (register_jump_thread): Note when we register a jump thread around
17722         an intermediate block.
17723         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
17724         (thread_across_edge): Use it.
17725
17726 2011-03-28  Tristan Gingold  <gingold@adacore.com>
17727
17728         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
17729         when for_return is 2.
17730
17731 2011-03-28  Jeff Law  <law@redhat.com>
17732
17733         * var-tracking.c (canonicalize_values_mark): Delete unused
17734         lhs assignment.
17735         (canonicalize_values_star, set_variable_part): Likewise.
17736         (clobber_variable_part, delete_variable_part): Likewise.
17737
17738 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
17739
17740         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
17741
17742 2011-03-28  Martin Jambor  <mjambor@suse.cz>
17743
17744         * tree-inline.c (expand_call_inline): Do not check that destination
17745         node is analyzed.
17746         (optimize_inline_calls): Assert that destination node is analyzed.
17747         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
17748         not call tree_lowering_passes.
17749         * cgraph.h (cgraph_analyze_function): Declare.
17750         * cgraphunit.c (cgraph_analyze_function): Make public.
17751
17752 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
17753
17754         * config/sparc/sparc-opts.h: New.
17755         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
17756         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
17757         (sparc_option_override): Store processor_type enumeration rather
17758         than string in cpu_default.  Remove name and enumeration from
17759         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
17760         without using sparc_select.  Use target_flags_explicit instead of
17761         fpu_option_set.
17762         * config/sparc/sparc.h (enum processor_type): Move to
17763         sparc-opts.h.
17764         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
17765         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
17766         HeaderInclude entry.
17767         (mcpu=, mtune=): Use Var and Enum.
17768         (sparc_processor_type): New Enum and EnumValue entries.
17769
17770 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17771             Iain Sandoe  <iains@gcc.gnu.org>
17772
17773         PR target/48245
17774         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
17775
17776 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
17777
17778         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
17779         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
17780         Insert new statements at it in lieu of STMT.
17781         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
17782         * tree-vect-stmts.c (vectorizable_store): Likewise.
17783         (vectorizable_load): Likewise.
17784
17785 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
17786
17787         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
17788         (divtf3): Ditto.
17789         (multf3): Ditto.
17790         (subtf3): Ditto.
17791
17792 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17793
17794         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
17795         unaligned 256bit load/store.
17796         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
17797         (*avx_movdqu<avxmodesuffix>): Likewise.
17798
17799 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17800
17801         PR target/48288
17802         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
17803         * config/pa/pa.md (iordi3): Use new predicate in expander.
17804         (iorsi3): Likewise.
17805
17806 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
17807
17808         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
17809         FUNCTION_VALUE_REGNO_P): Remove macros.
17810         * config/mips/mips-protos.h (mips_function_value): Remove.
17811         * config/mips/mips.c (mips_function_value): Rename to...
17812         (mips_function_value_1): ... this. Make static.  Handle receiving
17813         the function type in 'fn_decl_or_type' argument.
17814         (mips_function_value, mips_libcall_value,
17815         mips_function_value_regno_p): New function.
17816         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17817         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17818
17819 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17820
17821         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
17822         and -mavx256-split-unaligned-store.
17823         (ix86_option_override_internal): Split 32-byte AVX unaligned
17824         load/store by default.
17825         (ix86_avx256_split_vector_move_misalign): New.
17826         (ix86_expand_vector_move_misalign): Use it.
17827
17828         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
17829         -mavx256-split-unaligned-store.
17830
17831         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
17832         256bit load/store.  Generate unaligned store on misaligned memory
17833         operand.
17834         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
17835         256bit load/store.
17836         (*avx_movdqu<avxmodesuffix>): Likewise.
17837
17838         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
17839         -mavx256-split-unaligned-store.
17840
17841 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
17842
17843         PR target/38598
17844         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
17845         Update commentary.
17846
17847 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
17848
17849         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
17850         opno arguments with an expand_operand.  Use create_input_operand.
17851         (mips_prepare_builtin_target): Delete.
17852         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
17853         functions.
17854         (mips_expand_builtin_direct): Use create_output_operand and
17855         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
17856         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
17857         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
17858
17859 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
17860
17861         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
17862         function.
17863         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
17864
17865 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
17866
17867         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
17868         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
17869         basic blocks and call commit_edge_insertions directly.
17870         (fixup_abnormal_edges): Move from here to...
17871         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
17872         on the edges and return whether some have actually been inserted.
17873         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
17874         compensation code.
17875
17876 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
17877
17878         PR rtl-optimization/48144
17879         * sel-sched-ir.c (merge_history_vect): Factor out from ...
17880         (merge_expr_data): ... here.
17881         (av_set_intersect): Rename to av_set_code_motion_filter.
17882         Update all callers.  Call merge_history_vect when an expression
17883         is found in both sets.
17884         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
17885
17886 2011-03-26  Alan Modra  <amodra@gmail.com>
17887
17888         * config/rs6000/predicates.md (word_offset_memref_op): Handle
17889         cmodel medium addresses.
17890         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
17891         64-bit gpr loads and stores.
17892         (rs6000_secondary_reload_ppc64): New function.
17893         * config/rs6000/rs6000-protos.h: Declare it.
17894         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
17895
17896 2011-03-26  Alan Modra  <amodra@gmail.com>
17897
17898         PR target/47487
17899         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
17900         GNU Go in traceback table.
17901
17902 2011-03-25  Richard Henderson  <rth@redhat.com>
17903
17904         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
17905         if there are exactly 6 operands.
17906         (set_storage_via_setmem): Similarly.
17907
17908 2011-03-25  Kai Tietz  <ktietz@redhat.com>
17909
17910         * collect2.c (write_c_file_stat): Handle backslash
17911         as right-hand directory separator.
17912         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
17913         checking just for slash.
17914         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
17915         instead of checking for trailing slash.
17916         * gcc.c (record_temp_file): Use filename_cmp instead
17917         of strcmp.
17918         (do_spec_1): Likewise.
17919         (replace_outfile_spec_function): Likewise.
17920         (is_directory): Use filename_ncmp instead of strncmp.
17921         (print_multilib_info): Likewise.
17922         * gcov.c (find_source): Use filename_cmp instead
17923         instead of strcmp.
17924         (make_gcov_file_name): Fix order of slash/backslash
17925         checks.
17926         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
17927         (add_standard_paths): Likewise.
17928         * mips-tfile.c (saber_stop): Handle backslash.
17929         * prefix.c (update_path): Use filename_ncmp instead of
17930         strncmp.
17931         * profile.c (output_location): Use filename_cmp instead
17932         of strcmp.
17933         * read-md.c (handle_toplevel_file): Handle backslash.
17934         * tlink.c (frob_extension):  Likewise.
17935         * tree-cfg.c (same_line_p): Use filename_cmp instead of
17936         strcmp.
17937         * tree-dump.c (dequeue_and_dump): Handle backslash.
17938         * tree.c (get_file_function_name): Likewise.
17939         * gengtype.c (read_input_list): Likewise.
17940         (get_file_realbasename): Likewise.
17941         (get_output_file_with_visibility): Use filename_cmp
17942         instead of strcmp.
17943
17944 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
17945
17946         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
17947         case to VFPv1.
17948
17949 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
17950
17951         * fold-const.c (expr_location_or): New function.
17952         (fold_truth_not_expr): Call it.
17953
17954 2011-03-25  Jeff Law  <law@redhat.com>
17955
17956         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
17957         va_end.
17958         * c-family/c-common.c (def_fn_type): Likewise.
17959         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
17960         * emit-rtl.c (gen_rtvec): Likewise.
17961         * lto/lto-lang.c (def_fn_type): Likewise.
17962
17963 2011-03-25  Richard Guenther  <rguenther@suse.de>
17964
17965         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
17966         also generate copies.
17967         (fini_copy_prop): Handle constant values properly.
17968
17969 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
17970
17971         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
17972         mode size instead of bitsize with DWARF2_ADDR_SIZE.
17973         (hash_loc_operands, compare_loc_operands): Handle
17974         DW_OP_GNU_entry_value.
17975
17976 2011-03-25  Kai Tietz  <ktietz@redhat.com>
17977
17978         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
17979         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
17980         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
17981         comment and use macro TARGET_64BIT_MS_ABI instead.
17982         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
17983         and change default behavior for 32-bit MS_ABI.
17984         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
17985         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
17986         32-bit, too.
17987         (ix86_cfun_abi): Likewise.
17988         (ix86_maybe_switch_abi): Adjust comment.
17989         (init_cumulative_args): Check for bit-ness in MS_ABI case.
17990         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
17991         instead of checking for SYSV_ABI.
17992         (ix86_nsaved_sseregs): Likewise.
17993         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
17994         to 16 bytes.
17995         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
17996         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
17997         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
17998         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
17999         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
18000
18001 2011-03-25  Richard Guenther  <rguenther@suse.de>
18002
18003         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
18004         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
18005         (verify_gimple): Remove.
18006         * tree-cfg.c (verify_gimple_call): Merge verification
18007         from verify_stmts.
18008         (verify_gimple_phi): Merge verification from verify_stmts.
18009         (verify_gimple_label): New function.
18010         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
18011         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
18012         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
18013         (verify_stmts): Rename to verify_gimple_in_cfg.
18014         (verify_gimple_in_cfg): New function.
18015         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
18016         * tree-ssa.c (verify_ssa): Likewise.
18017         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
18018
18019 2011-03-25  Richard Guenther  <rguenther@suse.de>
18020
18021         * passes.c (init_optimization_passes): Add FRE pass after
18022         early SRA.
18023
18024 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
18025             Andrew Stubbs  <ams@codesourcery.com>
18026
18027         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
18028         for Cortex-A8.
18029         (arm_movdi_vfp_cortexa8): New pattern.
18030         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
18031         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
18032         instructions when tuning for Cortex-A8.  Set attribute "arch".
18033         * config/arm/arm.md: Move include arm-tune.md up a bit.
18034         (define_attr "arch"): Add "onlya8" and "nota8" values.
18035         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
18036
18037 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
18038
18039         PR bootstrap/48282
18040         Revert:
18041         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
18042
18043         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
18044         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
18045         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
18046         * passes.c (init_optimization_passes): Move
18047         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
18048
18049 2011-03-25  Kai Tietz  <ktietz@redhat.com>
18050
18051         * c-typeck.c (comptypes_internal): Replace target
18052         hook call of comp_type_attributes by version in tree.c file.
18053         * gimple.c (gimple_types_compatible_p_1): Likewise.
18054         * tree-ssa.c (useless_type_conversion_p): Likewise.
18055         * tree.c (build_type_attribute_qual_variant): Likewise.
18056         (attribute_value_equal): New static helper function.
18057         (comp_type_attributes): New function.
18058         (merge_attributes): Use attribute_value_equal for comparison.
18059         (attribute_list_contained): Likewise.
18060         * tree.h (comp_type_attributes): New prototype.
18061
18062 2011-03-25  Richard Guenther  <rguenther@suse.de>
18063
18064         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
18065         of complex types at -O0.
18066         (verify_gimple_assign_binary): Likewise.
18067         (verify_gimple_assign_ternary): Likewise.
18068
18069 2011-03-24  Mark Wielaard  <mjw@redhat.com>
18070
18071         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
18072         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
18073
18074 2011-03-24  Mark Wielaard  <mjw@redhat.com>
18075
18076         PR debug/48041
18077         * dwarf2out.c (output_abbrev_section): Only write table when
18078         abbrev_die_table_in_use > 1.
18079
18080 2011-02-24  Richard Henderson  <rth@redhat.com>
18081
18082         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
18083         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
18084         (alpha_expand_unaligned_load_words): Use extql.
18085         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
18086         (emit_insxl): Handle all modes for consistency.
18087
18088 2011-02-24  Richard Henderson  <rth@redhat.com>
18089
18090         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
18091         (alpha_expand_unaligned_load): Likewise.
18092         (alpha_expand_unaligned_store): Likewise.
18093         (alpha_expand_unaligned_load_words): Likewise.
18094         (alpha_expand_unaligned_store_words): Likewise.
18095         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
18096         (alpha_split_lock_test_and_set_12): Likewise.
18097         (print_operand, alpha_fold_builtin_extxx): Likewise.
18098         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
18099         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
18100         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
18101         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
18102         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
18103         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
18104         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
18105         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
18106         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
18107         (extwl, extll, extql): Similarly.
18108         (inswh, inslh, insqh): Similarly.
18109         (mskbl, mskwl, mskll, mskql): Similarly.
18110         (mskwh, msklh, mskqh): Similarly.
18111
18112 2011-02-24  Richard Henderson  <rth@redhat.com>
18113
18114         * config/alpha/alpha.md (attribute isa): Add er, ner.
18115         (attribute enabled): Handle them.
18116         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
18117
18118 2011-02-24  Richard Henderson  <rth@redhat.com>
18119
18120         * config/alpha/alpha.md (attribute isa): Add vms.
18121         (attribute enabled): Handle it.
18122         (*movsf): Merge *movsf_{nofix,fix,nofp}.
18123         (*movdf): Merge *movdf_{nofix,fix,nofp}.
18124         (*movtf): Rename from *movtf_internal for consistency.
18125         (*movsi): Merge with *movsi_nt_vms.
18126         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
18127         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
18128         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
18129         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
18130
18131 2011-02-24  Richard Henderson  <rth@redhat.com>
18132
18133         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
18134         (extendqisi2, extendhisi2): Likewise.
18135         (extendqidi2): Simplify BWX/non-BWX expansions.
18136         (extendhidi2): Similarly.
18137
18138 2011-02-24  Richard Henderson  <rth@redhat.com>
18139
18140         * config/alpha/alpha.md (attribute isa): New.
18141         (attribute enabled): New.
18142         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
18143         (zero_extendqisi2, zero_extendqidi2): Similarly.
18144         (zero_extendhisi2, zero_extendhidi2): Similarly.
18145         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
18146
18147 2011-02-24  Richard Henderson  <rth@redhat.com>
18148
18149         * config/alpha/predicates.md (input_operand): Revert last change;
18150         update comment to mention 32-bit VMS rather than Windows.
18151
18152 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
18153
18154         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
18155         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
18156         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
18157         * passes.c (init_optimization_passes): Move
18158         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
18159
18160 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
18161
18162         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
18163
18164 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
18165
18166         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
18167         correctly.
18168
18169 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
18170
18171         PR debug/48204
18172         * simplify-rtx.c (simplify_const_unary_operation): Call
18173         real_convert when changing mode class with FLOAT_EXTEND.
18174
18175 2011-03-24  Nick Clifton  <nickc@redhat.com>
18176
18177         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
18178         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
18179         * config/rx/rx.c (rx_option_override): Set align_jumps,
18180         align_loops and align_labels if not set by the user.
18181         (rx_align_for_label): New function.
18182         (rx_max_skip_for_label): New function.
18183         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
18184         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
18185         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
18186         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
18187         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
18188
18189 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
18190
18191         PR rtl-optimization/48263
18192         * optabs.c (expand_binop_directly): Reinstate convert_modes code
18193         and original commutative_p handling.  Use maybe_gen_insn.
18194
18195 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18196
18197         * reload.c (find_reloads_subreg_address): Add address_reloaded
18198         parameter and return true there if the full address has been
18199         reloaded.
18200         (find_reloads_toplev): Pass address_reloaded flag.
18201         (find_reloads_address_1): Don't use address_reloaded parameter.
18202
18203 2011-03-24  Jeff Law  <law@redhat.com>
18204
18205         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
18206         unused variable "ann".
18207         (remove_unused_locals): Likewise.
18208
18209         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
18210         statement.
18211
18212         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
18213         after it is freed.
18214
18215 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18216
18217         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
18218         for invalid symbolic addresses.
18219         (s390_secondary_reload): Don't use s390_check_symref_alignment for
18220         larl operands.
18221
18222 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
18223
18224         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
18225         the argument in calls to fold_truth_not_expr.
18226
18227 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
18228
18229         * tree.c (record_node_allocation_statistics): New function.
18230         (make_node_stat, copy_node_stat, build_string): Call it.
18231         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
18232         (build1_stat, build_omp_clause): Likewise.
18233
18234 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
18235
18236         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
18237         last commit.
18238
18239 2011-03-24  Richard Guenther  <rguenther@suse.de>
18240
18241         PR tree-optimization/48271
18242         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
18243         blocks that still exist.
18244
18245 2011-03-24  Richard Guenther  <rguenther@suse.de>
18246
18247         PR tree-optimization/48270
18248         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
18249         not free datarefs before ddrs.
18250
18251 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
18252
18253         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
18254         from the address built for a reference with variable offset.
18255
18256 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
18257
18258         PR target/48237
18259         * config/i386/i386.md (*movdf_internal_rex64): Do not split
18260         alternatives that can be handled with movq or movabsq insn.
18261         (*movdf_internal): Disable for !TARGET_64BIT.
18262         (*movdf_internal_nointeger): Ditto.
18263         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
18264
18265 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
18266
18267         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
18268         (FUNCTION_ARG_ADVANCE): Likewise.
18269         * tm.texi.in: Change references to them to hook references.
18270         * tm.texi: Regenerate.
18271         * targhooks.c (default_function_arg): Eliminate check for target macro.
18272         (default_function_incoming_arg): Likewise.
18273         (default_function_arg_advance): Likewise.
18274         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
18275         (function_arg_advance): Likewise.
18276         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
18277
18278 2011-03-24  Richard Guenther  <rguenther@suse.de>
18279
18280         PR middle-end/48269
18281         * tree-object-size.c (addr_object_size): Do not double-account
18282         for MEM_REF offsets.
18283
18284 2011-03-24  Diego Novillo  <dnovillo@google.com>
18285
18286         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
18287         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
18288         (lto_input_data_block): Move from lto-opts.c.  Make extern.
18289         Update all users.
18290         (lto_input_string): Rename from input_string.  Make extern.
18291         Update all users.
18292         * lto-streamer-out.c (lto_output_string_with_length): Rename from
18293         output_string_with_length.
18294         Output 0 to indicate a non-NULL string.  Update all callers to
18295         not emit 0.
18296         (lto_output_string): Rename from output_string.  Make extern.
18297         Update all users.
18298         (lto_output_decl_state_streams): Make extern.
18299         (lto_output_decl_state_refs): Make extern.
18300         * lto-streamer.h (lto_input_string): Declare.
18301         (lto_input_data_block): Declare.
18302         (lto_output_string): Declare.
18303         (lto_output_string_with_length): Declare.
18304         (lto_output_decl_state_streams): Declare.
18305         (lto_output_decl_state_refs): Declare.
18306
18307 2011-03-24  Richard Guenther  <rguenther@suse.de>
18308
18309         PR tree-optimization/46562
18310         * tree.c (build_invariant_address): New function.
18311         * tree.h (build_invariant_address): Declare.
18312         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
18313         a renamed function moved ...
18314         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
18315         Take valueization callback parameter.
18316         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
18317         * gimple-fold.h: New file.
18318         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
18319         (ccp_fold, fold_const_aggregate_ref,
18320         fold_ctor_reference, fold_nonarray_ctor_reference,
18321         fold_array_ctor_reference, fold_string_cst_ctor_reference,
18322         get_base_constructor): Move ...
18323         * gimple-fold.c: ... here.
18324         (gimple_fold_stmt_to_constant_1): New function
18325         split out from ccp_fold.  Take a valueization callback parameter.
18326         Valueize all operands.
18327         (gimple_fold_stmt_to_constant): New wrapper function.
18328         (fold_const_aggregate_ref_1): New function split out from
18329         fold_const_aggregate_ref.  Take a valueization callback parameter.
18330         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
18331         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
18332         invariant POINTER_PLUS_EXPRs to invariant form.
18333         (vn_valueize): New function.
18334         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
18335         * tree-vrp.c (vrp_valueize): New function.
18336         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
18337         to fold statements to constants.
18338         * tree-ssa-pre.c (eliminate): Properly guard propagation of
18339         function declarations.
18340         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
18341         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
18342
18343 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
18344
18345         * config/h8300/predicates.md (jump_address_operand): Fix register
18346         mode check.
18347
18348 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
18349
18350         * doc/invoke.texi (max-stores-to-sink): Document.
18351         * params.h (MAX_STORES_TO_SINK): Define.
18352         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
18353         if either vectorization or if-conversion is disabled.
18354         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
18355         tree-vect-data-refs.c vect_equal_offsets.
18356         (dr_equal_offsets_p): New function.
18357         (find_data_references_in_bb): Remove static.
18358         * tree-data-ref.h (find_data_references_in_bb): Declare.
18359         (dr_equal_offsets_p): Likewise.
18360         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
18361         (vect_drs_dependent_in_basic_block): Update calls to
18362         vect_equal_offsets.
18363         (vect_check_interleaving): Likewise.
18364         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
18365         (cond_if_else_store_replacement): Rename to...
18366         (cond_if_else_store_replacement_1): ... this.  Change arguments and
18367         documentation.
18368         (cond_if_else_store_replacement): New function.
18369         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
18370         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
18371
18372 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
18373
18374         PR target/46934
18375         * config/arm/arm.md (casesi): Use the gen_int_mode() function
18376         to subtract lower bound instead of GEN_INT().
18377
18378 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
18379
18380         PR other/48179
18381         PR other/48221
18382         PR other/48234
18383         * doc/extend.texi (Alignment): Move section to match order in TOC.
18384         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
18385         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
18386
18387 2011-03-23  Jeff Law  <law@redhat.com>
18388
18389         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
18390         before removing the edge.
18391
18392         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
18393         it may have been freed by redirect_branch_edge or
18394         redirect_edge_succ_nodup.
18395
18396 2011-03-23  Richard Guenther  <rguenther@suse.de>
18397
18398         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
18399         (check_va_list_escapes): Likewise.
18400         (check_all_va_list_escapes): Likewise.
18401
18402 2011-03-23  Richard Guenther  <rguenther@suse.de>
18403
18404         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
18405         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
18406         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
18407         (alias.o): Likewise.
18408         (ipa-type-escape.o): Remove.
18409         (ipa-struct-reorg.o): Likewise.
18410         (GTFILES): Remove ipa-struct-reorg.c.
18411         * alias.c: Do not include ipa-type-escape.h.
18412         * tree-ssa-alias.c: Likewise.
18413         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
18414         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
18415         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
18416         and ipa-type-escape passes.
18417         * tree-pass.h (pass_ipa_type_escape): Remove.
18418         (pass_ipa_struct_reorg): Likewise.
18419         * ipa-struct-reorg.h: Remove.
18420         * ipa-struct-reorg.c: Likewise.
18421         * ipa-type-escape.h: Likewise.
18422         * ipa-type-escape.c: Likewise.
18423         * doc/invoke.texi (-fipa-struct-reorg): Remove.
18424         (--param struct-reorg-cold-struct-ratio): Likewise.
18425         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
18426         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
18427         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
18428
18429 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18430
18431         * config/s390/2084.md: Enable all insn reservations also for z9_ec
18432         cpu attribute value.
18433         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
18434         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
18435         * config/s390/s390.c (processor_flags_table): New constant array.
18436         (s390_handle_arch_option): Remove.
18437         (s390_handle_option): Remove s390_handle_arch_option invocations
18438         and OPT_mwarn_framesize_ handling.
18439         (s390_option_override): Remove s390_handle_arch_option invocation.
18440         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
18441         warnings.
18442         * config/s390/s390.md (cpu attribute): Add z9_ec value.
18443         * config/s390/s390.opt (s390_tune, s390_arch)
18444         (march=): Replace s390_arch_option enum and values with
18445         processor_type.  Set variable name to s390_arch.  Set
18446         initialization value.
18447         (mtune=): Replace s390_arch_option with processor_type.  Set
18448         variable name to s390_tune.  Set initialization value.
18449
18450 2011-03-23  Julian Brown  <julian@codesourcery.com>
18451
18452         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
18453         accesses which are not naturally aligned.
18454
18455 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
18456
18457         PR target/47553
18458         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
18459
18460 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
18461
18462         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
18463         parameter from "int" to "enum insn_code".
18464         (expand_operand_type): New enum.
18465         (expand_operand): New structure.
18466         (create_expand_operand): New function.
18467         (create_fixed_operand, create_output_operand): Likewise
18468         (create_input_operand, create_convert_operand_to): Likewise.
18469         (create_convert_operand_from, create_address_operand): Likewise.
18470         (create_integer_operand): Likewise.
18471         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
18472         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
18473         (expand_insn, expand_jump_insn): Likewise.
18474         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
18475         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
18476         (expand_movstr, expand_builtin___clear_cache): Likewise.
18477         (expand_builtin_lock_release): Likewise.
18478         * explow.c (allocate_dynamic_stack_space): Likewise.
18479         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
18480         and use the default handling in that case.
18481         * expmed.c (check_predicate_volatile_ok): Delete.
18482         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
18483         (emit_cstore): Likewise.
18484         * expr.c (emit_block_move_via_movmem): Likewise.
18485         (set_storage_via_setmem, expand_assignment): Likewise.
18486         (emit_storent_insn, try_casesi): Likewise.
18487         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
18488         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
18489         (expand_vec_shift_expr, expand_binop_directly): Likewise.
18490         (expand_twoval_unop, expand_twoval_binop): Likewise.
18491         (expand_unop_direct, emit_indirect_jump): Likewise.
18492         (emit_conditional_move, vector_compare_rtx): Likewise.
18493         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
18494         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
18495         (expand_sync_lock_test_and_set): Likewise.
18496         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
18497         (emit_unop_insn): Likewise.
18498         (expand_copysign_absneg): Change icode to an insn_code.
18499         (create_convert_operand_from_type): New function.
18500         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
18501         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
18502         (expand_insn, expand_jump_insn): Likewise.
18503         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
18504         than const_int_operand for operand 2.
18505
18506 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18507
18508         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
18509         if possible.
18510
18511 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
18512
18513         * emit-rtl.c (emit_pattern_before_noloc): New function.
18514         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
18515         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
18516         (emit_pattern_after_noloc): New function.
18517         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
18518         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
18519
18520 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
18521
18522         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
18523         (__ffsDI2): Likewise.
18524
18525 2011-03-22  Richard Henderson  <rth@redhat.com>
18526
18527         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
18528         of !TARGET_ABI_OPEN_VMS.
18529         (alpha_trampoline_init, alpha_start_function): Likewise.
18530         (alpha_expand_epilogue, alpha_file_start): Likewise.
18531         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
18532         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
18533         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
18534         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
18535         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
18536
18537 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18538
18539         * config/s390/s390-opts.h: New.
18540         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
18541         s390_arch_flags, s390_warn_framesize, s390_stack_size,
18542         s390_stack_guard): Remove.
18543         (s390_handle_arch_option): Return void.  Take enum
18544         s390_arch_option value instead of string and searching array.
18545         (s390_handle_option): Don't assert that global structures are in
18546         use.  Access variables via opts pointer.  Use error_at.  Don't use
18547         sscanf for -mstack-guard= or -mstack-size=.  Update call to
18548         s390_handle_arch_option.
18549         (s390_option_override): Update call to s390_handle_arch_option.
18550         (s390_emit_prologue): Use %d format for s390_stack_size in
18551         diagnostic.  Use %wd for HOST_WIDE_INT.
18552         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
18553         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
18554         * config/s390/s390.opt (config/s390/s390-opts.h): New
18555         HeaderInclude entry.
18556         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
18557         s390_arch_flags, s390_warn_framesize): New Variable entries.
18558         (s390_arch_option): New Enum and EnumValue entries.
18559         (march=): Use Enum instead of Var.
18560         (mstack-guard=, mstack-size=): Use UInteger and Var.
18561         (mtune=): Use Enum.
18562
18563 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18564
18565         * config/score/score.c (score_handle_option): Don't assert that
18566         global structures are in use.  Access target_flags via opts
18567         pointer.  Use value of -march= option to determine target_flags
18568         settings.
18569         * config/score/score.opt (march=): Use Enum.
18570         (score_arch): New Enum and EnumValue entries.
18571
18572 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18573
18574         * config/mep/mep.c (option_mtiny_specified): Remove.
18575         (mep_option_override): Move register handling for -mivc2 from
18576         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
18577         instead of option_mtiny_specified.
18578         (mep_handle_option): Access target_flags via opts pointer.  Don't
18579         assert that global structures are in use.  Defer part of -mivc2
18580         handling and move it to mep_option_override.
18581         * config/mep/mep.opt (IVC2): New Mask entry.
18582         (mivc2): Use Var and Defer instead of Mask.
18583
18584 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18585
18586         * config/v850/v850-opts.h: New.
18587         * config/v850/v850.c (small_memory): Replace with
18588         small_memory_physical_max array.  Make that array static const.
18589         (v850_handle_memory_option): Take integer value of argument.  Take
18590         gcc_options pointer, option text and location.  Return void.
18591         Update for changes to small memory structures.
18592         (v850_handle_option): Access target_flags via opts pointer.  Don't
18593         assert that global structures are in use.  Update calls to
18594         v850_handle_memory_option.
18595         (v850_encode_data_area): Update references to small memory settings.
18596         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
18597         (enum small_memory_type): Move to v850-opts.h.
18598         * config/v850/v850.opt (config/v850/v850-opts.h): New
18599         HeaderInclude entry.
18600         (small_memory_max): New Variable entry.
18601         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
18602         (mtda, mzda): Likewise.
18603
18604 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18605
18606         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
18607         pointer.  Don't assert that global structures are in use.
18608
18609 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18610
18611         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
18612         via opts pointer.  Don't assert that global structures are in use.
18613
18614 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18615
18616         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
18617         (munix=93): Use Var.
18618         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
18619         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
18620         * config/pa/pa-opts.h: New.
18621         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
18622         (pa_handle_option): Don't assert that global structures are in
18623         use.  Access target_flags via opts pointer.  Don't handle
18624         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
18625         OPT_munix_98 here.
18626         (pa_option_override): Handle deferred OPT_mfixed_range_.
18627
18628 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18629
18630         * config/mn10300/mn10300-opts.h: New.
18631         * config/mn10300/mn10300.c (mn10300_processor,
18632         mn10300_tune_string): Remove.
18633         (mn10300_handle_option): Don't assert that global structures are
18634         in use.  Access mn10300_processor via opts pointer.  Don't handle
18635         OPT_mtune_ here.
18636         * config/mn10300/mn10300.h (enum processor_type): Move to
18637         mn10300-opts.h.
18638         (mn10300_processor): Remove.
18639         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
18640         HeaderInclude entry.
18641         (mn10300_processor): New Variable entry.
18642         (mtune=): Use Var.
18643
18644 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18645
18646         * config/microblaze/microblaze.c: Don't include opts.h.
18647         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
18648         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
18649         (mno-clearbss): Use Var and Warn.
18650
18651 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18652
18653         * config/m32r/m32r-opts.h: New.
18654         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
18655         (m32r_handle_option): Don't assert that global structures are in
18656         use.  Access target_flags and m32r_cache_flush_func via opts
18657         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
18658         OPT_mno_flush_trap here.
18659         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
18660         include of m32r-opts.h.
18661         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
18662         HeaderInclude entry.
18663         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
18664         (mmodel=): Use Enum and Var.
18665         (m32r_model): New Enum and EnumValue entries.
18666         (mno-flush-trap): Use Var.
18667         (msdata=): Use Enum and Var.
18668         (m32r_sdata): New Enum and EnumValue entries.
18669
18670 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18671
18672         * config/m32c/m32c.c: Don't include opts.h.
18673         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
18674         m32c_handle_option): Remove.
18675         (m32c_option_override): Check global_options_set.x_target_memregs
18676         instead of target_memregs_set.
18677         * config/m32c/m32c.h (target_memregs): Remove.
18678         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
18679         variable.
18680
18681 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18682
18683         * config/iq2000/iq2000-opts.h: New.
18684         * config/iq2000/iq2000.c: Don't include opts.h.
18685         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
18686         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
18687         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
18688         HeaderInclude entry.
18689         (iq2000_tune): New Variable entry.
18690         (march=): Add comment.  Use Enum.
18691         (iq2000_arch): New Enum and EnumValue entries.
18692         (mcpu=): Use Enum and Var.
18693         (iq2000_tune): New Enum and EnumValue entries.
18694
18695 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18696
18697         * config/ia64/ia64-opts.h: New.
18698         * config/ia64/ia64.c (ia64_tune): Remove.
18699         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
18700         here.  Use error_at.
18701         (ia64_option_override): Handle deferred OPT_mfixed_range_.
18702         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
18703         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
18704         HeaderInclude entry.
18705         (ia64_tune): New Variable entry.
18706         (mfixed-range=): Use Defer and Var.
18707         (mtune=): Use Enum and Var.
18708         (ia64_tune): New Enum and EnumValue entries.
18709
18710 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18711
18712         * config/frv/frv-opts.h: New.
18713         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
18714         frv-opts.h.
18715         (frv_cpu_type): Remove.
18716         * config/frv/frv.c: Don't include opts.h.
18717         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
18718         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
18719         (frv_cpu_type): New Variable entry.
18720         (frv_cpu): New Enum and EnumValue entries.
18721
18722 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18723
18724         * config/cris/cris.c (cris_handle_option): Access target_flags via
18725         opts pointer.  Don't assert that global structures are in use.
18726         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
18727         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
18728
18729 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18730
18731         * config/bfin/bfin-opts.h: New.
18732         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
18733         bfin_si_revision, bfin_workarounds): Remove.
18734         (bfin_cpus): Make static const.
18735         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
18736         not bfin_lib_id_given.
18737         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
18738         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
18739         pointer. Use error_at.  Don't assert that global structures are in use.
18740         * config/bfin/bfin.h: Include bfin-opts.h.
18741         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
18742         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
18743         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
18744         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
18745         entries.
18746
18747 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18748
18749         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
18750         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
18751         or -msoft-float here.
18752         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
18753         -msoft-float and -mhard-float.
18754         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
18755         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
18756         msoft-float.
18757         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
18758         -msoft-float.
18759         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
18760         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
18761         not mhard-float.
18762         (LIBGCC_SPEC): Don't handle -msoft-float.
18763         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
18764         -mhard-float.
18765         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
18766         msoft-float.
18767         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
18768         -mfloat-abi=*, not -msoft-float and -mhard-float.
18769         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
18770         -msoft-float.
18771         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
18772         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
18773         mhard-float and msoft-float.
18774         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
18775         mfloat-abi=soft in comments, not mhard-float and msoft-float.
18776         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
18777         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
18778         mhard-float.
18779         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
18780         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
18781         msoft-float.
18782         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
18783         not mhard-float.
18784         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
18785         not msoft-float.
18786
18787 2011-03-22  Richard Henderson  <rth@redhat.com>
18788
18789         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
18790         TARGET_ABI_WINDOWS_NT.
18791         (alpha_output_function_end_prologue): Likewise.
18792         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
18793         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18794         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
18795         (trap, *movsi_nt_vms): Likewise.
18796         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
18797         (*tablejump_osf_nt_internal): Remove.
18798         * config/alpha/predicates.md (input_operand): Only test Pmode.
18799
18800 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18801
18802         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
18803         via opts pointer.  Use error_at.  Don't assert that global
18804         structures are in use.
18805
18806 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18807
18808         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
18809         (ix86_handle_option): Access ix86_isa_flags and
18810         ix86_isa_flags_explicit via opts pointer.  Don't assert that
18811         global structures are in use.
18812         (ix86_function_specific_save, ix86_function_specific_restore):
18813         Update ix86_isa_flags_explicit field name.
18814         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
18815         (ix86_isa_flags_explicit): Rename TargetSave entry to
18816         x_ix86_isa_flags_explicit.
18817
18818 2011-03-22  Richard Henderson  <rth@redhat.com>
18819
18820         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
18821         (alpha_option_override, direct_return): Likewise.
18822         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
18823         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
18824         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
18825         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
18826         (alpha_expand_epilogue, alpha_end_function): Likewise.
18827         (alpha_init_libfuncs): Likewise.
18828         (struct machine_function): Remove unicosmk members.
18829         (print_operand) ['t']: Remove.
18830         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
18831         unicosmk_output_module_name, unicosmk_output_common,
18832         current_section_align, unicosmk_output_text_section_asm_op,
18833         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
18834         unicosmk_section_type_flags, unicosmk_unique_section,
18835         unicosmk_asm_named_section, unicosmk_insert_attributes,
18836         unicosmk_output_align, unicosmk_defer_case_vector,
18837         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
18838         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
18839         unicosmk_output_ssib, unicosmk_add_call_info_word,
18840         unicosmk_extern_head, unicosmk_output_default_externs,
18841         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
18842         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
18843         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
18844         * config/alpha/alpha-protos.h: Update.
18845         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
18846         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
18847         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
18848         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
18849         (*mulsi_se, mulvsi3): Likewise.
18850         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
18851         (*divmodsi_internal, call, call_value, realign): Likewise.
18852         (moddi3, umoddi3): Likewise; remove duplicate expander.
18853         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
18854         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
18855         (*movdi_nofix): Remove r/U alternative.
18856         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
18857         * config/alpha/constraints.md ("U"): Remove.
18858         * config/alpha/predicates.md (call_operand"): Don't test
18859         TARGET_ABI_UNICOSMK.
18860
18861 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18862
18863         * target.def (handle_option): Take gcc_options and
18864         cl_decoded_option pointers and location_t.
18865         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
18866         * doc/tm.texi: Regenerate.
18867         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
18868         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
18869         * lto-opts.c (lto_reissue_options): Generate option structure for
18870         targetm.handle_option call.
18871         * opts.c (target_handle_option): Update call to
18872         targetm.handle_option.  Remove assertions about values now passed
18873         down to hook.
18874         * targhooks.c (default_target_handle_option): New.
18875         * targhooks.h (default_target_handle_option): Declare.
18876         * config/alpha/alpha.c: Include opts.h.
18877         (alpha_handle_option): Update to new hook interface.
18878         * config/arm/arm.c: Include opts.h.
18879         (arm_handle_option): Update to new hook interface.
18880         * config/arm/t-arm (arm.o): Update dependencies.
18881         * config/bfin/bfin.c: Include opts.h.
18882         (bfin_handle_option): Update to new hook interface.
18883         * config/cris/cris.c: Include opts.h.
18884         (cris_handle_option): Update to new hook interface.
18885         * config/frv/frv.c: Include opts.h.
18886         (frv_handle_option): Update to new hook interface.
18887         * config/i386/i386.c: Include opts.h.
18888         (ix86_handle_option): Update to new hook interface.
18889         (ix86_valid_target_attribute_inner_p): Generate option structure
18890         for call to ix86_handle_option.
18891         * config/i386/t-i386 (i386.o): Update dependencies.
18892         * config/ia64/ia64.c: Include opts.h.
18893         (ia64_handle_option): Update to new hook interface.
18894         * config/ia64/t-ia64 (ia64.o): Update dependencies.
18895         * config/iq2000/iq2000.c: Include opts.h.
18896         (iq2000_handle_option): Update to new hook interface.
18897         * config/m32c/m32c.c: Include opts.h.
18898         (m32c_handle_option): Update to new hook interface.
18899         * config/m32r/m32r.c: Include opts.h.
18900         (m32r_handle_option): Update to new hook interface.
18901         * config/m68k/m68k.c: Include opts.h.
18902         (m68k_handle_option): Update to new hook interface.
18903         * config/mep/mep.c: Include opts.h.
18904         (mep_handle_option): Update to new hook interface.
18905         * config/microblaze/microblaze.c: Include opts.h.
18906         (microblaze_handle_option): Update to new hook interface.
18907         * config/mips/mips.c: Include opts.h.
18908         (mips_handle_option): Update to new hook interface.
18909         * config/mn10300/mn10300.c: Include opts.h.
18910         (mn10300_handle_option): Update to new hook interface.
18911         * config/pa/pa.c: Include opts.h.
18912         (pa_handle_option): Update to new hook interface.
18913         * config/pdp11/pdp11.c: Include opts.h.
18914         (pdp11_handle_option): Update to new hook interface.
18915         * config/rs6000/rs6000.c: Include opts.h.
18916         (rs6000_handle_option): Update to new hook interface.
18917         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
18918         * config/rx/rx.c: Include opts.h.
18919         (rx_handle_option): Update to new hook interface.
18920         * config/s390/s390.c: Include opts.h.
18921         (s390_handle_option): Update to new hook interface.
18922         * config/score/score.c: Include opts.h.
18923         (score_handle_option): Update to new hook interface.
18924         * config/sh/sh.c: Include opts.h.
18925         (sh_handle_option): Update to new hook interface.
18926         * config/sparc/sparc.c: Include opts.h.
18927         (sparc_handle_option): Update to new hook interface.
18928         * config/v850/v850.c: Include opts.h.
18929         (v850_handle_option): Update to new hook interface.
18930
18931 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18932
18933         * gcc.c (driver_unknown_option_callback): Only permit and save
18934         unknown -Wno- options.
18935         (driver_wrong_lang_callback): Save options directly instead of via
18936         driver_unknown_option_callback.
18937
18938 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
18939
18940         * combine.c (simplify_set): Try harder to find the best CC mode when
18941         simplifying a nested COMPARE on the RHS.
18942
18943 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18944
18945         * config/alpha/gnu.h: Remove.
18946         * config/arc: Remove directory.
18947         * config/arm/netbsd.h: Remove.
18948         * config/arm/t-pe: Remove.
18949         * config/crx: Remove directory.
18950         * config/i386/netbsd.h: Remove.
18951         * config/m68hc11: Remove directory.
18952         * config/m68k/uclinux-oldabi.h: Remove.
18953         * config/mcore/mcore-pe.h: Remove.
18954         * config/mcore/t-mcore-pe: Remove.
18955         * config/netbsd-aout.h: Remove.
18956         * config/rs6000/gnu.h: Remove.
18957         * config/sh/sh-symbian.h: Remove.
18958         * config/sh/symbian-base.c: Remove.
18959         * config/sh/symbian-c.c: Remove.
18960         * config/sh/symbian-cxx.c: Remove.
18961         * config/sh/symbian-post.h: Remove.
18962         * config/sh/symbian-pre.h: Remove.
18963         * config/sh/t-symbian: Remove.
18964         * config/svr3.h: Remove.
18965         * config/vax/netbsd.h: Remove.
18966         * config.build: Don't handle i[34567]86-*-pe.
18967         * config.gcc: Remove handling of deprecations for most deprecated
18968         targets.
18969         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
18970         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
18971         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
18972         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
18973         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
18974         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
18975         Remove cases.
18976         * config.host: Don't handle i[34567]86-*-pe.
18977         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
18978         (ASM_SPEC32): Don't handle -mcall-gnu.
18979         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
18980         -mcall-gnu.
18981         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
18982         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
18983         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
18984         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
18985         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
18986         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
18987         conditional on SYMBIAN.
18988         * configure.ac: Don't handle powerpc*-*-gnu*.
18989         * configure: Regenerate.
18990         * doc/extend.texi (interrupt attribute): Don't mention CRX.
18991         * doc/install-old.texi (m6811, m6812): Don't mention.
18992         * doc/install.texi (arc-*-elf*): Don't document multilib option.
18993         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
18994         (m68k-uclinuxoldabi): Don't mention.
18995         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
18996         Remove.
18997         (-mcall-gnu): Remove.
18998         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
18999         families): Remove constraint documentation.
19000
19001 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
19002
19003         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
19004         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
19005         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
19006
19007 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
19008
19009         PR target/48226
19010         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
19011         vector when peeking at the next token for vector, don't expand the
19012         keywords.
19013
19014 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
19015
19016         * config/avr/avr-protos.h (expand_epilogue): Change prototype
19017         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
19018         * config/avr/avr.c (init_cumulative_args)
19019         (avr_function_arg_advance): Use it.
19020         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
19021         sibcall epilogues.
19022         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
19023         (avr_function_ok_for_sibcall): ...this new function.
19024         (avr_lookup_function_attribute1): New static Function.
19025         (avr_naked_function_p, interrupt_function_p)
19026         (signal_function_p, avr_OS_task_function_p)
19027         (avr_OS_main_function_p): Use it.
19028         * config/avr/avr.md ("sibcall", "sibcall_value")
19029         ("sibcall_epilogue"): New expander.
19030         ("*call_insn", "*call_value_insn"): New insn.
19031         ("call_insn", "call_value_insn"): Remove
19032         ("call", "call_value", "epilogue"): Change expander to handle
19033         sibling calls.
19034
19035 2011-03-21  Nick Clifton  <nickc@redhat.com>
19036
19037         * doc/invoke.texi (Overall Options): Move closing brace to end of
19038         options list.
19039         (Optimization Options): Add missing @gol.
19040         (Directory Options): Likewise.
19041         (i386 and x86-64 Options): Likewise.
19042         (RS6000 and PowerPC Options): Likewise.
19043         (i386 and x86-64 Windows Options): Likewise.
19044         (V850 Options): Add text missing from descriptions.
19045
19046 2011-03-22  Richard Henderson  <rth@redhat.com>
19047
19048         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
19049         (avr_incoming_return_addr_rtx): New.
19050         (emit_push_byte): New.
19051         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
19052         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
19053         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
19054         (emit_pop_byte): New.
19055         (expand_epilogue): Use it.  Pop frame pointer by bytes.
19056         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
19057         (INCOMING_RETURN_ADDR_RTX): New.
19058         (INCOMING_FRAME_SP_OFFSET): New.
19059         (ARG_POINTER_CFA_OFFSET): New.
19060         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
19061         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
19062         (pophi): Remove.
19063
19064         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
19065
19066 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
19067
19068         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
19069         (FUNCTION_ARG_ADVANCE): Likewise.
19070         * tm.texi.in: Change references to them to hook references.
19071         * tm.texi: Regenerate.
19072         * targhooks.c (default_function_arg): Eliminate check for target
19073         macro.
19074         (default_function_incoming_arg): Likewise.
19075         (default_function_arg_advance): Likewise.
19076         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
19077         (function_arg_advance): Likewise.
19078         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
19079
19080 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
19081
19082         * tree.c (build_call_1): New function.
19083         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
19084
19085 2011-03-22  Richard Guenther  <rguenther@suse.de>
19086
19087         PR tree-optimization/48228
19088         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
19089         for single-arg PHIs.
19090
19091 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
19092
19093         PR rtl-optimization/48143
19094         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
19095         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
19096         sse2_cvtps2pd): Likewise.
19097
19098 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19099
19100         * recog.c (canonicalize_change_group): Use validate_unshare_change.
19101
19102 2011-03-22  Richard Guenther  <rguenther@suse.de>
19103
19104         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
19105         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
19106         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
19107         and REALIGN_LOAD_EXPR.
19108         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
19109         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
19110         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
19111         DOT_PROD_EXPR case ...
19112         (expand_expr_real_2): ... here.
19113         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
19114         and REALIGN_LOAD_EXPR.
19115         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
19116         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
19117         (vect_create_epilog_for_reduction): Likewise.
19118         (vectorizable_reduction): Likewise.
19119         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
19120         * tree-vect-stmts.c (vectorizable_load): Likewise.
19121
19122 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
19123
19124         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
19125
19126 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19127
19128         * config/s390/s390.c (s390_delegitimize_address): Fix offset
19129         handling for PLTOFF/GOTOFF.
19130
19131 2011-03-22  Nick Clifton  <nickc@redhat.com>
19132
19133         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
19134         trailing backslash from the end of the macro definition.
19135
19136 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19137
19138         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
19139         and PLT unspecs.
19140
19141 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
19142
19143         * expr.h (prepare_operand): Move to...
19144         * optabs.h (prepare_operand): ...here and change the insn code
19145         parameter from "int" to "enum insn_code".
19146         (insn_operand_matches): Declare.
19147         * expr.c (init_expr_target): Use insn_operand_matches.
19148         (compress_float_constant): Likewise.
19149         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
19150         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
19151         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
19152         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
19153         Likewise.
19154         (gen_cond_trap): Likewise.
19155         (prepare_operand): Likewise.  Change icode to an insn_code.
19156         (insn_operand_matches): New function.
19157         * reload.c (find_reloads_address_1): Use insn_operand_matches.
19158         * reload1.c (gen_reload): Likewise.
19159         * targhooks.c (default_secondary_reload): Likewise.
19160
19161 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
19162
19163         * config/alpha/alpha.md (unspec): New define_c_enum.
19164         (unspecv): Ditto.
19165
19166 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
19167
19168         PR debug/48214
19169         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
19170         between a call and its CALL_ARG_LOCATION note.
19171
19172 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
19173
19174         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
19175
19176 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
19177
19178         PR c/42544
19179         PR c/48197
19180         * c-common.c (shorten_compare): If primopN is first sign-extended
19181         to opN and then zero-extended to result type, set primopN to opN.
19182
19183 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
19184
19185         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
19186         for barrier handlers.
19187
19188 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
19189
19190         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
19191         UNSPEC constants to be in the unspec enumeration, and redefine
19192         all UNSPECV constants to be in the unspecv enumeration, so that
19193         dumps print which unspec/unspec_volatile this is.
19194         * config/rs6000/vector.md (UNSPEC_*): Ditto.
19195         * config/rs6000/paired.md (UNSPEC_*): Ditto.
19196         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
19197         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
19198         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
19199
19200         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
19201         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
19202         UNSPECV_LWSYNC, since these are used as unspec_volatile.
19203         * config/rs6000/sync.md (isync, lwsync): Ditto.
19204
19205 2011-03-21  Richard Guenther  <rguenther@suse.de>
19206
19207         * params.def (lto-min-partition): Fix typo.
19208
19209 2011-03-21  Richard Guenther  <rguenther@suse.de>
19210
19211         PR c/47939
19212         * c-decl.c (grokdeclarator): Drop to the main variant only
19213         for array types.  Drop flag_gen_aux_info check.
19214
19215 2011-03-21  Richard Guenther  <rguenther@suse.de>
19216
19217         PR translation/47911
19218         * params.def (lto-partitions): Fix typo.
19219         (lto-min-partition): Fix wording.
19220
19221 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
19222
19223         * config/rs6000/t-freebsd: Remove duplication from file.
19224
19225 2011-03-21  Richard Guenther  <rguenther@suse.de>
19226
19227         PR middle-end/47661
19228         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
19229
19230 2011-03-21  Richard Guenther  <rguenther@suse.de>
19231
19232         PR lto/48210
19233         * params.def (lto-partitions): Require at least 1 partition.
19234
19235 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19236
19237         * gthr-solaris.h: Remove.
19238         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
19239         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
19240         (LIB_SPEC): Likewise.
19241         * config/sol2.opt (threads): Remove.
19242         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
19243         (sparc*-*-solaris2*): Likewise.
19244         * configure.ac (enable_threads): Enable solaris support.
19245         * configure: Regenerate.
19246         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
19247         * doc/install.texi (Configuration, --enable-threads=lib): Remove
19248         solaris.
19249
19250 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19251
19252         * config.gcc: Obsolete *-*-solaris2.8*.
19253         * doc/install.texi (Specific, *-*-solaris2*): Document it.
19254
19255 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19256
19257         PR bootstrap/48135
19258         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
19259         reference.  Solaris 8 perl works.
19260
19261 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19262
19263         PR bootstrap/48135
19264         * doc/install.texi (Prerequisites): Move jar etc. up.
19265         Explain support library version requirements.
19266
19267 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19268
19269         PR bootstrap/48135
19270         * doc/install.texi (Prerequisites): Move Perl to build
19271         requirements.  Always necessary on Solaris 2 with Sun ld.
19272
19273 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19274
19275         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
19276         binutils 2.21.
19277         (Specific, i?86-*-solaris2.[89]): Likewise.
19278         (Specific, i?86-*-solaris2.10): Likewise.
19279         (Specific, mips-sgi-irix6): Likewise.
19280         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
19281         Update for binutils 2.21.
19282
19283 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19284
19285         * configure.ac (gcc_cv_lto_plugin): Fix typo.
19286         Allow -fuse-linker-plugin for non-default plugin linker.
19287         * configure: Regenerate.
19288
19289 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
19290
19291         PR bootstrap/48167
19292         * gengtype.c (files_rules): Added rule for cp/parser.h.
19293
19294 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
19295
19296         PR target/48213
19297         * config/s390/s390.c (s390_delegitimize_address): Don't call
19298         lowpart_subreg if orig_x has BLKmode.
19299
19300 2011-03-21  Kai Tietz  <ktietz@redhat.com>
19301
19302         PR target/12171
19303         * doc/plugins.texi: Adjust documentation for plugin register_callback.
19304         * tree.h (attribute_spec): Add new member affects_type_identity.
19305         * attribs.c (empty_attribute_table): Adjust attribute_spec
19306         initializers.
19307         * config/alpha/alpha.c: Likewise.
19308         * config/arc/arc.c: Likewise.
19309         * config/arm/arm.c: Likewise.
19310         * config/avr/avr.c: Likewise.
19311         * config/bfin/bfin.c: Likewise.
19312         * config/crx/crx.c: Likewise.
19313         * config/darwin.h: Likewise.
19314         * config/h8300/h8300.c: Likewise.
19315         * config/i386/cygming.h: Likewise.
19316         * config/i386/i386.c: Likewise.
19317         * config/ia64/ia64.c: Likewise.
19318         * config/m32c/m32c.c: Likewise.
19319         * config/m32r/m32r.c: Likewise.
19320         * config/m68hc11/m68hc11.c: Likewise.
19321         * config/m68k/m68k.c: Likewise.
19322         * config/mcore/mcore.c: Likewise.
19323         * config/mep/mep.c: Likewise.
19324         * config/microblaze/microblaze.c: Likewise.
19325         * config/mips/mips.c: Likewise.
19326         * config/rs6000/rs6000.c: Likewise.
19327         * config/rx/rx.c: Likewise.
19328         * config/sh/sh.c: Likewise.
19329         * config/sol2.h: Likewise.
19330         * config/sparc/sparc.c: Likewise.
19331         * config/spu/spu.c: Likewise.
19332         * config/stormy16/stormy16.c: Likewise.
19333         * config/v850/v850.c: Likewise.
19334
19335 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
19336
19337         * simplify-rtx.c (simplify_binary_operation_1): Handle
19338         (xor (and A B) C) case when B and C are both constants.
19339
19340 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
19341
19342         * tree-dfa.c (add_referenced_var): Fix typo in comment.
19343
19344 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
19345
19346         PR bootstrap/48168
19347         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
19348
19349 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
19350
19351         PR rtl-optimization/48156
19352         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
19353         assume df and df_lr are not NULL.
19354
19355 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
19356
19357         PR debug/48023
19358         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
19359         between a call and its CALL_ARG_LOCATION note.
19360
19361 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
19362
19363         PR debug/48178
19364         * config/sh/sh.c (find_barrier): Don't emit a constant pool
19365         between a call and its corresponding CALL_ARG_LOCATION note.
19366
19367 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
19368
19369         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
19370         instead of loop. Use HARD_REGISTER_NUM_P predicate.
19371         * haifa-sched.c (setup_ref_regs): Ditto.
19372         * caller-save.c (add_used_regs_1): Ditto.
19373         * dse.c (look_for_hardregs): Ditto.
19374         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
19375         * sched-rgn.c (check_live_1): Ditto.
19376
19377 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
19378
19379         * c-decl.c (diagnose_mismatched_decls): Give an error for
19380         redefining a typedef with variably modified type.
19381
19382 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
19383
19384         * c-decl.c (grokfield): Don't allow typedefs for structures or
19385         unions with no tag by default.
19386         * doc/extend.texi (Unnamed Fields): Update.
19387
19388 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
19389
19390         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
19391         Rewrite using indirect functions.
19392         (lwp_slwpcb): Ditto.
19393         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
19394         (avx_vinsertf128<mode>): Ditto.
19395
19396 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19397
19398         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
19399         unspecs.
19400
19401 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19402
19403         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
19404         splitting between a call and its corresponding CALL_ARG_LOCATION note.
19405
19406 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
19407
19408         PR rtl-optimization/48170
19409         * gcse.c (hoist_code): Remove bogus asserts.
19410
19411 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
19412
19413         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
19414         computation for prologue/epilogue.
19415
19416 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19417
19418         * Makefile.in (check-consistency): Remove.
19419
19420 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
19421
19422         PR debug/48176
19423         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
19424         arange_table_in_use is 0, but either text_section_used or
19425         cold_text_section_used is true.  Don't call it if
19426         !info_section_emitted.
19427
19428 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
19429
19430         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
19431         FUNCTION_VALUE_REGNO_P): Remove.
19432         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
19433         Remove.
19434         * config/avr/avr.c (avr_ret_register): Make static inline.
19435         (avr_function_value_regno_p): New function.
19436         (avr_libcall_value): Make static. Add 'func' argument.
19437         (avr_function_value): Make static. Rename 'func' argument to
19438         'fn_decl_or_type', forward it to avr_libcall_value. Call
19439         avr_ret_register function instead of RET_REGISTER macro.
19440         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
19441
19442 2011-03-18  Jason Merrill  <jason@redhat.com>
19443
19444         PR c++/23372
19445         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
19446
19447 2011-03-18  Richard Guenther  <rguenther@suse.de>
19448
19449         * doc/install.texi (--enable-gold): Remove.
19450         (--with-plugin-ld): Document.
19451         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
19452
19453 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
19454
19455         PR middle-end/47790
19456         * expr.c (optimize_bitfield_assignment_op): Revamp to work
19457         again after expansion changes.
19458
19459 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
19460
19461         * combine.c (try_combine): Do simplification only call of
19462         subst() on i2 even when i1 is present. Update comments.
19463
19464 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
19465
19466         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
19467         and UNSPEC_PCREL_SYMOFF.
19468
19469 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19470
19471         * config/s390/s390.md: Use define_c_enum for the unspec constant
19472         definitions.
19473
19474 2011-03-18  Richard Henderson  <rth@redhat.com>
19475             Jakub Jelinek  <jakub@redhat.com>
19476
19477         PR bootstrap/48161
19478         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
19479         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
19480
19481 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
19482
19483         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
19484         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
19485         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
19486         Change return type to bool.
19487         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
19488
19489 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
19490
19491         PR debug/48163
19492         * var-tracking.c (prepare_call_arguments): If CALL target
19493         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
19494         pc instead of looking it up using cselib_lookup and use
19495         Pmode for it if x has VOIDmode.
19496         * dwarf2out.c (gen_subprogram_die): If also both first and
19497         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
19498
19499         PR debug/48163
19500         * function.c (assign_parms): For data.passed_pointer parms
19501         use MEM of data.entry_parm instead of data.entry_parm itself
19502         as DECL_INCOMING_RTL.
19503         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
19504         also when passed and declared mode is the same, DECL_RTL
19505         is a MEM with pseudo as address and DECL_INCOMING_RTL is
19506         a MEM too.
19507
19508 2011-03-16  Jeff Law  <law@redhat.com>
19509
19510         PR rtl-optimization/37273
19511         * ira-costs.c (scan_one_insn): Detect constants living in memory and
19512         handle them like argument loads from stack slots.  Do not double
19513         count memory for memory constants and argument loads from stack slots.
19514
19515 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
19516
19517         PR debug/48160
19518         * var-tracking.c (prepare_call_arguments): Check SUBREG.
19519
19520 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
19521
19522         PR target/48171
19523         * config/i386/i386.opt: Add Save to -mavx and -mfma.
19524
19525 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
19526
19527         PR bootstrap/48153
19528         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
19529         if dwarf_strict.
19530         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
19531         Clear call_arg_locations and call_arg_loc_last always.
19532
19533         PR middle-end/48152
19534         * var-tracking.c (prepare_call_arguments): If argument needs to be
19535         passed by reference, adjust argtype and mode.
19536
19537 2011-03-17  Richard Guenther  <rguenther@suse.de>
19538
19539         PR middle-end/48134
19540         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
19541         a value make sure to fold the statement.
19542
19543 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
19544
19545         PR target/43872
19546         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
19547         return condition with !cfun->calls_alloca.
19548
19549 2011-03-17  Richard Guenther  <rguenther@suse.de>
19550
19551         PR bootstrap/48148
19552         * lto-cgraph.c (input_overwrite_node): Clear the abstract
19553         origin for decls in other ltrans units.
19554         (input_varpool_node): Likewise.
19555
19556 2011-03-17  Richard Guenther  <rguenther@suse.de>
19557
19558         PR middle-end/48165
19559         * tree-object-size.c (compute_object_offset): Properly return
19560         the offset operand of MEM_REFs as sizetype.
19561
19562 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
19563
19564         PR rtl-optimization/48141
19565         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
19566         * dse.c: Include params.h.
19567         (active_local_stores_len): New variable.
19568         (add_wild_read, dse_step1): Clear it when setting active_local_stores
19569         to NULL.
19570         (record_store, check_mem_read_rtx): Decrease it when removing
19571         from the chain.
19572         (scan_insn): Likewise.  Increase it when adding to chain, if it
19573         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
19574         set active_local_stores to NULL before the addition.
19575         * Makefile.in (dse.o): Depend on $(PARAMS_H).
19576
19577         PR rtl-optimization/48141
19578         * dse.c (record_store): If no positions are needed in an insn
19579         that cannot be deleted, at least unchain it from active_local_stores.
19580
19581 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
19582
19583         PR debug/47510
19584         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
19585         (lookup_type_die_strip_naming_typedef): ... here.
19586         (get_context_die): Use it.
19587         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
19588         the anonymous struct named by the naming typedef.
19589
19590 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
19591
19592         PR target/48154
19593         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
19594         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
19595
19596 2011-03-16  Jeff Law  <law@redhat.com>
19597
19598         * tree-vrp.c (identify_jump_threads): Slightly simplify type
19599         check for operands of conditional.  Allow type to be a pointer.
19600
19601 2011-03-16  Richard Guenther  <rguenther@suse.de>
19602
19603         PR tree-optimization/48149
19604         * fold-const.c (fold_binary_loc): Fold
19605         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
19606
19607 2011-03-16  Richard Guenther  <rguenther@suse.de>
19608
19609         PR tree-optimization/26134
19610         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
19611         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
19612         (non_rewritable_mem_ref_base): Handle complex type component
19613         accesses, constrain offsets for vector and complex extracts
19614         more properly.
19615
19616 2011-03-16  Richard Guenther  <rguenther@suse.de>
19617
19618         PR tree-optimization/48146
19619         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
19620         operands avoiding the need for renaming.
19621
19622 2011-03-16  Richard Guenther  <rguenther@suse.de>
19623
19624         * gimple-fold.c (maybe_fold_reference): Open-code relevant
19625         constant folding.  Move MEM_REF canonicalization first.
19626         Rely on fold_const_aggregate_ref for initializer folding.
19627         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
19628
19629 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
19630
19631         PR middle-end/48136
19632         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
19633         arg0/arg1 or their arguments are always fold converted to matching
19634         types.
19635
19636         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
19637         to nargs.
19638
19639 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19640
19641         PR lto/46944
19642         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
19643         Handle in-tree gold.
19644         (ld_vers): Extract binutils version for gold.
19645         (gcc_cv_ld_hidden): Handle gold here.
19646         (gcc_cv_lto_plugin): Determine level of linker plugin support.
19647         * configure: Regenerate.
19648         * config.in: Regenerate.
19649         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
19650         -fuse-linker-plugin otherwise.
19651         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
19652         (LINK_COMMAND_SPEC): Use it.
19653         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
19654
19655 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
19656
19657         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
19658         * calls.c: Remove debug.h include.
19659         (emit_call_1): Don't call virtual_call_token debug hook.
19660         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
19661         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
19662         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
19663         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
19664         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
19665         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
19666         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
19667         dwarf2out_virtual_call): Remove.
19668         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
19669         copy_call_info and virtual_call hooks.
19670         (dwarf2out_init): Don't initialize vcall_insn_table,
19671         debug_dcall_section and debug_vcall_section.
19672         (prune_unused_types): Don't mark nodes from dcall_table.
19673         (dwarf2out_finish): Don't output dcall or vcall tables.
19674         * final.c (final_scan_insn): Don't call direct_call or
19675         virtual_call debug hooks.
19676         * debug.h (struct gcc_debug_hooks): Remove direct_call,
19677         virtual_call_token, copy_call_info and virtual_call hooks.
19678         (debug_nothing_uid): Remove prototype.
19679         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
19680         copy_call_info and virtual_call hooks.
19681         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
19682         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
19683         * debug.c (do_nothing_debug_hooks): Likewise.
19684         (debug_nothing_uid): Remove.
19685         * doc/invoke.texi (-fenable-icf-debug): Remove.
19686         * common.opt (-fenable-icf-debug): Likewise.
19687
19688         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
19689         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
19690         call's MEM.  Handle functions returning aggregate through a hidden
19691         first pointer.  For virtual calls add clobbered pc to call arguments
19692         chain.
19693         * dwarf2out.c (gen_subprogram_die): Emit
19694         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
19695         can't be emitted.
19696
19697         PR debug/45882
19698         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
19699         * rtl.h (ENTRY_VALUE_EXP): Define.
19700         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
19701         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
19702         * print-rtl.c (print_rtx): Likewise.
19703         * gengtype.c (adjust_field_rtx_def): Likewise.
19704         * var-tracking.c (vt_add_function_parameter): Adjust
19705         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
19706         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
19707         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
19708         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
19709         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
19710
19711         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
19712         Call var_location debug hook even on CALL_INSNs.
19713         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
19714         * rtl.def (ENTRY_VALUE): New.
19715         * dwarf2out.c: Include cfglayout.h.
19716         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
19717         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
19718         (struct call_arg_loc_node): New type.
19719         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
19720         tail_call_site_count): New variables.
19721         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
19722         DW_TAG_GNU_call_site_parameter.
19723         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
19724         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
19725         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
19726         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
19727         and DW_AT_GNU_all_source_call_sites.
19728         (mem_loc_descriptor): Handle ENTRY_VALUE.
19729         (add_src_coords_attributes): Don't add enything if
19730         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
19731         (dwarf2out_abstract_function): Save and clear call_arg_location,
19732         call_site_count and tail_call_site_count around dwarf2out_decl call.
19733         (gen_call_site_die): New function.
19734         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
19735         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
19736         (dwarf2out_function_decl): Clear call_arg_locations,
19737         call_arg_loc_last, set call_site_count and tail_call_site_count
19738         to -1 and free block_map.
19739         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
19740         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
19741         followed by any real instructions.
19742         (dwarf2out_begin_function): Set call_site_count and
19743         tail_call_site_count to 0.
19744         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
19745         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
19746         attempt to force a DIE for it and worst case remove the attribute.
19747         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
19748         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
19749         the decl itself.
19750         * var-tracking.c: Include tm_p.h.
19751         (vt_stack_adjustments): For calls call note_register_arguments.
19752         (argument_reg_set): New variable.
19753         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
19754         ensure the VALUE is resolved.
19755         (call_arguments): New variable.
19756         (prepare_call_arguments): New function.
19757         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
19758         (struct expand_loc_callback_data): Add ignore_cur_loc field.
19759         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
19760         always use the best expression.
19761         (vt_expand_loc): Add ignore_cur_loc argument.
19762         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
19763         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
19764         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
19765         note for all calls.
19766         (vt_add_function_parameter): Use cselib_lookup_from_insn.
19767         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
19768         argument.  Don't call cselib_preserve_only_values and
19769         cselib_reset_table.
19770         (note_register_arguments): New function.
19771         (vt_initialize): Compute argument_reg_set.  Call
19772         vt_add_function_parameters before processing basic blocks instead of
19773         afterwards.  For calls call prepare_call_arguments before calling
19774         cselib_process_insn.
19775         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
19776         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
19777         (var-tracking.o): Depend on $(TM_P_H).
19778         * cfglayout.h (insn_scope): New prototype.
19779         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
19780         * cfglayout.c (insn_scope): No longer static.
19781         * insn-notes.def (CALL_ARG_LOCATION): New.
19782         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
19783         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
19784         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
19785         nothing for DECL_EXTERNAL BLOCK_VARS.
19786
19787 2011-03-16  Alan Modra  <amodra@gmail.com>
19788
19789         PR target/45844
19790         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
19791         create invalid offset address for vsx splat insn.
19792         * config/rs6000/predicates.md (splat_input_operand): New.
19793         * config/rs6000/vsx.md (vsx_splat_*): Use it.
19794
19795 2011-03-15  Xinliang David Li  <davidxl@google.com>
19796
19797         PR c/47837
19798         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
19799         (normalize_preds): New function.
19800         (is_use_properly_guarded): Normalize def predicates.
19801
19802 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
19803
19804         PR target/46788
19805         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
19806         in the output template.
19807
19808 2011-03-15  Richard Guenther  <rguenther@suse.de>
19809
19810         PR middle-end/47650
19811         * tree-pretty-print.c (dump_function_declaration): Properly
19812         dump unprototyped and varargs function types.
19813
19814 2011-03-15  Richard Guenther  <rguenther@suse.de>
19815
19816         PR tree-optimization/13954
19817         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
19818         and friends.
19819
19820 2011-03-15  Richard Guenther  <rguenther@suse.de>
19821
19822         PR tree-optimization/48037
19823         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
19824         selects into BIT_FIELD_REFs.
19825         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
19826         vector select.
19827
19828 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
19829
19830         PR tree-optimization/48129
19831         * builtins.c (fold_builtin_snprintf): Convert to type of
19832         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
19833         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
19834
19835 2011-03-15  Richard Guenther  <rguenther@suse.de>
19836
19837         PR tree-optimization/41490
19838         * tree-ssa-dce.c (propagate_necessity): Handle returns without
19839         value but with VUSE.
19840         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
19841         return statements.
19842         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
19843         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
19844         * tree-tailcall.c (find_tail_calls): Ignore returns.
19845
19846 2011-03-15  Richard Guenther  <rguenther@suse.de>
19847
19848         PR middle-end/48031
19849         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
19850         or variable-indexed array accesses when in gimple form.
19851
19852 2011-03-15  Richard Guenther  <rguenther@suse.de>
19853
19854         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
19855
19856 2011-03-15  Alan Modra  <amodra@gmail.com>
19857
19858         PR target/48032
19859         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
19860         presume symbol_refs without a symbol_ref_decl are suitably
19861         aligned, nor other trees we may see here.  Handle anchor symbols.
19862         (legitimate_constant_pool_address_p): Comment.  Add mode param.
19863         Check cmodel=medium addresses.  Adjust all calls.
19864         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
19865         creating cmodel=medium optimized access to locals.
19866         * config/rs6000/constraints.md (R): Pass QImode to
19867         legitimate_constant_pool_address_p.
19868         * config/rs6000/predicates.md (input_operand): Pass mode to
19869         legitimate_constant_pool_address_p.
19870         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
19871         Update prototype.
19872
19873 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
19874
19875         PR target/48053
19876         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
19877         64-bit constants being loaded into registers other than GPRs such
19878         as loading 0 into a VSX register.
19879
19880 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19881
19882         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
19883
19884 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
19885
19886         PR middle-end/47917
19887         * builtins.c (fold_builtin_snprintf): New function.
19888         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
19889         (fold_builtin_4): Likewise.
19890
19891         PR middle-end/38878
19892         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
19893         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
19894         and C - X == X also strip nops from +/-/p+ operand.
19895         When optimizing -X == C, fold C to arg0's type.
19896
19897         PR debug/47946
19898         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
19899         emit it as add_AT_int instead of add_AT_unsigned.
19900
19901 2011-03-14  Tom Tromey  <tromey@redhat.com>
19902
19903         * unwind-dw2.c: Include sys/sdt.h if it exists.
19904         (_Unwind_DebugHook): Use STAP_PROBE2.
19905         * config.in, configure: Rebuild.
19906         * configure.ac: Check for sys/sdt.h.
19907
19908 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
19909
19910         * config/i386/i386.md (ROUND_FLOOR): New constant.
19911         (ROUND_CEIL): Ditto.
19912         (ROUND_TRUNC): Ditto.
19913         (ROUND_MXCSR): Ditto.
19914         (ROUND_NO_EXC): Ditto.
19915         (rint<mode>2): Use new defines instead of numerical constants.
19916         (floor<mode>2): Ditto.
19917         (ceil<mode>2): Ditto.
19918         (btrunc<mode>2): Ditto.
19919         * config/i386/i386-builtin-types.def: Define ROUND function type
19920         aliases.
19921         * config/i386/i386.c (enum ix86_builtins): Add
19922         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
19923         (struct builtin_description): Add
19924         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
19925         (ix86_expand_sse_round): New static function.
19926         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
19927         function types.
19928         (ix86_builtin_vectorized_function): Handle
19929         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
19930
19931 2011-03-14  Tom Tromey  <tromey@redhat.com>
19932
19933         * c-parser.c (c_parser_asm_string_literal): Clear
19934         warn_overlength_strings.
19935
19936 2011-03-14  Tom Tromey  <tromey@redhat.com>
19937
19938         * c-parser.c (disable_extension_diagnostics): Save
19939         warn_overlength_strings.
19940         (restore_extension_diagnostics): Restore warn_overlength_strings.
19941
19942 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
19943
19944         * BASE-VER: Change to 4.7.0.
19945
19946 2011-03-14  Richard Guenther  <rguenther@suse.de>
19947
19948         PR middle-end/48098
19949         * tree.c (build_vector_from_val): Adjust assert to requirements
19950         and reality.
19951
19952 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
19953
19954         PR bootstrap/48102
19955         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
19956
19957 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
19958
19959         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
19960         terms of target_flags_explicit. Adjust copyright year.
19961
19962         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
19963         * config/rs6000/t-freebsd: New file. Add override for
19964         LIB2FUNCS_EXTRA.
19965
19966 2011-03-13  Chris Demetriou  <cgd@google.com>
19967
19968         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
19969         (-fno-diagnostics-show-option): this, to reflect current default.
19970         (-Werror=): Update text about -fno-diagnostics-show-option.
19971
19972 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
19973
19974         PR target/48053
19975         * config/rs6000/predicates.md (easy_vector_constant_add_self,
19976         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
19977         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
19978         mode is not V2DImode or V2DFmode.
19979         (vspltis_constant): Do not handle V2DImode and V2DFmode.
19980         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
19981         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
19982         registers to 0.
19983         (movdi_internal64): Likewise.
19984
19985 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
19986
19987         PR tree-optimization/47127
19988         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
19989         parameter.
19990         (set_cloog_options): Same.
19991         (scop_to_clast): Same.
19992         (print_clast_stmt): Do not call cloog_state_malloc and
19993         cloog_state_free.
19994         (print_generated_program): Same.
19995         (gloog): Same.
19996         * graphite-clast-to-gimple.h (cloog_state): Declared.
19997         (scop_to_clast): Adjust declaration.
19998         * graphite.c (cloog_state): Defined here.
19999         (graphite_initialize): Call cloog_state_malloc.
20000         (graphite_finalize): Call cloog_state_free.
20001
20002 2011-03-11  Jason Merrill  <jason@redhat.com>
20003
20004         * attribs.c (lookup_attribute_spec): Take const_tree.
20005         * tree.h: Adjust.
20006
20007 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
20008
20009         * config/sparc/sparc.c (sparc_option_override): Use
20010         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
20011
20012 2011-03-11  Richard Guenther  <rguenther@suse.de>
20013
20014         PR tree-optimization/48067
20015         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
20016         multiplication result will be only used once on the target
20017         stmt.
20018
20019 2011-03-11  Richard Guenther  <rguenther@suse.de>
20020
20021         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
20022
20023 2011-03-11  Richard Guenther  <rguenther@suse.de>
20024
20025         PR lto/48073
20026         * tree.c (find_decls_types_r): Do not walk types only reachable
20027         from IDENTIFIER_NODEs.
20028
20029 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
20030
20031         PR middle-end/48044
20032         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
20033         all vnode->force_output nodes as needed.
20034
20035 2011-03-11  Jason Merrill  <jason@redhat.com>
20036
20037         PR c++/48069
20038         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
20039         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
20040
20041 2011-03-11  Martin Jambor  <mjambor@suse.cz>
20042
20043         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
20044         cgraph_node.
20045
20046 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
20047
20048         PR tree-optimization/48063
20049         * ipa-inline.c (cgraph_decide_inlining): Don't try to
20050         inline functions called once if !tree_can_inline_p (node->callers).
20051
20052 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
20053
20054         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
20055         extra_objs.
20056         * config/score/score3.c: Delete.
20057         * config/score/score3.h: Delete.
20058         * config/score/mul-div.S: Delete.
20059         * config/score/sfp-machine.h: Add new file.
20060         * config/score/constraints.md: Add new file.
20061         * config/score/t-score-softfp: Add new file.
20062         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
20063         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
20064         (score7_extra_constraint): Delete.
20065         (score7_option_override): Remove unused code.
20066         * config/score/score.c: Remove score3 and score5 define and code.
20067         * config/score/score.h: Remove score3 and score5 define and code.
20068         * config/score/score.md: Remove score3 template and unusual insn.
20069         * config/score/score.opt: Remove score3 and score5 options.
20070
20071 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20072
20073         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
20074         when _HPUX_SOURCE is defined.
20075         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
20076
20077 2011-03-10  Jason Merrill  <jason@redhat.com>
20078
20079         PR c++/48029
20080         * stor-layout.c (layout_type): Don't set structural equality
20081         on arrays of incomplete type.
20082         * tree.c (type_hash_eq): Handle comparing them properly.
20083
20084 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
20085
20086         PR debug/48043
20087         * config/s390/s390.c (s390_delegitimize_address): Make sure the
20088         result mode matches original rtl mode.
20089
20090 2011-03-10  Nick Clifton  <nickc@redhat.com>
20091
20092         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
20093         (andsi3, andsi3_flags): Fix timings for three operand alternative.
20094
20095 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
20096
20097         PR rtl-optimization/47866
20098         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
20099         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
20100         if target wasn't scalar.
20101         * function.c (assign_stack_temp_for_type): Assert that neither
20102         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
20103         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
20104         macro.
20105         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
20106
20107 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20108
20109         * config/s390/s390-protos.h (s390_label_align): New prototype.
20110         * config/s390/s390.c (s390_label_align): New function.
20111         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
20112
20113 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
20114
20115         PR target/47755
20116         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
20117         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
20118         (output_vec_const_move): Ditto.
20119
20120 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
20121
20122         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
20123         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
20124         * config/mips/mips.c (mips_preferred_reload_class): Make static.
20125         Change 'rclass' argument and result type to reg_class_t.
20126         (TARGET_PREFERRED_RELOAD_CLASS): Define.
20127
20128 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
20129
20130         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
20131         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
20132         (TARGET_MEMORY_MOVE_COST): Define.
20133         (avr_register_move_cost, avr_memory_move_cost): New Functions.
20134
20135 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
20136
20137         PR debug/47881
20138         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
20139         removed anything.
20140
20141         PR tree-optimization/48022
20142         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
20143         for EQ/NE_EXPR.
20144
20145 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
20146
20147         PR debug/47991
20148         * var-tracking.c (find_use_val): Return NULL for
20149         cui->sets && cui->store_p BLKmode MEMs.
20150
20151 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
20152
20153         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
20154         Remove.
20155         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
20156         xstormy16_print_operand_address): Remove.
20157         * config/stormy16/stormy16.c (xstormy16_print_operand,
20158         xstormy16_print_operand_address): Make static.
20159         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20160
20161 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
20162
20163         PR target/47862
20164         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
20165         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
20166         before definition.
20167
20168 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
20169
20170         PR bootstrap/48000
20171         * cfgloopmanip.c (fix_bb_placements): Return immediately
20172         if FROM is BASE_LOOP's header.
20173
20174 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
20175
20176         * gimplify.c (gimplify_function_tree): Fix building calls
20177         to __builtin_return_address.
20178
20179 2011-03-07  Alan Modra  <amodra@gmail.com>
20180
20181         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
20182         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
20183         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
20184         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
20185         return_mode args.
20186         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
20187         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
20188         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
20189         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
20190         * config/rs6000/rs6000.c
20191         (rs6000_elf_end_indicate_exec_stack): Rename to..
20192         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
20193         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
20194         (rs6000_file_start): ..here.
20195         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
20196         file scope variables.
20197         (call_ABI_of_interest): New function.
20198         (init_cumulative_args): Set above vars when function return value
20199         is a float, vector, or small struct.
20200         (rs6000_function_arg_advance_1): Likewise for function args.
20201         (rs6000_va_start): Set rs6000_passes_float if variable arg function
20202         references float args.
20203
20204 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
20205
20206         * doc/cfg.texi: Remove "See" before @ref.
20207         * doc/invoke.texi: Likewise.
20208
20209 2011-03-05  Jason Merrill  <jason@redhat.com>
20210
20211         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
20212
20213 2011-03-05  Anthony Green  <green@moxielogic.com>
20214
20215         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
20216
20217 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
20218
20219         PR rtl-optimization/47899
20220         * cfgloopmanip.c (fix_bb_placements): Fix first argument
20221         to flow_loop_nested_p when moving the loop upward.
20222
20223 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
20224
20225         PR target/47719
20226         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
20227
20228 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
20229
20230         PR tree-optimization/47967
20231         * ipa-cp.c (build_const_val): Return NULL instead of creating
20232         VIEW_CONVERT_EXPR for mismatching sizes.
20233         (ipcp_create_replace_map): Return NULL if build_const_val failed.
20234         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
20235         give up on versioning.
20236
20237 2011-03-05  Alan Modra  <amodra@gmail.com>
20238
20239         PR target/47986
20240         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
20241         full cmodel medium/large lo_sum + high addresses.
20242
20243 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20244
20245         * config/s390/s390.c (s390_decompose_address): Reject non-literal
20246         pool references in UNSPEC_LTREL_OFFSET.
20247
20248 2011-03-04  Jan Hubicka  <jh@suse.cz>
20249
20250         PR lto/47497
20251         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
20252         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
20253         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
20254         Add node pointers.
20255         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
20256         cgraph_add_thunk): Add node pointers.
20257         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
20258         associated to right node.
20259         (input_node): Update use of cgraph_same_body_alias
20260         and cgraph_add_thunk.
20261
20262 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
20263
20264         * config/i386/i386.opt (mprefer-avx128): New flag.
20265         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
20266         modes when the flag -mprefer-avx128 is on.
20267
20268 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
20269
20270         * dwarf2out.c (compare_loc_operands): Fix address handling.
20271
20272 2011-03-04  Alan Modra  <amodra@gmail.com>
20273
20274         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
20275
20276 2011-03-04  Richard Guenther  <rguenther@suse.de>
20277
20278         PR middle-end/47968
20279         * expmed.c (extract_bit_field_1): Prefer vector modes that
20280         vec_extract patterns can handle.
20281
20282 2011-03-04  Richard Guenther  <rguenther@suse.de>
20283
20284         PR middle-end/47975
20285         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
20286
20287 2011-03-04  Richard Henderson  <rth@redhat.com>
20288
20289         * explow.c (emit_stack_save): Remove 'after' parameter.
20290         (emit_stack_restore): Likewise.
20291         * expr.h: Update to match.
20292         * builtins.c, calls.c, stmt.c: Likewise.
20293         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
20294         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
20295         * function.c (expand_function_end): Insert the emit_stack_save
20296         sequence before parm_birth_insn instead of after.
20297
20298 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
20299
20300         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
20301         (ssse3_pmaddubsw128): Ditto.
20302         (ssse3_pmaddubsw): Ditto.
20303
20304 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
20305
20306         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
20307
20308 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
20309
20310         PR c/47963
20311         * gimplify.c (omp_add_variable): Only call omp_notice_variable
20312         on TYPE_SIZE_UNIT if it is a DECL.
20313
20314         PR debug/47283
20315         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
20316         first operand is not is_gimple_mem_ref_addr, try to fold it.
20317         If the operand still isn't is_gimple_mem_ref_addr, clear
20318         MEM_EXPR on op0.
20319
20320 2011-03-03  Richard Guenther  <rguenther@suse.de>
20321
20322         PR middle-end/47283
20323         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
20324         match comment.
20325         (refs_may_alias_p_1): For release branches return true if
20326         we are confused by our input.
20327
20328 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20329
20330         * config/s390/s390.c (s390_function_value): Rename to ...
20331         (s390_function_and_libcall_value): ... this.
20332         (s390_function_value): New function.
20333         (s390_libcall_value): New function.
20334         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
20335         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
20336         target macro definitions.
20337         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
20338
20339 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
20340
20341         * config/i386/freebsd64.h (CC1_SPEC): Define.
20342         * config/i386/linux64.h (CC1_SPEC): Define.
20343         * config/i386/x86-64.h (CC1_SPEC): Don't define.
20344
20345 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
20346
20347         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20348         Remove.
20349         * config/stormy16/stormy16.c: Include reload.h.
20350         (xstormy16_memory_move_cost): New function.
20351         (TARGET_MEMORY_MOVE_COST): Define.
20352
20353 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
20354
20355         PR rtl-optimization/47925
20356         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
20357         with side effects.  Remove the more-specific check for volatile asms.
20358
20359 2011-03-02  Alan Modra  <amodra@gmail.com>
20360
20361         PR target/47935
20362         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
20363         toc relative addresses for valid offsets.
20364
20365 2011-03-01  Richard Guenther  <rguenther@suse.de>
20366
20367         PR tree-optimization/47890
20368         * tree-vect-loop.c (get_initial_def_for_induction): Set
20369         related stmt properly.
20370
20371 2011-03-01  Richard Guenther  <rguenther@suse.de>
20372
20373         PR lto/47924
20374         * lto-streamer.c (lto_record_common_node): Also register
20375         the canonical type.
20376
20377 2011-03-01  Richard Guenther  <rguenther@suse.de>
20378
20379         PR lto/46911
20380         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
20381         Do not stream DECL_ABSTRACT_ORIGIN.
20382         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
20383         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
20384         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
20385         Do not stream DECL_ABSTRACT_ORIGIN.
20386         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
20387         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
20388
20389 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
20390
20391         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
20392         FUNCTION_VALUE_REGNO_P): Remove.
20393         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
20394         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
20395         Add 'outgoing' argument.
20396         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
20397         function.
20398         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
20399         TARGET_FUNCTION_VALUE_REGNO_P): Define.
20400
20401 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
20402
20403         PR debug/28047
20404         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
20405         (lookup_filename): Likewise.
20406         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
20407
20408 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
20409             Jakub Jelinek  <jakub@redhat.com>
20410
20411         PR middle-end/47893
20412         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
20413         (assign_stack_local_1): Change last argument type to int.
20414         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
20415         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
20416         don't record padding space into frame_space_list nor use those areas.
20417         (assign_stack_local): Adjust caller.
20418         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
20419         of assign_stack_local, pass 0 as last argument.
20420         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
20421         callers.
20422
20423 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
20424
20425         PR debug/47283
20426         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
20427         Use target address_mode and pointer_mode hooks instead of hardcoded
20428         Pmode and ptr_mode.  Handle some simple cases of extending if
20429         POINTERS_EXTEND_UNSIGNED < 0.
20430         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
20431         Call convert_debug_memory_address.
20432         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
20433         convert_debug_memory_address.
20434
20435         PR middle-end/46790
20436         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
20437         * configure: Regenerated.
20438         * config.in: Regenerated.
20439         * varasm.c (default_function_section): Return NULL
20440         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
20441
20442 2011-02-28  Martin Jambor  <mjambor@suse.cz>
20443
20444         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
20445         the description to match the printed values.
20446
20447 2011-02-28  Richard Guenther  <rguenther@suse.de>
20448
20449         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
20450         of the copied scope tree.
20451
20452 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20453
20454         * doc/extend.texi (Function Attributes): Avoid deeply (and
20455         wrongly) nested tables.
20456
20457 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
20458
20459         PR middle-end/47903
20460         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
20461         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
20462         r isn't op0 nor op1.
20463
20464 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
20465
20466         * config/avr/avr.md: Remove magic comment for emacs.
20467
20468 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
20469
20470         PR target/45261
20471         * config/avr/avr.c (avr_option_override): Use error on bad options.
20472         (avr_help): New function.
20473         (TARGET_HELP): Define.
20474
20475 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
20476
20477         PR target/42240
20478         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
20479         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
20480
20481 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
20482
20483         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
20484         (ARM Options): Ditto.
20485         (i386 and x86-64 Options): Ditto.
20486         (RX Options): Ditto.
20487         (SPARC Options): Ditto.
20488
20489 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
20490
20491         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
20492         FreeBSD 6 and later.  Generally use cpu generic.
20493
20494 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
20495
20496         * doc/cpp.texi: Update copyright years.
20497
20498 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
20499
20500         PR target/46898
20501         * config/lm32/lm32.md (ashrsi3): Added needed variable.
20502
20503 2011-02-25  Jon Beniston  <jon@beniston.com>
20504
20505         PR target/46898
20506         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
20507         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
20508         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
20509         (lm32_block_move_inline): Add type cast to remove warning.
20510         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
20511         (gen_int_relational): Move declarations to start of function.
20512
20513 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
20514
20515         PR tree-optimization/45470
20516         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
20517         can throw internally only.
20518         * tree-vect-stmts.c (vectorizable_call): Likewise.
20519
20520 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
20521
20522         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
20523         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
20524         * config/stormy16/stormy16-protos.h
20525         (xstormy16_preferred_reload_class): Remove.
20526         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
20527         static. Change 'rclass' argument and return type to reg_class_t.
20528         (TARGET_PREFERRED_RELOAD_CLASS,
20529         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
20530
20531 2011-02-24  Richard Guenther  <rguenther@suse.de>
20532
20533         * lto-streamer-in.c (input_bb): Do not find referenced vars
20534         in debug statements.
20535
20536 2011-02-23  Jason Merrill  <jason@redhat.com>
20537
20538         * common.opt (fabi-version): Document v5 and v6.
20539
20540 2011-02-23  Richard Guenther  <rguenther@suse.de>
20541
20542         PR tree-optimization/47849
20543         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
20544
20545 2011-02-23  Jie Zhang  <jie@codesourcery.com>
20546
20547         * opts-common.c (decode_cmdline_option): Print empty string
20548         argument as "" in decoded->orig_option_with_args_text.
20549         * gcc.c (execute): Print empty string argument as ""
20550         in the verbose output.
20551         (do_spec_1): Keep empty string argument.
20552
20553 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
20554
20555         * config.gcc: Declare score-* and crx-* obsolete.
20556
20557 2011-02-23  Jie Zhang  <jie@codesourcery.com>
20558
20559         PR rtl-optimization/47763
20560         * web.c (web_main): Ignore naked clobber when replacing register.
20561
20562 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
20563
20564         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
20565         Remove.
20566
20567 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20568
20569         PR doc/47848
20570         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
20571
20572 2011-02-22  Mike Stump  <mikestump@comcast.net>
20573
20574         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
20575         assembler.
20576         * configure: Regenerate.
20577
20578 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
20579
20580         PR rtl-optimization/46002
20581         * ira-color.c (update_copy_costs): Change class intersection
20582         test to reg_class_contents[] test of 'hard_regno'.
20583
20584 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
20585
20586         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
20587         than Driver option.
20588         * config/hpux11.opt (mt): Likewise.
20589         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
20590         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
20591         * config/vax/elf.opt (mno-asm-pic): Likewise.
20592         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
20593
20594 2011-02-21  Mike Stump  <mikestump@comcast.net>
20595
20596         PR target/47822
20597         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
20598         tree so we can get save the type.
20599         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
20600         for CFString instead of trying to use past the end of the builtins.
20601         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
20602         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
20603         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
20604         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
20605         Rename to darwin_builtin_cfstring.
20606         (darwin_init_cfstring_builtins): Return the built type.
20607
20608 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
20609
20610         PR target/47840
20611         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
20612         (_mm256_insert_epi64): Use _mm_insert_epi64.
20613
20614 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
20615
20616         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20617         * config/stormy16/stormy16-protos.h
20618         (xstormy16_mode_dependent_address_p): Remove.
20619         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
20620         Make static. Change return type to bool. Change argument type to
20621         const_rtx. Remove dead code.
20622         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20623
20624 2011-02-21  Richard Guenther  <rguenther@suse.de>
20625
20626         PR lto/47820
20627         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
20628         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
20629         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
20630         TUs context.
20631         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
20632         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
20633
20634 2011-02-20  Richard Guenther  <rguenther@suse.de>
20635
20636         PR lto/47822
20637         * tree.c (free_lang_data_in_decl): Clean builtins from
20638         the TU decl BLOCK_VARS.
20639
20640 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
20641
20642         PR debug/47620
20643         PR debug/47630
20644         * haifa-sched.c (fix_tick_ready): Skip tick computation
20645         for debug insns.
20646
20647 2011-02-19  Richard Guenther  <rguenther@suse.de>
20648
20649         PR lto/47647
20650         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
20651         Remove lazy BLOCK_VARS streaming.
20652         (lto_input_ts_block_tree_pointers): Likewise.
20653         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
20654
20655 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
20656
20657         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
20658
20659 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
20660
20661         * config/i386/biarch32.h, config/i386/mach.h,
20662         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
20663
20664 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
20665
20666         PR target/47800
20667         * config/i386/i386.md (peephole2 for shift and plus): Use
20668         operands[1] original mode in the first insn.
20669
20670 2011-02-18  Mike Stump  <mikestump@comcast.net>
20671
20672         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
20673
20674 2011-02-18  Jan Hubicka  <jh@suse.cz>
20675
20676         PR middle-end/47788
20677         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
20678         to zero when the function is not inlinable at all.
20679
20680 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20681
20682         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
20683         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
20684         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
20685         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
20686         * config/pa/t-pa64: Likewise.
20687         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
20688
20689 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
20690
20691         PR driver/47787
20692         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
20693
20694 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20695
20696         PR target/47792
20697         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
20698
20699 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
20700
20701         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
20702         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
20703         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
20704         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
20705         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
20706         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
20707         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
20708         m32r_load_postinc_p, m32r_store_preinc_predec_p,
20709         m32r_legitimate_address_p): New functions.
20710         * config/m32r/constraints.md (constraint "S"): Don't use
20711         STORE_PREINC_PREDEC_P.
20712         (constraint "U"): Don't use LOAD_POSTINC_P.
20713
20714 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
20715
20716         PR rtl-optimization/46178
20717         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
20718         compute ira_hard_regno_cover_class[].
20719
20720 2011-02-18  Richard Guenther  <rguenther@suse.de>
20721
20722         PR lto/47798
20723         * lto-streamer.h (lto_global_var_decls): Declare.
20724         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
20725         statics for global var processing.
20726
20727 2011-02-18  Richard Guenther  <rguenther@suse.de>
20728
20729         PR tree-optimization/47737
20730         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
20731         edge dominance check.
20732
20733 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
20734
20735         PR debug/47780
20736         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
20737         avoid invalid rtx sharing.
20738
20739 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
20740
20741         * doc/cpp.texi (Obsolete Features): Add background on the
20742         origin of assertions.
20743
20744 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
20745
20746         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
20747         objc_abi == 2.
20748         * config/darwin.c (output_objc_section_asm_op): Added support for
20749         ABI v1 and v2.
20750         (is_objc_metadata): New.
20751         (darwin_objc2_section): New.
20752         (darwin_objc1_section): New.
20753         (machopic_select_section): Added support for ABI v1 and v2.
20754         (darwin_emit_objc_zeroed): New.
20755         (darwin_output_aligned_bss): Detect objc metadata and treat it
20756         appropriately.
20757         (darwin_asm_output_aligned_decl_common): Same.
20758         (darwin_asm_output_aligned_decl_local): Same.
20759         * config/darwin-sections.def: Updated for ABI v1 and v2.
20760         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
20761         compiling Objective-C code for the NeXT runtime, default to using
20762         ABI version 0 for 32-bit, and version 2 for 64-bit.
20763
20764 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20765
20766         * common.opt (optimize_fast): New Variable.
20767         * opts.c (default_options_optimization): Use opts->x_optimize_fast
20768         instead of local variable ofast.
20769
20770 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
20771
20772         * doc/invoke.texi (fobjc-abi-version): Documented.
20773         (fobjc-nilcheck): Documented.
20774         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
20775         version.
20776
20777 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20778
20779         PR driver/47390
20780         * common.opt (export-dynamic): New Driver option.
20781         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
20782
20783 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20784
20785         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
20786
20787 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
20788             Jan Hubicka  <jh@suse.cz>
20789
20790         PR debug/47106
20791         PR debug/47402
20792         * cfgexpand.c (account_used_vars_for_block): Remove.
20793         (estimated_stack_frame_size): Use referenced vars.
20794         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
20795         that were referenced in the original function.  Test src_fn
20796         rather than cfun.  Drop redundant get_var_ann.
20797         (setup_one_parameter): Drop redundant get_var_ann.
20798         (declare_return_variable): Likewise.
20799         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
20800         (copy_arguments_for_versioning): Drop redundant get_var_ann.
20801         * ipa-inline.c (compute_inline_parameters): Do not compute
20802         disregard_inline_limits here.
20803         (compute_inlinable_for_current, pass_inlinable): New.
20804         (pass_inline_parameters): Require PROP_referenced_vars.
20805         * cgraphunit.c (cgraph_process_new_functions): Don't run
20806         compute_inline_parameters explicitly unless function is in SSA form.
20807         (cgraph_analyze_function): Set .disregard_inline_limits.
20808         * tree-sra.c (convert_callers): Compute inliner parameters
20809         only for functions already in SSA form.
20810
20811 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20812
20813         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
20814         -mlittle-endian-data.
20815
20816 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20817
20818         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
20819         -mno-fpu, not -fpu and -no-fpu.
20820         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
20821         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
20822
20823 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
20824
20825         PR target/43653
20826         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
20827         input reload with PLUS RTX.
20828
20829 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20830
20831         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
20832         of InverseVar(MDMX).
20833
20834 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20835
20836         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
20837         --m4-340.
20838
20839 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20840
20841         * config/mn10300/mn10300.opt (mno-crt0): New.
20842
20843 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20844
20845         * config/m68k/uclinux.opt (static-libc): New Driver option.
20846
20847 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20848
20849         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
20850
20851 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20852
20853         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
20854         %{muser-extend-enabled}.
20855
20856 2011-02-16  Richard Guenther  <rguenther@suse.de>
20857
20858         PR tree-optimization/47738
20859         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
20860         the TODO from tree_predictive_commoning.
20861
20862 2011-02-15  Jeff Law  <law@redhat.com>
20863
20864         Revert
20865         2011-01-25  Jeff Law  <law@redhat.com>
20866
20867         PR rtl-optimization/37273
20868         * ira-costs.c (scan_one_insn): Detect constants living in memory and
20869         handle them like argument loads from stack slots.  Do not double
20870         count memory for memory constants and argument loads from stack slots.
20871
20872 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
20873
20874         PR target/47755
20875         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
20876         mode for vector constants.  Remove code that checks for TImode.
20877
20878 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20879
20880         PR debug/47106
20881         PR debug/47402
20882         * cgraph.h (compute_inline_parameters): Return void.
20883         * ipa-inline.c (compute_inline_parameters): Adjust.
20884
20885 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20886
20887         PR debug/47106
20888         PR debug/47402
20889         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
20890         rather than decl.
20891         * cfgexpand.c (estimated_stack_frame_size): Likewise.
20892         * ipa-inline.c (compute_inline_parameters): Adjust.
20893
20894 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20895
20896         PR debug/47106
20897         PR debug/47402
20898         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
20899         Adjust all users.  Pass FN to...
20900         * tree-flow-inline.h (first_referenced_var): ... this.  Add
20901         fn argument.
20902         * ipa-struct-reorg.c: Adjust.
20903         * tree-dfa.c: Adjust.
20904         * tree-into-ssa.c: Adjust.
20905         * tree-sra.c: Adjust.
20906         * tree-ssa-alias.c: Adjust.
20907         * tree-ssa-live.c: Adjust.
20908         * tree-ssa.c: Adjust.
20909         * tree-ssanames.c: Adjust.
20910         * tree-tailcall.c: Adjust.
20911
20912 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20913
20914         PR debug/47106
20915         PR debug/47402
20916         * tree-flow.h (referenced_var_lookup): Add fn parameter.
20917         Adjust all callers.
20918         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
20919         * tree-flow-inline.h: Adjust.
20920         * gimple-pretty-print.c: Adjust.
20921         * tree-into-ssa.c: Adjust.
20922         * tree-ssa.c: Adjust.
20923         * cfgexpand.c: Adjust.
20924
20925 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
20926
20927         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
20928         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20929         (EXTRA_CONSTRAINT): Delete.
20930         * config/iq2000/constraints.md: New file.
20931         * config/iq2000/iq2000.md: Include it.
20932         (define_insn ""): Delete.
20933         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
20934         unsupported constraint letters from patterns.
20935         (call_value, call_value_internal1): Likewise.
20936         (call_value_multiple_internal1): Likewise.
20937
20938 2011-02-15  Nick Clifton  <nickc@redhat.com>
20939
20940         * config/mn10300/mn10300.c: Include tm-constrs.h.
20941         (struct liw_data): New data structure describing an LIW candidate
20942         instruction.
20943         (extract_bundle): Use struct liw_data.  Allow small integer
20944         operands for some instructions.
20945         (check_liw_constraints): Use struct liw_data.  Remove swapped
20946         parameter.  Add comments describing the checks.  Fix bug when
20947         assigning the source of liw1 to the source of liw2.
20948         (liw_candidate): Delete.  Code moved into extract_bundle.
20949         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
20950         before swapping.
20951         * config/mn10300/predicates.md (liw_operand): New predicate.
20952         Allows registers and small integer constants.
20953         * config/mn10300/constraints.md (O): New constraint.  Accetps
20954         integers in the range -8 to +7 inclusive.
20955         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
20956         for moving a small integer into a register.  Give this alternative
20957         LIW attributes.
20958         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
20959         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
20960         using the J,K,L and M constraints,
20961         (liw): Remove SI mode on second operands to allow for HI and QI
20962         mode values.
20963         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
20964         instruction.
20965
20966 2011-02-15  Richard Guenther  <rguenther@suse.de>
20967
20968         PR tree-optimization/47743
20969         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
20970         for a non-type-compatible VN lookup bail out.
20971
20972 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
20973
20974         * config/fr30/constraints.md: New file.
20975         * config/fr30/fr30.md: Include it.
20976         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
20977         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20978         (EXTRA_CONSTRAINT): Delete.
20979
20980 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
20981
20982         * config/frv/constraints.md: New file.
20983         * config/frv/predicates.md: Include it.
20984         * config/frv/frv.c (reg_class_from_letter): Delete.
20985         (frv_option_override): Don't initialize it.
20986         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
20987         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
20988         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
20989         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20990         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
20991         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20992         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
20993         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
20994         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
20995         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
20996         (REG_CLASS_FROM_CONSTRAINT): Delete.
20997
20998 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
20999
21000         PR middle-end/47581
21001         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
21002         if frame size is 0 in a leaf function.
21003
21004 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21005
21006         PR pch/14940
21007         * config/alpha/host-osf.c: New file.
21008         * config/alpha/x-osf: New file.
21009         * config.host (alpha*-dec-osf*): Use it.
21010
21011 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
21012
21013         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21014         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
21015         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
21016         (rx_mode_dependent_address_p): ...this. Make static. Change argument
21017         type to const_rtx.
21018         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21019
21020 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
21021
21022         * config/stormy16/constraints.md: New file.
21023         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
21024         Use satisfies_constraint_Q and satisfies_constraint_R.
21025         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
21026         Delete.
21027         (xstormy16_legitiamte_address_p): Declare.
21028         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
21029         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21030         (EXTRA_CONSTRAINT): Delete.
21031         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
21032         Un-staticize.
21033         (xstormy16_extra_constraint_p): Delete.
21034
21035 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
21036
21037         PR tree-optimization/46494
21038         * loop-unroll.c (split_edge_and_insert): Adjust comment.
21039         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
21040         (pass_rtl_loop_done): Add TODO_verify_flow.
21041         * fwprop.c (pass_rtl_fwprop): Likewise.
21042         * modulo-sched.c (pass_sms): Likewise.
21043         * tree-ssa-dom.c (pass_dominator): Likewise.
21044         * tree-ssa-loop-ch.c (pass_ch): Likewise.
21045         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
21046         (pass_tree_loop_done): Likewise.
21047         * tree-ssa-pre.c (execute_pre): Likewise.
21048         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
21049         * tree-ssa-sink.c (pass_sink_code): Likewise.
21050         * tree-vrp.c (pass_vrp): Likewise.
21051
21052 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
21053
21054         * config/v850/constraints.md: New file.
21055         * config/v850/v850.md: Include it.
21056         * config/v850/predicates.md (reg_or_0_operand): Use
21057         satisfies_constraint_G.
21058         (special_symbolref_operand): Use satisfies_constraint_K.
21059         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
21060         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
21061         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
21062         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
21063         (EXTRA_CONSTRAINT): Delete.
21064         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
21065         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
21066         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
21067
21068 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
21069
21070         PR target/47696
21071         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
21072         description.
21073
21074 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
21075
21076         * config/mcore/constraints.md: New file.
21077         * config/mcore/mcore.md: Include it.
21078         * config/mcore/mcore.c (reg_class_from_letter): Delete.
21079         * config/mcore/mcore.h (reg_class_from_letter): Delete.
21080         (REG_CLASS_FROM_LETTER): Delete.
21081         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
21082         insn_const_int_ok_for_constraint.
21083         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
21084         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
21085         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21086         (EXTRA_CONSTRAINT): Delete.
21087
21088 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21089
21090         PR ada/41929
21091         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
21092         (IS_SIGHANDLER): Define.
21093         (sparc64_is_sighandler): New function, split off from
21094         sparc64_fallback_frame_state.
21095         (sparc_is_sighandler): New function, split off from
21096         sparc_fallback_frame_state.
21097         (sparc64_fallback_frame_state): Merge with ...
21098         (sparc_fallback_frame_state): ... this into ...
21099         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
21100         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
21101         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
21102         stack instead of hardcoded offsets.
21103
21104 2011-02-14  Andriy Gapon  <avg@freebsd.org>
21105
21106         PR target/45808
21107         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
21108
21109 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21110
21111         * configure: Regenerate.
21112
21113 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
21114
21115         PR driver/45731
21116         * gcc.c (asm_options): Correct spec matching --target-help.
21117
21118 2011-02-12  Martin Jambor  <mjambor@suse.cz>
21119
21120         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
21121         to gimple call error.
21122
21123 2011-02-12  Mike Stump  <mikestump@comcast.net>
21124
21125         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
21126         comments in backslash regions.
21127
21128 2011-02-12  Mike Stump  <mikestump@comcast.net>
21129             Jakub Jelinek  <jakub@redhat.com>
21130             Iain Sandoe  <iains@gcc.gnu.org>
21131
21132         PR target/47324
21133         * dwarf2out.c (output_cfa_loc): When required, apply the
21134         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
21135         (output_loc_sequence): Likewise.
21136         (output_loc_operands_raw): Likewise.
21137         (output_loc_sequence_raw): Likewise.
21138         (output_cfa_loc): Likewise.
21139         (output_loc_list): Suppress register number adjustment when
21140         calling output_loc_sequence()
21141         (output_die): Likewise.
21142
21143 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
21144
21145         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21146         Remove macros.
21147         * config/xtensa/xtensa.c (xtensa_register_move_cost,
21148         xtensa_memory_move_cost): New functions.
21149         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
21150
21151 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
21152
21153         PR lto/47225
21154         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
21155         in the current directory.
21156         * configure: Rebuilt.
21157
21158 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
21159
21160         * config/darwin.c (darwin_override_options): Add a hunk missed
21161         from the commit of r168571.  Trim comment line lengths and
21162         correct indents of the preceding block.
21163
21164 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
21165
21166         * gcc.c (driver_handle_option): Concatenate the argument to -F with
21167         the switch.
21168
21169 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
21170
21171         * common.opt (nostartfiles): New Driver option.
21172
21173 2011-02-11  Xinliang David Li  <davidxl@google.com>
21174
21175         PR tree-optimization/47707
21176         * tree-chrec.c (convert_affine_scev): Keep type precision.
21177
21178 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
21179
21180         PR tree-optimization/47420
21181         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
21182
21183 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
21184
21185         PR rtl-optimization/47614
21186         * rtl.h (check_for_inc_dec): Declare.
21187         * dse.c (check_for_inc_dec): Externalize...
21188         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
21189         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
21190
21191 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
21192
21193         PR driver/47678
21194         * gcc.c (main): Do not compile inputs if there were errors in
21195         option handling.
21196         * opts-common.c (read_cmdline_option): Check for wrong language
21197         after other error checks.
21198
21199 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
21200
21201         * cgraph.c: Fix comment typos.
21202         * cgraph.h: Likewise.
21203         * cgraphunit.c: Likewise.
21204         * ipa-cp.c: Likewise.
21205         * ipa-inline.c: Likewise.
21206         * ipa-prop.c: Likewise.
21207         * ipa-pure-const.c: Likewise.
21208         * ipa-ref.c: Likewise.
21209         * ipa-reference.c: Likewise.
21210
21211 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
21212
21213         PR debug/47684
21214         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
21215
21216 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21217
21218         PR testsuite/47400
21219         * doc/sourcebuild.texi (Require Support): Document
21220         dg-require-ascii-locale.
21221
21222 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
21223
21224         * doc/lto.texi (Write summary): Fix missing parentheses.
21225
21226 2011-02-10  DJ Delorie  <dj@redhat.com>
21227
21228         * config/m32c/m32c.c (m32c_option_override): Disable
21229         -fcombine-stack-adjustments until flag value tracking and compare
21230         optimization can be rewritten.
21231
21232 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
21233
21234         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
21235         PROCESSOR_POWER7.
21236         (PROCESSOR_DEFAULT64): Likewise.
21237
21238 2011-02-10  Richard Henderson  <rth@redhat.com>
21239
21240         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
21241         change from 2011-02-03.
21242         * config/rx/rx.c (flags_from_code): Likewise.
21243         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
21244         is valid, n/pz otherwise.
21245         (rx_select_cc_mode): Return CCmode if Y is not zero.
21246
21247 2011-02-10  Richard Guenther  <rguenther@suse.de>
21248
21249         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
21250
21251 2011-02-10  Richard Guenther  <rguenther@suse.de>
21252
21253         PR tree-optimization/47677
21254         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
21255
21256 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
21257
21258         PR target/47665
21259         * combine.c (make_compound_operation): Only change shifts into
21260         multiplication for SCALAR_INT_MODE_P.
21261
21262 2011-02-10  Jie Zhang  <jie@codesourcery.com>
21263
21264         PR testsuite/47622
21265         Revert
21266         2011-02-05  Jie Zhang  <jie@codesourcery.com>
21267         PR debug/42631
21268         * web.c (entry_register): Don't clobber the number of the
21269         first uninitialized reference in used[].
21270
21271 2011-02-09  Richard Guenther  <rguenther@suse.de>
21272
21273         PR tree-optimization/47664
21274         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
21275         all edges again.
21276
21277 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
21278
21279         PR target/46481
21280         PR target/47032
21281         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
21282         PROCESSOR_POWER7.
21283         (PROCESSOR_DEFAULT64): Same.
21284         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
21285
21286 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21287
21288         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
21289
21290 2011-02-09  Martin Jambor  <mjambor@suse.cz>
21291
21292         PR middle-end/45505
21293         * tree-sra.c (struct access): New flags grp_scalar_read and
21294         grp_scalar_write.  Changed description of assignment read and write
21295         flags.
21296         (dump_access): Dump new flags, reorder all of them.
21297         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
21298         to detect multiple scalar reads.
21299         (analyze_access_subtree): Use the new scalar read write flags instead
21300         of the old flags.  Adjusted comments.
21301
21302 2011-02-08  DJ Delorie  <dj@redhat.com>
21303
21304         PR target/47548
21305         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
21306         patterns.
21307
21308 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
21309
21310         * config/m68k/uclinux.opt: New.
21311         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
21312
21313 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
21314
21315         * config/cris/elf.opt (sim): New Driver option.
21316
21317 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
21318
21319         * config/xtensa/elf.opt: New.
21320         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
21321
21322 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
21323
21324         * config/vax/elf.opt: New.
21325         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
21326
21327 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
21328
21329         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
21330
21331 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
21332
21333         * config/gnu-user.opt: New.
21334         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
21335         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
21336         *-*-uclinux*): Use gnu-user.opt.
21337
21338 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
21339
21340         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
21341         * config/i386/gnu.h (CPP_SPEC): Likewise.
21342
21343 2011-02-08  Ian Lance Taylor  <iant@google.com>
21344
21345         * common.opt (fcx-limited-range): Add SetByCombined flag.
21346         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
21347         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
21348         (fassociative-math, freciprocal-math): Likewise.
21349         (funsafe-math-optimizations): Likewise.
21350         * opth-gen.awk: Handle SetByCombined.
21351         * optc-gen.awk: Likewise.
21352         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
21353         (set_unsafe_math_optimizations_flags): Likewise.
21354         * doc/options.texi (Option properties): Document SetByCombined.
21355
21356 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
21357
21358         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
21359         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
21360         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
21361         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
21362         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
21363
21364 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
21365
21366         PR tree-optimization/46834
21367         PR tree-optimization/46994
21368         PR tree-optimization/46995
21369         * graphite-sese-to-poly.c (used_outside_reduction): New.
21370         (detect_commutative_reduction): Call used_outside_reduction.
21371         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
21372         translate_scalar_reduction_to_array only when at least one
21373         loop-phi/close-phi tuple has been detected.
21374
21375 2011-02-08  Richard Guenther  <rguenther@suse.de>
21376
21377         PR middle-end/47639
21378         * tree-vect-generic.c (expand_vector_operations_1): Update
21379         stmts here ...
21380         (expand_vector_operations): ... not here.  Cleanup EH info
21381         and the CFG if required.
21382
21383 2011-02-08  Richard Guenther  <rguenther@suse.de>
21384
21385         PR tree-optimization/47641
21386         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
21387         require type compatibility.
21388
21389 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21390
21391         * gimple-low.c (lower_function_body): Don't remove the location of
21392         the return statement here.
21393         (lower_gimple_return): Do it here instead but only if the return
21394         statement is actually used twice.
21395
21396 2011-02-08  Richard Guenther  <rguenther@suse.de>
21397
21398         PR tree-optimization/47632
21399         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
21400         unused up_to_stmt parameter, return whether cfg-cleanup is
21401         necessary, remove EH info properly.
21402         (forward_propagate_into_gimple_cond): Adjust caller.
21403         (forward_propagate_into_cond): Likewise.
21404         (forward_propagate_comparison): Likewise.
21405         (tree_ssa_forward_propagate_single_use_vars): Make
21406         forward_propagate_comparison case similar to the two others.
21407
21408 2011-02-08  Nick Clifton  <nickc@redhat.com>
21409
21410         * config/mn10300/mn10300.opt (mliw): New command line option.
21411         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
21412         (liw_bundling): New automaton.
21413         (liw): New attribute.
21414         (liw_op): New attribute.
21415         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
21416         (movsi_internal): Add LIW attributes.
21417         (andsi3): Likewise.
21418         (iorsi3): Likewise.
21419         (xorsi3): Likewise.
21420         (addsi3): Separate register and immediate alternatives.
21421         Add LIW attributes.
21422         (subsi3): Likewise.
21423         (cmpsi): Likewise.
21424         (aslsi3): Likewise.
21425         (lshrsi3): Likewise.
21426         (ashrsi3): Likewise.
21427         (liw): New pattern.
21428         * config/mn10300/mn10300.c (liw_op_names): New
21429         (mn10300_print_operand): Handle 'W' operand descriptor.
21430         (extract_bundle): New function.
21431         (check_liw_constraints): New function.
21432         (liw_candidate): New function.
21433         (mn10300_bundle_liw): New function.
21434         (mn10300_reorg): New function.
21435         (TARGET_MACHINE_DEPENDENT_REORG): Define.
21436         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
21437         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
21438         __LIW__ or __NO_LIW__.
21439         * doc/invoke.texi: Describe the -mliw command line option.
21440
21441 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21442
21443         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
21444         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
21445         pthread_mutex_unlock): Remove.
21446         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
21447         * config/pa/t-pa64: Likewise.
21448         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
21449         shared libc if not linking against libpthread.
21450         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
21451
21452 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
21453
21454         PR target/47558
21455         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
21456         on 10.6 and later to ensure that we always use the unwinder from
21457         the system.  Only add -no_compact_unwind when tarteting darwin
21458         10.6 or later.
21459
21460 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
21461
21462         PR target/46997
21463         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
21464         (vec_interleave_lowv2sf): Ditto.
21465         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
21466         (vec_extract_oddv2sf): Ditto.
21467
21468 2011-02-07  Mike Stump  <mikestump@comcast.net>
21469
21470         PR target/42333
21471         Add __ieee_divdc3 entry point.
21472         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
21473         entry point.
21474         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
21475         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
21476         * config/darwin.c (darwin_rename_builtins): Add.
21477         * config/darwin-protos.h (darwin_rename_builtins): Add.
21478
21479 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
21480
21481         PR target/47636
21482         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
21483         for the condition.
21484
21485 2011-02-07  Mike Stump  <mikestump@comcast.net>
21486
21487         * config/darwin.opt (mmacosx-version-min): Update default OS version.
21488
21489 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
21490
21491         PR target/47534
21492         * config/avr/libgcc.S (exit): Move .endfunc
21493
21494 2011-02-07  Richard Guenther  <rguenther@suse.de>
21495
21496         PR tree-optimization/47615
21497         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
21498         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
21499         (run_scc_vn): Initialize it.
21500         (visit_reference_op_load): Use it.
21501         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
21502
21503 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21504
21505         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
21506         DImode trapping arithmetic libfuncs.
21507
21508 2011-02-07  Richard Guenther  <rguenther@suse.de>
21509
21510         PR tree-optimization/47621
21511         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
21512         two duplicates ...
21513         (execute_update_addresses_taken): ... here.  Make it more
21514         conservative in what we accept.
21515
21516 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
21517
21518         * config/sparc/freebsd.h (ASM_SPEC): Define.
21519         * config/sparc/vxworks.h (ASM_SPEC): Define.
21520
21521 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
21522
21523         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
21524
21525 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
21526
21527         * doc/invoke.texi: Remove reference to compiler internals from
21528         user documentation.
21529
21530         * reg-notes.def: Remove REG_VALUE_PROFILE.
21531         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
21532
21533 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
21534
21535         PR middle-end/47610
21536         * varasm.c (default_section_type_flags): If decl is NULL,
21537         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
21538
21539 2011-02-05  Jie Zhang  <jie@codesourcery.com>
21540
21541         PR debug/42631
21542         * web.c (entry_register): Don't clobber the number of the
21543         first uninitialized reference in used[].
21544
21545 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
21546
21547         PR tree-optimization/46194
21548         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
21549         (build_classic_dist_vector_1): Do not represent classic distance
21550         vectors when the access functions are variating in different loops.
21551
21552 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
21553
21554         * config/mips/iris6.opt: New.
21555         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
21556
21557 2011-02-04  Richard Henderson  <rth@redhat.com>
21558             Steve Ellcey  <sje@cup.hp.com>
21559
21560         PR target/46997
21561         * config/ia64/predicates.md (mux1_brcst_element): New.
21562         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
21563         * config/ia64/ia64.c (ia64_unpack_assemble): New.
21564         (ia64_unpack_sign): New.
21565         (ia64_expand_unpack): Rewrite using new routines.
21566         (ia64_expand_widen_sum): Ditto.
21567         (ia64_expand_dot_prod_v8qi): Ditto.
21568         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
21569         routines, add endian check.
21570         (pmpy2_even): Rename from pmpy2_r, add endian check.
21571         (pmpy2_odd): Rename from pmpy2_l, add endian check.
21572         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
21573         (vec_widen_smult_hi_v4hi): Ditto.
21574         (vec_widen_umult_lo_v4hi): Ditto.
21575         (vec_widen_umult_hi_v4hi): Ditto.
21576         (mulv2si3): Change endian checks.
21577         (sdot_prodv4hi): Rewrite with new calls.
21578         (udot_prodv4hi): New.
21579         (vec_pack_ssat_v4hi): Add endian check.
21580         (vec_pack_usat_v4hi): Ditto.
21581         (vec_pack_ssat_v2si): Ditto.
21582         (max1_even): Rename from max1_r, add endian check.
21583         (max1_odd): Rename from max1_l, add endian check.
21584         (*mux1_rev): Format change.
21585         (*mux1_mix): Ditto.
21586         (*mux1_shuf): Ditto.
21587         (*mux1_alt): Ditto.
21588         (*mux1_brcst_v8qi): Use new predicate.
21589         (vec_extract_evenv8qi): Remove endian check.
21590         (vec_extract_oddv8qi): Ditto.
21591         (vec_interleave_lowv4hi): Format change.
21592         (vec_interleave_highv4hi): Ditto.
21593         (mix2_even): Rename from mix2_r, add endian check.
21594         (mix2_odd): Rename from mux2_l, add endian check.
21595         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
21596         (vec_extract_evenodd_helper): Format change.
21597         (vec_extract_evenv4hi): Remove endian check.
21598         (vec_extract_oddv4hi): Remove endian check.
21599         (vec_interleave_lowv2si): Format change.
21600         (vec_interleave_highv2si): Format change.
21601         (vec_initv2si): Remove endian check.
21602         (vecinit_v2si): Add endian check.
21603         (reduc_splus_v2sf): Add endian check.
21604         (reduc_smax_v2sf): Ditto.
21605         (reduc_smin_v2sf): Ditto.
21606         (vec_initv2sf): Remove endian check.
21607         (fpack): Add endian check.
21608         (fswap): Add endian check.
21609         (vec_interleave_highv2sf): Add endian check.
21610         (vec_interleave_lowv2sf): Add endian check.
21611         (fmix_lr): Add endian check.
21612         (vec_setv2sf): Format change.
21613         (*vec_extractv2sf_0_be): Use shift to extract operand.
21614         (*vec_extractv2sf_1_be): New.
21615         (vec_pack_trunc_v4hi): Add endian check.
21616         (vec_pack_trunc_v2si): Format change.
21617
21618 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
21619
21620         PR inline-asm/23200
21621         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
21622         do bb, locus and block comparison and disallow loads if it is not set.
21623         (stmt_is_replaceable_p): New function.
21624         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
21625         callers.
21626         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
21627         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
21628         SSA_NAME_DEF_STMT.
21629         * tree-flow.h (stmt_is_replaceable_p): New prototype.
21630
21631 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
21632
21633         * config/rs6000/xilinx.opt: New.
21634         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
21635
21636 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
21637
21638         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
21639
21640 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
21641
21642         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
21643         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
21644         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
21645         secondary_reload_info, xtensa_secondary_reload): Remove.
21646         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
21647         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
21648         (xtensa_preferred_reload_class): Make static. Change return and
21649         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
21650         Use CONST_DOUBLE_P predicate.
21651         (xtensa_preferred_output_reload_class): New function.
21652         (xtensa_secondary_reload): Make static.
21653
21654 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
21655
21656         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
21657         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
21658         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
21659
21660 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
21661
21662         PR middle-end/31490
21663         * output.h (SECTION_RELRO): Define.
21664         (SECTION_MACH_DEP): Adjust.
21665         (get_variable_section): New prototype.
21666         * varpool.c (varpool_finalize_named_section_flags): New function.
21667         (varpool_assemble_pending_decls): Call it.
21668         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
21669         * cgraphunit.c (cgraph_output_in_order): Call
21670         varpool_finalize_named_section_flags.
21671         * varasm.c (get_section): Allow section flags conflicts between
21672         relro and read-only sections if the section hasn't been declared yet.
21673         Set SECTION_OVERRIDE after diagnosing section type conflict.
21674         (get_variable_section): No longer static.
21675         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
21676         readonly sections that need relocations.
21677         (decl_readonly_section_1): New function.
21678         (decl_readonly_section): Use it.
21679
21680         Revert:
21681         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
21682                     Steve Ellcey  <sje@cup.hp.com>
21683
21684         PR middle-end/31490
21685         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
21686         if section attribute used.
21687
21688 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
21689
21690         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
21691         * config/darwin.c (SECTION_NO_ANCHOR): Define.
21692         (darwin_init_sections): Remove assertion.
21693
21694 2011-02-03  Nick Clifton  <nickc@redhat.com>
21695
21696         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
21697         lt and ge.
21698         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
21699         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
21700         instead of "n" and "pz".
21701         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
21702         CC_FLAG_S.
21703
21704 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
21705
21706         PR target/47312
21707         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
21708         fma, expand FMA_EXPR as fma{,f,l} call.
21709
21710         PR lto/47274
21711         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
21712         copy them into a unsigned char variable and pass address of it to
21713         lto_output_data_stream.
21714
21715         PR target/47564
21716         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
21717         around backend_init_target and lang_dependent_init_target calls.
21718         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
21719         (verify_cgraph_node): Don't call set_cfun here.  Use
21720         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
21721         Set error_found for incorrectly represented calls to thunks.
21722
21723 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
21724
21725         PR debug/43092
21726         PR rtl-optimization/43494
21727         * rtl.h (for_each_inc_dec_fn): New type.
21728         (for_each_inc_dec): Declare.
21729         * rtlanal.c (struct for_each_inc_dec_ops): New type.
21730         (for_each_inc_dec_find_inc_dec): New fn.
21731         (for_each_inc_dec_find_mem): New fn.
21732         (for_each_inc_dec): New fn.
21733         * dse.c (struct insn_size): Remove.
21734         (replace_inc_dec, replace_inc_dec_mem): Remove.
21735         (emit_inc_dec_insn_before): New fn.
21736         (check_for_inc_dec): Use it, along with for_each_inc_dec.
21737         (canon_address): Pass mem modes to cselib_lookup.
21738         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
21739         (cselib_lookup_from_insn): Likewise.
21740         (cselib_subst_to_values): Likewise.
21741         * cselib.c (find_slot_memmode): New var.
21742         (cselib_find_slot): New fn.  Use it instead of
21743         htab_find_slot_with_hash everywhere.
21744         (entry_and_rtx_equal_p): Use find_slot_memmode.
21745         (autoinc_split): New fn.
21746         (rtx_equal_for_cselib_p): Rename and implement in terms of...
21747         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
21748         Deal with autoinc.  Special-case recursion into MEMs.
21749         (cselib_hash_rtx): Likewise.
21750         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
21751         address and MEM modes.
21752         (cselib_subst_to_values): Add memmode, pass it on.
21753         Deal with autoinc.
21754         (cselib_lookup): Add memmode argument, pass it on.
21755         (cselib_lookup_from_insn): Add memmode.
21756         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
21757         (struct cselib_record_autoinc_data): New.
21758         (cselib_record_autoinc_cb): New fn.
21759         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
21760         mode to cselib_lookup.  Reset autoinced REGs here instead of...
21761         (cselib_process_insn): ... here.
21762         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
21763         to cselib_lookup.
21764         (add_uses): Likewise, also to cselib_subst_to_values.
21765         (add_stores): Likewise.
21766         * sched-deps.c (add_insn_mem_dependence): Pass mode to
21767         cselib_subst_to_values.
21768         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
21769         * gcse.c (do_local_cprop): Adjusted.
21770         * postreload.c (reload_cse_simplify_set): Adjusted.
21771         (reload_cse_simplify_operands): Adjusted.
21772         * sel-sched-dump (debug_mem_addr_value): Pass mode.
21773
21774 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
21775
21776         PR tree-optimization/45122
21777         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
21778         unsafe assumptions when there's more than one loop exit.
21779
21780 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
21781
21782         PR target/47272
21783         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
21784         Document using vector double with the load/store builtins, and
21785         that the load/store builtins always use Altivec instructions.
21786
21787         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
21788         to use altivec memory instructions, even on VSX.
21789         (vector_altivec_store_<mode>): Ditto.
21790
21791         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
21792         function.
21793
21794         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21795         V2DF, V2DI support to load/store overloaded builtins.
21796
21797         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
21798         altivec load/store builtins for V2DF/V2DI types.
21799
21800         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
21801         set avoid indexed addresses on power6 if -maltivec.
21802         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
21803         vector_altivec_load/vector_altivec_store builtins.
21804         (altivec_expand_st_builtin): Ditto.
21805         (altivec_expand_builtin): Add VSX memory builtins.
21806         (rs6000_init_builtins): Add V2DI types to internal types.
21807         (altivec_init_builtins): Add support for V2DF/V2DI altivec
21808         load/store builtins.
21809         (rs6000_address_for_altivec): Insure memory address is appropriate
21810         for Altivec.
21811
21812         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
21813         vec_vsx_ld and vec_vsx_st.
21814         (vsx_store_<mode>): Ditto.
21815
21816         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
21817         variables to hold long long types for VSX vector memory builtins.
21818         (RS6000_BTI_unsigned_long_long): Ditto.
21819         (long_long_integer_type_internal_node): Ditti.
21820         (long_long_unsigned_type_internal_node): Ditti.
21821
21822         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
21823         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
21824         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
21825
21826         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
21827         short cuts.
21828         (vec_vsx_st): Ditto.
21829
21830 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
21831
21832         * config/pa/pa-hpux10.opt: New.
21833         * config/hpux11.opt (pthread): New Driver option.
21834         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
21835         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
21836
21837 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
21838
21839         * config/ia64/vms.opt: New.
21840         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
21841
21842 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
21843
21844         PR target/47580
21845         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
21846         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
21847         generator functions.
21848         (vsx_floatuns<VSi><mode>2): Ditto.
21849         (vsx_fix_trunc<mode><VSi>2): Ditto.
21850         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
21851
21852 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
21853
21854         * config/i386/djgpp.opt (posix): New Driver option.
21855
21856 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
21857
21858         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
21859         Move to the unsupported targets list.
21860
21861 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
21862
21863         PR rtl-optimization/47525
21864         * df-scan.c: Update copyright years.
21865         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
21866         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
21867
21868 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21869
21870         * config/i386/sysv4.h (TARGET_VERSION): Remove.
21871         (SUBTARGET_RETURN_IN_MEMORY): Remove.
21872         (ASM_OUTPUT_ASCII): Remove.
21873         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
21874
21875 2011-02-02  Jeff Law  <law@redhat.com>
21876
21877         PR middle-end/47543
21878         * reload.c (find_reloads_address): Handle reg+d address where both
21879         components are invalid by reloading the entire address.
21880
21881 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
21882             Richard Guenther  <rguenther@suse.de>
21883
21884         PR tree-optimization/40979
21885         PR bootstrap/47044
21886         * passes.c (init_optimization_passes): After LIM call copy_prop
21887         and DCE to clean up.
21888         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
21889
21890 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
21891
21892         PR tree-optimization/47576
21893         PR tree-optimization/47555
21894         * doc/invoke.texi (scev-max-expr-complexity): Documented.
21895         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21896         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
21897         * tree-scalar-evolution.c (follow_ssa_edge): Use
21898         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
21899
21900 2011-02-02  Richard Guenther  <rguenther@suse.de>
21901
21902         PR tree-optimization/47566
21903         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
21904
21905 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
21906
21907         PR debug/47106
21908         PR debug/47402
21909         * tree-inline.c (declare_return_variable): Remove unused caller
21910         variable.
21911
21912         PR debug/47106
21913         PR debug/47402
21914         * tree-flow-inline.h (clear_is_used, is_used_p): New.
21915         * cfgexpand.c (account_used_vars_for_block): Use them.
21916         * tree-nrv.c (tree_nrv): Likewise.
21917         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
21918         (dump_scope_block): Likewise.
21919         (remove_unused_locals): Likewise.
21920
21921         PR debug/47106
21922         PR debug/47402
21923         * tree-inline.c (declare_return_variable): Add result decl to
21924         local decls only once.
21925         * gimple-low.c (record_vars_into): Mark newly-created variables
21926         as referenced.
21927
21928 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
21929
21930         PR debug/47498
21931         PR debug/47501
21932         PR debug/45136
21933         PR debug/45130
21934         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21935         debug insns.
21936         (no_real_insns_p, schedule_block, set_priorities): Drop special
21937         treatment of boundary debug insns.
21938         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
21939         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
21940         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21941         (BOUNDARY_DEBUG_INSN_P): Likewise.
21942         (SCHEDULE_DEBUG_INSN_P): Likewise.
21943         * sched-rgn.c (init_ready_list): Drop special treatment of
21944         boundary debug insns.
21945         * final.c (rest_of_clean_state): Clear notes' BB.
21946
21947 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21948
21949         * config/openbsd.opt (assert=): New Driver option.
21950
21951 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21952
21953         * config/i386/nto.opt: New.
21954         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
21955
21956 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21957
21958         * config/i386/netware.opt: New.
21959         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
21960
21961 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21962
21963         * config/interix.opt (posix): New Driver option.
21964
21965 2011-02-01  DJ Delorie  <dj@redhat.com>
21966
21967         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
21968
21969         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
21970         class for A0/A1.
21971
21972 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
21973
21974         PR tree-optimization/47561
21975         * toplev.c (process_options): Print the Graphite flags.  Add
21976         flag_loop_flatten to the list of options requiring Graphite.
21977
21978 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21979
21980         * config/i386/cygming.opt (posix): New Driver option.
21981
21982 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21983
21984         * config/arm/vxworks.opt: New.
21985         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
21986
21987 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21988
21989         * config/alpha/elf.opt: New.
21990         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
21991         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
21992
21993 2011-02-01  Richard Guenther  <rguenther@suse.de>
21994
21995         PR tree-optimization/47559
21996         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
21997         store-motion on references that can throw.
21998
21999 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
22000
22001         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
22002         * tree-pass.h (TDF_CSELIB): New macro.
22003         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
22004         cselib_lookup): Check for it rather than for TDF_DETAILS.
22005
22006 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
22007
22008         PR driver/47547
22009         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
22010         is HOST_BIT_BUCKET.
22011
22012         * opts.c (finish_options): Don't add x_aux_base_name if it is
22013         HOST_BIT_BUCKET.
22014
22015 2011-02-01  Richard Guenther  <rguenther@suse.de>
22016
22017         PR tree-optimization/47555
22018         Revert
22019         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
22020
22021         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
22022
22023 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
22024
22025         PR gcc/46692
22026         * config/lm32/t-lm32: Add multilib for all CPU options.
22027
22028 2011-02-01  Richard Guenther  <rguenther@suse.de>
22029
22030         PR tree-optimization/47541
22031         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
22032         sure to have a field at offset zero.
22033
22034 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
22035
22036         * config/arc/arc.opt (EB, EL): New Driver options.
22037
22038 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
22039
22040         * config/alpha/osf5.opt: New.
22041         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
22042
22043 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
22044
22045         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
22046
22047 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
22048
22049         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
22050         -floop-interchange.
22051         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
22052         is an alias of -floop-interchange and that it requires the
22053         Graphite infrastructure.
22054         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
22055         flag_loop_interchange based on the value of flag_tree_loop_linear.
22056
22057 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
22058             Richard Guenther  <rguenther@suse.de>
22059
22060         PR tree-optimization/47538
22061         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
22062         type instead of r1type, except for comparisons.  For right
22063         shifts and comparisons punt if there are mismatches in
22064         sizetype vs. non-sizetype types.
22065
22066 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22067
22068         * doc/sourcebuild.texi (Effective-Target Keywords): Document
22069         avx_runtime.
22070
22071 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22072
22073         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
22074         version number.
22075         * configure: Regenerate.
22076
22077 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22078
22079         * configure.ac (gcc_cv_ld_static_option): Define.
22080         (gcc_cv_ld_dynamic_option): Define.
22081         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
22082         instead.
22083         (HAVE_LD_STATIC_DYNAMIC): Update message.
22084         (LD_STATIC_OPTION): Define.
22085         (LD_DYNAMIC_OPTION): Define.
22086         * configure: Regenerate.
22087         * config.in: Regenerate.
22088         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
22089         HAVE_LD_STATIC_DYNAMIC]: Use them.
22090
22091 2011-01-31  Nick Clifton  <nickc@redhat.com>
22092
22093         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
22094         registers inside interrupt handlers if the handler is not a leaf
22095         function.
22096
22097 2011-01-31  Nick Clifton  <nickc@redhat.com>
22098
22099         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
22100         reg_renumber returning an INVALID_REGNUM.
22101
22102 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
22103
22104         PR libgcj/44341
22105         * doc/install.texi: Document host options discarded when cross
22106         configuring target libraries.
22107
22108 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
22109
22110         Reverted:
22111         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
22112         PR debug/45136
22113         PR debug/45130
22114         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
22115         debug insns.
22116         (no_real_insns_p, schedule_block, set_priorities): Drop special
22117         treatment of boundary debug insns.
22118         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
22119         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
22120         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
22121         (BOUNDARY_DEBUG_INSN_P): Likewise.
22122         (SCHEDULE_DEBUG_INSN_P): Likewise.
22123         * sched-rgn.c (init_ready_list): Drop special treatment of
22124         boundary debug insns.
22125         * final.c (rest_of_clean-state): Clear notes' BB.
22126
22127 2011-01-31  Alan Modra  <amodra@gmail.com>
22128
22129         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
22130         toc relative expressions as we do in print_operand_address.
22131
22132 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
22133
22134         * doc/extend.texi: Follow spelling conventions.
22135         * doc/invoke.texi: Fix a typo.
22136
22137 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
22138
22139         * config/hpux11.opt: New.
22140         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
22141         ia64*-*-hpux*): Use hpux11.opt.
22142
22143 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
22144
22145         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
22146         to tmake_file.
22147
22148 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
22149
22150         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
22151         support sites.
22152
22153 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
22154
22155         * doc/install.texi (Binaries): Remove outdated reference for
22156         Motorola 68HC11/68HC12 downloads.
22157
22158 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
22159
22160         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
22161         Drepper's paper.
22162
22163 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
22164
22165         PR bootstrap/47147
22166         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
22167         used by NetBSD.
22168
22169 2011-01-28  Ahmad Sharif  <asharif@google.com>
22170
22171         * value-prof.c (check_counter): Corrected error message.
22172
22173 2011-01-29  Jie Zhang  <jie@codesourcery.com>
22174
22175         * config/arm/arm.c (arm_legitimize_reload_address): New.
22176         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
22177         arm_legitimize_reload_address.
22178         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
22179
22180 2011-01-28  Ian Lance Taylor  <iant@google.com>
22181
22182         * godump.c (go_define): Ignore macros whose definitions include
22183         two adjacent operands.
22184
22185 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
22186
22187         PR target/42894
22188         * varasm.c (force_const_mem): Store copy of x in desc->constant
22189         instead of x itself.
22190         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
22191         itself into REG_EQUAL note.
22192
22193 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
22194
22195         * config/freebsd.opt (posix, rdynamic): New Driver options.
22196
22197 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22198
22199         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
22200         -Bstatic/-Bdynamic.
22201         * configure: Regenerate.
22202
22203 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
22204
22205         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
22206         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
22207
22208 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
22209
22210         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
22211         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
22212         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
22213         (s390_preferred_reload_class): Make static. Change return and
22214         'rclass' argument type to reg_class_t.
22215
22216 2011-01-27  Jan Hubicka  <jh@suse.cz>
22217
22218         PR middle-end/46949
22219         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
22220         (process_function_and_variable_attributes): Check defined weakrefs.
22221
22222 2011-01-27  Martin Jambor  <mjambor@suse.cz>
22223
22224         PR tree-optimization/47228
22225         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
22226         build_ref_for_offset.
22227
22228 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22229
22230         * config/spu/spu-elf.h (ASM_SPEC): Remove.
22231
22232 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
22233
22234         PR rtl-optimization/46856
22235         * postreload.c (reload_combine_recognize_const_pattern): Do not
22236         separate cc0 setter and user on cc0 targets.
22237
22238 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
22239
22240         PR c/43082
22241         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
22242         passed a VOID_TYPE expression, immediately emit an error and
22243         return error_mark_node.
22244
22245 2011-01-26  Jeff Law  <law@redhat.com>
22246
22247         PR rtl-optimization/47464
22248         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
22249         rather than may_trap_p as needed.
22250
22251 2011-01-26  DJ Delorie  <dj@redhat.com>
22252
22253         PR rtl-optimization/46878
22254         * combine.c (insn_a_feeds_b): Check for the implicit cc0
22255         setter/user dependency as well.
22256
22257 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
22258
22259         PR rtl-optimization/44469
22260         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
22261         after removing trivially dead basic blocks.
22262
22263 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
22264
22265         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
22266         * config/frv/frv.h (LINK_SPEC): Likewise.
22267         * config/i386/netware.h (LINK_SPEC): Likewise.
22268         * config/m68k/linux.h (ASM_SPEC): Likewise.
22269         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
22270         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
22271         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
22272         * config/sparc/linux.h (ASM_SPEC): Likewise.
22273         * config/sparc/linux64.h (ASM_SPEC): Likewise.
22274         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
22275
22276 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
22277
22278         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
22279         * config/frv/frv.h (ASM_SPEC): Likewise.
22280         * config/m68k/linux.h (ASM_SPEC): Likewise.
22281         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
22282         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
22283         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
22284         * config/sparc/linux.h (ASM_SPEC): Likewise.
22285         * config/sparc/linux64.h (ASM_SPEC): Likewise.
22286         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
22287
22288 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
22289
22290         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
22291         * config/frv/frv.h (LINK_SPEC): Likewise.
22292         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
22293
22294 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
22295
22296         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
22297         * config/frv/frv.h (ASM_SPEC): Likewise.
22298         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
22299         * config/m68k/linux.h (ASM_SPEC): Likewise.
22300         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
22301         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
22302         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
22303         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
22304         * config/sparc/linux.h (ASM_SPEC): Likewise.
22305         * config/sparc/linux64.h (ASM_SPEC): Likewise.
22306         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
22307         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
22308
22309 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
22310
22311         PR target/46997
22312         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
22313         (*mux2): Ditto.
22314         (vec_extract_evenodd_help): Ditto.
22315         (vec_extract_evenv4hi): Ditto.
22316         (vec_extract_oddv4hi): Ditto.
22317         (vec_interleave_lowv2si): Ditto.
22318         (vec_interleave_highv2si): Ditto.
22319         (vec_extract_evenv2si): Ditto.
22320         (vec_extract_oddv2si: Ditto.
22321         (vec_pack_trunc_v2si): Ditto.
22322
22323 2011-01-22  Jan Hubicka  <jh@suse.cz>
22324
22325         PR target/47237
22326         * cgraph.h (cgraph_local_info): New field can_change_signature.
22327         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
22328         signature can change.
22329         (ipcp_estimate_growth): Call sequence simplify only if calle signature
22330         can change.
22331         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
22332         (cgraph_function_versioning): We can not change signature of functions
22333         that don't allow that.
22334         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
22335         (lto_input_node): Likewise.
22336         * ipa-inline.c (compute_inline_parameters): Compute
22337         local.can_change_signature.
22338         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
22339         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
22340         functions that can not change signature.
22341         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
22342         init_cumulative_args): Do not use local calling conventions
22343         for functions that can not change signature.
22344
22345 2011-01-22  Jan Hubicka  <jh@suse.cz>
22346
22347         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
22348
22349 2011-01-26  Richard Guenther  <rguenther@suse.de>
22350
22351         PR tree-optimization/47190
22352         * cgraphunit.c (process_common_attributes): New function.
22353         (process_function_and_variable_attributes): Use it.
22354
22355 2011-01-26  Richard Guenther  <rguenther@suse.de>
22356
22357         PR lto/47423
22358         * cgraphbuild.c (record_eh_tables): Record reference to personality
22359         function.
22360
22361 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
22362
22363         PR debug/45454
22364         * sel-sched.c (moveup_expr): Don't let debug insns prevent
22365         non-debug insns from moving up.
22366
22367 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
22368
22369         PR target/40125
22370         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
22371         t-dlldir{,-x} fragment for build and add it to tmake_file.
22372         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
22373         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
22374         * config/i386/t-dlldir: New file.
22375         (SHLIB_DLLDIR): Define.
22376         * config/i386/t-dlldir-x: New file.
22377         (SHLIB_DLLDIR): Define.
22378         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
22379         (SHLIB_INSTALL): Use it.
22380
22381 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
22382
22383         PR target/47246
22384         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
22385         lower bound of the allowed Thumb-2 coprocessor load/store
22386         index range to -256. Add explaining comment.
22387
22388 2011-01-25  Ian Lance Taylor  <iant@google.com>
22389
22390         * godump.c (go_define): Improve lexing of macro expansion to only
22391         accept expressions which match Go spec.
22392
22393 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
22394
22395         PR c++/43601
22396         * tree.c (handle_dll_attribute): Handle it.
22397         * doc/extend.texi (@item dllexport): Mention it.
22398         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
22399
22400 2011-01-25  Ian Lance Taylor  <iant@google.com>
22401
22402         PR tree-optimization/26854
22403         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
22404         (decl_jump_unsafe): Move higher in file, with no other change.
22405         (bind): Set has_jump_unsafe_decl if appropriate.
22406         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
22407         (check_earlier_gotos): Likewise.
22408         (c_check_switch_jump_warnings): Likewise.
22409
22410 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
22411
22412         * doc/invoke.texi (Warning Options): Add missing hyphen.
22413         (-fprofile-dir): Minor grammatical fixes.
22414         (-fbranch-probabilities): Likewise.
22415
22416 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
22417
22418         PR debug/45136
22419         PR debug/45130
22420         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
22421         debug insns.
22422         (no_real_insns_p, schedule_block, set_priorities): Drop special
22423         treatment of boundary debug insns.
22424         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
22425         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
22426         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
22427         (BOUNDARY_DEBUG_INSN_P): Likewise.
22428         (SCHEDULE_DEBUG_INSN_P): Likewise.
22429         * sched-rgn.c (init_ready_list): Drop special treatment of
22430         boundary debug insns.
22431         * final.c (rest_of_clean-state): Clear notes' BB.
22432
22433 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22434
22435         * Makefile.in (LAMBDA_H): Removed.
22436         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
22437         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
22438         lambda-trans.o, and tree-loop-linear.o.
22439         (lto-symtab.o): Remove dependence on LAMBDA_H.
22440         (tree-loop-linear.o): Remove rule.
22441         (lambda-mat.o): Same.
22442         (lambda-trans.o): Same.
22443         (lambda-code.o): Same.
22444         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
22445         (tree-vect-slp.o): Same.
22446         * hwint.h (gcd): Moved here.
22447         (least_common_multiple): Same.
22448         * lambda-code.c: Removed.
22449         * lambda-mat.c: Removed.
22450         * lambda-trans.c: Removed.
22451         * lambda.h: Removed.
22452         * tree-loop-linear.c: Removed.
22453         * lto-symtab.c: Do not include lambda.h.
22454         * omega.c (gcd): Removed.
22455         * passes.c (init_optimization_passes): Remove pass_linear_transform.
22456         * tree-data-ref.c (print_lambda_vector): Moved here.
22457         (lambda_vector_copy): Same.
22458         (lambda_matrix_copy): Same.
22459         (lambda_matrix_id): Same.
22460         (lambda_vector_first_nz): Same.
22461         (lambda_matrix_row_add): Same.
22462         (lambda_matrix_row_exchange): Same.
22463         (lambda_vector_mult_const): Same.
22464         (lambda_vector_negate): Same.
22465         (lambda_matrix_row_negate): Same.
22466         (lambda_vector_equal): Same.
22467         (lambda_matrix_right_hermite): Same.
22468         * tree-data-ref.h: Do not include lambda.h.
22469         (lambda_vector): Moved here.
22470         (lambda_matrix): Same.
22471         (dependence_level): Same.
22472         (lambda_transform_legal_p): Removed declaration.
22473         (lambda_collect_parameters): Same.
22474         (lambda_compute_access_matrices): Same.
22475         (lambda_vector_gcd): Same.
22476         (lambda_vector_new): Same.
22477         (lambda_vector_clear): Same.
22478         (lambda_vector_lexico_pos): Same.
22479         (lambda_vector_zerop): Same.
22480         (lambda_matrix_new): Same.
22481         * tree-flow.h (least_common_multiple): Removed declaration.
22482         * tree-parloops.c (lambda_trans_matrix): Moved here.
22483         (LTM_MATRIX): Same.
22484         (LTM_ROWSIZE): Same.
22485         (LTM_COLSIZE): Same.
22486         (LTM_DENOMINATOR): Same.
22487         (lambda_trans_matrix_new): Same.
22488         (lambda_matrix_vector_mult): Same.
22489         (lambda_transform_legal_p): Same.
22490         * tree-pass.h (pass_linear_transform): Removed declaration.
22491         * tree-ssa-loop.c (tree_linear_transform): Removed.
22492         (gate_tree_linear_transform): Removed.
22493         (pass_linear_transform): Removed.
22494         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
22495         flag_loop_interchange.
22496
22497 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
22498
22499         PR tree-optimization/47265
22500         PR tree-optimization/47443
22501         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
22502         if name still has some uses.
22503
22504 2011-01-25  Martin Jambor  <mjambor@suse.cz>
22505
22506         PR tree-optimization/47382
22507         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
22508         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
22509
22510 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
22511
22512         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
22513         sjlj_except_unwind_info.
22514
22515 2011-01-25  Richard Guenther  <rguenther@suse.de>
22516
22517         PR tree-optimization/47426
22518         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
22519         visible functions results escape.
22520
22521 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
22522
22523         PR target/45701
22524         * config/arm/arm.c (any_sibcall_uses_r3): New function.
22525         (arm_get_frame_offsets): Use it.
22526
22527 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22528             Jakub Jelinek  <jakub@redhat.com>
22529
22530         PR tree-optimization/47271
22531         * tree-if-conv.c (bb_postdominates_preds): New.
22532         (if_convertible_bb_p): Call bb_postdominates_preds.
22533         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
22534         (predicate_scalar_phi): Call bb_postdominates_preds.
22535
22536 2011-01-25  Nick Clifton  <nickc@redhat.com>
22537
22538         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
22539         * config/rx/rx.c (rx_function_value): Likewise.
22540         (rx_promote_function_mode): Likewise.
22541         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
22542         in order to make it legitimate.
22543         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
22544         make sure that the first operand is the same as the result register.
22545         (addsi3_unspec): Delete.
22546         (subdi3): Do not accept immediate operands.
22547         (subdi3_internal): Likewise.
22548
22549 2011-01-25  Jeff Law  <law@redhat.com>
22550
22551         PR rtl-optimization/37273
22552         * ira-costs.c (scan_one_insn): Detect constants living in memory and
22553         handle them like argument loads from stack slots.  Do not double
22554         count memory for memory constants and argument loads from stack slots.
22555
22556 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
22557
22558         PR tree-optimization/47427
22559         PR tree-optimization/47428
22560         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
22561         coalesce if the new root var would be TREE_READONLY.
22562
22563 2011-01-25  Richard Guenther  <rguenther@suse.de>
22564
22565         PR middle-end/47414
22566         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
22567         correct type for TBAA.
22568
22569 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22570
22571         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
22572         (close_phi_written_to_memory): Call for_each_index with
22573         dr_indices_valid_in_loop.
22574
22575 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22576
22577         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
22578         when it is initialized.
22579
22580 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22581
22582         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
22583         call to graphite_find_data_references_in_stmt.
22584         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
22585         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
22586         call to graphite_find_data_references_in_stmt.
22587         (analyze_drs_in_stmts): Same.
22588         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
22589         in which the scalar analysis of indices is performed.
22590         (create_data_ref): Same.  Update call to dr_analyze_indices.
22591         (find_data_references_in_stmt): Update call to create_data_ref.
22592         (graphite_find_data_references_in_stmt): Same.
22593         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
22594         declaration.
22595         (create_data_ref): Same.
22596         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
22597         call to create_data_ref.
22598
22599 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22600
22601         * graphite-sese-to-poly.c (build_poly_scop): Move
22602         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
22603
22604 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22605
22606         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
22607         VAR_DECL, PARM_DECL, and RESULT_DECL.
22608
22609 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22610
22611         * graphite-dependences.c (reduction_dr_1): Allow several reductions
22612         in a reduction PBB.
22613         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
22614         that have already been marked as PBB_IS_REDUCTION.
22615
22616 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22617
22618         * graphite-scop-detection.c (same_close_phi_node): New.
22619         (remove_duplicate_close_phi): New.
22620         (make_close_phi_nodes_unique): New.
22621         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
22622
22623 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22624
22625         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
22626         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
22627         of both data references to be the same.
22628
22629 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22630
22631         * graphite-dependences.c (build_lexicographical_constraint): Remove
22632         the gdim parameter.
22633         (build_lexicographical_constraint): Adjust call to
22634         ppl_powerset_is_empty.
22635         (dependence_polyhedron): Same.
22636         (graphite_legal_transform_dr): Same.
22637         (graphite_carried_dependence_level_k): Same.
22638         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
22639         parameter.
22640         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
22641
22642 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22643
22644         * graphite-sese-to-poly.c
22645         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
22646         (close_phi_written_to_memory): New.
22647         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
22648         and unshare_expr.
22649
22650 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22651
22652         * doc/install.texi: Update the expected version number of PPL to 0.11.
22653         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
22654         #if PPL_VERSION_MINOR < 11.
22655
22656 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22657
22658         * graphite-dependences.c: Include graphite-cloog-util.h.
22659         (new_poly_ddr): Inlined into dependence_polyhedron.
22660         (free_poly_ddr): Moved close by new_poly_ddr.
22661         (dependence_polyhedron_1): Renamed dependence_polyhedron.
22662         Early return NULL when ppl_powerset_is_empty returns true.
22663         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
22664         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
22665         (graphite_legal_transform_dr): Call new_poly_ddr.
22666         (graphite_carried_dependence_level_k): Same.
22667         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
22668         (dot_transformed_deps_stmt_1): Removed.
22669         (dot_deps_stmt_1): Call dot_deps_stmt_2.
22670         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
22671         (dot_deps_1): Call dot_deps_2.
22672         * Makefile.in (graphite-dependences.o): Add missing dependence on
22673         graphite-cloog-util.h.
22674
22675 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22676
22677         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
22678         (build_lexicographical_constraint): Same.
22679         (dependence_polyhedron_1): Same.
22680         (graphite_legal_transform_dr): Same.
22681         (graphite_carried_dependence_level_k): Same.
22682         * graphite-ppl.c (ppl_powerset_is_empty): New.
22683         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
22684         * tree-data-ref.c (dump_data_reference): Print the basic block index.
22685
22686 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22687
22688         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
22689         the "a followed by b" relation and document it.
22690
22691 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22692
22693         * graphite-dependences.c (build_lexicographical_constraint): Stop the
22694         iteration when the bag of constraints is empty.
22695
22696 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22697
22698         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
22699
22700 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22701
22702         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
22703         nest and two loop depths as parameters.
22704         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
22705         lst_perfect_nestify.
22706
22707 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22708
22709         * graphite-dependences.c (print_pddr): Call
22710         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
22711
22712 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22713
22714         * graphite-ppl.c (debug_gmp_value): New.
22715         * graphite-ppl.h (debug_gmp_value): Declared.
22716
22717 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
22718
22719         * doc/install.texi: Document availability of cloog-0.16.
22720
22721 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
22722
22723         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
22724         invalid postdominance info.
22725
22726 2011-01-24  Jan Hubicka  <jh@suse.cz>
22727
22728         PR c/21659
22729         * doc/extend.texi (weak pragma): Drop claim that it must
22730         appear before definition.
22731         * varasm.c (merge_weak, declare_weak): Only sanity check
22732         that DECL is not output at a time it is declared weak.
22733
22734 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
22735
22736         * machmode.def: Fixed comments.
22737
22738 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
22739
22740         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
22741
22742 2011-01-24  Paul Koning  <ni1d@arrl.net>
22743
22744         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
22745         WORDS_BIG_ENDIAN.
22746
22747 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
22748
22749         PR target/46519
22750         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
22751         (block_info): Add scanned and prev.
22752         (move_or_delete_vzeroupper_2): Return if the basic block
22753         has been scanned and the upper 128bit state is unchanged
22754         from the last scan.
22755         (move_or_delete_vzeroupper_1): Return true if the exit
22756         state is changed.
22757         (move_or_delete_vzeroupper): Visit basic blocks using the
22758         work-list based algorithm based on vt_find_locations in
22759         var-tracking.c.
22760
22761         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
22762
22763 2011-01-24  Nick Clifton  <nickc@redhat.com>
22764
22765         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
22766         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
22767         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
22768         then define __v850e1__.
22769         * doc/invoke.texi: Document -mv850es.
22770
22771 2011-01-24  Richard Henderson  <rth@redhat.com>
22772
22773         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
22774         compound unordered comparisons.
22775         * config/rx/rx.c (rx_split_fp_compare): Remove.
22776         * config/rx/rx-protos.h: Update.
22777         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
22778         (cbranchsf4): Don't call rx_split_fp_compare.
22779         (*cbranchsf4): Use rx_split_cbranch.
22780         (*cmpsf): Don't accept "i" constraint.
22781         (*conditional_branch): Only valid after reload.
22782         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
22783
22784 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22785
22786         PR target/47385
22787         * config/rs6000/altivec.md (vector constant splitters): Add
22788         support for creating vector single precision constants if -mvsx is
22789         used and we would create the constant using Altivec primitives.
22790
22791 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
22792             Richard Sandiford  <rdsandiford@googlemail.com>
22793
22794         PR rtl-optimization/47166
22795         * reload1.c (emit_reload_insns): Disable the spill_reg_store
22796         mechanism for PRE_MODIFY and POST_MODIFY.
22797         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
22798         reloadreg.
22799
22800 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
22801
22802         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
22803
22804 2011-01-22  Jan Hubicka  <jh@suse.cz>
22805
22806         PR lto/47333
22807         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
22808
22809 2011-01-22  Jan Hubicka  <jh@suse.cz>
22810
22811         PR tree-optimization/43884
22812         PR lto/44334
22813         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
22814         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
22815
22816 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
22817
22818         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
22819         * config/s390/s390.c (s390_register_move_cost,
22820         s390_memory_move_cost): New.
22821         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
22822
22823 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22824
22825         PR middle-end/47401
22826         * except.c (sjlj_assign_call_site_values): Move setting the
22827         crtl->uses_eh_lsda flag to ...
22828         (sjlj_mark_call_sites): ... here.
22829         (sjlj_emit_function_enter): Support NULL dispatch label.
22830         (sjlj_build_landing_pads): In a function with no landing pads
22831         that still has must-not-throw regions, generate code to register
22832         a personality function with empty LSDA.
22833
22834 2011-01-21  Richard Henderson  <rth@redhat.com>
22835
22836         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
22837
22838         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
22839
22840         * compare-elim.c: New file.
22841         * Makefile.in (OBJS-common): Add it.
22842         (compare-elim.o): New.
22843         * common.opt (fcompare-elim): New.
22844         * opts.c (default_options_table): Add OPT_fcompare_elim.
22845         * tree-pass.h (pass_compare_elim_after_reload): New.
22846         * passes.c (init_optimization_passes): Add it.
22847         * recog.h: Protect against re-inclusion.
22848         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
22849         * doc/invoke.texi (-fcompare-elim): Document it.
22850         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
22851         * doc/tm.texi: Rebuild.
22852
22853 2011-01-22  Nick Clifton  <nickc@redhat.com>
22854
22855         * config/rx/rx.md (cstoresf4): Pass comparison operator to
22856         rx_split_fp_compare.
22857
22858 2011-01-22  Nick Clifton  <nickc@redhat.com>
22859
22860         * config/rx/rx.md (UNSPEC_CONST): New.
22861         (deallocate_and_return): Wrap the amount popped off the stack in
22862         an UNSPEC_CONST in order to stop it being rejected by
22863         -mmax-constant-size.
22864         (pop_and_return): Add a "(return)" rtx.
22865         (call): Drop the immediate operand.
22866         (call_internal): Likewise.
22867         (call_value): Likewise.
22868         (call_value_internal): Likewise.
22869         (sibcall_internal): Likewise.
22870         (sibcall_value_internal): Likewise.
22871         (sibcall): Likewise.  Generate an explicit call using
22872         sibcall_internal.
22873         (sibcall_value): Likewise.
22874         (mov<>): FAIL if a constant operand is not legitimate.
22875         (addsi3_unpsec): New pattern.
22876
22877         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
22878         (ok_for_max_constant): New function.
22879         (gen_safe_add): New function.
22880         (rx_expand_prologue): Use gen_safe_add.
22881         (rx_expand_epilogue): Likewise.
22882         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
22883         UNSPEC CONSTs.
22884
22885 2011-01-21  Jeff Law  <law@redhat.com>
22886
22887         PR tree-optimization/47053
22888         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
22889         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
22890         statements are deleted.
22891         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
22892         is nonempty, then purge dead edges and cleanup the CFG.
22893
22894 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
22895
22896         PR debug/47402
22897         Temporarily revert:
22898         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
22899         PR debug/47106
22900         * tree-dfa.c (create_var_ann): Mark variable as used.
22901
22902 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
22903
22904         PR middle-end/45566
22905         * except.c (convert_to_eh_region_ranges): Emit queued no-region
22906         notes from other section in hot/cold partitioning even if
22907         last_action is -3.  Increment call_site_base.
22908
22909         PR rtl-optimization/47366
22910         * fwprop.c (forward_propagate_into): Return bool.  If
22911         any changes are made, -fnon-call-exceptions is used and
22912         REG_EH_REGION note is present, call purge_dead_edges
22913         and return true if it purged anything.
22914         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
22915         any EH edges were purged.
22916
22917 2011-01-21  Jeff Law  <law@redhat.com>
22918
22919         PR rtl-optimization/41619
22920         * caller-save.c (setup_save_areas): Break out code to determine
22921         which hard regs are live across calls by examining the reload chains
22922         so that it is always used.
22923         Eliminate code which checked REG_N_CALLS_CROSSED.
22924
22925 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
22926
22927         PR tree-optimization/47355
22928         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
22929         NOP has non-debug uses beyond PHIs in new_bb.
22930
22931 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
22932
22933         PR debug/47106
22934         * cfgexpand.c (account_used_vars_for_block): Only account vars
22935         that are annotated as used.
22936         (estimated_stack_frame_size): Don't set TREE_USED.
22937         * tree-dfa.c (create_var_ann): Mark variable as used.
22938
22939 2011-01-21  Richard Guenther  <rguenther@suse.de>
22940
22941         PR middle-end/47395
22942         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
22943
22944 2011-01-21  Richard Guenther  <rguenther@suse.de>
22945
22946         PR tree-optimization/47365
22947         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
22948         (vn_reference_lookup_pieces): Adjust.
22949         (vn_reference_lookup): Likewise.
22950         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
22951         (vn_reference_lookup_3): Only look through kills if in
22952         VN_WALKREWRITE mode.
22953         (vn_reference_lookup_pieces): Adjust.
22954         (vn_reference_lookup): Likewise.
22955         (visit_reference_op_load): Likewise.
22956         (visit_reference_op_store): Likewise.
22957         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
22958         (compute_avail): Likewise.
22959         (eliminate): Likewise.
22960
22961 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
22962
22963         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
22964         DECL_IGNORED_P non-reg vars if they are used.
22965
22966         PR tree-optimization/47391
22967         * varpool.c (const_value_known_p): Return false if
22968         decl is volatile.
22969
22970 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
22971
22972         PR bootstrap/47215
22973         * config/i386/i386.c (ix86_local_alignment): Handle
22974         case for va_list_type_node is nil.
22975         (ix86_canonical_va_list_type): Likewise.
22976
22977 2011-01-21  Alan Modra  <amodra@gmail.com>
22978
22979         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
22980         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
22981
22982 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22983
22984         * config/arm/arm.md (define_attr type): Rename f_load
22985         and f_store to f_fpa_load and f_fpa_store. Update.
22986         (write_conflict): Deal with rename fallout.
22987         (*push_fp_multi): Likewise.
22988         * config/arm/fpa.md (f_load): Use f_fpa_load.
22989         (f_store): Use f_fpa_store.
22990         (*movsf_fpa): Likewise.
22991         (*movdf_fpa): Likewise.
22992         (*movxf_fpa): Likewise.
22993         (*thumb2_movsf_fpa): Likewise.
22994         (*thumb2_movdf_fpa): Likewise.
22995         (*thumb2_movxf_fpa): Likewise.
22996         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
22997         f_loadd and f_stored.
22998         (*thumb2_movdi_vfp): Likewise.
22999         (*thumb2_movsf_vfp): Fix attribute to f_loads.
23000         (*thumb2_movsi_vfp): Likewise.
23001         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
23002         Use f_loads instead of f_load.
23003         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
23004
23005 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
23006
23007         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23008         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
23009         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23010         (xtensa_mode_dependent_address_p): New function.
23011         (constantpool_address_p): Make static. Change return type to bool.
23012         Change argument type to const_rtx. Use CONST_INT_P predicate.
23013
23014 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
23015
23016         PR debug/46583
23017         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
23018
23019 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
23020
23021         PR debug/47283
23022         * cfgexpand.c (expand_debug_expr): Instead of generating
23023         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
23024         etc. handling.
23025
23026 2011-01-20  Richard Guenther  <rguenther@suse.de>
23027
23028         PR middle-end/47370
23029         * tree-inline.c (remap_gimple_op_r): Recurse manually for
23030         the pointer operand of MEM_REFs.
23031
23032 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
23033
23034         PR tree-optimization/46130
23035         * ipa-split.c (consider_split): If return_bb contains non-virtual
23036         PHIs other than for retval or if split_function would not adjust it,
23037         refuse to split.
23038
23039 2011-01-20  Richard Guenther  <rguenther@suse.de>
23040
23041         PR tree-optimization/47167
23042         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
23043         Revert previous change, only avoid enumeral type changes.
23044
23045 2011-01-19  Mike Stump  <mikestump@comcast.net>
23046
23047         * doc/tm.texi.in (BRANCH_COST): Englishify.
23048         * doc/tm.texi (BRANCH_COST): Likewise.
23049
23050 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
23051
23052         PR c++/47291
23053         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
23054         (gen_scheduled_generic_parms_dies): New functions.
23055         (gen_struct_or_union_type_die): Schedule template parameters DIEs
23056         generation for the end of CU compilation.
23057         (dwarf2out_finish): Generate template parameters DIEs here.
23058
23059 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
23060
23061         PR debug/46240
23062         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
23063         debug bind stmt on merge edges.
23064
23065 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
23066
23067         PR debug/47079
23068         PR debug/46724
23069         * function.c (instantiate_expr): Instantiate incoming rtl of
23070         implicit arguments, and recurse on VALUE_EXPRs.
23071         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
23072         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
23073
23074 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
23075
23076         * c-parser.c (c_parser_for_statement): Initialize
23077         collection_expression.
23078
23079 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
23080
23081         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
23082
23083 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
23084
23085         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
23086         (LINK_SHLIB_SPEC): Don't use %(link_path).
23087         (SUBTARGET_EXTRA_SPECS): Remove link_path.
23088
23089 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
23090
23091         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
23092         (NO_SHARED_LIB_SUPPORT): Remove.
23093         (LINK_SHLIB_SPEC): Remove one conditional definition.
23094
23095 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
23096
23097         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
23098         %{call_shared}.
23099         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
23100         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
23101         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
23102         %{call_shared} and conditionals on these options not being passed.
23103         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
23104         %{call_shared}.
23105
23106 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
23107
23108         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
23109         simplify.
23110
23111         * ipa-split.c: Spelling fixes.
23112
23113 2011-01-19  Richard Henderson  <rth@redhat.com>
23114
23115         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
23116         (*mulsi3): Likewise.
23117
23118         * longlong.h [__mn10300__] (count_leading_zeros): New.
23119         [__mn10300__] (umul_ppmm, smul_ppmm): New.
23120         [__mn10300__] (add_ssaaaa, subddmmss): New.
23121         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
23122         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
23123
23124 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23125
23126         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
23127
23128 2011-01-19  Richard Henderson  <rth@redhat.com>
23129
23130         * config/mn10300/mn10300.md (addsi3_flags): New.
23131         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
23132         (subsi3_flags, subc_internal, subdi3): New.
23133         (subdi3_internal, *subdi3_degenerate): New.
23134         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
23135
23136         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
23137         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
23138         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
23139         * config/mn10300/mn10300-protos.h: Update.
23140         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
23141         (return_ret): Likewise.  Rename from return_internal_regs.
23142         (return_internal): Remove.
23143
23144         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
23145         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
23146         (mn10300_legitimate_constant_p): Likewise.
23147         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
23148         (mn10300_frame_size): New.
23149         (mn10300_expand_prologue): Use it.
23150         (mn10300_expand_epilogue): Likewise.
23151         (mn10300_initial_offset): Likewise.
23152         * config/mn10300/mn10300-protos.h: Update.
23153         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
23154         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
23155         (prologue, epilogue, return_internal): Tidy output code.
23156         (mn10300_store_multiple_operation, return): Likewise.
23157         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
23158         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
23159         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
23160         (load_pic, am33_load_pic): New.
23161         (mn10300_load_pic0, mn10300_load_pic1): New.
23162
23163         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
23164         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
23165         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
23166         (cc_flags_for_mode, cc_flags_for_code): New.
23167         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
23168         overflow flag is not valid.  Validate that the flags we need
23169         for the comparison are valid.
23170         (mn10300_output_cmp): Remove.
23171         (mn10300_output_add): New.
23172         (mn10300_select_cc_mode): Use cc_flags_for_code.
23173         (mn10300_split_cbranch): New.
23174         (mn10300_match_ccmode): New.
23175         (mn10300_split_and_operand_count): New.
23176         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
23177         to the function.
23178         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
23179         (addsi3): ... here.  Use mn10300_output_add.
23180         (*addsi3_flags): New.
23181         (*am33_subsi3, *mn10300_subsi3): Merge...
23182         (subsi3): ... here.  Use attribute isa.
23183         (*subsi3_flags): New.
23184         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
23185         when possible.
23186         (*am33_andsi3, *mn10300_andsi3): Merge...
23187         (andsi3): ... here.
23188         (*andsi3_flags): New.
23189         (andsi3 splitters): New.
23190         (*am33_iorsi3, *mn10300_iorsi3): Merge...
23191         (iorsi3): ... here.
23192         (*iorsi3_flags): New.
23193         (*am33_xorsi3, *mn10300_xorsi3): Merge...
23194         (xorsi3): ... here.
23195         (*xorsi3_flags): New.
23196         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
23197         (one_cmplsi2): ... here.
23198         (*one_cmplsi2_flags): New.
23199         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
23200         instead of "dax" in constraints.  Use mn10300_split_cbranch.
23201         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
23202         use matching constraints to eliminate a self-comparison.
23203         (*integer_conditional_branch): Rename from integer_conditional_branch.
23204         Use int_mode_flags to match CC_REG.
23205         (*cbranchsi4_btst, *btstsi): New.
23206         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
23207         mn10300_split_cbranch.
23208         (*am33_cmpsf): Rename from am33_cmpsf.
23209         (*float_conditional_branch): Rename from float_conditional_branch.
23210         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
23211         (zero_extendqisi2): ... here.
23212         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
23213         (zero_extendhisi2): ... here.
23214         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
23215         (extendqisi2): ... here.
23216         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
23217         (extendhisi2): ... here.
23218         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
23219         (ashlsi3): ... here.
23220         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
23221         (lshrsi3): ... here.
23222         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
23223         (ashrsi3): ... here.
23224         (consecutive add peephole): Remove.
23225         * config/mn10300/predicates.md (label_ref_operand): New.
23226         (int_mode_flags): New.
23227         (CCZN_comparison_operator): New.
23228
23229         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
23230         (throughput_42_latency_43): New reservation.
23231         (mulsidi3, umulsidi3): New expanders.
23232         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
23233         the MDR register to allocation; separately allocate the low and
23234         high parts of the DImode result.
23235         (umulsidi3_internal): Similarly.
23236         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
23237         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
23238         (udivsi3, umodsi3): Remove.
23239         (udivmodsi4, divmodsi4): New expanders.
23240         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
23241         (*divmodsi4): Simiarly.
23242         (ext_internal): New.
23243
23244         * config/mn10300/constraints.md ("z"): New constraint.
23245         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
23246         (FIXED_REGISTERS): Don't fix MDR.
23247         (CALL_USED_REGSITERS): Reformat nicely.
23248         (REG_ALLOC_ORDER): Add MDR.
23249         (enum regclass): Add MDR_REGS.
23250         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
23251         (IRA_COVER_CLASSES): Add MDR_REGS.
23252         (REGNO_REG_CLASS): Handle MDR_REG.
23253         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
23254         (mn10300_register_move_cost): Likewise.
23255         * config/mn10300/mn10300.md (MDR_REG): New.
23256         (*movsi_internal): Handle moves to/from MDR_REGS.
23257
23258         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
23259         POST_MODIFY.
23260         (mn10300_secondary_reload): Tidy combination reload classes.
23261         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
23262         addresses for AM33.  Allow symbolic offsets for reg+imm.
23263         (mn10300_regno_in_class_p): New.
23264         (mn10300_legitimize_reload_address): New.
23265         * config/mn10300/mn10300.h (enum reg_class): Remove
23266         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
23267         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
23268         SP_OR_GENERAL_REGS.
23269         (REG_CLASS_NAMES): Update to match.
23270         (REG_CLASS_CONTENTS): Likewise.
23271         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
23272         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
23273         (REGNO_IN_RANGE_P): Remove.
23274         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
23275         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
23276         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
23277         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
23278         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
23279         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
23280         (REGNO_GENERAL_P): New.
23281         (HAVE_POST_MODIFY_DISP): New.
23282         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
23283         (LEGITIMIZE_RELOAD_ADDRESS): New.
23284         * config/mn10300/mn10300-protos.h: Update.
23285
23286         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
23287         DATA_REGS for AM33 stack-pointer destination.
23288         (mn10300_preferred_output_reload_class): Likewise.
23289         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
23290         into a form appropriate for ...
23291         (TARGET_SECONDARY_RELOAD): New.
23292         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
23293         * config/mn10300/mn10300-protos.h: Update.
23294         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
23295         reload_insi; use the "A" constraint for the scratch; handle AM33
23296         moves of sp to non-address registers.
23297
23298         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
23299         (*movqi_internal): ... here.
23300         (*am33_movhi, *mn10300_movhi): Merge into...
23301         (*movhi_internal): ... here.
23302         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
23303         as the source/destination of moves from/to SP.
23304         (movsf): Only allow for AM33-2.
23305         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
23306         any integer constant constraint.  Only allow for AM33-2.  Tidy
23307         all of the alternative outputs.
23308         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
23309         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
23310         for MN103.
23311         (udivsi3, umodsi3): New patterns for MN103 only.
23312
23313 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
23314
23315         * doc/tm.texi.in: Spell out that a lack of register class unions
23316         can lead to ICEs.
23317         * doc/tm.texi: Regenerate.
23318
23319 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
23320
23321         PR rtl-optimization/47337
23322         * dce.c (check_argument_store): New function.
23323         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
23324
23325         PR tree-optimization/47290
23326         * tree-eh.c (infinite_empty_loop_p): New function.
23327         (cleanup_empty_eh): Use it.
23328
23329 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
23330
23331         PR target/46997
23332         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
23333         (a64_expand_widen_sum): Ditto.
23334         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
23335         (vec_extract_evenodd_help): Ditto.
23336         (vec_extract_evenv4hi): Ditto.
23337         (vec_extract_oddv4hi): Ditto.
23338         (vec_extract_evenv2si): Ditto.
23339         (vec_extract_oddv2si): Ditto.
23340         (vec_extract_evenv2sf): Ditto.
23341         (vec_extract_oddv2sf): Ditto.
23342         (vec_pack_trunc_v4hi: Ditto.
23343         (vec_pack_trunc_v2si): Ditto.
23344         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
23345         (vec_interleave_highv8qi): Ditto.
23346         (mix1_r): Ditto.
23347         (vec_extract_oddv8qi): Ditto.
23348         (vec_interleave_lowv4hi): Ditto.
23349         (vec_interleave_highv4hi): Ditto.
23350         (vec_interleave_lowv2si): Ditto.
23351         (vec_interleave_highv2si): Ditto.
23352
23353 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23354
23355         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
23356         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
23357         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
23358         (pa_c_mode_for_suffix): New.
23359         (TARGET_EXPAND_BUILTIN): Define.
23360         (TARGET_C_MODE_FOR_SUFFIX): Define.
23361         (pa_builtins): Define.
23362         (pa_init_builtins): Register __float128 type and init new support
23363         builtins.
23364         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
23365         * config/pa/quadlib.c (_U_Qfcopysign): New.
23366
23367 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
23368
23369         PR middle-end/46894
23370         * explow.c (allocate_dynamic_stack_space): Do not assume more than
23371         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
23372         are defined.
23373
23374 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23375
23376         PR tree-optimization/47179
23377         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
23378         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
23379
23380 2011-01-18  Richard Guenther  <rguenther@suse.de>
23381
23382         PR rtl-optimization/47216
23383         * emit-rtl.c: Include tree-flow.h.
23384         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
23385         of replicating it with different semantics.
23386         * Makefile.in (emit-rtl.o): Adjust.
23387
23388 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23389
23390         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
23391         (cortex_a9_dp): Handle neon types correctly.
23392
23393 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
23394
23395         PR rtl-optimization/47299
23396         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
23397         subtarget.  Use normal multiplication if both operands are constants.
23398         * expmed.c (expand_widening_mult): Don't try to optimize constant
23399         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
23400         before using it.
23401
23402 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23403
23404         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
23405         spacing after 'e.g.', typos, comma, hyphenation.
23406
23407 2011-01-17  Richard Henderson  <rth@redhat.com>
23408
23409         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
23410         (rx_restricted_mem_operand): New.
23411         (rx_shift_operand): Use register_operand.
23412         (rx_source_operand, rx_compare_operand): Likewise.
23413         * config/rx/rx.md (addsi3_flags): New expander.
23414         (adddi3): Rewrite as expander.
23415         (adc_internal, *adc_flags, adddi3_internal): New patterns.
23416         (subsi3_flags): New expander.
23417         (subdi3): Rewrite as expander.
23418         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
23419
23420         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
23421         (rx_init_builtins): Remove sat builtin.
23422         (rx_expand_builtin): Likewise.
23423         * config/rx/rx.md (ssaddsi3): New.
23424         (*sat): Rename from sat.  Represent the CC_REG input.
23425
23426         * config/rx/predicates.md (rshift_operator): New.
23427         * config/rx/rx.c (rx_expand_insv): Remove.
23428         * config/rx/rx-protos.h: Update.
23429         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
23430         operand to the canonical position.
23431         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
23432         (*bitclr, *bitclr_in_memory): Similarly.
23433         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
23434         (insv): Retain the zero_extract in the expansion.
23435
23436         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
23437         (bswaphi2, bitinvert, revw): Likewise.
23438
23439         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
23440         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
23441         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
23442         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
23443         (bitset, bitset_in_memory): Likewise.
23444         (bitinvert, bitinvert_in_memory): Likewise.
23445         (bitclr, bitclr_in_memory): Likewise.
23446         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
23447         (rx_strend, rx_cmpstrn): Likewise.
23448         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
23449         (bitop peep2 patterns): Remove.
23450
23451         * config/rx/rx.c (rx_match_ccmode): New.
23452         * config/rx/rx-protos.h: Update.
23453         * config/rx/rx.md (abssi2): Clobber, don't set flags.
23454         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
23455         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
23456         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
23457         (fix_truncsfsi2, floatsisf2): Likewise.
23458         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
23459         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
23460         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
23461         (*subsi3_flags, *xorsi3_flags): New.
23462
23463         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
23464
23465         * config/rx/rx.c (rx_print_operand): Remove workaround for
23466         unsplit comparison operations.
23467
23468         * config/rx/rx.md (movsicc): Split after reload.
23469         (*movsicc): Merge *movsieq and *movsine via match_operator.
23470         (*stcc): New pattern.
23471
23472         * config/rx/rx.c (rx_float_compare_mode): Remove.
23473         * config/rx/rx.h (rx_float_compare_mode): Remove.
23474         * config/rx/rx.md (cstoresi4): Split after reload.
23475         (*sccc): New pattern.
23476
23477         * config/rx/predicates.md (label_ref_operand): New.
23478         (rx_z_comparison_operator): New.
23479         (rx_zs_comparison_operator): New.
23480         (rx_fp_comparison_operator): New.
23481         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
23482         Validate that the flags are set properly for the comparison.
23483         (rx_gen_cond_branch_template): Remove.
23484         (rx_cc_modes_compatible): Remove.
23485         (mode_from_flags): New.
23486         (flags_from_code): Rename from flags_needed_for_conditional.
23487         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
23488         (rx_select_cc_mode): Likewise.
23489         (rx_split_fp_compare): New.
23490         (rx_split_cbranch): New.
23491         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
23492         (*cbranchsi4): Use match_operator and rx_split_cbranch.
23493         (*cbranchsf4): Similarly.
23494         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
23495         match_operator and rx_split_cbranch.
23496         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
23497         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
23498         (*cmpsi): Rename from cmpsi.
23499         (*tstsi): Rename from tstsi.
23500         (*cmpsf): Rename from cmpsf; use CC_Fmode.
23501         (*conditional_branch): Rename from conditional_branch.
23502         (*reveresed_conditional_branch): Remove.
23503         (b<code>): Remove expander.
23504         * config/rx/rx-protos.h: Update.
23505
23506         * config/rx/rx.c (rx_compare_redundant): Remove.
23507         * config/rx/rx.md (cmpsi): Don't use it.
23508         * config/rx/rx-protos.h: Update.
23509
23510         * config/rx/rx-modes.def (CC_F): New mode.
23511         * config/rx/rx.c (rx_select_cc_mode): New.
23512         * config/rx/rx.h (SELECT_CC_MODE): Use it.
23513         * config/rx/rx-protos.h: Update.
23514
23515 2011-01-17  Richard Henderson  <rth@redhat.com>
23516
23517         * except.c (dump_eh_tree): Fix stray ; after for statement.
23518
23519 2011-01-17  Richard Guenther  <rguenther@suse.de>
23520
23521         PR tree-optimization/47313
23522         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
23523         handling before copying the body.  Properly deal with
23524         by-reference result in SSA form.
23525
23526 2011-01-17  Ian Lance Taylor  <iant@google.com>
23527
23528         PR target/47219
23529         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
23530         (struct_value_alias_set): Don't define.
23531         (sparc_option_override): Don't set sparc_sr_alias_set and
23532         struct_value_alias_set.
23533         (save_or_restore_regs): Use gen_frame_mem rather than calling
23534         set_mem_alias_set.
23535         (sparc_struct_value_rtx): Likewise.
23536
23537 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
23538
23539         PR target/47318
23540         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
23541         (_mm_maskstore_pd): Likewise.
23542         (_mm_maskload_ps): Likewise.
23543         (_mm_maskstore_ps): Likewise.
23544         (_mm256_maskload_pd): Change mask to __m256i.
23545         (_mm256_maskstore_pd): Likewise.
23546         (_mm256_maskload_ps): Likewise.
23547         (_mm256_maskstore_ps): Likewise.
23548
23549         * config/i386/i386-builtin-types.def: Updated.
23550         (ix86_expand_special_args_builtin): Likewise.
23551
23552         * config/i386/i386.c (bdesc_special_args): Update
23553         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
23554         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
23555         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
23556         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
23557
23558         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
23559         Use <avxpermvecmode> on mask register.
23560         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
23561
23562 2011-01-17  Olivier Hainque  <hainque@adacore.com>
23563             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
23564             Eric Botcazou  <ebotcazou@adacore.com>
23565
23566         PR target/46655
23567         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
23568         if <= USHRT_MAX in 32-bit mode.
23569
23570 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23571
23572         * doc/install.texi (Configuration, Specific): Wrap long
23573         lines in examples.  Allow line wrapping in long options
23574         and URLs where beneficial for PDF output.
23575
23576 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
23577
23578         * config/mips/mips.c (mips_classify_symbol): Don't return
23579         SYMBOL_PC_RELATIVE for nonlocal labels.
23580
23581 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
23582
23583         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
23584
23585 2011-01-15  Jan Hubicka  <jh@suse.cz>
23586
23587         PR tree-optimization/47276
23588         * ipa.c (function_and_variable_visibility): Do not try to mark alias
23589         declarations as needed.
23590
23591 2011-01-15  Martin Jambor  <mjambor@suse.cz>
23592
23593         * common.opt (fdevirtualize): New flag.
23594         * doc/invoke.texi (Option Summary): Document it.
23595         * opts.c (default_options_table): Add devirtualize flag.
23596         * ipa-prop.c (detect_type_change): Return immediately if
23597         devirtualize flag is not set.
23598         (detect_type_change_ssa): Likewise.
23599         (compute_known_type_jump_func): Likewise.
23600         (ipa_analyze_virtual_call_uses): Likewise.
23601
23602 2011-01-14  Martin Jambor  <mjambor@suse.cz>
23603
23604         PR tree-optimization/45934
23605         PR tree-optimization/46302
23606         * ipa-prop.c (type_change_info): New type.
23607         (stmt_may_be_vtbl_ptr_store): New function.
23608         (check_stmt_for_type_change): Likewise.
23609         (detect_type_change): Likewise.
23610         (detect_type_change_ssa): Likewise.
23611         (compute_complex_assign_jump_func): Check for dynamic type change.
23612         (compute_complex_ancestor_jump_func): Likewise.
23613         (compute_known_type_jump_func): Likewise.
23614         (compute_scalar_jump_functions): Likewise.
23615         (ipa_analyze_virtual_call_uses): Likewise.
23616         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
23617
23618 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23619
23620         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
23621         * config/i386/i386.opt (msse5): New Alias.
23622
23623 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23624
23625         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
23626         * config/sparc/linux64.h (CC1_SPEC): Likewise.
23627         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
23628         * config/sparc/sparc.h (CC1_SPEC): Likewise.
23629
23630 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23631
23632         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
23633         -mcpu options.
23634         * config/sparc/linux64.h (CC1_SPEC): Likewise.
23635         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
23636         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
23637         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
23638         Likewise.
23639         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
23640
23641 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23642
23643         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
23644
23645 2011-01-14  Mike Stump  <mikestump@comcast.net>
23646
23647         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
23648         * config/fr30/fr30.md: Likweise
23649         (movsi_push): Likewise.
23650         (movsi_pop): Likewise.
23651         (enter_func): Likewise.
23652         * config/moxie/moxie.md (movsi_push): Likewise.
23653         (movsi_pop): Likewise.
23654
23655 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23656
23657         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
23658         %{no_archive} %{exact_version}.
23659         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
23660         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
23661         %{no_archive} %{exact_version}.
23662         * config/mips/openbsd.h (LINK_SPEC): Likewise.
23663         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
23664         * config/mips/vxworks.h: Likewise.
23665
23666 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23667
23668         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
23669
23670 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23671
23672         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
23673         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
23674
23675 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23676
23677         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
23678         -nodefaultlib.
23679
23680 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23681
23682         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
23683         for mcpu not cpu.
23684         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
23685         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
23686         not cpu.
23687         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
23688         Don't handle -shlib.
23689
23690 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23691
23692         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
23693         (CC1_SPEC): Don't handle -profile.
23694
23695 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23696
23697         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
23698         * config/mips/mips.h (CC1_SPEC): Likewise.
23699
23700 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23701
23702         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
23703         * config/mips/mips.h (CC1_SPEC): Likewise.
23704
23705 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23706
23707         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
23708         * config/m32r/linux.h (LINK_SPEC): Likewise.
23709         * config/mips/linux.h (LINK_SPEC): Likewise.
23710         * config/mips/linux64.h (LINK_SPEC): Likewise.
23711         * config/sparc/linux.h (LINK_SPEC): Likewise.
23712         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
23713         LINK_SPEC): Likewise.
23714         * config/xtensa/linux.h (LINK_SPEC): Likewise.
23715
23716 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23717
23718         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
23719         %{version:-v}.
23720         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
23721
23722 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23723
23724         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
23725         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
23726
23727 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23728
23729         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
23730
23731 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23732
23733         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
23734         supports -Bstatic/-Bdynamic.
23735         * configure: Regenerate.
23736
23737 2011-01-14  Jan Hubicka  <jh@suse.cz>
23738             Jack Howarth  <howarth@bromo.med.uc.edu>
23739
23740         PR target/46037
23741         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
23742         when checking debug_info_level. Test write_symbols instead of
23743         debug_hooks->var_location when setting flag_var_tracking_uninit.
23744
23745 2011-01-14  Richard Guenther  <rguenther@suse.de>
23746
23747         PR tree-optimization/47179
23748         * target.def (ref_may_alias_errno): New target hook.
23749         * targhooks.h (default_ref_may_alias_errno): Declare.
23750         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
23751         (default_ref_may_alias_errno): New function.
23752         * target.h (struct ao_ref_s): Declare.
23753         * tree-ssa-alias.c: Include target.h.
23754         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
23755         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
23756         (targhooks.o): Likewise.
23757         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
23758         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
23759
23760 2011-01-14  Richard Guenther  <rguenther@suse.de>
23761
23762         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
23763
23764 2011-01-14  Richard Guenther  <rguenther@suse.de>
23765
23766         PR tree-optimization/47280
23767         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
23768         return CFG changes.
23769         (tree_ssa_forward_propagate_single_use_vars): Deal with
23770         CFG changes from associate_plusminus.
23771
23772 2011-01-14  Richard Guenther  <rguenther@suse.de>
23773
23774         PR middle-end/47281
23775         Revert
23776         2011-01-11  Richard Guenther  <rguenther@suse.de>
23777
23778         PR tree-optimization/46076
23779         * tree-ssa.c (useless_type_conversion_p): Conversions from
23780         unprototyped to empty argument list function types are useless.
23781
23782 2011-01-14  Richard Guenther  <rguenther@suse.de>
23783
23784         PR tree-optimization/47286
23785         * tree-ssa-structalias.c (new_var_info): Register variables are global.
23786
23787 2011-01-14  Martin Jambor  <mjambor@suse.cz>
23788
23789         PR middle-end/46823
23790         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
23791
23792 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
23793
23794         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
23795         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23796         * config/xtensa/xtensa.c (xtensa_libcall_value,
23797         xtensa_function_value_regno_p): New functions.
23798         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
23799
23800 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
23801
23802         PR c++/47213
23803         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
23804         PE specific hook.
23805         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
23806         New function prototype.
23807         * config/i386/winnt.c (i386_pe_assemble_visibility):
23808         Warn only if attribute was specified by user.
23809
23810 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
23811
23812         PR target/47251
23813         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
23814         floating point.
23815         (floatunsdidf2_fcfidu): Ditto.
23816
23817 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23818
23819         * config/s390/s390.c (print_operand_address): Replace 'error' with
23820         'output_operand_lossage'.
23821         (print_operand): Likewise.
23822
23823 2011-01-13  Jeff Law  <law@redhat.com>
23824
23825         PR rtl-optimization/39077
23826         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
23827         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
23828         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
23829         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
23830         * gcse.c (prune_insertions_deletions): New function.
23831         (compute_pre_data): Use it.
23832
23833 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
23834
23835         PR debug/PR46973
23836         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
23837         static function.
23838         (prune_unused_types_mark): Use it.
23839
23840 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
23841
23842         PR rtl-optimization/45352
23843         * sel-sched.c: Update copyright years.
23844         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
23845         in the advancing loop when we have issued issue_rate insns.
23846
23847 2011-01-12  Richard Henderson  <rth@redhat.com>
23848
23849         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
23850         (TARGET_MD_ASM_CLOBBERS): New.
23851
23852         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
23853         (TARGET_DELEGITIMIZE_ADDRESS): New.
23854
23855         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
23856         (clzsi2, *bsch): New patterns.
23857
23858         * config/mn10300/mn10300.md (INT): New mode iterator.
23859         (*mov<INT>_clr): New pattern, and peep2 to generate it.
23860
23861         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
23862         flag_split_wide_types.
23863
23864         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
23865         (mn10300_trampoline_init): Rewrite without a template, an immediate
23866         load and a direct branch.
23867         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
23868
23869 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
23870
23871         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23872         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
23873         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
23874         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23875
23876 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
23877
23878         PR debug/47209
23879         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
23880         of type.
23881
23882 2011-01-12  Jan Hubicka  <jh@suse.cz>
23883
23884         PR driver/47244
23885         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
23886         (PLUGIN_COND_CLOSE): New macro.
23887         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
23888
23889 2011-01-12  Richard Guenther  <rguenther@suse.de>
23890
23891         PR lto/47259
23892         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
23893         register variables in a MEM_REF.
23894
23895 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
23896
23897         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
23898         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
23899         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
23900         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
23901         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
23902         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
23903         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
23904         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
23905         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
23906         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
23907         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
23908         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
23909         * config/gnu-user.h: New.  Copied from linux.h.
23910         (LINUX_TARGET_STARTFILE_SPEC): Rename to
23911         GNU_USER_TARGET_STARTFILE_SPEC.
23912         (LINUX_TARGET_ENDFILE_SPEC): Rename to
23913         GNU_USER_TARGET_ENDFILE_SPEC.
23914         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
23915         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
23916         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
23917         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
23918         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
23919         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
23920         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
23921         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
23922         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
23923         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
23924         * config/arm/linux-eabi.h (CC1_SPEC): Use
23925         GNU_USER_TARGET_CC1_SPEC.
23926         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
23927         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
23928         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
23929         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
23930         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
23931         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
23932         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
23933         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
23934
23935 2011-01-12  Richard Guenther  <rguenther@suse.de>
23936
23937         PR other/46946
23938         * doc/invoke.texi (ffast-math): Document it is turned on
23939         with -Ofast.
23940
23941 2011-01-12  Jan Hubicka  <jh@suse.cz>
23942
23943         PR tree-optimization/47233
23944         * opts.c (common_handle_option): Disable ipa-reference with profile
23945         feedback.
23946
23947 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
23948
23949         * c-parser.c (c_parser_objc_at_property_declaration): Improved
23950         error message.
23951
23952 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
23953
23954         * c-parser.c (c_lex_one_token): Updated and reindented some
23955         comments.  No changes in code.
23956
23957 2011-01-11  Ian Lance Taylor  <iant@google.com>
23958
23959         * godump.c (go_output_var): Don't output the variable if there is
23960         already a type with the same name.
23961
23962 2011-01-11  Ian Lance Taylor  <iant@google.com>
23963
23964         * godump.c (go_format_type): Don't generate float80.
23965
23966 2011-01-11  Richard Henderson  <rth@redhat.com>
23967
23968         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
23969         declaration.  Rewrite for both speed and size.
23970         (mn10300_address_cost_1): Remove.
23971         (mn10300_register_move_cost): New.
23972         (mn10300_memory_move_cost): New.
23973         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
23974         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
23975         extensions, shifts, BSWAP, CLZ.
23976         (mn10300_wide_const_load_uses_clr): Remove.
23977         (TARGET_REGISTER_MOVE_COST): New.
23978         (TARGET_MEMORY_MOVE_COST): New.
23979         * config/mn10300/mn10300-protos.h: Update.
23980         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
23981
23982         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
23983         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
23984         * config/mn10300/mn10300-protos.h: Update.
23985         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
23986         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
23987         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
23988         (*test_int_bitfield, *test_byte_bitfield): Remove.
23989         (*bit_test, *subreg_bit_test): Remove.
23990         * config/mn10300/predicates.md (const_8bit_operand): Remove.
23991
23992         * config/mn10300/constraints.md ("c"): Rename from "A".
23993         ("A", "D"): New constraint letters.
23994         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
23995         (fmssf4, fnmasf4, fnmssf4): Likewise.
23996
23997         * config/mn10300/mn10300.md (isa): New attribute.
23998         (enabled): New attribute.
23999
24000         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
24001         (abssf2, negsf2): Define only for hardware fp.
24002         (sqrtsf2): Reformat.
24003         (addsf3, subsf3, mulsf3): Merge expander and insn.
24004
24005         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
24006         (DEBUGGER_AUTO_OFFSET): Remove.
24007         (DEBUGGER_ARG_OFFSET): Remove.
24008
24009         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
24010         Emit register stores with the same offsets as the hardware.
24011         (mn10300_store_multiple_operation): Don't check that the register
24012         save offsets are monotonic.
24013         * config/mn10300/mn10300-protos.h: Update.
24014
24015         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
24016
24017         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
24018         in terms of the value on the stack, not the MDR register.
24019
24020 2011-01-11  Jan Hubicka  <jh@suse.cz>
24021
24022         PR lto/45721
24023         PR lto/45375
24024         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
24025         (symbol_alias_set_destroy, symbol_alias_set_contains,
24026         propagate_aliases_backward): Declare.
24027         * lto-streamer-out.c (struct sets): New sturcture.
24028         (trivally_defined_alias): New function.
24029         (output_alias_pair_p): Rewrite.
24030         (output_unreferenced_globals): Fix output of alias pairs.
24031         (produce_symtab): Likewise.
24032         * ipa.c (function_and_variable_visibility): Set weak alias destination
24033         as needed in lto.
24034         * varasm.c (symbol_alias_set_t): Remove.
24035         (symbol_alias_set_destroy): Export.
24036         (propagate_aliases_forward, propagate_aliases_backward): New functions
24037         based on ...
24038         (compute_visible_aliases): ... this one; remove.
24039         (trivially_visible_alias): New
24040         (trivially_defined_alias): New.
24041         (remove_unreachable_alias_pairs): Rewrite.
24042         (finish_aliases_1): Reorganize code checking if alias is defined.
24043         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
24044         in LTO mode.
24045
24046 2011-01-11  Richard Guenther  <rguenther@suse.de>
24047
24048         PR tree-optimization/46076
24049         * tree-ssa.c (useless_type_conversion_p): Conversions from
24050         unprototyped to empty argument list function types are useless.
24051
24052 2011-01-11  Richard Guenther  <rguenther@suse.de>
24053
24054         PR middle-end/45235
24055         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
24056         volatile MEMs as MEM_READONLY_P.
24057
24058 2011-01-11  Richard Guenther  <rguenther@suse.de>
24059
24060         PR tree-optimization/47239
24061         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
24062
24063 2011-01-11  Jeff Law  <law@redhat.com>
24064
24065         PR tree-optimization/47086
24066         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
24067         IVs from statements that might throw.
24068
24069 2011-01-10  Jan Hubicka  <jh@suse.cz>
24070
24071         PR lto/45375
24072         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
24073
24074 2011-01-10  Jan Hubicka  <jh@suse.cz>
24075
24076         PR lto/45375
24077         * profile.c (read_profile_edge_counts): Ignore profile inconistency
24078         when correcting profile.
24079
24080 2011-01-10  Jan Hubicka  <jh@suse.cz>
24081
24082         PR lto/46083
24083         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
24084         DECL_FINI_PRIORITY.
24085         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
24086         Restore DECL_FINI_PRIORITY.
24087
24088 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24089
24090         * doc/gimple.texi: Fix quoting of multi-word return values in
24091         @deftypefn statements.  Ensure presence of return value.  Wrap
24092         overlong @deftypefn lines.
24093         (is_gimple_operand, is_gimple_min_invariant_address): Remove
24094         descriptions of removed functions.
24095         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
24096         of multi-word return value in @deftypefn statement.
24097
24098 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24099
24100         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
24101         (Conditional Expressions, Logical Operators)
24102         (Statement and operand traversals): Do not indent smallexample
24103         code.  Fix duplicate function argument in example.
24104
24105 2011-01-10  Jeff Law  <law@redhat.com>
24106
24107         PR tree-optimization/47141
24108         * ipa-split.c (split_function): Handle case where we are
24109         returning a value and the return block has a virtual operand phi.
24110
24111 2011-01-10  Jan Hubicka  <jh@suse.cz>
24112
24113         PR tree-optimization/47234
24114         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
24115         (pass_feedback_split_functions): Declare.
24116         * passes.c (init_optimization_passes): Add ipa-split as subpass of
24117         tree-profile.
24118         * ipa-split.c (gate_split_functions): Update comments; disable
24119         split-functions for profile_arc_flag and branch_probabilities.
24120         (gate_feedback_split_functions): New function.
24121         (execute_feedback_split_functions): New function.
24122         (pass_feedback_split_functions): New global var.
24123
24124 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
24125
24126         PR lto/46760
24127         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
24128         calling gimple_call_set_cannot_inline.
24129
24130 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
24131
24132         * config/darwin-sections.def: Remove unused section.
24133
24134 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
24135
24136         PR c++/47218
24137         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
24138
24139 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
24140
24141         PR objc/47232
24142         * c-parser.c (c_parser_declaration_or_fndef): Improved
24143         error message.
24144
24145 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
24146
24147         * config/i386/winnt.c (i386_pe_start_function): Make sure
24148         to switch back to function's section.
24149
24150 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
24151
24152         PR gcc/46902
24153         PR testsuite/46912
24154         * plugin.c: Move include of dlfcn.h from here...
24155         * system.h: ... to here.
24156
24157 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24158
24159         * doc/cpp.texi (C++ Named Operators): Fix markup for header
24160         file name.
24161         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
24162         two extra empty pages in PDF output.
24163
24164 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
24165
24166         PR objc/47078
24167         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
24168         for error recovery purposes behave as if it was not specified so
24169         that the default type is usd.
24170
24171 2011-01-07  Jan Hubicka  <jh@suse.cz>
24172
24173         PR tree-optmization/46469
24174         * ipa.c (function_and_variable_visibility): Clear needed flags on
24175         nodes with external decls; handle weakrefs merging correctly.
24176
24177 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
24178
24179         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
24180         not false.
24181
24182 2011-01-07  Jan Hubicka  <jh@suse.cz>
24183
24184         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
24185         and no longer claim that gold is required for linker plugin.
24186         * configure: Regenerate.
24187         * gcc.c (PLUGIN_COND): New macro.
24188         (LINK_COMMAND_SPEC): Use it.
24189         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
24190         * config.in (HAVE_LTO_PLUGIN): New.
24191         * configure.ac (--with-lto-plugin): New parameter; autodetect
24192         HAVE_LTO_PLUGIN.
24193
24194 2011-01-07  Jan Hubicka  <jh@suse.cz>
24195
24196         PR tree-optimization/46367
24197         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
24198         when we can update original.
24199         (cgraph_mark_inline_edge): Sanity check.
24200         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
24201
24202 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24203
24204         * config/spu/spu.h (ASM_COMMENT_START): Define.
24205
24206 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
24207
24208         PR driver/42445
24209         * gcc.c (%>S): New.
24210         (SWITCH_KEEP_FOR_GCC): Likewise.
24211         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
24212         (do_spec_1): Handle "%>".
24213
24214         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
24215
24216 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
24217
24218         PR target/47201
24219         * config/i386/i386.c (ix86_delegitimize_address): If
24220         simplify_gen_subreg fails, return orig_x.
24221
24222         PR bootstrap/47187
24223         * value-prof.c (gimple_stringop_fixed_value): Handle
24224         lhs of the call properly.
24225
24226 2011-01-07  Jan Hubicka  <jh@suse.cz>
24227
24228         PR lto/45375
24229         * lto-opt.c (lto_reissue_options): Set flag_shlib.
24230
24231 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
24232
24233         * target.def (function_switched_text_sections): New hook.
24234         * doc/tm.texi: Regenerated.
24235         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
24236         * final.c (default_function_switched_text_sections): New.
24237         (final_scan_insn): Call function_switched_text_sections when a
24238         mid-function section change occurs.
24239         * output.h (default_function_switched_text_sections): Declare.
24240         * config/darwin-protos.h (darwin_function_switched_text_sections):
24241         Likewise.
24242         * config/darwin.c (darwin_function_switched_text_sections): New.
24243         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
24244
24245 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
24246
24247         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
24248         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
24249         the secondary code fragment when outputting for DWARF == 2.
24250
24251 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
24252
24253         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
24254         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
24255         Remove.
24256         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
24257         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
24258
24259 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
24260
24261         PR debug/46704
24262         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
24263         when it is not empty.
24264
24265 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
24266
24267         Bobcat Enablement
24268         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
24269         (case ${target}): Add btver1.
24270         * config/i386/driver-i386.c (host_detect_local_cpu): Let
24271         -march=native recognize btver1 processors.
24272         * config/i386/i386-c.c (ix86_target_macros_internal): Add
24273         btver1 def_and_undef
24274         * config/i386/i386.c (struct processor_costs btver1_cost): New
24275         btver1 cost table.
24276         (m_BTVER1): New definition.
24277         (m_AMD_MULTIPLE): Includes m_BTVER1.
24278         (initial_ix86_tune_features): Add btver1 tune.
24279         (processor_target_table): Add btver1 entry.
24280         (static const char *const cpu_names): Add btver1 entry.
24281         (software_prefetching_beneficial_p): Add btver1.
24282         (ix86_option_override_internal): Add btver1 instruction sets.
24283         (ix86_issue_rate): Add btver1.
24284         (ix86_adjust_cost): Add btver1.
24285         * config/i386/i386.h (TARGET_BTVER1): New definition.
24286         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
24287         (enum processor_type): Add PROCESSOR_BTVER1.
24288         * config/i386/i386.md (define_attr "cpu"): Add btver1.
24289
24290 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24291
24292         PR target/43309
24293         * config/i386/i386.c (legitimize_tls_address)
24294         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
24295         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
24296         (tls_initial_exec_64_sun): New pattern.
24297
24298 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
24299
24300         * doc/invoke.texi (Overall Options): Improve wording and markup
24301         of the description of -wrapper.
24302
24303 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
24304
24305         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
24306         rdynamic, threads): New Driver options.
24307
24308 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24309
24310         PR target/38118
24311         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
24312         if coming from .tdata.
24313         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
24314
24315 2011-01-06  Jan Hubicka  <jh@suse.cz>
24316
24317         PR lto/47188
24318         * collect2.c (main): Do not enable LTOmode when plugin is active.
24319
24320 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24321
24322         PR other/45915
24323         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
24324         --version output if supported.
24325         * configure: Regenerate.
24326
24327 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
24328
24329         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
24330         Driver options.
24331
24332 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
24333
24334         PR c/47150
24335         * c-convert.c (convert): When converting a complex expression
24336         other than COMPLEX_EXPR to a different complex type, ensure
24337         c_save_expr is called instead of save_expr, unless in_late_binary_op.
24338         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
24339         when converting COMPLEX_TYPE.
24340
24341 2011-01-06  Ira Rosen  <irar@il.ibm.com>
24342
24343         PR tree-optimization/47139
24344         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
24345         only the last reduction value is used outside the loop.  Update
24346         documentation.
24347
24348 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
24349
24350         * config/rtems.opt: New.
24351         * config.gcc (*-*-rtems*): Use rtems.opt.
24352
24353 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
24354
24355         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
24356         processors do not support 3DNow instructions.
24357
24358 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24359
24360         * config/spu/spu.c (spu_option_override): Set parameter
24361         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
24362
24363 2011-01-05  Jan Hubicka  <jh@suse.cz>
24364
24365         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
24366         at the command line.
24367
24368 2011-01-05  Martin Jambor  <mjambor@suse.cz>
24369
24370         PR lto/47162
24371         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
24372         deltas on streamed outgoing edges.
24373         (output_node_opt_summary): Output info for outgoing edges only when
24374         the node is in new parameter set.
24375         (output_cgraph_opt_summary): New parameter set, passed to the two
24376         aforementioned functions.  Update its forward declaration and its
24377         callee too.
24378
24379 2011-01-05  Tom Tromey  <tromey@redhat.com>
24380
24381         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
24382         operator to c_finish_omp_atomic.
24383         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
24384         (build_unary_op): Update.
24385         (build_modify_expr): Update.
24386         (build_asm_expr): Update.
24387
24388 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24389
24390         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
24391         newly inserted insns.
24392         (pad_bb): Likewise.
24393         (spu_emit_branch_hint): Likewise.
24394         (insert_hbrp_for_ilb_runout): Likewise.
24395         (spu_machine_dependent_reorg): Call df_finish_pass after
24396         schedule_insns returns.
24397
24398 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24399
24400         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
24401
24402 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
24403
24404         PR tree-optimization/47005
24405         * tree-sra.c (struct access): Add 'non_addressable' bit.
24406         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
24407         (decide_one_param_reduction): Return 0 if the parameter is passed by
24408         reference and one of the accesses in the group is non_addressable.
24409
24410 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
24411
24412         PR tree-optimization/47056
24413         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
24414         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
24415         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
24416
24417 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
24418
24419         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
24420         initializer.  Skip view conversions from aggregate types.
24421
24422 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
24423
24424         PR bootstrap/47055
24425         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
24426
24427 2011-01-04  Philipp Thomas  <pth@suse.de>
24428
24429         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
24430         obvious typo.
24431
24432 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24433
24434         * function.c (thread_prologue_and_epilogue_insns): Do not crash
24435         on empty epilogue sequences.
24436
24437 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
24438
24439         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
24440         non-static): New Driver options.
24441
24442 2011-01-04  Jie Zhang  <jie@codesourcery.com>
24443
24444         PR driver/47137
24445         * gcc.c (default_compilers[]): Set combinable field to 0
24446         for all assembly languages.
24447
24448 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
24449
24450         * config/mips/loongson3a.md: New file.
24451         * config/mips/mips.md: Include loongson3a.md.
24452         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
24453         TUNE_LOONGSON_3A.
24454
24455 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
24456
24457         PR middle-end/47017
24458         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
24459         instead of convert_memory_address_addr_space on the base expression.
24460
24461 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24462
24463         * config/spu/spu.c (spu_option_override): Update error text
24464         for bad -march= / -mtune= values.
24465
24466 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24467
24468         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
24469         if branch-hint optimization will be performed.
24470
24471 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
24472
24473         PR tree-optimization/47148
24474         * ipa-split.c (split_function): Convert arguments to
24475         DECL_ARG_TYPE if possible.
24476
24477         PR tree-optimization/47155
24478         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
24479         when computing uns.
24480
24481         PR rtl-optimization/47157
24482         * combine.c (try_combine): If undobuf.other_insn becomes
24483         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
24484         and set *new_direct_jump_p too.
24485
24486 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
24487
24488         PR tree-optimization/47021
24489         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
24490
24491 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
24492
24493         * gcc.c (process_command): Update copyright notice dates.
24494         * gcov.c (print_version): Likewise.
24495         * gcov-dump.c (print_version): Likewise.
24496         * mips-tfile.c (main): Likewise.
24497         * mips-tdump.c (main): Likewise.
24498
24499 2011-01-03  Martin Jambor  <mjambor@suse.cz>
24500
24501         PR tree-optimization/46801
24502         * tree-sra.c (type_internals_preclude_sra_p): Check whether
24503         aggregate fields start at byte boundary instead of the bit-field flag.
24504
24505 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
24506
24507         PR driver/47137
24508         * gcc.c (main): Revert revision 168407.
24509
24510 2011-01-03  Martin Jambor  <mjambor@suse.cz>
24511
24512         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
24513
24514 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24515
24516         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
24517         vector optab to expand vector/scalar shift, update gimple to vector.
24518
24519 2011-01-03  Martin Jambor  <mjambor@suse.cz>
24520
24521         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
24522         a thunk.
24523
24524 2011-01-03  Martin Jambor  <mjambor@suse.cz>
24525
24526         PR tree-optimization/46984
24527         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
24528         HOST_WIDE_INT.
24529         (cgraph_create_indirect_edge): Fixed line length.
24530         (cgraph_indirect_call_info): Declare.
24531         (cgraph_make_edge_direct) Update declaration.
24532         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
24533         (cgraph_create_indirect_edge): Use it.
24534         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
24535         callees.
24536         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
24537         the new thunk_delta representation.
24538         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
24539         HOST_WIDE_INT.
24540         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
24541         (ipa_read_indirect_edge_info): Likewise.
24542         * lto-cgraph.c (output_edge_opt_summary): New function.
24543         (output_node_opt_summary): Call it on all outgoing edges.
24544         (input_edge_opt_summary): New function.
24545         (input_node_opt_summary): Call it on all outgoing edges.
24546
24547 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
24548
24549         PR driver/47137
24550         * gcc.c (main): Don't check have_o when settting combine_inputs.
24551
24552 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
24553
24554         * regrename.c: Add general comment describing the pass.
24555         (struct du_head): Remove 'length' field.
24556         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
24557         (regrename_optimize): Do not sort chains.  Rework comments, add others.
24558         Force renaming to the preferred class (if any) in the first pass and do
24559         not consider registers that belong to it in the second pass.
24560         (create_new_chain): Do not set 'length' field.
24561         (scan_rtx_reg): Likewise.
24562
24563 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
24564
24565         PR tree-optimization/47140
24566         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
24567         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
24568         to bit_value_binop.
24569
24570         PR rtl-optimization/47028
24571         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
24572         parm_birth_insn instead of at the beginning of first bb.
24573
24574 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
24575
24576         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
24577         Remove the word "see" before "@pxref".
24578         * doc/rtl.texi: Remove the word "see" before "@pxref".
24579
24580 2011-01-01  Jan Hubicka  <jh@suse.cz>
24581
24582         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
24583         memory.
24584
24585 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
24586
24587         PR target/38662
24588         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
24589
24590 \f
24591 Copyright (C) 2011 Free Software Foundation, Inc.
24592
24593 Copying and distribution of this file, with or without modification,
24594 are permitted in any medium without royalty provided the copyright
24595 notice and this notice are preserved.