OSDN Git Service

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