OSDN Git Service

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