OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
2
3         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
4         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
5         __ORDER_PDP_ENDIAN__.
6         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7         (struct DWstruct): Define based on __BYTE_ORDER__.
8         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
9         (struct INTstruct): Define based on __BYTE_ORDER__.
10         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
11         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
12         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
13         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
14         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
15         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
16         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
17         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
18         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
19         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
20         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
21         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
22         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
23         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
24         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
25         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
26         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
27         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
28         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
29         * doc/tm.texi: Regenerate.
30         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
31         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
32
33 2010-10-23  Jie Zhang  <jie@codesourcery.com>
34
35         PR rtl-optimization/37360
36         * config/mips/mips.c (cached_can_issue_more): New local variable.
37         (mips_sched_reorder_1): New.
38         (mips_sched_reorder): Use mips_sched_reorder_1.
39         (mips_sched_reorder2): New.
40         (mips_variable_issue): Set cached_can_issue_more.
41         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
42         instead of mips_sched_reorder.
43
44         Revert
45         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
46         PR rtl-optimization/37360
47         * haifa-sched.c (max_issue): Do not assert that we never issue more
48         insns than issue_rate.  Add comment.
49
50 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
51
52         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
53         location info of the expression.
54
55 2010-10-22  DJ Delorie  <dj@redhat.com>
56
57         * doc/extend.texi (Named Address Spaces): Document the M32C named
58         address space.
59
60         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
61         __far address space.
62         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
63         "__far" address space for R8C and M16C processor variants.
64         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
65         (far_addr_space_p): New.
66         (encode_pattern_1): Add sign and zero extend support.
67         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
68         (m32c_extra_constraint_p2): Add SF constraint.
69         (m32c_legitimate_address_p): Support __far addresses.
70         (m32c_addr_space_pointer_mode): New.
71         (m32c_addr_space_address_mode): New.
72         (m32c_addr_space_legitimate_address_p): New.
73         (m32c_addr_space_legitimize_address): New.
74         (m32c_addr_space_subset_p): New.
75         (m32c_addr_space_convert): New.
76         (conversions): Add __far operand patterns.
77         (m32c_prepare_move): Force constants into registers for __far
78         moves.
79         (m32c_split_move): __far moves are always split.
80         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
81         * config/m32c/mov.md (mov<mode>_far_op1): New.
82         (mov<mode>_far_op2): New.
83         (movqi_op): Add __far (SF) support.
84         (movhi_op): Likewise.
85         (movsi_splittable): Split A1A0 also.
86
87 2010-10-22  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
88             Andrew Pinski <pinskia@gmail.com>
89
90         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
91         * doc/extend.texi: New paragraph
92
93 2010-10-22  Paul Koning  <ni1d@arrl.net>
94
95         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
96
97 2010-10-22  DJ Delorie  <dj@redhat.com>
98
99         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
100
101 2010-10-22  Paul Koning  <ni1d@arrl.net>
102
103         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
104
105 2010-10-22  Richard Henderson  <rth@redhat.com>
106
107         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
108         cases for __builtin_fma and __builtin_fmaf.
109
110 2010-10-22  Richard Henderson  <rth@redhat.com>
111
112         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
113         NEG+USE for vectors as well.
114         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
115         and splitter.
116
117 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
118
119         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
120         SWITCH_CURTAILS_COMPILATION): Remove.
121         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove
122         documentation.
123         * doc/tm.texi: Regenerate.
124         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
125
126 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
127
128         * gcc/config/i386/bdver1.md: New file.
129         * gcc/config/i386/i386.md (include "bdver1.md"): Invoke the
130         pipeline description for bdver1.
131         (x86_sahf_1): Add "bdver1_decode" attribute.
132         (*cmpfp_i_mixed): Likewise.
133         (*cmpfp_i_sse): Likewise.
134         (*cmpfp_i_i387): Likewise.
135         (*cmpfp_iu_mixed): Likewise.
136         (*cmpfp_iu_sse): Likewise.
137         (*cmpfp_iu_387): Likewise.
138         (*swap<mode>,*swap<mode>_1): Likewise.
139         (fixuns_trunc<mode>hi2): Likewise.
140         (fix_trunc<mode>si_sse): Likewise.
141         (x86_fnstcw_1): Likewise.
142         (x86_fldcw_1): Likewise.
143         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
144         (*floatsi<mode>2_vector_mixed): Likewise.
145         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
146         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
147         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
148         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
149         (*floatsi<mode>2_vector_sse): Likewise.
150         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
151         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
152         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
153         (*mul<mode>3_1): Likewise.
154         (*mulsi3_1_zext): Likewise.
155         (*mulhi3_1): Likewise.
156         (*mulqi3_1): Likewise.
157         (*<u>mul<mode><dwi>3_1): Likewise.
158         (*<u>mulqihi3_1): Likewise.
159         (*<s>muldi3_highpart_1): Likewise.
160         (*<s>mulsi3_highpart_1): Likewise.
161         (*<s>mulsi3_highpart_zext): Likewise.
162         (x86_64_shld): Likewise.
163         (x86_shld): Likewise.
164         (x86_64_shrd): Likewise.
165         (x86_shrd): Likewise.
166         (sqrtxf2): Likewise.
167         (sqrt_extend<mode>xf2_i387): Likewise.
168         (*sqrt<mode>2_sse): Likewise.
169         * gcc/config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
170         (sse_cvtsi2ssq): Likewise.
171         (sse_cvtss2si): Likewise.
172         (sse_cvtss2si_2): Likewise.
173         (sse_cvtss2siq): Likewise.
174         (sse_cvtss2siq_2): Likewise.
175         (sse_cvttss2si): Likewise.
176         (sse_cvttss2siq): Likewise.
177         (sse2_cvtpi2pd): Likewise.
178         (sse2_cvttpd2pi): Likewise.
179         (sse2_cvtsi2sd): Likewise.
180         (sse2_cvtsi2sdq): Likewise.
181         (sse2_cvtsd2si): Likewise.
182         (sse2_cvtsd2si_2): Likewise.
183         (sse2_cvtsd2siq): Likewise.
184         (sse2_cvtsd2siq_2): Likewise.
185         (sse2_cvttsd2si): Likewise.
186         (sse2_cvttsd2siq): Likewise.
187         (*sse2_cvtpd2dq): Likewise.
188         (*sse2_cvttpd2dq): Likewise.
189         (sse2_cvtsd2ss): Likewise.
190         (sse2_cvtss2sd): Likewise.
191         (*sse2_cvtpd2ps): Likewise.
192         (sse2_cvtps2pd): Likewise.
193
194 2010-10-22  Richard Guenther  <rguenther@suse.de>
195
196         PR middle-end/46137
197         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
198         remove the virtual operands if they are not needed.
199
200 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
201
202         * gcc/config/i386/i386.c (processor_costs bdver1_cost): Update
203         insn costs and architectural parameters for bdver1.
204
205 2010-10-22  Richard Guenther  <rguenther@suse.de>
206
207         * gimple.h (gimple_register_canonical_type): Declare.
208         * gimple.c (gimple_canonical_types): New global hashtable.
209         (struct gimple_type_leader_entry_s): New type.
210         (gimple_type_leader): New global cache.
211         (gimple_lookup_type_leader): New function.
212         (gtc_visit): Query the proper cache.
213         (gimple_types_compatible_p): Likewise.
214         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
215         (gimple_canonical_type_eq): New function.
216         (gimple_register_canonical_type): Likewise.
217         (print_gimple_types_stats): Adjust for gimple_canonical_types.
218         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
219         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
220         gimple_types_compatible_p for LTO.
221
222 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
223
224         PR target/46098
225         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
226         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
227         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
228         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
229         (<sse>_movu<ssemodesuffix>): New expander.
230         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
231         (avx_movdqu<avxmodesuffix>): New expander.
232         (*sse2_movdqu): Rename from sse2_movdqu.
233         (sse2_movdqu): New expander.
234
235 2010-10-22  Richard Guenther  <rguenther@suse.de>
236
237         PR tree-optimization/45720
238         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
239         Handle negative step.
240         (vect_enhance_data_refs_alignment): Likewise.
241         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
242         (vect_create_cond_for_align_checks): Likewise.
243         (vect_create_cond_for_alias_checks): Likewise.
244
245 2010-10-22  Ira Rosen  <irar@il.ibm.com>
246
247         PR tree-optimization/46126
248         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
249         vectorizable_shift in case of basic block vectorization.
250
251 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
252
253         * target.h (enum opt_levels, struct default_options): New.
254         * target.def (handle_ofast): Remove hook.
255         (target_option.optimization): Change to
256         target_option.optimization_table.
257         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
258         TARGET_OPTION_OPTIMIZATION_TABLE.
259         (CAN_DEBUG_WITHOUT_FP): Remove.
260         * doc/tm.texi: Regenerate.
261         * opts.c (maybe_default_option, maybe_default_options,
262         default_options_table): New.
263         (default_options_optimization): Take extra parameters.  Don't
264         assert that global_options and global_options_set are in use.  Use
265         maybe_default_options.
266         (decode_options): Pass extra parameters to
267         default_options_optimization.
268         * common.opt (falign-loops): Use value 0 with Var.
269         (frerun-cse-after-loop, ftree-ter): Remove Init.
270         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
271         TARGET_OPTION_OPTIMIZATION): Remove.
272         * targhooks.c (empty_optimization_table): New.
273         * targhooks.h (empty_optimization_table): Declare.
274         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
275         * config/alpha/alpha.c (alpha_option_optimization_table,
276         TARGET_OPTION_OPTIMIZATION_TABLE): New.
277         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
278         * config/arm/arm.c (arm_option_optimization: Change to
279         arm_option_optimization_table.
280         (TARGET_OPTION_OPTIMIZATION): Change to
281         TARGET_OPTION_OPTIMIZATION_TABLE.
282         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
283         * config/avr/avr.c (avr_option_optimization_table,
284         TARGET_OPTION_OPTIMIZATION_TABLE): New.
285         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
286         * config/cris/cris.c (cris_option_optimization): Change to
287         cris_option_optimization_table.
288         (TARGET_OPTION_OPTIMIZATION): Change to
289         TARGET_OPTION_OPTIMIZATION_TABLE.
290         * config/crx/crx.c (crx_option_optimization): Change to
291         crx_option_optimization_table.
292         (TARGET_OPTION_OPTIMIZATION): Change to
293         TARGET_OPTION_OPTIMIZATION_TABLE.
294         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
295         * config/fr30/fr30.c (fr30_option_optimization_table,
296         TARGET_OPTION_OPTIMIZATION_TABLE): New.
297         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
298         * config/frv/frv.c (frv_option_optimization_table,
299         TARGET_OPTION_OPTIMIZATION_TABLE): New.
300         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
301         * config/h8300/h8300.c (h8300_option_optimization): Change to
302         h8300_option_optimization_table.
303         (TARGET_OPTION_OPTIMIZATION): Change to
304         TARGET_OPTION_OPTIMIZATION_TABLE.
305         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
306         * config/i386/i386.c (ix86_option_optimization): Change to
307         ix86_option_optimization_table.
308         (TARGET_OPTION_OPTIMIZATION): Change to
309         TARGET_OPTION_OPTIMIZATION_TABLE.
310         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
311         as initializer.
312         * config/ia64/ia64.c (ia64_option_optimization): Change to
313         ia64_option_optimization_table.
314         (TARGET_OPTION_OPTIMIZATION): Change to
315         TARGET_OPTION_OPTIMIZATION_TABLE.
316         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
317         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
318         initializer.
319         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
320         TARGET_OPTION_OPTIMIZATION_TABLE): New.
321         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
322         * config/lm32/lm32.c (lm32_option_optimization_table,
323         TARGET_OPTION_OPTIMIZATION_TABLE): New.
324         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
325         * config/m32r/m32r.c (m32r_option_optimization): Change to
326         m32r_option_optimization_table.
327         (TARGET_OPTION_OPTIMIZATION): Change to
328         TARGET_OPTION_OPTIMIZATION_TABLE.
329         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
330         CAN_DEBUG_WITHOUT_FP): Remove.
331         * config/mcore/mcore.c (mcore_option_optimization): Change to
332         mcore_option_optimization_table.
333         (TARGET_OPTION_OPTIMIZATION): Change to
334         TARGET_OPTION_OPTIMIZATION_TABLE.
335         * config/mep/mep.c (mep_option_optimization): Change to
336         mep_option_optimization_table.
337         (TARGET_OPTION_OPTIMIZATION): Change to
338         TARGET_OPTION_OPTIMIZATION_TABLE.
339         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
340         * config/microblaze/microblaze.c
341         (microblaze_option_optimization_table,
342         TARGET_OPTION_OPTIMIZATION_TABLE): New.
343         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
344         * config/mips/mips.c (mips_option_optimization_table,
345         TARGET_OPTION_OPTIMIZATION_TABLE): New.
346         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
347         * config/mmix/mmix.c (mmix_option_optimization): Change to
348         mmix_option_optimization_table.
349         (TARGET_OPTION_OPTIMIZATION): Change to
350         TARGET_OPTION_OPTIMIZATION_TABLE.
351         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
352         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
353         TARGET_OPTION_OPTIMIZATION_TABLE): New.
354         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
355         * config/pa/pa.c (pa_option_optimization_table,
356         TARGET_OPTION_OPTIMIZATION_TABLE): New.
357         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
358         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
359         pdp11_option_optimization_table.
360         (TARGET_OPTION_OPTIMIZATION): Change to
361         TARGET_OPTION_OPTIMIZATION_TABLE.
362         * config/picochip/picochip.c (picochip_option_optimization_table,
363         TARGET_OPTION_OPTIMIZATION_TABLE): New.
364         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
365         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
366         TARGET_OPTION_OPTIMIZATION_TABLE): New.
367         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
368         * config/rx/rx.c (rx_option_optimization_table,
369         TARGET_OPTION_OPTIMIZATION_TABLE): New.
370         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
371         * config/s390/s390.c (s390_option_optimization): Change to
372         s390_option_optimization_table.
373         (s390_option_override): Update comment.
374         (TARGET_OPTION_OPTIMIZATION): Change to
375         TARGET_OPTION_OPTIMIZATION_TABLE.
376         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
377         * config/score/score.c (score_option_optimization_table,
378         TARGET_OPTION_OPTIMIZATION_TABLE): New.
379         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
380         * config/sh/sh.c (sh_option_optimization): Change to
381         sh_option_optimization_table.
382         (TARGET_OPTION_OPTIMIZATION): Change to
383         TARGET_OPTION_OPTIMIZATION_TABLE.
384         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
385         (sh_option_override, expand_block_move, multcosts, find_barrier,
386         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
387         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
388         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
389         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
390         instead of TARGET_SMALLCODE.
391         * config/sh/sh.opt (mspace): Make into an alias for -Os.
392         * config/sparc/sparc.c (sparc_option_optimization_table,
393         TARGET_OPTION_OPTIMIZATION_TABLE): New.
394         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
395         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
396         TARGET_OPTION_OPTIMIZATION_TABLE): New.
397         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
398         * config/v850/v850.c (v850_option_optimization): Change to
399         v850_option_optimization_table.
400         (TARGET_OPTION_OPTIMIZATION): Change to
401         TARGET_OPTION_OPTIMIZATION_TABLE.
402         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
403         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
404         xtensa_option_optimization_table.
405         (TARGET_OPTION_OPTIMIZATION): Change to
406         TARGET_OPTION_OPTIMIZATION_TABLE.
407         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
408
409 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
410
411         Based on the CFString implementation in FSF apple/trunk branch.
412
413         * target.def (objc_construct_string): New Hook.
414         * doc/tm.texi (objc_construct_string): Document.
415         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
416         * config/t-darwin: Amend build rules for darwin.o.
417         * config/darwin.opt: Add cfstrings flags.
418         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
419         (darwin_objc_construct_string): New.
420         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
421         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
422         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
423         (darwin_fold_builtin): Likewise.
424         (darwin_build_constant_cfstring): Likewise.
425         (darwin_objc_construct_string): Likewise.
426         (darwin_cfstring_p): Likewise.
427         (darwin_enter_string_into_cfstring_table): Likewise.
428         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
429         * config/darwin.c (darwin_running_cxx): New var.
430         (machopic_select_section): Return cfstring_constant_object_section.
431         (darwin_override_options): Set darwin_running_cxx.
432         (add_builtin_field_decl): New.
433         (darwin_init_cfstring_builtins): New.
434         (darwin_build_constant_cfstring): New.
435         (darwin_fold_builtin): New.
436         (cfstring_hash): New.
437         (cfstring_eq): New.
438         (darwin_enter_string_into_cfstring_table): New.
439         * config/darwin-sections.def (cfstring_constant_object_section): New.
440         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
441         (TARGET_OBJC_CONSTRUCT_STRING): Define.
442
443 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
444
445         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
446         TYPE_STUB_DECL instead of TREE_CHAIN.
447         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
448         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
449         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
450         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
451         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
452         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
453         Likewise.
454         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
455
456 2010-10-22  Jie Zhang  <jie@codesourcery.com>
457
458         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
459         (copy_blkmode_from_reg): Likewise.
460         (read_complex_part): Likewise.
461         (expand_expr_real_1): Calculate packedp and pass it to
462         extract_bit_field.
463         * expr.h (extract_bit_field): Update declaration.
464         * calls.c (store_unaligned_arguments_into_pseudos): Update call
465         to extract_bit_field.
466         * expmed.c (extract_fixed_bit_field): Update calls to
467         extract_fixed_bit_field.
468         (store_split_bit_field): Likewise.
469         (extract_bit_field_1): Add new argument packedp.
470         (extract_bit_field): Add new argument packedp.
471         (extract_fixed_bit_field): Add new argument packedp and let
472         packed attribute override volatile.
473         * stmt.c (expand_return): Update call to extract_bit_field.
474
475 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
476
477         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
478
479 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
480
481         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
482         of gcc_checking_assert.
483         * sel-sched.c (code_motion_process_successors): Likewise.
484
485 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
486
487         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
488         when stopping because of a different locus on edge or insn.
489         (try_optimize_cfg): Add comment.
490         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
491         block is a forwarder block, propagate locus on the edge.
492         (cfg_layout_merge_blocks): Likewise.
493
494 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
495
496         PR target/45946
497         * config/i386/i386.md (*pushti2): New insn pattern.
498         (pushti2 splitter): New insn splitter.
499         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
500         DWI mode iterator.
501
502 2010-10-21  Paul Koning  <ni1d@arrl.net>
503
504         * config/pdp11/pdp11-protos.md (arith_operand,
505         const_immediate_operand, expand_shift_operand,
506         immediate15_operand): Delete
507         * config/pdp11/pdp11.c: Ditto.
508         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
509         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
510         EXTRA_CONSTRAINT): Delete.
511         * config/pdp11/pdp11.md (various): Use standard constraints
512         instead of removed ones.
513         * config/pdp11/constraints.md: New file.
514         * config/pdp11/predicates.md: New file.
515
516 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
517
518         PR c/45834
519         * alias.c (true_dependence_1): Remove obsolete check for QImode.
520         (may_alias_p): Ditto.
521
522 2010-10-21  Martin Jambor  <mjambor@suse.cz>
523
524         PR tree-optimization/45875
525         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
526
527 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
528
529         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
530         variables.
531         (create_new_def_for): Likewise.
532
533 2010-10-21  Nick Clifton  <nickc@redhat.com>
534
535         * config/mn10300/mn10300.c: Fold code to 80-character width.
536         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
537         MEM, CONST_INT and CONST_DOUBLE.
538         (targetm): Move initialization to end of file.
539         (print_operand): Rename to mn10300_print_operand.
540         (print_operand_address): Rename to mn10300_print_operand_address.
541         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
542         (expand_prologue): Rename to mn10300_expand_prologue.
543         (expand_epilogue): Rename to mn10300_expand_epilogue.
544         (initial_offset): Rename to mn10300_initial_offset.
545         (function_arg): Rename to mn10300_function_arg.
546         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
547         (symbolic_operand): Rename to mn10300_symbolic_operand.
548         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
549         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
550         * config/mn10300/mn10300-protos.h: Update prototypes.
551         * config/mn10300/mn10300.h: Fold code to 80-character width.
552         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
553         MEM, CONST_INT and CONST_DOUBLE.
554         (CPP_SPEC): Move to...
555         (TARGET_CPU_CPP_BUILTINS): ... here.
556         * config/mn10300/mn10300.md: Fold code to 80-character width.
557         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
558         MEM, CONST_INT and CONST_DOUBLE.
559
560 2010-10-21  Ira Rosen  <irar@il.ibm.com>
561
562         PR tree-optimization/46049
563         PR tree-optimization/46052
564         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
565         (vect_get_slp_defs): Add arguments.
566         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
567         operands to vect_get_slp_defs.
568         (vectorizable_reduction): Fix comment, pass scalar operands to
569         vect_get_slp_defs.
570         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
571         type to determine number of units in the created vector.
572         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
573         (vectorizable_conversion): Fix comment.
574         (vectorizable_shift): New function.
575         (vectorizable_operation): Move code that handles shifts to
576         vectorizable_shift.
577         (vectorizable_type_demotion): Fix comment, pass scalar operands to
578         vect_get_slp_defs.
579         (vectorizable_type_promotion, vectorizable_store): Likewise.
580         (vectorizable_condition): Fix comment.
581         (vect_analyze_stmt): Call vectorizable_shift.
582         (vect_transform_stmt): Likewise.
583         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
584         Use it as the operand to create vectors for, except reduction
585         initial definition and store.  Use operands type.
586         (vect_get_slp_defs): Add new arguments.  Pass them to
587          vect_get_constant_vectors.
588
589 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
590
591         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
592         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
593         * cfghooks.c (fixup_reorder_chain): Likewise.
594         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
595         * cgraph.c (cgraph_add_thunk): Likewise.
596         (cgraph_create_edge_1): Likewise.
597         (cgraph_create_virtual_clone): Likewise.
598         * ddg.c (add_cross_iteration_register_deps): Likewise.
599         * dwarf2out.c (modified_type_die): Likewise.
600         * emit-rtl.c (set_mem_alias_set): Likewise.
601         * ggc-zone.c (zone_allocate_marks): Likewise.
602         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
603         * gimple.c (iterative_hash_gimple_type): Likewise.
604         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
605         (create_single_exit_edge): Likewise.
606         * haifa-sched.c (choose_ready): Likewise.
607         * lto-streamer-in.c (input_gimple_stmt): Likewise.
608         * passes.c (execute_todo): Likewise.
609         * sched-ebb.c (begin_schedule_ready): Likewise.
610         * sel-sched.c (code_motion_process_successors): Likewise.
611         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
612         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
613         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
614         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
615         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
616         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
617         (ssa_conflicts_add): Likewise.
618         * tree-ssa-copy.c (replace_exp): Likewise.
619         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
620         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
621         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
622         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
623         (compute_antic): Likewise.
624         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
625         (add_dependence): Likewise.
626         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
627         * tree-vrp.c (supports_overflow_infinity): Likewise.
628         (make_overflow_infinity, negative_overflow_infinity): Likewise.
629         (avoid_overflow_infinity, register_new_assert_for): Likewise.
630         (process_assert_insertions_for): Likewise.
631         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
632         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
633         (intersect_loc_chains, variable_merge_over_cur): Likewise.
634
635 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
636
637         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
638         * reload1.c (has_nonexceptional_receiver): Likewise.
639         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
640         (create_new_def_for): Likewise.
641         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
642         (merge_phi_nodes): Likewise.
643         (has_abnormal_incoming_edge_p): Delete.
644
645 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
646
647         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
648
649 2010-10-21  Richard Guenther  <rguenther@suse.de>
650             Michael Matz  <matz@suse.de>
651
652         PR tree-optimization/45764
653         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
654         Adjust initial misalignment for negative DR_STEP.
655         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
656         do not have the same alignment over the whole iteration domain.
657
658 2010-10-21  Richard Guenther  <rguenther@suse.de>
659
660         PR tree-optimization/46111
661         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
662
663 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
664
665         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
666
667 2010-10-21  Tristan Gingold  <gingold@adacore.com>
668
669         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
670         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
671
672 2010-10-21  Tristan Gingold  <gingold@adacore.com>
673
674         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
675         signal_frame.
676         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
677
678 2010-10-21  Tristan Gingold  <gingold@adacore.com>
679
680         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
681         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
682
683 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
684
685         * basic-block.h (find_fallthru_edge): Define.
686         * cfgcleanup.c (merge_blocks_move): Use it.
687         (try_crossjump_bb): Likewise.
688         * cfglayout.c (fixup_reorder_chains): Likewise.
689         (fixup_fallthru_exit_predecessor): Likewise.
690         * cfgrtl.c (rtl_split_edge): Likewise.
691         (rtl_verify_flow_info): Likewise.
692         * function.c (thread_prologue_and_epilogue_insns): Likewise.
693         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
694         * ifcvt.c (block_fallthru): Likewise.
695         * reload1.c (fixup_abnormal_edges): Likewise.
696         * sched-ebb.c (being_schedule_ready): Likewise.
697         (schedule_ebb): Likwise.
698         * sched-rgn.c (find_single_block_region): Likewise.
699         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
700         * tree-complex.c (expand_complex_move): Likewise.
701         * sched-int.h (find_fallthru_edge): Rename to...
702         (find_fallthru_edge_from): ...this.
703         * haifa-sched.c (find_fallthru_edge): Rename to...
704         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
705         (init_before_recovery): Call find_fallthru_edge_from.
706         * sel-sched-ir.c (merge_fences): Likewise.
707         * sel-sched.c (in_fallthru_bb_p): Likewise.
708         (move_cond_jump): Likewise.
709
710 2010-10-20  Paul Koning  <ni1d@arrl.net>
711
712         * config/pdp11/pdp11.md (various): Fix conditions on a number of
713         insn to check for target 11/40 or higher.
714
715 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
716
717         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
718         bool instead of a tree.
719         (c_parser_objc_method_decl): Added bool argument.  Updated call to
720         objc_build_method_signature.
721         (c_parser_objc_method_definition): Do not call
722         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
723         c_parser_objc_method_decl and objc_start_method_definition.
724         (c_parser_objc_methodproto): Do not call objc_set_method_type.
725         Updated calls to c_parser_objc_method_type,
726         c_parser_objc_method_decl and objc_add_method_declaration.
727
728 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
729
730         PR tree-optimization/45919
731         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
732         array members.
733
734         PR tree-optimization/46066
735         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
736         instead of gsi_last_bb.
737
738 2010-10-20  DJ Delorie  <dj@redhat.com>
739
740         * config/m32c/m32c.c (m32c_option_override): Always disable
741         function-cse in 16-bit mode.  Indirect calls are always worse than
742         direct calls as there is no 16-bit indirect call opcode.
743         (m32c_override_options_after_change): New, likewise.
744
745 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
746
747         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
748         emitting the conditional move in the inner mode of the SUBREG.
749
750 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
751
752         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
753         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
754         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
755         (ia64_preferred_reload_class): Make static.  Change rclass argument
756         and result types from enum reg_class to reg_class_t.
757
758 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
759
760         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
761         call for single operand expression.
762
763 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
764
765         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
766         if there is a call statement to pure or const function in the block.
767
768 2010-10-20  Paul Koning  <pkoning@equallogic.com>
769
770         Fix several build errors for pdp11 target.
771         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
772         (cbranchdf4): Conditional on TARGET_FPU.
773         (movdf): Ditto; correct alternatives check.
774         (movmemhi): Fix predicate and constraint.
775         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
776
777 2010-10-20  Richard Guenther  <rguenther@suse.de>
778
779         PR lto/45667
780         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
781         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
782         (verify_gimple_assign_single): Disable ADDR_EXPR type check
783         when in LTO.
784
785 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
786
787         PR fortran/42169
788         * ira-emit.c (store_can_be_removed_p): Return false instead of
789         gcc_unreachable.
790
791 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
792
793         * fold-const.c (fold_binary_loc): New transformation.
794
795 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
796
797         PR target/46085
798         * config/i386/sse.md (reduc_splus_v8sf): Updated.
799         (reduc_splus_v4df): Likewise.
800
801 2010-10-20  Richard Guenther  <rguenther@suse.de>
802
803         PR tree-optimization/45860
804         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
805         conditional store replacement for non-register type stores.
806
807 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
808
809         * stor-layout.c (skip_simple_constant_arithmetic): New function.
810         (self_referential_size): Use it instead of skip_simple_arithmetic.
811
812 2010-10-20  Olivier Hainque  <hainque@adacore.com>
813
814         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
815         If the current function calls eh_return, claim live all registers
816         that we need to check for liveness otherwise.
817
818 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
819
820         * c-decl.c (c_write_global_declarations): Call
821         objc_write_global_declarations when compiling Objective-C.
822         * c-lang.c (finish_file): Removed.
823
824 2010-10-19  DJ Delorie  <dj@redhat.com>
825
826         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
827         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
828         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
829         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
830         * doc/tm.texi: Regenerate.
831         * targhooks.h (default_label_align_after_barrier_max_skip,
832         default_loop_align_max_skip, default_label_align_max_skip,
833         default_jump_align_max_skip): Declare.
834         * target.def (label_align_after_barrier_max_skip): New.
835         (loop_align_max_skip): New.
836         (label_align_max_skip): New.
837         (jump_align_max_skip): New.
838         * system.h (poison): Add those macros to the list.
839         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
840         (LOOP_ALIGN_MAX_SKIP): Remove.
841         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
842         (JUMP_ALIGN_MAX_SKIP): Remove.
843         (default_label_align_after_barrier_max_skip): New.
844         (default_loop_align_max_skip): New.
845         (default_label_align_max_skip): New.
846         (default_jump_align_max_skip): New.
847         (compute_alignments): Use the new hooks.
848         (shorten_branches): Likewise.
849
850 2010-10-19  Richard Henderson  <rth@redhat.com>
851
852         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
853         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
854         (fma4i_fmadd_<mode>): New.
855         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
856         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
857         standard fma patterns.
858         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
859         enable for FMA.
860         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
861         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
862         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
863
864 2010-10-19  Paul Koning  <pkoning@equallogic.com>
865
866         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
867         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
868
869 2010-10-19  Richard Henderson  <rth@redhat.com>
870
871         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
872         (fmadf4, *fmsdf4, *nfmadf4): New.
873         (fmaxf4, *fmsxf4, *nfmaxf4): New.
874
875 2010-10-19  Michael Eager  <eager@eagercon.com>
876
877         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
878         Use sjlj unwind info for exceptions.
879
880 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
881
882         PR fortran/43414
883         * dwarf2out.c (add_calling_convention_attribute): Flag main
884         Fortran subroutine with DW_AT_main_subprogram.
885
886 2010-10-19  Nick Clifton  <nickc@redhat.com>
887
888         * config/rx/rx.c (rx_function_value): Small integer types are
889         promoted to SImode.
890         (rx_promote_function_mode): New function.
891         (TARGET_PROMOTE_FUNCTION_MODE): Define.
892
893 2010-10-19  Nick Clifton  <nickc@redhat.com>
894
895         * config/mep/mep.c (mep_print_operand): Use
896         targetm.strip_name_encoding.
897         (mep_output_aligned_common): Likewise.
898
899 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
900
901         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
902
903 2010-10-18  Richard Henderson  <rth@redhat.com>
904
905         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
906         (fma (neg a) (neg b) c) and (fma a (neg b) c).
907
908 2010-10-18  Richard Henderson  <rth@redhat.com>
909
910         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
911         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
912         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
913         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
914         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
915         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
916         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
917         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
918         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
919         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
920         (bdesc_multi_arg): Remove the corresponding builtins.
921         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
922         (UNSPEC_FMA4_FMSUBADD): Remove.
923         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
924         * config/i386/sse.md (FMA4MODEF4): Remove.
925         (FMAMODE): Add.
926         (fma<mode>4): New expander.
927         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
928         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
929         (*fma4i_fmsub_<mode>): Similarly.
930         (*fma4i_fnmadd_<mode>): Similarly.
931         (*fma4i_fnmsub_<mode>): Similarly.
932         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
933         with the first operand.
934         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
935         of explicit arithmetic.  Macroize with AVXMODEF2P.
936         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
937         (xop_frcz<mode>2): Macroize with FMAMODE.
938         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
939         the first operand.
940         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
941         extra negations.
942         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
943         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
944         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
945         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
946         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
947         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
948         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
949         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
950
951 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
952
953         PR rtl-optimization/45966
954         * combine.c (try_combine): If added_sets_2, deal with the case
955         where i0 feeds i1 and i1 feeds i2.
956
957 2010-10-18  Jan Hubicka  <jh@suse.cz>
958
959         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
960         preserve flags before trying to guess on visibility.
961         (varpool_externally_visible_p): New function.
962         (function_and_variable_visibility): Use it.
963
964 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
965
966         Implemented parsing @synthesize and @dynamic for Objective-C.
967         * c-parser.c (c_parser_external_declaration): Recognize
968         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
969         (c_parser_objc_at_synthesize_declaration): New.
970         (c_parser_objc_at_dynamic_declaration): New.
971
972 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
973
974         * c-parser.c (c_parser_objc_class_declaration): After finding an
975         error, parse the whole declaration then reset parser->error.
976
977 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
978
979         PR target/46041
980         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
981         * builtins.c (mode_has_fma): Ditto.
982
983 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
984
985         PR target/36898
986         PR middle-end/43760
987         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
988
989 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
990
991         * config/i386/i386.c (ix86_option_override_internal): Define and
992         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
993         default.
994         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
995         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
996
997 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
998
999         Merge from 'apple/trunk' branch on FSF servers.
1000         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
1001         following Objective-C change:
1002
1003         2005-10-10  Fariborz Jahanian <fjahanian@apple.com>
1004
1005         Radar 4301047
1006         * c-parse.in (objc_quals): Build objc qualifier list same way
1007         as gcc-3.3
1008
1009 2010-10-18  Jan Hubicka  <jh@suse.cz>
1010
1011         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
1012         function_and_variable_visibility): Revert accidental commit.
1013
1014 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1015
1016         Merge from 'apple/trunk' branch on FSF servers.
1017         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
1018         the following Objective-C change:
1019
1020         2005-10-07  Fariborz Jahanian <fjahanian@apple.com>
1021
1022         Radar 4204796
1023         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
1024         'volatilized' type used in a typeof operator.
1025
1026 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
1027
1028         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
1029         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
1030         rewrite modelled on gimple_purge_dead_eh_edges.
1031         (gimple_purge_all_dead_abnormal_call_edges): New function.
1032         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
1033         directly instead of through gimple_purge_dead_abnormal_call_edges.
1034         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
1035         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
1036         removed AB side-effects from one of its statements.
1037         (init_pre): Initialize need_ab_cleanup.
1038         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
1039         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
1040
1041 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
1042
1043         PR c/46015
1044         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
1045         on computed goto argument.
1046
1047 2010-10-18  Richard Guenther  <rguenther@suse.de>
1048
1049         PR tree-optimization/45967
1050         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
1051         (could_have_pointers): Likewise.
1052         (handle_rhs_call, handle_const_call, handle_pure_call,
1053         find_func_aliases, intra_create_variable_infos): Remove calls to them.
1054         (struct fieldoff): Add must_have_pointers field.
1055         (type_must_have_pointers): New function.
1056         (field_must_have_pointers): Likewise.
1057         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
1058         Adjust field merging.
1059         (create_function_info_for): May-have-pointers of varinfo is
1060         almost always true.
1061         (create_variable_info_for_1): Likewise.
1062
1063 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
1064
1065         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
1066         of operands to vec_concat.
1067
1068 2010-10-18  Richard Guenther  <rguenther@suse.de>
1069
1070         PR lto/44950
1071         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
1072         also clear references to entries of it.
1073
1074 2010-10-18  Andi Kleen  <ak@linux.intel.com>
1075
1076         PR other/43448
1077         * gccbug.in: Remove.
1078         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
1079         (doc, distclean, install-common): Remove reference to gccbug.
1080         * configure: Regenerate.
1081         * configure.ac (all_outputs): Remove gccbug.
1082         * doc/configfiles.texi: Remove references to gccbug.
1083         * doc/sourcebuild.texi: Dito.
1084
1085 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
1086
1087         PR middle-end/46019
1088         * fold-const.c (fold_binary_loc): If integer_pow2p has
1089         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
1090
1091 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
1092             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1093
1094         * gengtype.c (verbosity_level): Add variable.
1095         (set_gc_used): Count variables for verbosity.
1096         (close_output_files): Backing up files, counting written ones
1097         verbosily.
1098         (write_types): Count emitted functions for verbosity. Added
1099         debug messages.
1100         (write_enum_defn): Count structures for verbosity. Added debug
1101         messages.
1102         (gengtype_long_options): Add "verbose" & "backupdir".
1103         (print_usage): Ditto.
1104         (main): Verbose display of parsed files.
1105
1106         * gengtype.h (verbosity_level): Add declaration.
1107
1108 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
1109
1110         * gengtype.c (parse_program_options): Add allocation of
1111         plugin_files, and correct test on nb_plugin_files.
1112
1113 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1114
1115         Merge from 'apple/trunk' branch on FSF servers.
1116
1117         2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
1118
1119         Radar 4133425
1120         * c-decl.c (undeclared_variable): Issue diagnostic on
1121         private 'ivar' access.
1122
1123 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
1124
1125         PR target/46051
1126         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
1127         generated sequence to match *avx_vperm2f128<mode>_nozero.
1128         (vec_interleave_lowv4df): Ditto.
1129         (vec_interleave_highv8sf): Ditto.
1130         (vec_interleave_lowv8sf): Ditto.
1131
1132 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
1133
1134         * libgcov.c (create_file_directory): Enable it for win32 case.
1135         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
1136         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
1137         (GCOV_PREFIX_SKIP): Likewise.
1138
1139 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1140
1141         * doc/objc.texi (GNU Objective-C runtime API): New section.
1142         (Modern GNU Objective-C runtime API): New section.
1143         (Traditional GNU Objective-C runtime API): New section.
1144         (Executing code before main): Mention that this section is
1145         specific to the GNU Objective-C runtime.
1146         (Garbage Collection): Same.
1147
1148 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
1149
1150         * c-parser.c (c_parser_for_statement): Move initialization of
1151         cond and incr before if.
1152
1153 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
1154
1155         * target.def (preferred_output_reload_class): New hook.
1156         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
1157         * doc/tm.texi: Regenerate.
1158         * targhooks.c (default_preferred_output_reload_class): New function.
1159         * targhooks.h (default_preferred_output_reload_class): Declare.
1160         * reload.c (find_dummy_reload): Change rclass argument type from
1161         enum reg_class to reg_class_t. Change this_alternative array type
1162         from enum reg_class to reg_class_t.
1163         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1164         (push_reload): Change preferred_class variable type to reg_class_t.
1165         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1166         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
1167         argument type from enum reg_class to reg_class_t. Use
1168         HARD_REGISTER_NUM_P predicate.
1169         * recog.h (reg_fits_class_p): Update prototype.
1170
1171         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1172         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
1173         Remove.
1174         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
1175         static. Change regclass argument and result types from enum reg_class
1176         to reg_class_t.
1177         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1178
1179 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
1180
1181         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
1182         visibility enum, and handle @package.
1183
1184 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1185
1186         * doc/objc.texi (What you can and what you cannot do in +load):
1187         Document that sending messages to constant string objects in +load
1188         is not guaranteed to work.
1189
1190 2010-10-16  Jan Hubicka  <jh@suse.cz>
1191
1192         PR middle-end/44206
1193         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
1194         existence of refrences before removing the function.
1195
1196 2010-10-16  Jan Hubicka  <jh@suse.cz>
1197
1198         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
1199         only_called_at_startup and only_called_at_exit.
1200         (cgraph_propagate_frequency): Compute only_called_at_startup and
1201         only_called_at_exit.
1202         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
1203         only_called_at_exit.
1204         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
1205         flags.
1206         * predict.c (compute_function_frequency): Initialize the new flags.
1207
1208 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
1209
1210         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
1211         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
1212         on the bounds of its domain.
1213         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
1214
1215 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
1216
1217         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
1218         * config/avr/avr-protos.h (preferred_reload_class): Remove.
1219         * config/avr/avr.c (preferred_reload_class): Remove.
1220         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
1221         * config/pa/pa.c (emit_move_sequence): Update comment
1222         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
1223         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
1224         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
1225         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
1226         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
1227         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
1228         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
1229         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
1230         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
1231         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
1232         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
1233         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
1234         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
1235
1236 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
1237
1238         * opts.c (set_fast_math_flags,
1239         set_unsafe_math_optimizations_flags): Make static.
1240         * toplev.h (set_fast_math_flags,
1241         set_unsafe_math_optimizations_flags): Remove prototypes.
1242
1243 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
1244
1245         * config/arm/arm.c (arm_option_optimization): Set
1246         flag_section_anchors to 1 not 2.
1247         * config/i386/i386.c (ix86_option_override_internal): Check
1248         global_options_set.x_flag_zee and
1249         global_options_set.x_flag_omit_frame_pointer.
1250         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
1251         flag_zee to 2.
1252         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
1253         global_options_set.x_flag_omit_frame_pointer.
1254         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
1255         opts->x_flag_section_anchors to 1 not 2.
1256         * config/sh/sh.c (sh_option_optimization): Don't set
1257         flag_schedule_insns to 2.
1258         (sh_option_override): Check
1259         global_options_set.x_flag_schedule_insns.
1260         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
1261
1262 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
1263
1264         * configure.ac: Make sure inhibit_libc remains false for mingw targets
1265         as cross.
1266         * configure: Regenerated.
1267
1268 2010-10-15  Xinliang David Li  <davidxl@google.com>
1269
1270         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
1271         function.
1272         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
1273         into a recursive function.
1274
1275 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
1276
1277         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
1278         (*movdfcc_1): ditto.
1279
1280 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1281
1282         * target.def (target_option.init_struct): New hook.
1283         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
1284         * doc/tm.texi: Regenerate.
1285         * hooks.c (hook_void_gcc_optionsp): New.
1286         * hooks.h (hook_void_gcc_optionsp): Declare.
1287         * langhooks-def.h (lhd_init_options_struct): Remove.
1288         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
1289         * langhooks.c (lhd_init_options_struct): Remove.
1290         * opts.c (init_options_struct): Also call
1291         targetm.target_option.init_struct.
1292         * config/i386/i386.c (ix86_option_init_struct,
1293         TARGET_OPTION_INIT_STRUCT): New.
1294         (ix86_option_optimization): Move some settings to
1295         ix86_option_init_struct.
1296         * config/pdp11/pdp11.c (pdp11_option_init_struct,
1297         TARGET_OPTION_INIT_STRUCT): New.
1298         (pdp11_option_optimization): Move some settings to
1299         pdp11_option_init_struct.
1300         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
1301         rs6000_option_init_struct.  Use options structure pointer.
1302         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
1303         * config/s390/s390.c (s390_option_init_struct,
1304         TARGET_OPTION_INIT_STRUCT): New.
1305         (s390_option_optimization): Don't set
1306         flag_asynchronous_unwind_tables here.
1307         * config/sh/sh.c (sh_option_init_struct,
1308         TARGET_OPTION_INIT_STRUCT): New.
1309         (sh_option_optimization): Don't set flag_finite_math_only here.
1310         * config/spu/spu.c (spu_option_optimization): Replace by
1311         spu_option_optimization.  Use options structure pointer.
1312         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
1313
1314 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1315
1316         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
1317
1318         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
1319         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
1320         (Standard names): Document fma.
1321
1322         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
1323         __FP_FAST_FMAF, __FP_FAST_FMAL.
1324
1325         * builitns.c (expand_builtin_mathfn_ternary): New function for
1326         expanding ternary math functions, like fma.
1327         (expand_builtin): Call it for the fma builtins.
1328
1329         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
1330         ops at present.
1331
1332         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
1333         vectorizable functions to support vectorizing fma.
1334
1335         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
1336         Handle fma builtins.
1337
1338         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
1339         (UNSPEC_VSX_MSUB): Ditto.
1340         (UNSPEC_VSX_NMADD): Ditto.
1341         (UNSPEC_VSX_NMSUB): Ditto.
1342         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
1343         of UNSPEC. Renumber combiner patterns.
1344         (vsx_fmsub<mode>4*): Ditto.
1345         (vsx_fnmadd<mode>4*): Ditto.
1346         (vsx_fnmsub<mode>4*): Ditto.
1347
1348         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
1349         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
1350         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
1351         (altivec_vmaddfp_1): Ditto.
1352         (altivec_vmaddfp_2): Ditto.
1353         (atlivec_mulv4sf3): Ditto.
1354         (altivec_vnmsubfp): Ditto.
1355         (altivec_vnmsubfp_1): Ditto.
1356         (altivec_vnmsubfp_2): Ditto.
1357         (altivec_vnmsubfp_3): Delete.
1358
1359         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
1360         (fmasf4_fpr): Ditto.
1361         (fmssf4_fpr): Ditto.
1362         (fnmasf4_fpr): Ditto.
1363         (fnmssf4_fpr): Ditto.
1364         (fmadf4): Ditto.
1365         (fmadf4_fpr): Ditto.
1366         (fmsdf4_fpr): Ditto.
1367         (fnmadf4_fpr): Ditto.
1368         (fnmsdf4_fpr): Ditto.
1369
1370         * optabs.h (OTI_fma): Add fma optab.
1371         (fma_optab): Ditto.
1372
1373         * genopinit.c (optabs): Set fma optab.
1374
1375         * rtl.def (FMA): Add FMA rtl.
1376
1377         * tree.h (mode_has_fma): New function to return if MODE supports a
1378         fast multiply and add instruction.
1379         * builtins.c (mode_has_fma): Ditto.
1380
1381 2010-10-15  Jan Hubicka  <jh@suse.cz>
1382
1383         * lto-streamer-out.c (write_symbol): Use pointer set of seen
1384         objects instead of bitmap.
1385         (produce_symtab): Likewise; output defined symbols first.
1386
1387 2010-10-15  Jie Zhang  <jie@codesourcery.com>
1388
1389         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
1390         Option Summary and Index.
1391
1392 2010-10-15  Richard Guenther  <rguenther@suse.de>
1393
1394         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
1395         for automatic variables again.
1396
1397 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1398
1399         * doc/extend.texi (Variable Length): Don't refer to VLAs not
1400         conforming to C99.
1401
1402 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1403
1404         * config/rx/rx.c (rx_option_optimization): Change to
1405         rx_override_options_after_change.  Don't change
1406         flag_lto_compression_level.  Don't check for changes to whether
1407         FPU instructions can be used.  Check and set only
1408         flag_finite_math_only, not other fast-math flags.
1409         (rx_option_override): Call rx_override_options_after_change.
1410         (TARGET_OPTION_OPTIMIZATION): Remove.
1411         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1412
1413 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1414
1415         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
1416         disable section anchors for lang_hooks.name[4] != 'O'.
1417
1418 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1419
1420         * config/frv/frv.c (frv_option_optimization,
1421         TARGET_OPTION_OPTIMIZATION): Remove.
1422         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
1423
1424 2010-10-15  Michael Matz  <matz@suse.de>
1425
1426         * cgraphunit.c (clone_of_p): Define unconditionally.
1427
1428 2010-10-15  Richard Guenther  <rguenther@suse.de>
1429
1430         PR lto/45957
1431         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
1432
1433 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
1434
1435         * ifcvt.c (find_active_insn_before): New function.
1436         (find_active_insn_after): New function.
1437         (cond_exec_process_if_block): Use new functions to replace
1438         prev_active_insn() and next_active_insn().
1439
1440 2010-10-14  Yao Qi  <yao@codesourcery.com>
1441
1442         PR target/45447
1443         * config/arm/arm.c (arm_build_builtin_va_list): Assign
1444         va_list_name to TYPE_STUB_DECL (va_list_type).
1445
1446 2010-10-14  Jan Hubicka  <jh@suse.cz>
1447
1448         PR middle-end/45621
1449         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
1450         redirected to clone, be happy.
1451         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
1452         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
1453         former_clone_of unconditionally.
1454
1455 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
1456
1457         Merge from FSF apple 'trunk' branch.
1458         2006 Fariborz Jahanian <fjahanian@apple.com>
1459
1460         Radars 4436866, 4505126, 4506903, 4517826
1461         * c-parser.c (c_parser, objc_property_attr_context) New flag.
1462         (c_lex_one_token): Handle property attributes.
1463         (c_parser_external_declaration): Handle @property.
1464         (c_parser_declaration_or_fndef): Warn on invalid attributes before
1465         @alias, @class, @end and @property objc keywords.
1466         (c_parser_objc_methodprotolist): Handle @property.
1467         (c_parser_objc_property_attrlist): New.
1468         (c_parser_objc_at_property): New.
1469         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
1470         (build_modify_expr): Likewise.
1471
1472 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
1473
1474         PR tree-optimization/46008
1475         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
1476
1477 2010-10-14  Richard Guenther  <rguenther@suse.de>
1478
1479         PR tree-optimization/44913
1480         * tree-data-ref.c (disjoint_objects_p): Remove.
1481         (dr_may_alias_p): Simplify.  Only hand the base object to
1482         the alias-oracle.
1483         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1484         some more trees, bail out instead of asserting.
1485         (ptr_derefs_may_alias_p): Likewise.  Export.
1486         (refs_may_alias_p_1): Handle STRING_CSTs.
1487         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
1488
1489 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
1490
1491         PR c/45969
1492         * c-typeck.c (build_binary_op): Don't try to compute a semantic
1493         type with excess precision for boolean operations.
1494
1495 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1496             Basile Starynkevitch  <basile@starynkevitch.net>
1497
1498         * gengtype.c:  Include getopt.h and version.h.
1499
1500         (lang_bitmap, struct outf, outf_p)
1501         (get_output_file_with_visibility, oprintf): Definitions moved to
1502         gengtype.h
1503         (output_files, header_file, srcdir, srcdir_len, this_file)
1504         (do_dump): No more static variables.
1505         (do_debug): New.
1506         (dbgprint_count_type_at): Added new function.
1507         (gengtype_long_options): New.
1508         (print_usage, print_version, parse_program_options): New.
1509         (main): Call parse_program_options, and removed old option
1510         handling code.  Added some debug output.
1511
1512         * gengtype.h:  Updated copyright year.
1513         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
1514         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
1515         Moved from gengtype.c to here.
1516         (do_debug, read_state_filename, write_state_filename): New variables.
1517         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
1518
1519         * Makefile.in:
1520         (REVISION): Always defined.
1521         (version.o): Removed ifdef REVISION_c.
1522         (s-gtype): Pass arguments to build/gengtype program.
1523         (build/version.o): Added building rule.
1524         (build/gengtype$(build_exeext)): Added build/version.o.
1525
1526 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
1527
1528         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
1529         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
1530         __strong macros.
1531
1532 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
1533
1534         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
1535         may_trap_or_fault_p instead of may_trap_p predicate.
1536         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
1537         (substitute_placeholder_in_expr): Likewise.
1538         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
1539         flag on MEM_REF nodes.
1540         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
1541         flags on INDIRECT_REF nodes.
1542
1543 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
1544
1545         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
1546         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
1547         (arm*-*-eabi*) <tm_file>: Likewise.
1548         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
1549         (frv-*-*linux*) <tm_file>: Likewise.
1550         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
1551         and associated helper macros.
1552         * config/frv/frv-abi.h: Delete.
1553
1554 2010-10-14  Richard Guenther  <rguenther@suse.de>
1555
1556         PR lto/44561
1557         * tree.def (NULLPTR_TYPE): New tree code.
1558         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
1559         * dwarf2out.c (is_base_type): Likewise.
1560         (gen_type_die_with_usage): Likewise.
1561         * sdbout.c (plain_type_1): Likewise.
1562         * tree.c (build_int_cst_wide): Likewise.
1563         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
1564
1565 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
1566
1567         * params.c (params_finished): New.
1568         (add_params): Assert !params_finished.
1569         (finish_params): New.
1570         (set_param_value_internal): Take params and params_set
1571         parameters.  Assert params_finished.
1572         (set_param_value, maybe_set_param_value): Take params and
1573         params_set parameters.  Update calls to set_param_value_internal.
1574         (set_default_param_value): Assert !params_finished.  Don't use
1575         set_param_value_internal.
1576         (default_param_value, init_param_values): New.
1577         * params.h (struct param_info): Change value to default_value.
1578         Remove set.
1579         (set_param_value, maybe_set_param_value): Add params and
1580         params_set parameters.
1581         (PARAM_VALUE): Get parameters from global_options.
1582         (PARAM_SET_P): Remove.
1583         (finish_params, default_param_value, init_param_values): New.
1584         * common.opt (param_values): New Variable.
1585         * config/arm/arm.c (arm_option_override): Pass extra arguments to
1586         maybe_set_param_value.
1587         * config/i386/i386.c (ix86_option_override_internal): Pass extra
1588         arguments to maybe_set_param_value.
1589         * config/picochip/picochip.c (picochip_option_override): Pass
1590         extra arguments to maybe_set_param_value.
1591         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
1592         extra arguments to maybe_set_param_value.
1593         * config/s390/s390.c (s390_option_override): Use
1594         maybe_set_param_value instead of set_param_value.  Pass extra
1595         arguments to maybe_set_param_value.
1596         * config/sparc/sparc.c (sparc_option_override): Pass extra
1597         arguments to maybe_set_param_value.
1598         * config/spu/spu.c (spu_option_override): Pass extra arguments to
1599         maybe_set_param_value.
1600         * opts.c (handle_param): Take opts and opts_set parameters.
1601         Update call to set_param_value.
1602         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
1603         initial_loop_invariant_max_bbs_in_loop): Remove.
1604         (init_options_once): Don't set them.
1605         (init_options_struct): Initialize parameters structures.
1606         (default_options_optimization): Use default_param_value when
1607         restoring defaults.  Update calls to maybe_set_param_value.
1608         (finish_options): Update calls to maybe_set_param_value.
1609         (common_handle_option): Update calls to handle_param and
1610         set_param_value.
1611         * toplev.c (DEFPARAM): Update definition for changes to param_info.
1612         (general_init): Call finish_params.
1613
1614 2010-10-14  Nick Clifton  <nickc@redhat.com>
1615
1616         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
1617         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
1618         (FIRST_PSEUDO_REGISTER): Increase by one.
1619         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
1620         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
1621         (MODES_TIEABLE): Call mn10300_modes_tieable.
1622         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
1623         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
1624         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
1625         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
1626         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
1627         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
1628         (mn10300_cc_status_mdep): Delete.
1629         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
1630         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
1631         the combine-stack-adjust pass.
1632         (print_operand): Use the mode of the comparison operation to
1633         select the comparison suffix.
1634         (notice_update_cc): Delete.
1635         (mn10300_secondary_reload_class): Remove test for stack pointer
1636         based arithmetic.
1637         (output_tst): Rename to mn10300_output_cmp.
1638         (impossible_plus_operand): Move into predicates.md.
1639         (mn10300_legitimize_address): Make static.
1640         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
1641         constant pic operands.
1642         (mn10300_legitimate_constant_p): New function.
1643         (mn10300_case_values_threshold): Make static.
1644         (mn10300_hard_regno_mode_ok): New function.
1645         (mn10300_modes_tieable): New function.
1646         (mn10300_select_cc_mode): New function.
1647         * config/mn10300/predicates.md (impossible_plus_operand): Define.
1648         * config/mn10300/mn10300-protos.h: Tidy.
1649         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
1650         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
1651         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
1652         with clobbers or sets of CC_REG.
1653         (CC_REG): Define.
1654         (mov*): Remove use of CLR instruction.
1655         (cbranch_si4_<code>): New pattern/split.
1656         (integer_conditional_branch): New pattern.
1657         (cbranch_sf4_<code>): New pattern/split.
1658         (float_conditional_branch): New pattern.
1659         (casesi): Use addsi3 pattern instead of movsi pattern to add and
1660         move a value at the same time.
1661         (cc0 peepholes): Remove.
1662
1663 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
1664
1665         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
1666         on RTX_FRAME_RELATED_P insns and the insn to which
1667         NOTE_INSN_EPILOGUE_BEG is attached.
1668         * sched-vis.c (print_value): Allow NULL value.
1669
1670 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
1671
1672         PR rtl-optimization/45570
1673         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
1674         assert that we are pipelining outer loops.  Allow returning
1675         zero predecessors.
1676
1677 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
1678
1679         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
1680         (tidy_control_flow): Tidy vertical space.
1681         (sel_remove_bb): New variable idx.  Use it to remember the basic
1682         block index before deleting the block.
1683         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
1684         (sel_merge_blocks): ... here.
1685         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
1686
1687 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
1688
1689         * cse.c (is_dead_reg): Change into inline function that is not
1690         called through for_each_rtx.
1691         (set_live_p): Adjust caller.
1692         (insn_live_p): Don't reset DEBUG_INSNs here.
1693         (struct dead_debug_insn_data): New data.
1694         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
1695         (delete_trivially_dead_insns): If there is just one setter for the
1696         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
1697         and add DEBUG_INSN for it right before the removed setter and
1698         use the DEBUG_EXPR instead of the dead pseudo.
1699
1700 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
1701
1702         * et-forest.c (et_nca): Return NULL immediately when
1703         the dominance forest has disjoint components.
1704
1705 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
1706
1707         * ira.c (setup_class_hard_regs): Fix typo in indexing
1708         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
1709
1710 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
1711
1712         * graph.c (inbb): New variable.
1713         (start_bb): Set inbb to 1 if output is inside of a building block.
1714         (end_bb): Check if output is inside of a building block.
1715
1716 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
1717
1718         PR rtl-optimization/45912
1719         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
1720         regno of registers instead of their index to compute the alignment.
1721
1722 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
1723
1724         * config/i386/i386.c (ix86_build_const_vector): Check vector
1725         mode instead of scalar mode.
1726         (ix86_build_signbit_mask): Likewise.
1727         (ix86_expand_fp_absneg_operator): Updated.
1728         (ix86_expand_copysign): Likewise.
1729         (ix86_expand_int_vcond): Likewise.
1730         (ix86_emit_swdivsf): Likewise.
1731         (ix86_sse_copysign_to_positive): Likewise.
1732         (ix86_expand_sse_fabs): Likewise.
1733         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
1734         * config/i386/sse.md (copysign<mode>3): Likewise.
1735         (sse2_cvtudq2ps): Likewise.
1736         (vec_unpacku_float_hi_v4si): Likewise.
1737         (vec_unpacku_float_lo_v4si): Likewise.
1738
1739         * config/i386/i386.c (ix86_builtins): Add
1740         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
1741         (bdesc_args): Likewise.
1742         (ix86_builtin_vectorized_function): Support
1743         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
1744         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
1745         and IX86_BUILTIN_CVTPS2DQ256.
1746         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
1747
1748         * config/i386/sse.md (STORENT_MODE): New.
1749         (VEC_FLOAT_MODE): Likewise.
1750         (VEC_EXTRACT_MODE): Likewise.
1751         (*avx_cvtdq2pd256_2): Likewise.
1752         (vec_pack_trunc_v4df): Likewise.
1753         (vec_interleave_highv8sf): Likewise.
1754         (vec_interleave_lowv8sf): Likewise.
1755         (storent<mode>): Macroized.
1756         (<code><mode>2: absneg): Likewise.
1757         (copysign<mode>3): Likewise.
1758         (vec_extract<mode>): Likewise.
1759
1760         PR target/44180
1761         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
1762         for V8SFmode.
1763
1764 2010-10-13  Richard Guenther  <rguenther@suse.de>
1765             H.J. Lu  <hongjiu.lu@intel.com>
1766
1767         * config/i386/sse.md (reduc_splus_v8sf): Add.
1768         (reduc_splus_v4df): Likewise.
1769         (vec_unpacks_hi_v8sf): Likewise.
1770         (vec_unpacks_lo_v8sf): Likewise.
1771         (*avx_cvtps2pd256_2): Likewise.
1772         (vec_unpacks_float_hi_v8si): Likewise.
1773         (vec_unpacks_float_lo_v8si): Likewise.
1774         (vec_interleave_highv4df): Likewise.
1775         (vec_interleave_lowv4df): Likewise.
1776
1777 2010-10-13  Richard Guenther  <rguenther@suse.de>
1778
1779         PR objc/45878
1780         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
1781         alone if there are no virtual methods.
1782
1783 2010-10-13  Richard Henderson  <rth@redhat.com>
1784
1785         * expr.c (build_personality_function): Take parameter LANG instead
1786         of parameter NAME.  Build the name based on the lang prefix and the
1787         unwind method in use.
1788         * tree.c (lhd_gcc_personality): Update call to
1789         build_personality_function.
1790
1791 2010-10-13  Richard Guenther  <rguenther@suse.de>
1792
1793         PR objc/45878
1794         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
1795
1796 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
1797
1798         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
1799         Canonicalize input operands of ASM_OPERANDS insns.
1800
1801 2010-10-13  Richard Guenther  <rguenther@suse.de>
1802
1803         PR tree-optimization/45788
1804         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
1805         EH update until fixup-cfg.
1806
1807 2010-10-13  Julian Brown  <julian@codesourcery.com>
1808
1809         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
1810         from CORE_REGS and GENERAL_REGS classes.
1811         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
1812         final constraint for register preferencing.
1813
1814 2010-10-13  Richard Guenther  <rguenther@suse.de>
1815
1816         PR tree-optimization/45970
1817         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
1818         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
1819         (stmt_kills_ref_p): Likewise.
1820         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
1821
1822 2010-10-13  Richard Guenther  <rguenther@suse.de>
1823
1824         PR tree-optimization/45982
1825         * tree-ssa-structalias.c (make_constraints_to): New function.
1826         (make_constraint_to): Implement in terms of make_constraints_to.
1827         (find_func_aliases): Properly make return values of pure/const
1828         functions escape if they assign to sth that is not a pointer.
1829
1830 2010-10-13  Richard Guenther  <rguenther@suse.de>
1831
1832         PR middle-end/45874
1833         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
1834         Fixup the CFG when EH was fixed up.
1835
1836 2010-10-13  Ira Rosen  <irar@il.ibm.com>
1837
1838         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
1839         Use operand's type for POINTER_PLUS_EXPR.
1840
1841 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
1842
1843         * c-parser.c (c_parser_for_statement): Initialize incr.
1844
1845 2010-10-12  Xinliang David Li  <davidxl@google.com>
1846
1847         PR tree-optimization/45972
1848         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
1849         with too many arguments.
1850
1851 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
1852
1853         PR fortran/45636
1854         * tree-ssa-forwprop.c: Include expr.h.
1855         (constant_pointer_difference, simplify_builtin_call): New functions.
1856         (tree_ssa_forward_propagate_single_use_vars): Call
1857         simplify_builtin_call on builtin calls.
1858
1859 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
1860
1861         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
1862         (*adddi3_extend_sp32): Likewise.
1863         (*subdi3_insn_sp32): Likewise.
1864         (*subdi3_extend_sp32): Likewise.
1865         (*negdi2_sp32): Use negative test for consistency.
1866
1867 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
1868
1869         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
1870         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
1871         * config/fixed-bit.h: Likewise.
1872         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
1873         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
1874         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
1875         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
1876         (DF_SIZE): Likewise.
1877         * doc/tm.texi: Regenerate.
1878
1879 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
1880
1881         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
1882         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
1883         (*isel_reversed_unsigned_<mode>): New.
1884         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
1885         as valid comparisons and adjust operands and output appropriately.
1886         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
1887
1888 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
1889
1890         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
1891         DATA_ALIGNMENT and add COND parameter. Update comments above.
1892         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
1893         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
1894
1895 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
1896
1897         PR bootstrap/45958
1898         * exec-tool.in: Support '-plugin' as the second option to the linker.
1899
1900 2010-10-12  Richard Henderson  <rth@redhat.com>
1901
1902         PR middle-end/45962
1903         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
1904         (expand_stack_vars): Assert large base allocated when used.
1905
1906 2010-10-12  Richard Guenther  <rguenther@suse.de>
1907
1908         * tree-ssa-structalias.c (get_constraint_for_1): Constants
1909         only point to nonlocal, not anything.
1910
1911 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
1912
1913         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
1914         unwind info for exceptions.
1915
1916 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1917
1918         PR testsuite/45851
1919         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
1920         Document optional target selector.
1921
1922 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
1923
1924         * flag-types.h: New.
1925         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
1926         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
1927         options.h.
1928         (OPTIONS_H): Define.
1929         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
1930         of options.h.
1931         * configure.ac (tm_include_list): Include options.h not flags.h.
1932         * configure: Regenerate.
1933         * flags.h: Include flag-types.h.  Include options.h at top of file
1934         again.
1935         (enum debug_info_type, enum debug_info_level, enum
1936         debug_info_usage, enum symbol_visibility, struct visibility_flags,
1937         enum ira_algorithm, enum ira_region, enum excess_precision, enum
1938         graph_dump_types, enum stack_check_type,
1939         enum warn_strict_overflow_code): Move to flag-types.h
1940         * opth-gen.awk: Include flag-types.h in options.h.
1941
1942 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
1943
1944         * expr.c (store_expr): Share code for STRING_CST and
1945         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
1946         check if target is a MEM.
1947
1948         * rtl.h: Include hashtab.h.
1949         (iterative_hash_rtx): New prototype.
1950         * rtl.c (iterative_hash_rtx): New function.
1951         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
1952         (output_loc_list): Return immediately if emitted is set, set it.
1953         (hash_loc_operands, hash_locs, hash_loc_list,
1954         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
1955         optimize_location_lists_1, optimize_location_lists): New function.
1956         (dwarf2out_finish): Call optimize_location_lists.
1957         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
1958
1959 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1960
1961         PR testsuite/45974
1962         Revert:
1963         * Makefile.in ($(lang_checks_parallel))
1964         ($(lang_checks_parallelized)): Use single quotes for
1965         $(RUNTESTFLAGS), to allow passing quoted content.
1966
1967 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1968
1969         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
1970         actual_oldval.  Use __builtin_expect.
1971         (SUBWORD_VAL_CAS): Likewise.
1972
1973 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
1974
1975         * recog.c (nonmemory_operand): Call immediate_operand for
1976         CONSTANT_P operands.
1977
1978 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
1979
1980         * config/i386/i386.md (movmem<mode>): Macroize expander from
1981         movmem{si,di} using SWI48 mode iterator.
1982         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
1983         *strmovsi_rex_1 using P mode iterator.
1984         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
1985         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
1986         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
1987         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
1988         (setmem<mode>): Macroize expander from setmem{si,di} using
1989         SWI48 mode iterator.
1990         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
1991         *strsetsi_rex_1 using P mode iterator.
1992         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
1993         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
1994         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
1995         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
1996         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
1997         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
1998         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
1999         mode iterator.
2000         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
2001         *strlenqi_rex_1 using P mode iterator.
2002
2003 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
2004
2005         PR bootstrap/45445
2006         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
2007         static functions.
2008         (mark_ref_live, mark_ref_dead): Use them.
2009         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
2010         Save the original reg, and use the new functions.
2011         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
2012         changed.
2013         (check_and_make_def_conflict): Save the original reg.
2014
2015 2010-10-11  Martin Jambor  <mjambor@suse.cz>
2016
2017         PR middle-end/45699
2018         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
2019         thunks.
2020
2021 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2022
2023         * Makefile.in ($(lang_checks_parallel))
2024         ($(lang_checks_parallelized)): Use single quotes for
2025         $(RUNTESTFLAGS), to allow passing quoted content.
2026
2027         PR bootstrap/35855
2028         * opt-functions.awk (BEGIN): New section.
2029         (lower, upper, digit, alnum): New variables.
2030         (static_var, opt_sanitized_name): Use alnum instead of character
2031         classes, for non-C locale.
2032         * optc-gen.awk: Likewise.
2033         * opth-gen.awk: Likewise.
2034
2035 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
2036
2037         * target.def (preferred_reload_class): New hook.
2038         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
2039         * doc/tm.texi: Regenerate.
2040         * targhooks.c (default_preferred_reload_class): New function.
2041         * targhooks.h (default_preferred_reload_class): Declare.
2042         * reload.c (find_dummy_reload): Change preferred_class variable type
2043         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
2044         target hook.
2045         (find_reloads): Change goal_alternative array type from int to
2046         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
2047         (push_reload, find_reloads_address_part): Use
2048         TARGET_PREFERRED_RELOAD_CLASS target hook.
2049         * reload1.c (emit_input_reload_insns): Ditto.
2050         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
2051         hook. Change rclass argument and secondary_class variable types from
2052         'enum reg_class' to reg_class_t.
2053
2054         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
2055         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
2056         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
2057         Change regclass argument and result types from enum reg_class to
2058         reg_class_t.
2059         (TARGET_PREFERRED_RELOAD_CLASS): Define.
2060
2061 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
2062
2063         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
2064         in masking operations.
2065         (simplify_const_unary_operation): Likewise.
2066         (simplify_binary_operation_1): Likewise.
2067         (simplify_const_binary_operation): Likewise.
2068         (simplify_const_relational_operation): Likewise.
2069         (simplify_ternary_operation): Likewise.
2070         (simplify_immed_subreg): Likewise.
2071
2072 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2073
2074         PR middle-end/45862
2075         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
2076         (TARGET_SUPPORTS_WEAK): New.
2077         * doc/tm.texi: Regenerate.
2078         * defaults.h (SUPPORTS_WEAK): Update comment.
2079         (TARGET_SUPPORTS_WEAK): New.
2080         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
2081         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
2082         SUPPORTS_WEAK.
2083         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
2084         make_decl_one_only): Likewise.
2085         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
2086         TARGET_SUPPORTS_WEAK.
2087         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
2088         instead of SUPPORTS_WEAK.
2089
2090 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2091
2092         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
2093
2094 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
2095
2096         * vec.h (VEC_qsort): Define.
2097         * dbxout.c (output_used_types): Use it.
2098         * df-scan.c (df_sort_and_compress_refs): Likewise.
2099         (df_sort_and_compress_mws): Likewise.
2100         * genautomata.c (uniq_sort_alt_states): Likewise.
2101         (evaluate_equiv_classes): Likewise.
2102         (output_trans_table): Likewise.
2103         (output_state): Likewise.
2104         * gimplify.c (compare_case_labels): Likewise.
2105         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
2106         * ipa.c (build_cdtor_fns): Likewise.
2107         * lto.c (lto_wpa_write_files): Likewise.
2108         * sel-sched.c (fill_vec_av_set): Likewise.
2109         * tree-predcom.c (determine_roots_comp): Likewise.
2110         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
2111         (splice_param_accesses): Likewise.
2112         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
2113         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
2114         (reassociate_bb): Likewise.
2115         * tree-ssa-sccvn.c (sort_scc): Likewise.
2116         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
2117
2118 2010-10-11  Ian Lance Taylor  <iant@google.com>
2119
2120         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
2121         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
2122         TREE_THIS_NOTRAP when appropriate.
2123         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
2124         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
2125         newly created MEM_REF.
2126
2127 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
2128
2129         Nathan Froyds patch to hooks FUNCTION_ARG etc.
2130         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
2131         (picochip_incoming_function_arg): Delete.
2132         (picochip_arg_advance): Delete.
2133         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
2134         (FUNCTION_INCOMING_ARG): Delete.
2135         (FUNCTION_ARG_ADVANCE): Delete.
2136         * config/picochip/picochip.c (picochip_function_arg): Take a
2137         const_tree and a bool.
2138         (picochip_incoming_function_arg): Likewise.
2139         (picochip_arg_advance): Likewise.
2140         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2141         (TARGET_FUNCTION_ARG_ADVANCE): Define.
2142
2143 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2144
2145         PR middle-end/45955
2146         * ipa.c (build_cdtor): Delete endless loop.
2147
2148 2010-10-07  Andi Kleen  <ak@linux.intel.com>
2149
2150         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
2151         checksum-options.
2152         (checksum-options): Add.
2153         (cc1-dummy): Remove.
2154         (cc1-checksum): Change to run checksum over object files
2155         and options only.
2156         * dummy-checksum.c: Remove.
2157         * genchecksum.c: Update copyright.
2158         (usage): Allow multiple arguments.
2159         (BLOCKSIZE): Add.
2160         (dosum): Change for incremental checksum. Remove C output.
2161         (main): Iterate over all argument files. Add C output.
2162
2163 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
2164
2165         * params.c (set_param_value_internal): New.
2166         (set_param_value): Use set_param_value_internal.
2167         (maybe_set_param_value, set_default_param_value): New.
2168         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
2169         (maybe_set_param_value, set_default_param_value): Declare.
2170         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
2171         * config/i386/i386.c (ix86_option_override_internal): Use
2172         maybe_set_param_value.
2173         * config/ia64/ia64.c (ia64_option_default_params,
2174         TARGET_OPTION_DEFAULT_PARAMS): New.
2175         (ia64_option_optimization): Move some code to
2176         ia64_option_default_params.
2177         * config/picochip/picochip.c (picochip_option_override): Use
2178         maybe_set_param_value.
2179         * config/rs6000/rs6000.c (rs6000_option_default_params,
2180         TARGET_OPTION_DEFAULT_PARAMS): New.
2181         (rs6000_option_override_internal): Use maybe_set_param_value.
2182         (rs6000_option_optimization): Move some code to
2183         rs6000_option_default_params.
2184         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
2185         * config/sh/sh.c (sh_option_default_params,
2186         TARGET_OPTION_DEFAULT_PARAMS): New.
2187         (sh_option_optimization): Move some code to sh_option_default_params.
2188         * config/sparc/sparc.c (sparc_option_override): Use
2189         maybe_set_param_value.
2190         * config/spu/spu.c (spu_option_default_params,
2191         TARGET_OPTION_DEFAULT_PARAMS): New.
2192         (spu_option_optimization): Move some code to spu_option_default_params.
2193         (spu_option_override): Use maybe_set_param_value.
2194         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
2195         * doc/tm.texi: Regenerate.
2196         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
2197         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
2198         compiler_params.
2199         (default_options_optimization): Use maybe_set_param_value.
2200         (finish_options): Use maybe_set_param_value.
2201         * target.def (target_option.default_params): New hook.
2202         * toplev.c (general_init): Call targetm.target_option.default_params.
2203
2204 2010-10-11  Ira Rosen  <irar@il.ibm.com>
2205
2206         PR tree-optimization/45902
2207         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
2208         vector type for constants, unless it's a pointer.
2209
2210 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2211
2212         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
2213
2214 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
2215
2216         PR target/45870
2217         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
2218         (ix86_delegitimize_address): Use it.
2219
2220 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
2221
2222         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
2223
2224 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
2225
2226         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
2227         to cum struct in the call to function_arg_advance.
2228         (alpha_function_arg_advance): Mark named as unused.
2229
2230 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
2231
2232         * config/mips/mips.c (mips_handle_option): Make "value" with
2233         ATTRIBUTE_UNUSED.
2234
2235 2010-10-09  Richard Henderson  <rth@redhat.com>
2236
2237         PR rtl-opt/33721
2238         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
2239         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
2240         required_align, tidy the code a bit.  Emit split_stack code in the
2241         right place.  Mark the return value with the alignment properly.
2242         * expr.h (allocate_dynamic_stack_space): Update decl.
2243         * builtins.c (expand_builtin_apply): Update call to
2244         allocate_dynamic_stack_space.
2245         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
2246         * calls.c (initialize_argument_information): Update call to
2247         allocate_dynamic_stack_space.
2248         (expand_call): Likewise.
2249
2250         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
2251         Don't update_stack_alignment here.
2252         (alloc_stack_frame_space): Make ALIGN unsigned.
2253         (stack_var_cmp): Sort by alignment too.
2254         (partition_stack_vars): Don't merge large and small alignment vars.
2255         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
2256         Take care when BASE is not virtual_stack_vars_rtx.
2257         (expand_stack_vars): Allocate dynamic stack space for large
2258         alignment variables.
2259         (expand_one_stack_var): Update all to expand_one_stack_var_at.
2260         (defer_stack_allocation): True for large alignment vars.
2261         (update_stack_alignment): Merge into ...
2262         (expand_one_var): ... here.
2263         (gimple_expand_cfg): Place code from expand_stack_vars.
2264
2265 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2266
2267         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2268         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
2269         (pdp11_function_arg_advance): New function.
2270         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2271
2272 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2273
2274         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
2275         * libgcc2.c: Likewise.
2276
2277 2010-10-09  Richard Guenther  <rguenther@suse.de>
2278
2279         PR lto/45956
2280         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
2281         Properly check if a decl is an automatic var.
2282
2283 2010-10-09  Richard Guenther  <rguenther@suse.de>
2284
2285         PR lto/45947
2286         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
2287
2288 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2289
2290         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
2291         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2292         * config/mmix/mmix.c (mmix_function_arg): Rename to...
2293         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
2294         bool arguments.
2295         (mmix_function_arg): New function.
2296         (mmix_function_incoming_arg): New function.
2297         (mmix_function_arg_advance): New function.
2298         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2299         (TARGET_FUNCTION_ARG_ADVANCE): Define.
2300
2301 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2302
2303         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2304         * config/vax/vax.c (vax_function_arg): New function.
2305         (vax_function_arg_advance): New function.
2306         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2307
2308 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2309
2310         * config/pa/pa-protos.h (function_arg): Delete.
2311         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2312         * config/pa/pa.c (function_arg): Rename to...
2313         (pa_function_arg): ...this.  Make static.  Take a const_tree and
2314         a bool.
2315         (pa_function_arg_advance): New function.
2316         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2317
2318 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2319
2320         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2321         * config/m68k/m68k.c (m68k_function_arg): New function.
2322         (m68k_function_arg_advance): New function.
2323         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2324
2325 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2326
2327         * config/avr/avr-protos.h (function_arg): Delete.
2328         (function_arg_advance): Delete.
2329         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2330         * config/avr/avr.c (function_arg): Rename to...
2331         (avr_function_arg): ...this.  Make static.  Take a const_tree and
2332         a bool.
2333         (function_arg_advance): Rename to...
2334         (avr_function_arg_advance): ...this.  Make static.  Take a
2335         const_tree and a bool.
2336         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2337
2338 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2339
2340         * config/alpha/alpha-protos.h (function_arg): Delete.
2341         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2342         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
2343         * config/alpha/alpha.c (function_arg): Rename to...
2344         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
2345         a bool.  Delete TARGET_ABI_UNICOSMK code.
2346         (alpha_function_arg_advance): New function.
2347         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2348
2349 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2350
2351         * config/mep/mep-protos.h (mep_function_arg): Delete.
2352         (mep_function_arg_advance): Delete.
2353         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2354         * config/mep/mep.c (mep_function_arg): Make static.  Take a
2355         const_tree and a bool.
2356         (mep_function_arg_advance): Likewise.
2357         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2358
2359 2010-10-09  Richard Guenther  <rguenther@suse.de>
2360
2361         PR tree-optimization/45945
2362         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
2363
2364 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
2365
2366         PR tree-optimization/45612
2367         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
2368         Test LABEL_DECLs as well.  Fix formatting issues.
2369         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
2370         whose label is present in NON_SSA_VARS.
2371         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
2372         as well.  Fix formatting issues.
2373         (visit_bb): Fix typos and formatting issue.
2374
2375 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2376
2377         PR tree-optimization/45950
2378         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
2379         before initializing vno->op.
2380
2381 2010-10-09  Ralf Cors├ępius <ralf.corsepius@rtems.org>
2382
2383         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
2384         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
2385
2386 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
2387
2388         PR target/45913
2389         * config/i386/i386.c (ix86_binary_operator_ok): Support
2390         "andhi/andsi/anddi" as a zero-extending move.
2391
2392 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2393
2394         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
2395         into a temporary array.
2396
2397 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
2398
2399         PR tree-optimization/45903
2400         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
2401         of {A,L}SHIFTRT of MEM.
2402
2403 2010-10-08  Richard Guenther  <rguenther@suse.de>
2404
2405         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
2406         Re-construct BLOCK_VARS.
2407         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
2408         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
2409         * tree.c (free_lang_data_in_block): Remove.
2410         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
2411         Do not touch the BLOCK tree.
2412         * expr.c (expand_expr_real_1): Allow externals.
2413
2414 2010-10-08  Richard Guenther  <rguenther@suse.de>
2415
2416         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
2417         Do not output BLOCK_SUBBLOCKS.
2418         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
2419         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
2420         Re-construct BLOCK_SUBBLOCKS of parent block.
2421         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
2422         for BINFO_BASE_ACCESSES.
2423
2424 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
2425
2426         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
2427         (TREE_H): Include $(FLAGS_H) instead of options.h.
2428         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
2429         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
2430         * common.opt (flag_complex_method, flag_evaluation_order,
2431         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
2432         Variable declarations.
2433         * configure.ac (tm_include_list): Include flags.h instead of options.h.
2434         * configure: Regenerate.
2435         * flags.h: Condition out contents for target libraries.  Include
2436         options.h at end of file.
2437         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
2438         flag_evaluation_order, flag_warn_unused_result): Remove.
2439         * gcc.c (main): Intialize global_options with global_options_init.
2440         * langhooks-def.h (lhd_init_options_struct): Declare.
2441         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
2442         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
2443         * langhooks.c (lhd_init_options_struct): New.
2444         * langhooks.h (struct lang_hooks): Add init_options_struct.
2445         Update comment on init_options.
2446         * optc-gen.awk: Generate initializer for global_options_init, not
2447         global_options.
2448         * opth-gen.awk: Condition out structure declarations for target
2449         libraries.  Declare global_options_init.
2450         * opts-common.c: Include flags.h instead of options.h.
2451         * opts.c (flag_warn_unused_result): Remove.
2452         (read_cmdline_options): Take gcc_options parameters.  Pass them to
2453         read_cmdline_option.
2454         (initial_lang_mask, initial_min_crossjump_insns,
2455         initial_max_fields_for_field_sensitive,
2456         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
2457         (init_options_once): New.  Split out of decode_options.
2458         (init_options_struct): New.  Split out of decode_options.
2459         (decode_cmdline_options_to_array_default_mask): New.
2460         (default_options_optimization): New.  Split out of decode_options.
2461         (decode_options): Move most code to other functions.  Update call
2462         to read_cmdline_options.
2463         (finish_options): New.  Split out of decode_options.
2464         * opts.h (decode_options): Add gcc_options parameters.
2465         (init_options_once, init_options_struct,
2466         decode_cmdline_options_to_array_default_mask): New.
2467         * toplev.c (flag_complex_method, flag_ira_algorithm,
2468         flag_ira_region, flag_evaluation_order): Remove.
2469         (general_init): Use global_options_init for initial flag values
2470         for global_dc.
2471         (toplev_main): Call init_options_once, init_options_struct,
2472         lang_hooks.init_options_struct,
2473         decode_cmdline_options_to_array_default_mask and
2474         lang_hooks.init_option before decode_options.  Update arguments to
2475         decode_options.
2476         * tree.h: Include flags.h instead of options.h.
2477
2478 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2479
2480         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2481
2482 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2483
2484         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
2485         Delete.
2486         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
2487         (FUNCTION_INCOMING_ARG): Delete.
2488         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
2489         (function_arg_slotno): Likewise.  Take bool arguments.
2490         (sparc_arg_partial_bytes): Update call to it.
2491         (function_arg): Rename to...
2492         (sparc_function_arg_1): ...this.  Take bool arguments.
2493         (sparc_function_arg, sparc_function_incoming_arg): New functions.
2494         (function_arg_advance): Rename to...
2495         (sparc_function_arg_advance): ...this.  Take bool argument.
2496         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
2497         (TARGET_FUNCTION_INCOMING_ARG): Define.
2498
2499 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2500
2501         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
2502         Delete.
2503         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2504         * config/bfin/bfin.c (function_arg_advance): Rename to...
2505         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
2506         and bool arguments.
2507         (function_arg): Rename to...
2508         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
2509         arguments.
2510         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2511
2512 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2513
2514         * config/score/score-protos.h (score_function_arg): Delete.
2515         (score_function_arg_advance): Delete.
2516         * config/score/score3.h (score3_function_arg_advance): Take a
2517         const_tree and a bool.
2518         (score3_function_arg): Likewise.
2519         * config/score/score7.h (score7_function_arg_advance): Likewise.
2520         (score7_function_arg): Likewise.
2521         * config/score/score3.c (score3_classify_arg): Likewise.
2522         (score3_function_arg_advance, score3_function_arg): Likewise.
2523         * config/score/score7.c (score7_classify_arg): Likewise.
2524         (score7_function_arg_advance, score7_function_arg): Likewise.
2525         * config/score/score.c (score_function_arg_advance): Likewise.
2526         (score_function_arg): Likewise.  De-const-ify `cum' argument.
2527         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2528
2529 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2530
2531         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
2532         (s390_function_arg): Delete.
2533         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2534         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
2535         (s390_function_arg_integer): Likewise.
2536         (s390_function_arg_advance): Make static.  Take a const_tree and
2537         a bool.
2538         (s390_function_arg): Likewise.
2539         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2540
2541 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2542
2543         * config/spu/spu-protos.h (spu_function_arg): Delete.
2544         * config/spu/spu.h (FUNCTION_ARG): Delete.
2545         (FUNCTION_ARG_ADVANCE): Move code to ...
2546         * config/spu/spu.c (spu_function_arg_advance): New function.
2547         (spu_function_arg): Make static.  Take a const_tree and a bool.
2548         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
2549         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2550
2551 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2552
2553         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2554
2555 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2556
2557         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
2558         (init_vn_nary_op_from_op): New function.
2559         (init_vn_nary_op_from_stmt): New function.
2560         (vn_nary_op_lookup_1): New function.
2561         (sizeof_vn_nary_op): New function.
2562         (alloc_vn_nary_op_noinit): New function.
2563         (alloc_vn_nary_op): New function.
2564         (vn_nary_op_insert_into): New function.
2565         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
2566         (vn_nary_op_lookup): Likewise.
2567         (vn_nary_op_lookup_stmt): Likewise.
2568         (vn_nary_op_insert_pieces): Likewise.
2569         (vn_nary_op_insert): Likewise.
2570         (vn_nary_op_insert_stmt): Likewise.
2571         (copy_nary): Likewise.
2572         (set_value_id_for_result): New function.
2573         (set_hashtable_value_ids): Call it.
2574
2575 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2576
2577         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2578         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
2579
2580 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2581
2582         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
2583         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2584
2585 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
2586
2587         PR debug/45656
2588         * cse.c (cse_extended_basic_block): Preserve cc0 info across
2589         debug isnsn.  Skip them when searching for cc0 setter.
2590         (set_live_p): Skip debug insns when searching for cc0 user.
2591
2592 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
2593
2594         PR debug/45673
2595         PR debug/45604
2596         PR debug/45419
2597         PR debug/45408
2598         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
2599         type of MEM_REFs to INTEGER_CSTs.
2600
2601 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
2602
2603         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
2604         m68hc11_print_operand_address.
2605
2606 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
2607
2608         * builtins.c (rewrite_call_expr): Move code to...
2609         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
2610         (rewrite_call_expr_array): New function.
2611         (fold_builtin_sprintf_chk_1): New function.
2612         (fold_builtin_sprintf_chk): Call it.
2613         (gimple_fold_builtin_sprintf_chk): Likewise.
2614         (fold_builtin_snprintf_chk_1): New function.
2615         (fold_builtin_snprintf_chk): Call it.
2616         (gimple_fold_builtin_snprintf_chk): Likewise.
2617         (gimple_rewrite_call_expr): Delete.
2618
2619 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
2620
2621         * config.host: Update copyright year.
2622
2623 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
2624
2625         * config.host (host_lto_plugin_soname): New shell variable.
2626         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
2627         * config.in: Regenerate.
2628         * configure: Regenerate.
2629         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
2630         LTO plugin shared library.
2631
2632 2010-10-07  Richard Henderson  <rth@redhat.com>
2633
2634         * target.h (enum unwind_info_type): Move ...
2635         * coretypes.h: ... here.
2636
2637 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
2638
2639         * doc/objc.texi (Fast enumeration protocol): Mention that
2640         'unsigned int' can also be used instead of 'unsigned long' in
2641         countByEnumeratingWithState:objects:count:.
2642
2643 2010-10-07  Martin Jambor  <mjambor@suse.cz>
2644
2645         * tree-sra.c (struct access): New field grp_assignment_write.
2646         (dump_access): Dump grp_assignment_write.
2647         (build_accesses_from_assign): Set grp_assignment_write.
2648         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
2649         (mark_read_status): Renamed to mark_rw_status, individual values
2650         renamed too.
2651         (analyze_access_subtree): Changed type of mark_write to
2652         mark_read_status.  Fixed propagating of mark_read and
2653         mark_write.  Changed benefit estimate.  Updated comment.
2654
2655 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
2656
2657         PR Tree-Vect/45847
2658         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
2659         check for vectype_out returned by get_vectype_for_scalar_type().
2660
2661 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
2662
2663         PR target/45805
2664         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
2665         constraint, add register specifier in instruction template.
2666         (neon_vec_pack_trunc_<mode>): Likewise.
2667         (neon_vec_<US>mult_<mode>): Add register specifier to
2668         instruction template.
2669
2670 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
2671
2672         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
2673         cygwin2.o.
2674         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
2675         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
2676         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
2677         (cygwin2.o): Likewise.
2678         * config/i386/cygwin1.c: Delete file.
2679         * config/i386/cygwin2.c: Likewise.
2680         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
2681         make all {%!mno-cygwin} ones unconditional.
2682         (STARTFILE_SPEC): Likewise.
2683         (REAL_LIBGCC_SPEC): Likewise.
2684         (LIB_SPEC): Likewise.
2685         (CXX_WRAP_SPEC): Likewise.
2686         (LINK_SPEC): Likewise.
2687         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
2688         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
2689         (cygwin_gplusplus_include_dir): Delete now-unused array.
2690         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
2691         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
2692         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
2693         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
2694         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
2695         (cygwin_local_include_dir): Delete now-unused array.
2696         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
2697         (cygwin_cross_include_dir): Delete now-unused array.
2698         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
2699         (cygwin_tool_include_dir): Delete now-unused array.
2700         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
2701         (cygwin_standard_include_dir): Delete now-unused array.
2702         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
2703         (GEN_CVT_ARRAY): Delete now-unused macro definition.
2704         (cvt_to_mingw): Delete now-unused array.
2705         (mingw_scan): Remove prototype of deleted function.
2706         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
2707         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
2708         * doc/invoke.texi (-mcygwin): Don't document removed option.
2709         (-mno-cygwin): Likewise.
2710
2711 2010-10-07  Richard Guenther  <rguenther@suse.de>
2712
2713         * machmode.h (mode_for_vector): Declare.
2714         * stor-layout.c (mode_for_vector): New function, split out from ...
2715         (layout_type): ... here.
2716         * tree-vectorizer.h (current_vector_size): Declare.
2717         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
2718         mask vector type is available.
2719         (get_vectype_for_scalar_type): Rename to ...
2720         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
2721         size argument.
2722         (get_vectype_for_scalar_type): New wrapper around
2723         get_vectype_for_scalar_type_and_size using current_vector_size.
2724         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
2725         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
2726         of vect_analyze_loop here.
2727         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
2728         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
2729         to autodetect.
2730         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
2731         V8SF to V8SI conversion builtin.
2732
2733 2010-10-07  Richard Guenther  <rguenther@suse.de>
2734
2735         * target.def (autovectorize_vector_sizes): New target hook.
2736         * targhooks.c (default_autovectorize_vector_sizes): New function.
2737         * targhooks.h (default_autovectorize_vector_sizes): Declare.
2738         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
2739         Document.
2740         * doc/tm.texi: Update.
2741         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
2742         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
2743
2744 2010-10-07  Richard Guenther  <rguenther@suse.de>
2745
2746         * target.def (units_per_simd_word): Rename to ...
2747         (preferred_simd_mode): ... this.  Return mode instead of size.
2748         * targhooks.c (default_units_per_simd_word): Rename to ...
2749         (default_preferred_simd_mode): ... this.  Return word_mode.
2750         * targhooks.h (default_preferred_simd_mode): Declare.
2751         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
2752         (arm_preferred_simd_mode): ... this.  Re-implement.
2753         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
2754         (ix86_preferred_simd_mode): ... this.  Re-implement.
2755         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
2756         (sparc_preferred_simd_mode): ... this.  Re-implement.
2757         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
2758         (mips_preferred_simd_mode): ... this.  Re-implement.
2759         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
2760         (rs6000_preferred_simd_mode): ... this.  Re-implement.
2761         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
2762         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
2763         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
2764         * doc/tm.texi: Update.
2765
2766 2010-10-07  Richard Guenther  <rguenther@suse.de>
2767
2768         PR middle-end/45869
2769         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
2770         of pointers.
2771
2772 2010-10-07  Alan Modra  <amodra@gmail.com>
2773
2774         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
2775         rather than sign extension by hand.
2776
2777 2010-10-07  Jan Hubicka  <jh@suse.cz>
2778
2779         PR middle-end/45926
2780         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
2781
2782 2010-10-07  Richard Guenther  <rguenther@suse.de>
2783
2784         PR bootstrap/45914
2785         * configure.ac: Fix typo.
2786         * configure: Regenerated.
2787
2788 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2789
2790         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
2791         define_builtin_std where it's unnecessary.
2792         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
2793
2794 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
2795
2796         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
2797         * doc/tm.texi.in: Regenerate.
2798         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
2799         * targhooks.c (default_class_likely_spilled_p): Don't use the
2800         CLASS_LIKELY_SPILLED_P macro.
2801
2802         * config/arm/arm.md: Update comment.
2803
2804 2010-10-06  Jan Hubicka  <jh@suse.cz>
2805
2806         * ipa.c (cgraph_remove_unreachable_nodes): External references can
2807         always be removed.
2808         (cgraph_externally_visible_p): We can not bring local comdats that
2809         are known to linker; fix handling of internal visibility.
2810         (function_and_variable_visibility): Likewise.
2811
2812 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2813
2814         PR rtl-optimization/45394
2815         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
2816         (struct rtx_subst_pair): Remove AFTER field.
2817         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
2818         (propagate_for_debug): Remove MOVE parameter and adjust.
2819         (try_combine): In the special case where I2 is a PARALLEL, combine only
2820         destinations of SETs and set I2SRC to the I2 source.
2821         Adjust calls to propagate_for_debug throughout.
2822         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
2823         insns.
2824
2825 2010-10-06  Olivier Hainque  <hainque@adacore.com>
2826
2827         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
2828         switch on insn codes as sequence of ifs.
2829
2830 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
2831
2832         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
2833         be UI_NONE for picochip.
2834         (picochip_option_override): Do not disable exception flags.
2835         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
2836         Declare.
2837
2838 2010-10-06  Richard Guenther  <rguenther@suse.de>
2839
2840         * Makefile.in (regmove.o): Depend on $(TARGET_H).
2841
2842 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
2843
2844         Implemented fast enumeration for Objective-C.
2845         * c-parser.c (objc_could_be_foreach_context): New.
2846         (c_lex_one_token): Recognize RID_IN keyword in a potential
2847         Objective-C foreach context.
2848         (c_parser_declaration_or_fndef): Added parameter.  Accept
2849         Objective-C RID_IN keyword as terminating a declaration; in that
2850         case, return the declaration in the new parameter.
2851         (c_parser_extenral_declaration): Updated calls to
2852         c_parser_declaration_or_fndef.
2853         (c_parser_declaration_or_fndef): Same change.
2854         (c_parser_compound_statement_nostart): Same change.
2855         (c_parser_label): Same change.
2856         (c_parser_objc_methodprotolist): Same change.
2857         (c_parser_omp_for_loop): Same change.
2858         (c_parser_for_statement): Detect and parse Objective-C foreach
2859         statements.
2860         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
2861         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
2862         fast enumeration parsing code to turn off the c99 error but still
2863         perform checks on the loop declarations.
2864         * c-tree.h (check_for_loop_decls): Updated declaration.
2865         * doc/objc.texi: Document fast enumeration.
2866
2867 2010-10-06  Nick Clifton  <nickc@redhat.com>
2868
2869         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
2870         (MDR_REGNUM): Define.
2871         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
2872         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
2873         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
2874         (REGISTER_NAMES): Add MDR.
2875         (DWARF2_DEBUGGING_INFO): Define to 1.
2876         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2877         (F): New function.  Sets RTX_FRAME_RELATED_P.
2878         (mn10300_gen_multiple_store): Use F.
2879         (expand_prologue): Use F.  Use gen_movsf() to push floating
2880         point registers.
2881         (expand_epilogue): Use gen_movsf() to pop floating point registers.
2882         (mn10300_option_override): Disable combine stack adjust pass.
2883
2884 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
2885
2886         PR target/45901
2887         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
2888         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
2889
2890 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
2891
2892         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
2893         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
2894         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
2895         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
2896         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
2897         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
2898         BUILT_IN_TOUPPER): Mark as leaf.
2899
2900         PR middle-end/45838
2901         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
2902         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
2903         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
2904         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
2905         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
2906         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
2907         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
2908
2909 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
2910
2911         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
2912         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2913         (m68hc11_class_likely_spilled_p): New function.
2914
2915 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
2916
2917         * c-parser.c (c_parser_objc_method_definition): Updated comment.
2918
2919 2010-10-05  Jan Hubicka  <jh@suse.cz>
2920
2921         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
2922         Document.
2923         * opts.c (decode_options): Handle lto partitions.
2924         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
2925         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
2926
2927 2010-10-05  Jan Hubicka  <jh@suse.cz>
2928
2929         * cgraphunit.c (assemble_function): Output thunks and aliases before
2930         the function itself.
2931
2932 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
2933
2934         * config/picochip/picochip.c (picochip_option_override): Disable
2935         exception flags for picochip.
2936
2937 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
2938
2939         * opts-common.c (handle_option, handle_generated_option,
2940         read_cmdline_option, set_option): Add diagnostic_context
2941         parameter.  Update calls among these functions.
2942         (set_option): Don't use global_dc.
2943         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
2944         (decode_options): Pass global_dc to enable_warning_as_error.
2945         (common_handle_option): Pass global_dc to enable_warning_as_error.
2946         (enable_warning_as_error): Add diagnostic_context parameter.
2947         Document parameters.  Don't use global_dc.  Pass
2948         diagnostic_context parameter to handle_generated_option.
2949         * opts.h (set_option, handle_option, handle_generated_option,
2950         read_cmdline_option, enable_warning_as_error): Add
2951         diagnostic_context parameter.
2952         * Makefile.in (lto-opts.o): Update dependencies.
2953         * coretypes.h (struct diagnostic_context, diagnostic_context):
2954         Declare here.
2955         * diagnostic.h (diagnostic_context): Don't declare typedef here.
2956         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
2957         * langhooks-def.h (struct diagnostic_context): Don't declare here.
2958         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
2959         using diagnostic_context typedef.
2960         * langhooks.c (lhd_initialize_diagnostics): Declare using
2961         diagnostic_context typedef.
2962         * langhooks.h (struct diagnostic_context): Don't declare here.
2963         (initialize_diagnostics, print_error_function): Declare using
2964         diagnostic_context typedef.
2965         * lto-opts.c: Include diagnostic.h.
2966         (lto_reissue_options): Pass global_dc to set_option.  Pass
2967         DK_UNSPECIFIED not 0.
2968         * plugin.c (plugins_internal_error_function): Declare using
2969         diagnostic_context typedef.
2970         * plugin.h (struct diagnostic_context): Don't declare here.
2971         (plugins_internal_error_function): Declare using
2972         diagnostic_context typedef.
2973
2974 2010-10-05  Olivier Hainque  <hainque@adacore.com>
2975             Nicolas Roche  <roche@adacore.com>
2976
2977         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
2978         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
2979
2980 2010-10-05  Ira Rosen  <irar@il.ibm.com>
2981
2982         PR tree-optimization/45752
2983         * tree-vect-slp.c (vect_get_mask_element): Remove static
2984         variables, make them function arguments.
2985         (vect_transform_slp_perm_load): Pass new arguments to
2986         vect_get_mask_element.
2987
2988 2010-10-05  Richard Guenther  <rguenther@suse.de>
2989
2990         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
2991         (gimple_mod_pow2): Likewise.
2992         (gimple_mod_subtract): Likewise.
2993         (gimple_ic): Likewise.
2994         (gimple_stringop_fixed_value): Likewise.
2995         * tree-profile.c (tree_init_edge_profiler): Mark profile
2996         functions nothrow and leaf.
2997         (add_abnormal_goto_call_edges): Remove.
2998         (tree_gen_edge_profiler): Work on SSA form.
2999         (tree_gen_ic_profiler): Likewise.  Simplify.
3000         (do_tree_profiling): Update SSA form.
3001         (pass_tree_profile): Remove.
3002         (do_tree_profiling): Likewise.
3003         (gate_tree_profile_ipa): New function.
3004         (pass_ipa_tree_profile): New.
3005         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
3006         state of instrumented functions.
3007         * passes.c (init_optimization_passes): Remove early non-SSA
3008         inlining.  Move profiling after early optimizations.
3009         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
3010         (pass_ipa_early_inline): Likewise.
3011         * tree-pass.h (pass_ipa_early_inline): Remove.
3012         (pass_tree_profile): Likewise.
3013         (pass_ipa_tree_profile): Declare.
3014
3015 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3016             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
3017
3018         * gcc/config/s390/s390.c (z196_cost): New.
3019         (s390_handle_arch_option): Add -march=z196.
3020         (s390_option_override): Use the new cost function and use the z10
3021         defaults also for z196.
3022         (legitimate_reload_constant_p): Adjust comment.
3023         (legitimate_reload_fp_constant_p): New function.
3024         (s390_preferred_reload_class): Distingiush between FP and Int constants.
3025         (preferred_la_operand_p): Avoid la with index on z196.
3026         (s390_adjust_priority): Trigger also for z196.
3027         (s390_issue_rate): Issue rate for z196 is 3.
3028         (s390_z10_fix_long_loop_prediction): Rename to ...
3029         (s390_fix_long_loop_prediction): ... this.
3030         (s390_reorg): Apply the z10 adjustments also for z196.
3031         (s390_loop_unroll_adjust): Do this also for z196.
3032         * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
3033         (enum processor_flags): Add PF_Z196.
3034         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
3035         (TARGET_CPU_Z196, TARGET_Z196): New macros.
3036         * gcc/config.gcc: Enable z196 for --with-arch.
3037         * gcc/config/s390/2817.md: New file.
3038         * gcc/config/s390/2084.md: New type for multiply and add.
3039         * gcc/config/s390/2097.md: Likewise.
3040         * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
3041         (UNSPECV_ATOMIC_OP): New constants.
3042         (fmadddf, fmaddsf): New values for type attribute.
3043         (z196prop): New insn attribute.
3044         (cpu, cpu_facility): Add z196.
3045         (ATOMIC_Z196): New code iterator.
3046         (noxa): New code attribute.
3047         (gk): New mode attribute.
3048         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
3049         Support load zero for fp constants.
3050         (fixuns_truncdddi2, fixuns_trunctddi2)
3051         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
3052         for z196.
3053         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
3054         (popcounthi2, popcountqi2): New expander.
3055         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
3056         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
3057         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
3058         insn definition.
3059         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
3060         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
3061         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
3062         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
3063         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
3064         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
3065         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
3066         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
3067         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
3068         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
3069         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
3070         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
3071         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
3072         Support new z196 instructions.
3073
3074 2010-10-05  Richard Guenther  <rguenther@suse.de>
3075
3076         PR middle-end/45877
3077         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
3078         case where gimplification optimizes away the stmt.
3079
3080 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
3081
3082         PR debug/45849
3083         * var-tracking.c (strip_pointer_flags): New function.
3084         (emit_note_insn_var_location): If rtx_equal_p check failed,
3085         retry on locations simplified with simplify_replace_fn_rtx
3086         and strip_pointer_flags as its callback.
3087
3088 2010-10-04  Jan Hubicka  <jh@suse.cz>
3089
3090         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
3091         (can_refer_decl_in_current_unit_p): ... this one; reverse return
3092         value; handle comdats too.
3093         (canonicalize_constructor_val): Use it; handle function_decls
3094         correctly.
3095         (gimple_fold_obj_type_ref_known_binfo): Likewise.
3096         * gimple.c (get_base_address): Accept all kinds of decls.
3097
3098 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
3099
3100         * flags.h (g_switch_value, g_switch_set): Remove.
3101         * opts.c (g_switch_value, g_switch_set): Remove.
3102         * config/g.opt (G): Add Var(g_switch_value).
3103         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
3104         (alpha_option_override): Check global_options_set.x_g_switch_value
3105         instead of g_switch_set.
3106         (alpha_in_small_data_p): Remove cast in comparison with
3107         g_switch_value.
3108         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
3109         g_switch_value to unsigned HOST_WIDE_INT.
3110         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
3111         with g_switch_value.
3112         (frv_handle_option): Don't handle -G here.
3113         (frv_option_override): Check global_options_set.x_g_switch_value
3114         instead of g_switch_set.  Don't modify g_switch_set.
3115         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
3116         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
3117         g_switch_value to unsigned HOST_WIDE_INT.
3118         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
3119         (ia64_option_override): Check global_options_set.x_g_switch_value
3120         instead of g_switch_set.
3121         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
3122         Remove.
3123         (lm32_in_small_data_p): Remove cast in comparison with
3124         g_switch_value.
3125         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
3126         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
3127         HOST_WIDE_INT.
3128         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
3129         (m32r_init): Check global_options_set.x_g_switch_value instead of
3130         g_switch_set.
3131         (m32r_in_small_data_p): Remove cast in comparison with
3132         g_switch_value.
3133         (m32r_file_start): Format g_switch_value with %d.
3134         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
3135         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
3136         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
3137         handle -G here.
3138         (microblaze_option_override): Check
3139         global_options_set.x_g_switch_value instead of g_switch_set.
3140         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
3141         (mips_option_override): Check global_options_set.x_g_switch_value
3142         instead of g_switch_set.
3143         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
3144         (rs6000_file_start): Format g_switch_value with %d.
3145         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
3146         comparisons with g_switch_value.
3147         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
3148         global_options_set.x_g_switch_value instead of g_switch_set.
3149         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
3150         global_options_set.x_g_switch_value instead of g_switch_set.
3151         * config/score/score.c (score_handle_option): Don't handle -G here.
3152         * config/score/score3.c (score3_option_override): Check
3153         global_options_set.x_g_switch_value instead of g_switch_set.
3154         * config/score/score7.c (score7_option_override): Check
3155         global_options_set.x_g_switch_value instead of g_switch_set.
3156
3157 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
3158
3159         * common.opt (fira-coalesce): Remove.
3160
3161         * doc/invoke.texi (flag_ira_coalesce): Remove.
3162
3163         * ira-color.c (allocno_coalesced_p): Move before
3164         copy_freq_compare_func.
3165         processed_coalesced_allocno_bitmap): Ditto.
3166         (update_conflict_hard_regno_costs): Don't use
3167         ALLOCNO_FIRST_COALESCED_ALLOCNO.
3168         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
3169         (assign_hard_reg): Assume no coalesced allocnos.
3170         (get_coalesced_allocnos_attributes): Remove.
3171         (bucket_allocno_compare_func): Assume no coalesced allocnos.
3172         (push_allocno_to_stack): Ditto.
3173         (remove_allocno_from_bucket_and_push): Use
3174         ira_print_expanded_allocno instead of print_coalesced_allocno.
3175         (push_allocnos_to_stack): Assume uncoalesced allocnos.
3176         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
3177         all_conflicting_hard_regs.
3178         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
3179         (setup_allocno_left_conflicts_size): Ditto.
3180         (put_allocno_into_bucket): Ditto.
3181         (copy_freq_compare_func): Remove.
3182         (copy_freq_compare_func, merge_allocnos): Move before
3183         coalesced_pseudo_reg_freq_compare.
3184         coalesced_allocno_conflict_p): Ditto.
3185         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
3186         parameter.  Assume it true.
3187         (color_allocnos): Assume uncoalesced allocnos.  Use
3188         ira_print_expanded_allocno instead of print_coalesced_allocno.
3189         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
3190         parameter.
3191
3192         * ira.c: Remove comment about coalescing.
3193
3194 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
3195
3196         * config/mips/mips.h (target_flags_explicit): Declare for
3197         GENERATOR_FILE.
3198
3199 2010-10-04  Andi Kleen <ak@linux.intel.com>
3200
3201         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
3202         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
3203
3204 2010-10-04  Matthias Klose  <doko@ubuntu.com>
3205
3206         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
3207         multilib osdirname if it exists.
3208         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
3209
3210 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
3211
3212         PR middle-end/45876
3213         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
3214         arg0's type or its unsigned counterpart as utype.  Convert
3215         arg1 to utype unconditionally.
3216
3217 2010-10-04  Julian Brown  <julian@codesourcery.com>
3218
3219         * expr.c (expand_assignment): Add assertion to prevent emitting
3220         null rtx for movmisalign pattern.
3221         (expand_expr_real_1): Likewise.
3222         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
3223         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
3224         (arm_vector_alignment_reachable): New.
3225         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
3226         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
3227         (arm_print_operand): Include alignment qualifier in %A.
3228         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
3229         (movmisalign<mode>): New expander.
3230         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
3231         insn patterns.
3232
3233 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
3234
3235         * optc-gen.awk: Define global_options_set.  Don't define
3236         target_flags_explicit.
3237         * opth-gen.awk: Declare global_options_set.  Define
3238         target_flags_explicit as macro.
3239         * opts-common.c (handle_option): Take opts_set and generated_p
3240         parameters.
3241         (handle_generated_option, read_cmdline_option, set_option): Take
3242         opts_set parameter.
3243         (set_option): Use opts_set instead of hardcoding target_flags and
3244         target_flags_explicit.
3245         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
3246         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
3247         flag_value_profile_transformations_set, flag_peel_loops_set,
3248         flag_branch_probabilities_set, flag_inline_functions_set,
3249         flag_ipa_cp_set, flag_ipa_cp_clone_set,
3250         flag_predictive_commoning_set, flag_unswitch_loops_set,
3251         flag_gcse_after_reload_set): Remove.
3252         (common_handle_option, lang_handle_option, target_handle_option):
3253         Take opts_set parameter.  Assert that it is &global_options_set.
3254         (common_handle_option): Don't set _set variables.  Check opts_set
3255         instead of such variables.
3256         (enable_warning_as_error): Pass &global_options_set to
3257         handle_generated_option.
3258         * opts.h (cl_option_handler_func.handler, set_option,
3259         handle_option, handle_generated_option, read_cmdline_option): Add
3260         opts_set parameters.
3261         (handle_option): Add generated_p parameter.
3262         * config/i386/i386.c (ix86_function_specific_save,
3263         ix86_function_specific_restore): Updat for renaming of
3264         target_flags_explicit field.
3265         * config/i386/i386.opt (target_flags_explicit): Rename to
3266         ix86_target_flags_explicit.
3267         * config/ia64/ia64.c (ia64_override_options_after_change): Check
3268         global_options_set.x_flag_selective_scheduling and
3269         global_options_set.x_flag_selective_scheduling2, not
3270         sel_sched_switch_set.
3271         * flags.h (sel_sched_switch_set,
3272         flag_speculative_prefetching_set): Remove.
3273         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
3274         that it is &global_options_set.
3275         (process_command): Pass &global_options_set to read_cmdline_option.
3276         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
3277         set_option.
3278         * toplev.c (target_flags_explicit): Remove.
3279
3280 2010-10-04  Jan Hubicka  <jh@suse.cz>
3281
3282         PR middle-end/45871
3283         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
3284         use get_ref_base_and_offset to handle references.
3285         (fold_const_aggregate_ref): Update.
3286
3287 2010-10-04  Martin Jambor  <mjambor@suse.cz>
3288
3289         PR tree-optimization/45572
3290         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
3291         ipa_check_create_node_params.
3292         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
3293
3294 2010-10-04  Yao Qi  <yao@codesourcery.com>
3295
3296         * doc/passes.texi: Clean up.
3297
3298 2010-10-03  Ian Lance Taylor  <iant@google.com>
3299
3300         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
3301         referring to a field using a typedef name.
3302         (find_anonymous_field_with_type): New static function.
3303         (convert_to_anonymous_field): New static function.
3304         (convert_for_assignment): If -fplan9-extensions, permit converting
3305         pointer to struct to pointer to anonymous field.
3306         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
3307         (is_duplicate_field): New static function.
3308         (detect_field_duplicates_hash): If -fplan9-extensions, check for
3309         typedef names duplicating field names.
3310         (detect_field_duplicates): Likewise.
3311         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
3312         (C Dialect Options): Document -fplan9-extensions.
3313         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
3314
3315 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
3316
3317         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
3318         revision 164914.
3319         (vect_create_data_ref_ptr): Likewise.
3320         * tree-vect-stmts.c (vectorizable_store): Likewise.
3321         (perm_mask_for_reverse): Likewise.
3322         (reverse_vec_elements): Likewise.
3323         (vectorizable_load): Likewise.
3324
3325 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3326
3327         * cppbuiltin.c: New file.
3328         * cppbuiltin.h: New file.
3329         * Makefile.in: Take into account cppbuiltin.{h,c}.
3330
3331 2010-10-03  Andi Kleen <ak@linux.intel.com>
3332
3333         * lto-cgraph.c (input_cgraph): Check for missing sections.
3334
3335 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
3336
3337         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
3338         to nonimmediate_operand.  Force operand 2 to register when allowed.
3339         (*<shiftrt_insn><mode>3_mask): Ditto.
3340         (*<rotate_insn><mode>3_mask): Ditto.
3341
3342 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
3343
3344         PR tree-optimization/45720
3345         PR tree-optimization/45764
3346         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
3347         Don't accept backwards consecutive accesses.
3348         (vect_create_data_ref_ptr): Disallow negative steps.
3349
3350         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
3351         (perm_mask_for_reverse): Removed.
3352         (reverse_vec_elements): Likewise.
3353         (vectorizable_load): Don't handle negative steps.
3354
3355 2010-10-02  Jan Hubicka  <jh@suse.cz>
3356
3357         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
3358         call destination is known.
3359
3360 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3361
3362         PR target/45820
3363         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
3364         earlier.
3365
3366 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3367
3368         * doc/install.texi (Configuration): Document build_configargs,
3369         host_configargs, target_configargs.
3370
3371 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
3372
3373         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
3374         (*<shiftrt_insn><mode>3_mask): Ditto.
3375         (*<rotate_insn><mode>3_mask): Ditto.
3376
3377 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
3378
3379         PR tree-optimization/44716
3380         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
3381         (HOT_TEXT_SECTION_NAME): Define.
3382
3383 2010-10-01  Nick Clifton  <nickc@redhat.com>
3384
3385         * common.opt: Add -fcombine-stack-adjustments.
3386         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
3387         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
3388         flag_combine_stack_adjustments.
3389         * doc/invoke.texi: Document the new option.
3390
3391 2010-10-01  Richard Guenther  <rguenther@suse.de>
3392
3393         PR tree-optimization/45854
3394         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
3395
3396 2010-10-01  Anthony Green  <green@moxielogic.com>
3397
3398         * config.gcc: Fix moxie-*-rtems* configuration.
3399
3400 2010-10-01  Richard Guenther  <rguenther@suse.de>
3401
3402         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
3403         (gen_decl_die): Likewise.
3404
3405 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3406
3407         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
3408         to the function code for SPU MD builtins.
3409         (spu_expand_builtin): Update.
3410         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
3411