OSDN Git Service

* config/picochip/picochip.c (picochip_is_short_branch): Simplify
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
2
3         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
4         a conditional expression.
5
6 2010-10-29  Paul Koning  <ni1d@arrl.net>
7
8         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
9         instruction encoding.
10
11 2010-10-29  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
12         Andrew Pinski <pinskia@gmail.com>
13
14         * tree.h (build_vector_from_val): Declare.
15         * tree.c (build_vector_from_val): New function.
16         * c-typeck.c (build_binary_op): Handle vector shifting.
17         * doc/extend.texi: Description of the vector shifting operation.
18
19 2010-10-29  Paul Koning  <pkoning@equallogic.com>
20
21         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
22         pdp11_secondary_memory_needed): Declare.
23         * config/pdp11/predicates.md (float_operand): New predicate.
24         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
25         (cbranchdf4, movdf): Change predicate.
26         (movsf): Handle FPU register case.
27         (truncdfsf2, extendsfdf2): Add FPU register case.
28         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
29         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
30         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
31         (pdp11_register_move_cost): Update cost matrix.
32         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
33         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
34         pdp11_secondary_memory_needed): New function.
35         (pdp11_return_in_memory): Add other float types.
36         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float
37         types. 
38         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
39         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
40         REGISTER_MOVE_COST): Delete.
41         (BASE_RETURN_VALUE_REG): Add other float types.
42
43 2010-10-29  Nick Clifton<nickc@redhat.com>
44
45         * doc/invoke.texi: Document -mam34 and -mtune options.
46         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
47         (mn10300_tune_cpu): New variable.
48         (mn10300_handle_option): Handle -mam34 and -mtune options.
49         (mn10300_option_override): Convert tune string into tune cpu
50         variable.
51         (mn10300_legitimate_constant_p): Delete unused local variable.
52         (is_load_insn): New function.
53         (is_store_insn): New function.
54         (mn10300_adjust_schedule_cost): New function.
55         (TARGET_SCHED_ADJUST_COST): Define.
56         * config/mn10300/mn10300.opt (mam34): New option.
57         (mtune): New option.
58         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34
59         support.
60         (enum processor_type): Add AM34.
61         (TARGET_AM34): Define.
62         * config/mn10300/mn10300.md (attr cpu): Add am34.
63         Add pipeline description.
64         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates. Remove unneeded
65         alternatives.  Add timing attribute.
66         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
67         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
68         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
69         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
70         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
71         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
72         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
73         float_conditional_branch, jump, indirect_jump, tablejump,
74         call_internal, call_value_internal, zero_extendqisi2_am33,
75         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
76         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
77         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
78         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
79         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
80         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
81         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
82         return_internal_regs, store_movm, return, call_next_insn):
83         Add timing attribute.
84         (am33_subsi3): Add missing clobber of CC_REG.
85         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
86         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
87         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
88         extendqisi2): Fix predicates.
89         (call_internal, call_internal_value): Separate alternatives.
90         * config/mn10300/t-mn10300: Add AM34 multilib.
91
92 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
93
94         * config/sh/sh.c (sh_promote_function_mode): Use
95         default_promote_function_mode if !sh_promote_prototypes.
96
97 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
98
99         * recog.c (split_all_insns): Remove dead code.
100
101 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
102
103         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
104
105 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
106
107         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
108         (FUNCTION_ARG_ADVANCE): Delete.
109         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
110         functions.
111         (cris_function_incoming_arg, cris_function_arg_advance): New
112         functions.
113         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
114         (TARGET_FUNCTION_ARG_ADVANCE): Define.
115
116 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
117
118         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
119         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
120         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
121         Take a const_tree and a bool.
122         (mcore_function_arg_advance): New function.
123         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
124
125 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
126
127         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
128         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
129         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
130         Take a const_tree and a bool.
131         (mcore_function_arg_advance): New function.
132         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
133
134 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
135
136         * config/h8300/h8300-protos.h (function_arg): Delete.
137         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
138         * config/h8300/h8300.c (function_arg): Rename to...
139         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
140         a bool.
141         (h8300_function_arg_advance): New function.
142         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
143
144 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
145
146         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
147         to...
148         * config/arc/arc.c (arc_function_arg): ...here and...
149         (arc_function_arg_advance): ...here.  New functions.
150         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
151
152 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
153
154         * config/crx/crx-protos.h (crx_function_arg): Delete.
155         (crx_function_arg_advance): Delete.
156         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
157         * config/crx/crx.c (crx_function_arg): Make static.  Take a
158         const_tree and a bool.
159         (crx_function_arg_advance): Make static.  Take a const_tree and
160         a bool.
161         (enough_regs_for_param): Take a const_tree.
162         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
163
164 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
165
166         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
167         (m68hc11_function_arg_advance): Delete.
168         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
169         (FUNCTION_ARG_ADVANCE): Delete.
170         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
171         Take a const_tree and a bool.
172         (m68hc11_function_arg_advance): Likewise.
173         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
174
175 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
176
177         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
178         (xstormy16_function_arg_advance): Delete.
179         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
180         (FUNCTION_ARG_ADVANCE): Delete.
181         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
182         Take a const_tree and a bool.
183         (xstormy16_function_arg_advance): Likewise.  Return void, updating
184         the CUM parameter instead.
185         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
186
187 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
188
189         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
190         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
191         (MOXIE_FUNCTION_ARG_SIZE): Move to...
192         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
193         (moxie_function_arg): Make static.  Take a const_tree and a bool.
194         (moxie_function_arg_advance): New function.
195         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
196
197 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
198
199         * config/mn10300/mn10300-protos.h (function_arg): Delete.
200         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
201         (FUNCTION_ARG_ADVANCE): Delete.
202         * config/mn10300/mn10300.c (function_arg): Rename to...
203         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
204         and a bool.
205         (mn10300_function_arg_advance): New function.
206         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
207
208 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
209
210         * config/iq2000/iq2000-protos.h (function_arg): Delete.
211         (function_arg_advance): Delete.
212         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
213         * config/iq2000/iq2000.c (function_arg): Rename to...
214         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
215         a bool.
216         (function_arg_advance): Rename to...
217         (iq2000_function_arg_advance): ...this.  Make static.  Take a
218         const_tree and a bool.
219         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
220         iq2000_function_arg.
221         (iq2000_pass_by_reference): Call iq2000_function_arg).
222         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
223
224 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
225
226         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
227         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
228         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
229         const_tree.
230         (fr30_function_arg): New function.
231         (fr30_function_arg_advance): New function.
232         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
233
234 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
235
236         * config/frv/frv-protos.h (frv_function_arg): Delete.
237         (frv_function_arg_advance): Delete.
238         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
239         * config/frv/frv.c (frv_function_arg): Rename to...
240         (frv_function_arg_1): Make static.  Take const_tree and bool
241         arguments.
242         (frv_function_arg, frv_function_incoming_arg): New functions.
243         (frv_function_arg_advance): Make static.  Take a const_tree and
244         a bool.
245         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
246         (TARGET_FUNCTION_ARG_ADVANCE): Define.
247
248 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
249
250         PR target/46153
251         * config/i386/sse.md (sse_movhlps_exp): Use destination
252         returned from ix86_fixup_binary_operands to expand insn.
253         (sse_movlhps_exp): Ditto.
254         (sse_loadhps_exp): Ditto.
255         (sse_loadlps_exp): Ditto.
256         (sse2_loadhpd_exp): Ditto.
257         (sse2_loadlpd_exp): Ditto.
258
259 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
260
261         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
262         constants in thumb2.
263
264 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
265
266         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
267         arithmetics in masking operations.
268         (contains_muldiv): Likewise.
269         (try_combine): Likewise.
270         (find_split_point): Likewise.
271         (combine_simplify_rtx): Likewise.
272         (simplify_if_then_else): Likewise.
273         (simplify_set): Likewise.
274         (expand_compound_operation): Likewise.
275         (expand_field_assignment): Likewise.
276         (make_extraction): Likewise.
277         (extract_left_shift): Likewise.
278         (make_compound_operation): Likewise.
279         (force_to_mode): Likewise.
280         (make_field_assignment): Likewise.
281         (reg_nonzero_bits_for_combine): Likewise.
282         (simplify_shift_const_1): Likewise.
283         (simplify_comparison): Likewise.
284
285 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
286
287         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
288         (ia64_function_arg_advance): Delete.
289         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
290         (FUNCTION_ARG_ADVANCE): Delete.
291         * config/ia64/ia64.c (ia64_function_arg): Rename to...
292         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
293         bool arguments.
294         (ia64_function_arg, ia64_function_incoming_arg): New functions.
295         (ia64_function_arg_advance): Make static.  Take a const_tree and
296         a bool.
297         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
298         (TARGET_FUNCTION_ARG_ADVANCE): Define.
299
300 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
301
302         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
303         (TARGET_GET_RAW_ARG_MODE): New.
304         * doc/tm.texi: Regenerate.
305         * target.def (get_raw_result_mode): New.
306         (get_raw_arg_mode): New.
307         * targhooks.c (default_get_reg_raw_mode): New.
308         * targhooks.h (default_get_reg_raw_mode): New.
309         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
310         (apply_result_size): Ditto.
311         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
312         (TARGET_GET_RAW_RESULT_MODE): Define.
313         (TARGET_GET_RAW_ARG_MODE): Ditto.
314
315 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
316
317         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
318         for newer Solaris 10 release.
319         (sparc_fallback_frame_state): Likewise.
320
321 2010-10-27  Jason Merrill  <jason@redhat.com>
322
323         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
324         variables sooner.
325
326 2010-10-27  Jie Zhang  <jie@codesourcery.com>
327             Maxim Kuvyrkov  <maxim@codesourcery.com>
328
329         * haifa-sched.c (ISSUE_POINTS): Remove.
330         (max_issue): Don't issue more than issue_rate instructions.
331
332 2010-10-27  Ian Lance Taylor  <iant@google.com>
333
334         PR target/46197
335         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
336         (split_stack_return): Replace UNSPEC_STACK_CHECK with
337         UNSPECV_SPLIT_STACK_RETURN.
338
339 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
340
341         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
342
343         * config/i386/i386.c (block_info): New.
344         (BLOCK_INFO): Likewise.
345         (call_avx256_state): Likewise.
346         (check_avx256_stores): Likewise.
347         (move_or_delete_vzeroupper_2): Likewise.
348         (move_or_delete_vzeroupper_1): Likewise.
349         (move_or_delete_vzeroupper): Likewise.
350         (use_avx256_p): Likewise.
351         (function_pass_avx256_p): Likewise.
352         (flag_opts): Add -mvzeroupper.
353         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
354         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
355         is disabled.
356         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
357         generate vzeroupper.
358         (init_cumulative_args): Add an int to indicate caller.  Set
359         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
360         based on return type.
361         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
362         caller_pass_avx256_p based on argument type.
363         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
364         is used, but not returned by caller.
365         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
366         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
367         is used.
368         (ix86_minimum_alignment): Likewise.
369         (ix86_expand_special_args_builtin): Set target to
370         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
371         (ix86_reorg): Run the vzeroupper optimization if needed.
372
373         * config/i386/i386.h (ix86_args): Add caller.
374         (INIT_CUMULATIVE_ARGS): Updated.
375         (machine_function): Add use_vzeroupper_p, use_avx256_p,
376         caller_pass_avx256_p, caller_return_avx256_p,
377         callee_pass_avx256_p and callee_return_avx256_p.
378
379         * config/i386/i386.opt (-mvzeroupper): New.
380
381         * config/i386/predicates.md (vzeroupper_operation): Removed.
382
383         * config/i386/sse.md (avx_vzeroupper): Removed.
384         (*avx_vzeroupper): Removed.
385         (avx_vzeroupper): New.
386
387         * doc/invoke.texi: Document -mvzeroupper.
388
389 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
390
391         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
392         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
393         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
394
395 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
396             Olivier Hainque  <hainque@adacore.com>
397
398         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
399         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
400         fs->signal_frame instead.
401
402 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
403
404         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
405         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
406         Do not use objc_set_property_attr, but use local variables
407         instead.  Detect repeated usage of setter, getter and ivar
408         attributes.  Improved error processing when a setter name does not
409         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
410         that the token is a keyword.  Updated call to
411         objc_add_property_declaration.
412
413 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
414
415         * c-parser.c (c_parser_objc_at_property): Renamed to
416         c_parser_objc_at_property_declaration.  Updated calls to
417         objc_add_property_variable, now objc_add_property_declaration.
418         Code rewritten to be much more robust in recovering from syntax
419         errors.  Added comments.
420         (c_parser_objc_property_attrlist): Removed.
421         (c_parser_external_declaration): Updated calls to
422         c_parser_objc_at_property, now
423         c_parser_objc_at_property_declaration.
424         (c_parser_objc_methodprotolist): Same change.
425
426 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
427
428         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
429
430 2010-10-26  Jan Hubicka  <jh@suse.cz>
431
432         * ipa.c (process_references): Enqueue all referenced nodes;
433         mark as reachable only non-external nodes.
434         (cgraph_remove_unreachable_nodes): All referenced nodes should
435         be enqueued; remove bogues node->needed check.
436
437 2010-10-26  Jan Hubicka  <jh@suse.cz>
438
439         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
440         to represent OMP.
441
442 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
443
444         * config/i386/i386.md (split_stack_return): Replace
445         unspec_volatile with unspec.
446
447 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
448
449         * doc/install.texi: Fix typo in --with-sysroot description.
450
451 2010-10-26  Jan Hubicka  <jh@suse.cz>
452
453         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
454         Use info provided by linker plugin.
455
456 2010-10-26  Jason Merrill  <jason@redhat.com>
457
458         * varasm.c (constructor_static_from_elts_p): Don't require a
459         CONSTRUCTOR to have elements to be suitable for static
460         initialization.  Allow ARRAY_TYPE as well.
461
462 2010-10-26  Jan Hubicka  <jh@suse.cz>
463
464         PR middle-end/45736
465         * cgraph.c (cgraph_set_readonly_flag): Rename to...
466         (cgraph_set_const_flags) ... this one; get also looping argument;
467         clear constructor/destructor flags.
468         (cgraph_set_pure_flag): Likewise.
469         (cgraph_set_looping_const_or_pure_flag): Remove.
470         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
471         to optimize away static ctors/dtors; it does not work on inline clones;
472         external functions can always be rmeoved.
473         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
474         inline clones; in LTO external functions always can go.
475         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
476         (cgraph_mark_address_taken_node): Assert that we are not taking
477         address of inline clone.
478         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
479         external functions.
480         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
481         address taken.
482         (ipcp_initialize_node_lattices): Only local functions can be
483         handled without cloning.
484         * cgraph.h (cgraph_set_readonly_flag,
485         cgraph_set_looping_const_or_pure_flag): Remove.
486         (cgraph_set_const_flag): Declare.
487         (cgraph_set_pure_flag): Update.
488         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
489         flags setting code.
490         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
491         look at inline clones; fix handling of external definitions.
492         (cgraph_postorder): Do not look at inline clones in the first pass.
493         (function_and_variable_visibility): Drop constructors/destructor
494         flags at pure and const functions.
495         * tree-profile.c (tree_profiling): Update.
496         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
497         address taken; external functions do not account to whole program size.
498         (cgraph_decide_inlining): Likewise; do not try to inline
499         functions already inlined.
500
501 2010-10-26  Jie Zhang  <jie@codesourcery.com>
502
503         * doc/invoke.texi: Improve documentation of
504         -fstrict-volatile-bitfields.
505
506 2010-10-26  Ira Rosen  <irar@il.ibm.com>
507
508         PR tree-optimization/46167
509         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
510         is basic block for the statement.
511
512 2010-10-26  Paul Koning  <ni1d@arrl.net>
513
514         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
515         current definition of struct_real_format.
516
517 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
518
519         PR target/44948
520         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
521         (ix86_function_arg_boundary): Always align parameters on stack
522         in 64bit and align parameters with alignment >= 16byte on stack
523         in 32bit.  Warn alignment change.
524
525 2010-10-26  Ian Lance Taylor  <iant@google.com>
526
527         PR middle-end/45687
528         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
529         offset.
530
531 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
532
533         Implement opaque-enum-specifiesr for C++0x
534         * tree.h (ENUM_IS_OPAQUE): New.
535         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
536
537 2010-10-26  Jie Zhang  <jie@codesourcery.com>
538
539         * stor-layout.c (layout_decl): Use the field's type to
540         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
541         * config/arm/arm.c (arm_override_options): Default to
542         -fstrict-volatile-bitfields.
543
544 2010-10-25  Paul Koning  <ni1d@arrl.net>
545
546         * config/pdp11/pdp11.md: Add define_constants for register
547         numbers, branch offset limits.
548         * config/pdp11/pdp11.c: Use named constants instead of numbers.
549         * config/pdp11.pdp11.h: Ditto.
550
551 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
552
553         * configure.ac: Use $cpu_type instead of $target to define the nop.
554         * configure: Regenerate.
555
556 2010-10-25  Jie Zhang  <jie@codesourcery.com>
557
558         * combine.c (try_combine): If insns need to be kept around, check that
559         they can be copied in the merged instruction.
560
561 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
562
563         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
564         has been modified.
565         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
566         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
567         it has been modified.
568
569 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
570
571         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
572
573 2010-10-24  Paul Koning  <ni1d@arrl.net>
574
575         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
576         * config/pdp11/pdp11.c (output_jump): Ditto.
577
578 2010-10-24  Ian Lance Taylor  <iant@google.com>
579
580         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
581
582 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
583
584         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
585         least one insn with a locus corresponding to an edge's goto_locus,
586         disregard non-fallthru edges to the exit block and merge the blocks
587         created for the same goto_locus.
588
589 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
590
591         * gcc.c (n_switches_alloc_debug_check): New.
592         (set_option_handlers): New.
593         (process_command): Use set_option_handlers.
594         (do_self_spec): Pass spec-generated options through option handlers.
595         (main): Also save and restore n_switches_alloc when swapping
596         switch arrays.
597
598 2010-10-23  Richard Henderson  <rth@redhat.com>
599
600         PR target/46144
601         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
602         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
603         Honor matching operands when splitting to XOR.
604
605 2010-10-23  Ian Lance Taylor  <iant@google.com>
606
607         * tree-vrp.c (extract_range_from_binary_expr): If
608         flag_non_call_exceptions don't eliminate division by zero.
609         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
610
611 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
612
613         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
614         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
615         __ORDER_PDP_ENDIAN__.
616         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
617         (struct DWstruct): Define based on __BYTE_ORDER__.
618         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
619         (struct INTstruct): Define based on __BYTE_ORDER__.
620         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
621         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
622         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
623         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
624         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
625         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
626         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
627         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
628         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
629         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
630         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
631         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
632         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
633         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
634         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
635         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
636         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
637         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
638         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
639         * doc/tm.texi: Regenerate.
640         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
641         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
642
643 2010-10-23  Jie Zhang  <jie@codesourcery.com>
644
645         PR rtl-optimization/37360
646         * config/mips/mips.c (cached_can_issue_more): New local variable.
647         (mips_sched_reorder_1): New.
648         (mips_sched_reorder): Use mips_sched_reorder_1.
649         (mips_sched_reorder2): New.
650         (mips_variable_issue): Set cached_can_issue_more.
651         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
652         instead of mips_sched_reorder.
653
654         Revert:
655         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
656         PR rtl-optimization/37360
657         * haifa-sched.c (max_issue): Do not assert that we never issue more
658         insns than issue_rate.  Add comment.
659
660 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
661
662         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
663         location info of the expression.
664
665 2010-10-22  DJ Delorie  <dj@redhat.com>
666
667         * doc/extend.texi (Named Address Spaces): Document the M32C named
668         address space.
669
670         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
671         __far address space.
672         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
673         "__far" address space for R8C and M16C processor variants.
674         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
675         (far_addr_space_p): New.
676         (encode_pattern_1): Add sign and zero extend support.
677         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
678         (m32c_extra_constraint_p2): Add SF constraint.
679         (m32c_legitimate_address_p): Support __far addresses.
680         (m32c_addr_space_pointer_mode): New.
681         (m32c_addr_space_address_mode): New.
682         (m32c_addr_space_legitimate_address_p): New.
683         (m32c_addr_space_legitimize_address): New.
684         (m32c_addr_space_subset_p): New.
685         (m32c_addr_space_convert): New.
686         (conversions): Add __far operand patterns.
687         (m32c_prepare_move): Force constants into registers for __far moves.
688         (m32c_split_move): __far moves are always split.
689         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
690         * config/m32c/mov.md (mov<mode>_far_op1): New.
691         (mov<mode>_far_op2): New.
692         (movqi_op): Add __far (SF) support.
693         (movhi_op): Likewise.
694         (movsi_splittable): Split A1A0 also.
695
696 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
697             Andrew Pinski  <pinskia@gmail.com>
698
699         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
700         * doc/extend.texi: New paragraph
701
702 2010-10-22  Paul Koning  <ni1d@arrl.net>
703
704         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
705
706 2010-10-22  DJ Delorie  <dj@redhat.com>
707
708         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
709
710 2010-10-22  Paul Koning  <ni1d@arrl.net>
711
712         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
713
714 2010-10-22  Richard Henderson  <rth@redhat.com>
715
716         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
717         cases for __builtin_fma and __builtin_fmaf.
718
719 2010-10-22  Richard Henderson  <rth@redhat.com>
720
721         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
722         NEG+USE for vectors as well.
723         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
724         and splitter.
725
726 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
727
728         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
729         SWITCH_CURTAILS_COMPILATION): Remove.
730         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
731         * doc/tm.texi: Regenerate.
732         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
733
734 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
735
736         * config/i386/bdver1.md: New file.
737         * config/i386/i386.md (include "bdver1.md"): Invoke the
738         pipeline description for bdver1.
739         (x86_sahf_1): Add "bdver1_decode" attribute.
740         (*cmpfp_i_mixed): Likewise.
741         (*cmpfp_i_sse): Likewise.
742         (*cmpfp_i_i387): Likewise.
743         (*cmpfp_iu_mixed): Likewise.
744         (*cmpfp_iu_sse): Likewise.
745         (*cmpfp_iu_387): Likewise.
746         (*swap<mode>,*swap<mode>_1): Likewise.
747         (fixuns_trunc<mode>hi2): Likewise.
748         (fix_trunc<mode>si_sse): Likewise.
749         (x86_fnstcw_1): Likewise.
750         (x86_fldcw_1): Likewise.
751         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
752         (*floatsi<mode>2_vector_mixed): Likewise.
753         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
754         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
755         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
756         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
757         (*floatsi<mode>2_vector_sse): Likewise.
758         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
759         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
760         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
761         (*mul<mode>3_1): Likewise.
762         (*mulsi3_1_zext): Likewise.
763         (*mulhi3_1): Likewise.
764         (*mulqi3_1): Likewise.
765         (*<u>mul<mode><dwi>3_1): Likewise.
766         (*<u>mulqihi3_1): Likewise.
767         (*<s>muldi3_highpart_1): Likewise.
768         (*<s>mulsi3_highpart_1): Likewise.
769         (*<s>mulsi3_highpart_zext): Likewise.
770         (x86_64_shld): Likewise.
771         (x86_shld): Likewise.
772         (x86_64_shrd): Likewise.
773         (x86_shrd): Likewise.
774         (sqrtxf2): Likewise.
775         (sqrt_extend<mode>xf2_i387): Likewise.
776         (*sqrt<mode>2_sse): Likewise.
777         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
778         (sse_cvtsi2ssq): Likewise.
779         (sse_cvtss2si): Likewise.
780         (sse_cvtss2si_2): Likewise.
781         (sse_cvtss2siq): Likewise.
782         (sse_cvtss2siq_2): Likewise.
783         (sse_cvttss2si): Likewise.
784         (sse_cvttss2siq): Likewise.
785         (sse2_cvtpi2pd): Likewise.
786         (sse2_cvttpd2pi): Likewise.
787         (sse2_cvtsi2sd): Likewise.
788         (sse2_cvtsi2sdq): Likewise.
789         (sse2_cvtsd2si): Likewise.
790         (sse2_cvtsd2si_2): Likewise.
791         (sse2_cvtsd2siq): Likewise.
792         (sse2_cvtsd2siq_2): Likewise.
793         (sse2_cvttsd2si): Likewise.
794         (sse2_cvttsd2siq): Likewise.
795         (*sse2_cvtpd2dq): Likewise.
796         (*sse2_cvttpd2dq): Likewise.
797         (sse2_cvtsd2ss): Likewise.
798         (sse2_cvtss2sd): Likewise.
799         (*sse2_cvtpd2ps): Likewise.
800         (sse2_cvtps2pd): Likewise.
801
802 2010-10-22  Richard Guenther  <rguenther@suse.de>
803
804         PR middle-end/46137
805         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
806         remove the virtual operands if they are not needed.
807
808 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
809
810         * config/i386/i386.c (processor_costs bdver1_cost): Update
811         insn costs and architectural parameters for bdver1.
812
813 2010-10-22  Richard Guenther  <rguenther@suse.de>
814
815         * gimple.h (gimple_register_canonical_type): Declare.
816         * gimple.c (gimple_canonical_types): New global hashtable.
817         (struct gimple_type_leader_entry_s): New type.
818         (gimple_type_leader): New global cache.
819         (gimple_lookup_type_leader): New function.
820         (gtc_visit): Query the proper cache.
821         (gimple_types_compatible_p): Likewise.
822         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
823         (gimple_canonical_type_eq): New function.
824         (gimple_register_canonical_type): Likewise.
825         (print_gimple_types_stats): Adjust for gimple_canonical_types.
826         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
827         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
828         gimple_types_compatible_p for LTO.
829
830 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
831
832         PR target/46098
833         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
834         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
835         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
836         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
837         (<sse>_movu<ssemodesuffix>): New expander.
838         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
839         (avx_movdqu<avxmodesuffix>): New expander.
840         (*sse2_movdqu): Rename from sse2_movdqu.
841         (sse2_movdqu): New expander.
842
843 2010-10-22  Richard Guenther  <rguenther@suse.de>
844
845         PR tree-optimization/45720
846         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
847         Handle negative step.
848         (vect_enhance_data_refs_alignment): Likewise.
849         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
850         (vect_create_cond_for_align_checks): Likewise.
851         (vect_create_cond_for_alias_checks): Likewise.
852
853 2010-10-22  Ira Rosen  <irar@il.ibm.com>
854
855         PR tree-optimization/46126
856         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
857         vectorizable_shift in case of basic block vectorization.
858
859 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
860
861         * target.h (enum opt_levels, struct default_options): New.
862         * target.def (handle_ofast): Remove hook.
863         (target_option.optimization): Change to
864         target_option.optimization_table.
865         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
866         TARGET_OPTION_OPTIMIZATION_TABLE.
867         (CAN_DEBUG_WITHOUT_FP): Remove.
868         * doc/tm.texi: Regenerate.
869         * opts.c (maybe_default_option, maybe_default_options,
870         default_options_table): New.
871         (default_options_optimization): Take extra parameters.  Don't
872         assert that global_options and global_options_set are in use.  Use
873         maybe_default_options.
874         (decode_options): Pass extra parameters to
875         default_options_optimization.
876         * common.opt (falign-loops): Use value 0 with Var.
877         (frerun-cse-after-loop, ftree-ter): Remove Init.
878         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
879         TARGET_OPTION_OPTIMIZATION): Remove.
880         * targhooks.c (empty_optimization_table): New.
881         * targhooks.h (empty_optimization_table): Declare.
882         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
883         * config/alpha/alpha.c (alpha_option_optimization_table,
884         TARGET_OPTION_OPTIMIZATION_TABLE): New.
885         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
886         * config/arm/arm.c (arm_option_optimization: Change to
887         arm_option_optimization_table.
888         (TARGET_OPTION_OPTIMIZATION): Change to
889         TARGET_OPTION_OPTIMIZATION_TABLE.
890         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
891         * config/avr/avr.c (avr_option_optimization_table,
892         TARGET_OPTION_OPTIMIZATION_TABLE): New.
893         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
894         * config/cris/cris.c (cris_option_optimization): Change to
895         cris_option_optimization_table.
896         (TARGET_OPTION_OPTIMIZATION): Change to
897         TARGET_OPTION_OPTIMIZATION_TABLE.
898         * config/crx/crx.c (crx_option_optimization): Change to
899         crx_option_optimization_table.
900         (TARGET_OPTION_OPTIMIZATION): Change to
901         TARGET_OPTION_OPTIMIZATION_TABLE.
902         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
903         * config/fr30/fr30.c (fr30_option_optimization_table,
904         TARGET_OPTION_OPTIMIZATION_TABLE): New.
905         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
906         * config/frv/frv.c (frv_option_optimization_table,
907         TARGET_OPTION_OPTIMIZATION_TABLE): New.
908         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
909         * config/h8300/h8300.c (h8300_option_optimization): Change to
910         h8300_option_optimization_table.
911         (TARGET_OPTION_OPTIMIZATION): Change to
912         TARGET_OPTION_OPTIMIZATION_TABLE.
913         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
914         * config/i386/i386.c (ix86_option_optimization): Change to
915         ix86_option_optimization_table.
916         (TARGET_OPTION_OPTIMIZATION): Change to
917         TARGET_OPTION_OPTIMIZATION_TABLE.
918         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
919         as initializer.
920         * config/ia64/ia64.c (ia64_option_optimization): Change to
921         ia64_option_optimization_table.
922         (TARGET_OPTION_OPTIMIZATION): Change to
923         TARGET_OPTION_OPTIMIZATION_TABLE.
924         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
925         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
926         initializer.
927         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
928         TARGET_OPTION_OPTIMIZATION_TABLE): New.
929         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
930         * config/lm32/lm32.c (lm32_option_optimization_table,
931         TARGET_OPTION_OPTIMIZATION_TABLE): New.
932         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
933         * config/m32r/m32r.c (m32r_option_optimization): Change to
934         m32r_option_optimization_table.
935         (TARGET_OPTION_OPTIMIZATION): Change to
936         TARGET_OPTION_OPTIMIZATION_TABLE.
937         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
938         CAN_DEBUG_WITHOUT_FP): Remove.
939         * config/mcore/mcore.c (mcore_option_optimization): Change to
940         mcore_option_optimization_table.
941         (TARGET_OPTION_OPTIMIZATION): Change to
942         TARGET_OPTION_OPTIMIZATION_TABLE.
943         * config/mep/mep.c (mep_option_optimization): Change to
944         mep_option_optimization_table.
945         (TARGET_OPTION_OPTIMIZATION): Change to
946         TARGET_OPTION_OPTIMIZATION_TABLE.
947         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
948         * config/microblaze/microblaze.c
949         (microblaze_option_optimization_table,
950         TARGET_OPTION_OPTIMIZATION_TABLE): New.
951         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
952         * config/mips/mips.c (mips_option_optimization_table,
953         TARGET_OPTION_OPTIMIZATION_TABLE): New.
954         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
955         * config/mmix/mmix.c (mmix_option_optimization): Change to
956         mmix_option_optimization_table.
957         (TARGET_OPTION_OPTIMIZATION): Change to
958         TARGET_OPTION_OPTIMIZATION_TABLE.
959         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
960         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
961         TARGET_OPTION_OPTIMIZATION_TABLE): New.
962         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
963         * config/pa/pa.c (pa_option_optimization_table,
964         TARGET_OPTION_OPTIMIZATION_TABLE): New.
965         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
966         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
967         pdp11_option_optimization_table.
968         (TARGET_OPTION_OPTIMIZATION): Change to
969         TARGET_OPTION_OPTIMIZATION_TABLE.
970         * config/picochip/picochip.c (picochip_option_optimization_table,
971         TARGET_OPTION_OPTIMIZATION_TABLE): New.
972         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
973         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
974         TARGET_OPTION_OPTIMIZATION_TABLE): New.
975         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
976         * config/rx/rx.c (rx_option_optimization_table,
977         TARGET_OPTION_OPTIMIZATION_TABLE): New.
978         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
979         * config/s390/s390.c (s390_option_optimization): Change to
980         s390_option_optimization_table.
981         (s390_option_override): Update comment.
982         (TARGET_OPTION_OPTIMIZATION): Change to
983         TARGET_OPTION_OPTIMIZATION_TABLE.
984         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
985         * config/score/score.c (score_option_optimization_table,
986         TARGET_OPTION_OPTIMIZATION_TABLE): New.
987         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
988         * config/sh/sh.c (sh_option_optimization): Change to
989         sh_option_optimization_table.
990         (TARGET_OPTION_OPTIMIZATION): Change to
991         TARGET_OPTION_OPTIMIZATION_TABLE.
992         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
993         (sh_option_override, expand_block_move, multcosts, find_barrier,
994         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
995         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
996         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
997         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
998         instead of TARGET_SMALLCODE.
999         * config/sh/sh.opt (mspace): Make into an alias for -Os.
1000         * config/sparc/sparc.c (sparc_option_optimization_table,
1001         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1002         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
1003         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
1004         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1005         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
1006         * config/v850/v850.c (v850_option_optimization): Change to
1007         v850_option_optimization_table.
1008         (TARGET_OPTION_OPTIMIZATION): Change to
1009         TARGET_OPTION_OPTIMIZATION_TABLE.
1010         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
1011         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
1012         xtensa_option_optimization_table.
1013         (TARGET_OPTION_OPTIMIZATION): Change to
1014         TARGET_OPTION_OPTIMIZATION_TABLE.
1015         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
1016
1017 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
1018
1019         Based on the CFString implementation in FSF apple/trunk branch.
1020
1021         * target.def (objc_construct_string): New Hook.
1022         * doc/tm.texi (objc_construct_string): Document.
1023         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
1024         * config/t-darwin: Amend build rules for darwin.o.
1025         * config/darwin.opt: Add cfstrings flags.
1026         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
1027         (darwin_objc_construct_string): New.
1028         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
1029         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
1030         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
1031         (darwin_fold_builtin): Likewise.
1032         (darwin_build_constant_cfstring): Likewise.
1033         (darwin_objc_construct_string): Likewise.
1034         (darwin_cfstring_p): Likewise.
1035         (darwin_enter_string_into_cfstring_table): Likewise.
1036         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
1037         * config/darwin.c (darwin_running_cxx): New var.
1038         (machopic_select_section): Return cfstring_constant_object_section.
1039         (darwin_override_options): Set darwin_running_cxx.
1040         (add_builtin_field_decl): New.
1041         (darwin_init_cfstring_builtins): New.
1042         (darwin_build_constant_cfstring): New.
1043         (darwin_fold_builtin): New.
1044         (cfstring_hash): New.
1045         (cfstring_eq): New.
1046         (darwin_enter_string_into_cfstring_table): New.
1047         * config/darwin-sections.def (cfstring_constant_object_section): New.
1048         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
1049         (TARGET_OBJC_CONSTRUCT_STRING): Define.
1050
1051 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1052
1053         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
1054         TYPE_STUB_DECL instead of TREE_CHAIN.
1055         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
1056         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
1057         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
1058         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
1059         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
1060         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
1061         Likewise.
1062         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
1063
1064 2010-10-22  Jie Zhang  <jie@codesourcery.com>
1065
1066         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
1067         (copy_blkmode_from_reg): Likewise.
1068         (read_complex_part): Likewise.
1069         (expand_expr_real_1): Calculate packedp and pass it to
1070         extract_bit_field.
1071         * expr.h (extract_bit_field): Update declaration.
1072         * calls.c (store_unaligned_arguments_into_pseudos): Update call
1073         to extract_bit_field.
1074         * expmed.c (extract_fixed_bit_field): Update calls to
1075         extract_fixed_bit_field.
1076         (store_split_bit_field): Likewise.
1077         (extract_bit_field_1): Add new argument packedp.
1078         (extract_bit_field): Add new argument packedp.
1079         (extract_fixed_bit_field): Add new argument packedp and let
1080         packed attribute override volatile.
1081         * stmt.c (expand_return): Update call to extract_bit_field.
1082
1083 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1084
1085         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
1086
1087 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1088
1089         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
1090         of gcc_checking_assert.
1091         * sel-sched.c (code_motion_process_successors): Likewise.
1092
1093 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
1094
1095         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
1096         when stopping because of a different locus on edge or insn.
1097         (try_optimize_cfg): Add comment.
1098         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
1099         block is a forwarder block, propagate locus on the edge.
1100         (cfg_layout_merge_blocks): Likewise.
1101
1102 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
1103
1104         PR target/45946
1105         * config/i386/i386.md (*pushti2): New insn pattern.
1106         (pushti2 splitter): New insn splitter.
1107         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
1108         DWI mode iterator.
1109
1110 2010-10-21  Paul Koning  <ni1d@arrl.net>
1111
1112         * config/pdp11/pdp11-protos.md (arith_operand,
1113         const_immediate_operand, expand_shift_operand,
1114         immediate15_operand): Delete
1115         * config/pdp11/pdp11.c: Ditto.
1116         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
1117         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
1118         EXTRA_CONSTRAINT): Delete.
1119         * config/pdp11/pdp11.md (various): Use standard constraints
1120         instead of removed ones.
1121         * config/pdp11/constraints.md: New file.
1122         * config/pdp11/predicates.md: New file.
1123
1124 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
1125
1126         PR c/45834
1127         * alias.c (true_dependence_1): Remove obsolete check for QImode.
1128         (may_alias_p): Ditto.
1129
1130 2010-10-21  Martin Jambor  <mjambor@suse.cz>
1131
1132         PR tree-optimization/45875
1133         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
1134
1135 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1136
1137         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
1138         variables.
1139         (create_new_def_for): Likewise.
1140
1141 2010-10-21  Nick Clifton  <nickc@redhat.com>
1142
1143         * config/mn10300/mn10300.c: Fold code to 80-character width.
1144         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
1145         MEM, CONST_INT and CONST_DOUBLE.
1146         (targetm): Move initialization to end of file.
1147         (print_operand): Rename to mn10300_print_operand.
1148         (print_operand_address): Rename to mn10300_print_operand_address.
1149         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
1150         (expand_prologue): Rename to mn10300_expand_prologue.
1151         (expand_epilogue): Rename to mn10300_expand_epilogue.
1152         (initial_offset): Rename to mn10300_initial_offset.
1153         (function_arg): Rename to mn10300_function_arg.
1154         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
1155         (symbolic_operand): Rename to mn10300_symbolic_operand.
1156         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
1157         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
1158         * config/mn10300/mn10300-protos.h: Update prototypes.
1159         * config/mn10300/mn10300.h: Fold code to 80-character width.
1160         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
1161         MEM, CONST_INT and CONST_DOUBLE.
1162         (CPP_SPEC): Move to...
1163         (TARGET_CPU_CPP_BUILTINS): ... here.
1164         * config/mn10300/mn10300.md: Fold code to 80-character width.
1165         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
1166         MEM, CONST_INT and CONST_DOUBLE.
1167
1168 2010-10-21  Ira Rosen  <irar@il.ibm.com>
1169
1170         PR tree-optimization/46049
1171         PR tree-optimization/46052
1172         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
1173         (vect_get_slp_defs): Add arguments.
1174         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
1175         operands to vect_get_slp_defs.
1176         (vectorizable_reduction): Fix comment, pass scalar operands to
1177         vect_get_slp_defs.
1178         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
1179         type to determine number of units in the created vector.
1180         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
1181         (vectorizable_conversion): Fix comment.
1182         (vectorizable_shift): New function.
1183         (vectorizable_operation): Move code that handles shifts to
1184         vectorizable_shift.
1185         (vectorizable_type_demotion): Fix comment, pass scalar operands to
1186         vect_get_slp_defs.
1187         (vectorizable_type_promotion, vectorizable_store): Likewise.
1188         (vectorizable_condition): Fix comment.
1189         (vect_analyze_stmt): Call vectorizable_shift.
1190         (vect_transform_stmt): Likewise.
1191         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
1192         Use it as the operand to create vectors for, except reduction
1193         initial definition and store.  Use operands type.
1194         (vect_get_slp_defs): Add new arguments.  Pass them to
1195          vect_get_constant_vectors.
1196
1197 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1198
1199         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
1200         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
1201         * cfghooks.c (fixup_reorder_chain): Likewise.
1202         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1203         * cgraph.c (cgraph_add_thunk): Likewise.
1204         (cgraph_create_edge_1): Likewise.
1205         (cgraph_create_virtual_clone): Likewise.
1206         * ddg.c (add_cross_iteration_register_deps): Likewise.
1207         * dwarf2out.c (modified_type_die): Likewise.
1208         * emit-rtl.c (set_mem_alias_set): Likewise.
1209         * ggc-zone.c (zone_allocate_marks): Likewise.
1210         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
1211         * gimple.c (iterative_hash_gimple_type): Likewise.
1212         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
1213         (create_single_exit_edge): Likewise.
1214         * haifa-sched.c (choose_ready): Likewise.
1215         * lto-streamer-in.c (input_gimple_stmt): Likewise.
1216         * passes.c (execute_todo): Likewise.
1217         * sched-ebb.c (begin_schedule_ready): Likewise.
1218         * sel-sched.c (code_motion_process_successors): Likewise.
1219         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
1220         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
1221         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
1222         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
1223         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
1224         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
1225         (ssa_conflicts_add): Likewise.
1226         * tree-ssa-copy.c (replace_exp): Likewise.
1227         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
1228         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
1229         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
1230         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
1231         (compute_antic): Likewise.
1232         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
1233         (add_dependence): Likewise.
1234         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
1235         * tree-vrp.c (supports_overflow_infinity): Likewise.
1236         (make_overflow_infinity, negative_overflow_infinity): Likewise.
1237         (avoid_overflow_infinity, register_new_assert_for): Likewise.
1238         (process_assert_insertions_for): Likewise.
1239         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
1240         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
1241         (intersect_loc_chains, variable_merge_over_cur): Likewise.
1242
1243 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1244
1245         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
1246         * reload1.c (has_nonexceptional_receiver): Likewise.
1247         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
1248         (create_new_def_for): Likewise.
1249         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
1250         (merge_phi_nodes): Likewise.
1251         (has_abnormal_incoming_edge_p): Delete.
1252
1253 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
1254
1255         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
1256
1257 2010-10-21  Richard Guenther  <rguenther@suse.de>
1258             Michael Matz  <matz@suse.de>
1259
1260         PR tree-optimization/45764
1261         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
1262         Adjust initial misalignment for negative DR_STEP.
1263         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
1264         do not have the same alignment over the whole iteration domain.
1265
1266 2010-10-21  Richard Guenther  <rguenther@suse.de>
1267
1268         PR tree-optimization/46111
1269         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
1270
1271 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1272
1273         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
1274
1275 2010-10-21  Tristan Gingold  <gingold@adacore.com>
1276
1277         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
1278         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
1279
1280 2010-10-21  Tristan Gingold  <gingold@adacore.com>
1281
1282         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
1283         signal_frame.
1284         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
1285
1286 2010-10-21  Tristan Gingold  <gingold@adacore.com>
1287
1288         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
1289         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
1290
1291 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
1292
1293         * basic-block.h (find_fallthru_edge): Define.
1294         * cfgcleanup.c (merge_blocks_move): Use it.
1295         (try_crossjump_bb): Likewise.
1296         * cfglayout.c (fixup_reorder_chains): Likewise.
1297         (fixup_fallthru_exit_predecessor): Likewise.
1298         * cfgrtl.c (rtl_split_edge): Likewise.
1299         (rtl_verify_flow_info): Likewise.
1300         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1301         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
1302         * ifcvt.c (block_fallthru): Likewise.
1303         * reload1.c (fixup_abnormal_edges): Likewise.
1304         * sched-ebb.c (being_schedule_ready): Likewise.
1305         (schedule_ebb): Likwise.
1306         * sched-rgn.c (find_single_block_region): Likewise.
1307         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
1308         * tree-complex.c (expand_complex_move): Likewise.
1309         * sched-int.h (find_fallthru_edge): Rename to...
1310         (find_fallthru_edge_from): ...this.
1311         * haifa-sched.c (find_fallthru_edge): Rename to...
1312         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
1313         (init_before_recovery): Call find_fallthru_edge_from.
1314         * sel-sched-ir.c (merge_fences): Likewise.
1315         * sel-sched.c (in_fallthru_bb_p): Likewise.
1316         (move_cond_jump): Likewise.
1317
1318 2010-10-20  Paul Koning  <ni1d@arrl.net>
1319
1320         * config/pdp11/pdp11.md (various): Fix conditions on a number of
1321         insn to check for target 11/40 or higher.
1322
1323 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1324
1325         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
1326         bool instead of a tree.
1327         (c_parser_objc_method_decl): Added bool argument.  Updated call to
1328         objc_build_method_signature.
1329         (c_parser_objc_method_definition): Do not call
1330         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
1331         c_parser_objc_method_decl and objc_start_method_definition.
1332         (c_parser_objc_methodproto): Do not call objc_set_method_type.
1333         Updated calls to c_parser_objc_method_type,
1334         c_parser_objc_method_decl and objc_add_method_declaration.
1335
1336 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
1337
1338         PR tree-optimization/45919
1339         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
1340         array members.
1341
1342         PR tree-optimization/46066
1343         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
1344         instead of gsi_last_bb.
1345
1346 2010-10-20  DJ Delorie  <dj@redhat.com>
1347
1348         * config/m32c/m32c.c (m32c_option_override): Always disable
1349         function-cse in 16-bit mode.  Indirect calls are always worse than
1350         direct calls as there is no 16-bit indirect call opcode.
1351         (m32c_override_options_after_change): New, likewise.
1352
1353 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
1354
1355         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
1356         emitting the conditional move in the inner mode of the SUBREG.
1357
1358 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
1359
1360         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
1361         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
1362         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
1363         (ia64_preferred_reload_class): Make static.  Change rclass argument
1364         and result types from enum reg_class to reg_class_t.
1365
1366 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
1367
1368         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
1369         call for single operand expression.
1370
1371 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
1372
1373         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
1374         if there is a call statement to pure or const function in the block.
1375
1376 2010-10-20  Paul Koning  <pkoning@equallogic.com>
1377
1378         Fix several build errors for pdp11 target.
1379         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
1380         (cbranchdf4): Conditional on TARGET_FPU.
1381         (movdf): Ditto; correct alternatives check.
1382         (movmemhi): Fix predicate and constraint.
1383         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
1384
1385 2010-10-20  Richard Guenther  <rguenther@suse.de>
1386
1387         PR lto/45667
1388         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
1389         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
1390         (verify_gimple_assign_single): Disable ADDR_EXPR type check
1391         when in LTO.
1392
1393 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
1394
1395         PR fortran/42169
1396         * ira-emit.c (store_can_be_removed_p): Return false instead of
1397         gcc_unreachable.
1398
1399 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
1400
1401         * fold-const.c (fold_binary_loc): New transformation.
1402
1403 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
1404
1405         PR target/46085
1406         * config/i386/sse.md (reduc_splus_v8sf): Updated.
1407         (reduc_splus_v4df): Likewise.
1408
1409 2010-10-20  Richard Guenther  <rguenther@suse.de>
1410
1411         PR tree-optimization/45860
1412         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
1413         conditional store replacement for non-register type stores.
1414
1415 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
1416
1417         * stor-layout.c (skip_simple_constant_arithmetic): New function.
1418         (self_referential_size): Use it instead of skip_simple_arithmetic.
1419
1420 2010-10-20  Olivier Hainque  <hainque@adacore.com>
1421
1422         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
1423         If the current function calls eh_return, claim live all registers
1424         that we need to check for liveness otherwise.
1425
1426 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1427
1428         * c-decl.c (c_write_global_declarations): Call
1429         objc_write_global_declarations when compiling Objective-C.
1430         * c-lang.c (finish_file): Removed.
1431
1432 2010-10-19  DJ Delorie  <dj@redhat.com>
1433
1434         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
1435         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
1436         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
1437         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
1438         * doc/tm.texi: Regenerate.
1439         * targhooks.h (default_label_align_after_barrier_max_skip,
1440         default_loop_align_max_skip, default_label_align_max_skip,
1441         default_jump_align_max_skip): Declare.
1442         * target.def (label_align_after_barrier_max_skip): New.
1443         (loop_align_max_skip): New.
1444         (label_align_max_skip): New.
1445         (jump_align_max_skip): New.
1446         * system.h (poison): Add those macros to the list.
1447         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
1448         (LOOP_ALIGN_MAX_SKIP): Remove.
1449         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
1450         (JUMP_ALIGN_MAX_SKIP): Remove.
1451         (default_label_align_after_barrier_max_skip): New.
1452         (default_loop_align_max_skip): New.
1453         (default_label_align_max_skip): New.
1454         (default_jump_align_max_skip): New.
1455         (compute_alignments): Use the new hooks.
1456         (shorten_branches): Likewise.
1457
1458 2010-10-19  Richard Henderson  <rth@redhat.com>
1459
1460         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
1461         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
1462         (fma4i_fmadd_<mode>): New.
1463         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
1464         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
1465         standard fma patterns.
1466         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
1467         enable for FMA.
1468         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
1469         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
1470         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
1471
1472 2010-10-19  Paul Koning  <pkoning@equallogic.com>
1473
1474         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
1475         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
1476
1477 2010-10-19  Richard Henderson  <rth@redhat.com>
1478
1479         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
1480         (fmadf4, *fmsdf4, *nfmadf4): New.
1481         (fmaxf4, *fmsxf4, *nfmaxf4): New.
1482
1483 2010-10-19  Michael Eager  <eager@eagercon.com>
1484
1485         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
1486         Use sjlj unwind info for exceptions.
1487
1488 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
1489
1490         PR fortran/43414
1491         * dwarf2out.c (add_calling_convention_attribute): Flag main
1492         Fortran subroutine with DW_AT_main_subprogram.
1493
1494 2010-10-19  Nick Clifton  <nickc@redhat.com>
1495
1496         * config/rx/rx.c (rx_function_value): Small integer types are
1497         promoted to SImode.
1498         (rx_promote_function_mode): New function.
1499         (TARGET_PROMOTE_FUNCTION_MODE): Define.
1500
1501 2010-10-19  Nick Clifton  <nickc@redhat.com>
1502
1503         * config/mep/mep.c (mep_print_operand): Use
1504         targetm.strip_name_encoding.
1505         (mep_output_aligned_common): Likewise.
1506
1507 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
1508
1509         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
1510
1511 2010-10-18  Richard Henderson  <rth@redhat.com>
1512
1513         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
1514         (fma (neg a) (neg b) c) and (fma a (neg b) c).
1515
1516 2010-10-18  Richard Henderson  <rth@redhat.com>
1517
1518         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
1519         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
1520         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
1521         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
1522         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
1523         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
1524         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
1525         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
1526         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
1527         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
1528         (bdesc_multi_arg): Remove the corresponding builtins.
1529         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
1530         (UNSPEC_FMA4_FMSUBADD): Remove.
1531         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
1532         * config/i386/sse.md (FMA4MODEF4): Remove.
1533         (FMAMODE): Add.
1534         (fma<mode>4): New expander.
1535         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
1536         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
1537         (*fma4i_fmsub_<mode>): Similarly.
1538         (*fma4i_fnmadd_<mode>): Similarly.
1539         (*fma4i_fnmsub_<mode>): Similarly.
1540         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
1541         with the first operand.
1542         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
1543         of explicit arithmetic.  Macroize with AVXMODEF2P.
1544         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
1545         (xop_frcz<mode>2): Macroize with FMAMODE.
1546         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
1547         the first operand.
1548         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
1549         extra negations.
1550         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
1551         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
1552         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
1553         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
1554         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
1555         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
1556         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
1557         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
1558
1559 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
1560
1561         PR rtl-optimization/45966
1562         * combine.c (try_combine): If added_sets_2, deal with the case
1563         where i0 feeds i1 and i1 feeds i2.
1564
1565 2010-10-18  Jan Hubicka  <jh@suse.cz>
1566
1567         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
1568         preserve flags before trying to guess on visibility.
1569         (varpool_externally_visible_p): New function.
1570         (function_and_variable_visibility): Use it.
1571
1572 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1573
1574         Implemented parsing @synthesize and @dynamic for Objective-C.
1575         * c-parser.c (c_parser_external_declaration): Recognize
1576         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
1577         (c_parser_objc_at_synthesize_declaration): New.
1578         (c_parser_objc_at_dynamic_declaration): New.
1579
1580 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1581
1582         * c-parser.c (c_parser_objc_class_declaration): After finding an
1583         error, parse the whole declaration then reset parser->error.
1584
1585 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
1586
1587         PR target/46041
1588         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
1589         * builtins.c (mode_has_fma): Ditto.
1590
1591 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
1592
1593         PR target/36898
1594         PR middle-end/43760
1595         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
1596
1597 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
1598
1599         * config/i386/i386.c (ix86_option_override_internal): Define and
1600         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
1601         default.
1602         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1603         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
1604
1605 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1606
1607         Merge from 'apple/trunk' branch on FSF servers.
1608         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
1609         following Objective-C change:
1610
1611         2005-10-10  Fariborz Jahanian <fjahanian@apple.com>
1612
1613         Radar 4301047
1614         * c-parse.in (objc_quals): Build objc qualifier list same way
1615         as gcc-3.3
1616
1617 2010-10-18  Jan Hubicka  <jh@suse.cz>
1618
1619         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
1620         function_and_variable_visibility): Revert accidental commit.
1621
1622 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1623
1624         Merge from 'apple/trunk' branch on FSF servers.
1625         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
1626         the following Objective-C change:
1627
1628         2005-10-07  Fariborz Jahanian <fjahanian@apple.com>
1629
1630         Radar 4204796
1631         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
1632         'volatilized' type used in a typeof operator.
1633
1634 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
1635
1636         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
1637         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
1638         rewrite modelled on gimple_purge_dead_eh_edges.
1639         (gimple_purge_all_dead_abnormal_call_edges): New function.
1640         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
1641         directly instead of through gimple_purge_dead_abnormal_call_edges.
1642         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
1643         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
1644         removed AB side-effects from one of its statements.
1645         (init_pre): Initialize need_ab_cleanup.
1646         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
1647         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
1648
1649 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
1650
1651         PR c/46015
1652         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
1653         on computed goto argument.
1654
1655 2010-10-18  Richard Guenther  <rguenther@suse.de>
1656
1657         PR tree-optimization/45967
1658         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
1659         (could_have_pointers): Likewise.
1660         (handle_rhs_call, handle_const_call, handle_pure_call,
1661         find_func_aliases, intra_create_variable_infos): Remove calls to them.
1662         (struct fieldoff): Add must_have_pointers field.
1663         (type_must_have_pointers): New function.
1664         (field_must_have_pointers): Likewise.
1665         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
1666         Adjust field merging.
1667         (create_function_info_for): May-have-pointers of varinfo is
1668         almost always true.
1669         (create_variable_info_for_1): Likewise.
1670
1671 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
1672
1673         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
1674         of operands to vec_concat.
1675
1676 2010-10-18  Richard Guenther  <rguenther@suse.de>
1677
1678         PR lto/44950
1679         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
1680         also clear references to entries of it.
1681
1682 2010-10-18  Andi Kleen  <ak@linux.intel.com>
1683
1684         PR other/43448
1685         * gccbug.in: Remove.
1686         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
1687         (doc, distclean, install-common): Remove reference to gccbug.
1688         * configure: Regenerate.
1689         * configure.ac (all_outputs): Remove gccbug.
1690         * doc/configfiles.texi: Remove references to gccbug.
1691         * doc/sourcebuild.texi: Dito.
1692
1693 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
1694
1695         PR middle-end/46019
1696         * fold-const.c (fold_binary_loc): If integer_pow2p has
1697         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
1698
1699 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
1700             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1701
1702         * gengtype.c (verbosity_level): Add variable.
1703         (set_gc_used): Count variables for verbosity.
1704         (close_output_files): Backing up files, counting written ones
1705         verbosily.
1706         (write_types): Count emitted functions for verbosity. Added
1707         debug messages.
1708         (write_enum_defn): Count structures for verbosity. Added debug
1709         messages.
1710         (gengtype_long_options): Add "verbose" & "backupdir".
1711         (print_usage): Ditto.
1712         (main): Verbose display of parsed files.
1713
1714         * gengtype.h (verbosity_level): Add declaration.
1715
1716 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
1717
1718         * gengtype.c (parse_program_options): Add allocation of
1719         plugin_files, and correct test on nb_plugin_files.
1720
1721 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1722
1723         Merge from 'apple/trunk' branch on FSF servers.
1724
1725         2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
1726
1727         Radar 4133425
1728         * c-decl.c (undeclared_variable): Issue diagnostic on
1729         private 'ivar' access.
1730
1731 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
1732
1733         PR target/46051
1734         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
1735         generated sequence to match *avx_vperm2f128<mode>_nozero.
1736         (vec_interleave_lowv4df): Ditto.
1737         (vec_interleave_highv8sf): Ditto.
1738         (vec_interleave_lowv8sf): Ditto.
1739
1740 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
1741
1742         * libgcov.c (create_file_directory): Enable it for win32 case.
1743         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
1744         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
1745         (GCOV_PREFIX_SKIP): Likewise.
1746
1747 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1748
1749         * doc/objc.texi (GNU Objective-C runtime API): New section.
1750         (Modern GNU Objective-C runtime API): New section.
1751         (Traditional GNU Objective-C runtime API): New section.
1752         (Executing code before main): Mention that this section is
1753         specific to the GNU Objective-C runtime.
1754         (Garbage Collection): Same.
1755
1756 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
1757
1758         * c-parser.c (c_parser_for_statement): Move initialization of
1759         cond and incr before if.
1760
1761 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
1762
1763         * target.def (preferred_output_reload_class): New hook.
1764         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
1765         * doc/tm.texi: Regenerate.
1766         * targhooks.c (default_preferred_output_reload_class): New function.
1767         * targhooks.h (default_preferred_output_reload_class): Declare.
1768         * reload.c (find_dummy_reload): Change rclass argument type from
1769         enum reg_class to reg_class_t. Change this_alternative array type
1770         from enum reg_class to reg_class_t.
1771         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1772         (push_reload): Change preferred_class variable type to reg_class_t.
1773         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1774         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
1775         argument type from enum reg_class to reg_class_t. Use
1776         HARD_REGISTER_NUM_P predicate.
1777         * recog.h (reg_fits_class_p): Update prototype.
1778
1779         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1780         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
1781         Remove.
1782         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
1783         static. Change regclass argument and result types from enum reg_class
1784         to reg_class_t.
1785         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1786
1787 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
1788
1789         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
1790         visibility enum, and handle @package.
1791
1792 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1793
1794         * doc/objc.texi (What you can and what you cannot do in +load):
1795         Document that sending messages to constant string objects in +load
1796         is not guaranteed to work.
1797
1798 2010-10-16  Jan Hubicka  <jh@suse.cz>
1799
1800         PR middle-end/44206
1801         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
1802         existence of refrences before removing the function.
1803
1804 2010-10-16  Jan Hubicka  <jh@suse.cz>
1805
1806         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
1807         only_called_at_startup and only_called_at_exit.
1808         (cgraph_propagate_frequency): Compute only_called_at_startup and
1809         only_called_at_exit.
1810         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
1811         only_called_at_exit.
1812         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
1813         flags.
1814         * predict.c (compute_function_frequency): Initialize the new flags.
1815
1816 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
1817
1818         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
1819         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
1820         on the bounds of its domain.
1821         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
1822
1823 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
1824
1825         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
1826         * config/avr/avr-protos.h (preferred_reload_class): Remove.
1827         * config/avr/avr.c (preferred_reload_class): Remove.
1828         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
1829         * config/pa/pa.c (emit_move_sequence): Update comment
1830         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
1831         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
1832         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
1833         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
1834         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
1835         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
1836         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
1837         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
1838         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
1839         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
1840         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
1841         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
1842         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
1843
1844 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
1845
1846         * opts.c (set_fast_math_flags,
1847         set_unsafe_math_optimizations_flags): Make static.
1848         * toplev.h (set_fast_math_flags,
1849         set_unsafe_math_optimizations_flags): Remove prototypes.
1850
1851 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
1852
1853         * config/arm/arm.c (arm_option_optimization): Set
1854         flag_section_anchors to 1 not 2.
1855         * config/i386/i386.c (ix86_option_override_internal): Check
1856         global_options_set.x_flag_zee and
1857         global_options_set.x_flag_omit_frame_pointer.
1858         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
1859         flag_zee to 2.
1860         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
1861         global_options_set.x_flag_omit_frame_pointer.
1862         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
1863         opts->x_flag_section_anchors to 1 not 2.
1864         * config/sh/sh.c (sh_option_optimization): Don't set
1865         flag_schedule_insns to 2.
1866         (sh_option_override): Check
1867         global_options_set.x_flag_schedule_insns.
1868         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
1869
1870 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
1871
1872         * configure.ac: Make sure inhibit_libc remains false for mingw targets
1873         as cross.
1874         * configure: Regenerated.
1875
1876 2010-10-15  Xinliang David Li  <davidxl@google.com>
1877
1878         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
1879         function.
1880         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
1881         into a recursive function.
1882
1883 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
1884
1885         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
1886         (*movdfcc_1): ditto.
1887
1888 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1889
1890         * target.def (target_option.init_struct): New hook.
1891         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
1892         * doc/tm.texi: Regenerate.
1893         * hooks.c (hook_void_gcc_optionsp): New.
1894         * hooks.h (hook_void_gcc_optionsp): Declare.
1895         * langhooks-def.h (lhd_init_options_struct): Remove.
1896         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
1897         * langhooks.c (lhd_init_options_struct): Remove.
1898         * opts.c (init_options_struct): Also call
1899         targetm.target_option.init_struct.
1900         * config/i386/i386.c (ix86_option_init_struct,
1901         TARGET_OPTION_INIT_STRUCT): New.
1902         (ix86_option_optimization): Move some settings to
1903         ix86_option_init_struct.
1904         * config/pdp11/pdp11.c (pdp11_option_init_struct,
1905         TARGET_OPTION_INIT_STRUCT): New.
1906         (pdp11_option_optimization): Move some settings to
1907         pdp11_option_init_struct.
1908         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
1909         rs6000_option_init_struct.  Use options structure pointer.
1910         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
1911         * config/s390/s390.c (s390_option_init_struct,
1912         TARGET_OPTION_INIT_STRUCT): New.
1913         (s390_option_optimization): Don't set
1914         flag_asynchronous_unwind_tables here.
1915         * config/sh/sh.c (sh_option_init_struct,
1916         TARGET_OPTION_INIT_STRUCT): New.
1917         (sh_option_optimization): Don't set flag_finite_math_only here.
1918         * config/spu/spu.c (spu_option_optimization): Replace by
1919         spu_option_optimization.  Use options structure pointer.
1920         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
1921
1922 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1923
1924         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
1925
1926         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
1927         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
1928         (Standard names): Document fma.
1929
1930         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
1931         __FP_FAST_FMAF, __FP_FAST_FMAL.
1932
1933         * builitns.c (expand_builtin_mathfn_ternary): New function for
1934         expanding ternary math functions, like fma.
1935         (expand_builtin): Call it for the fma builtins.
1936
1937         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
1938         ops at present.
1939
1940         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
1941         vectorizable functions to support vectorizing fma.
1942
1943         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
1944         Handle fma builtins.
1945
1946         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
1947         (UNSPEC_VSX_MSUB): Ditto.
1948         (UNSPEC_VSX_NMADD): Ditto.
1949         (UNSPEC_VSX_NMSUB): Ditto.
1950         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
1951         of UNSPEC. Renumber combiner patterns.
1952         (vsx_fmsub<mode>4*): Ditto.
1953         (vsx_fnmadd<mode>4*): Ditto.
1954         (vsx_fnmsub<mode>4*): Ditto.
1955
1956         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
1957         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
1958         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
1959         (altivec_vmaddfp_1): Ditto.
1960         (altivec_vmaddfp_2): Ditto.
1961         (atlivec_mulv4sf3): Ditto.
1962         (altivec_vnmsubfp): Ditto.
1963         (altivec_vnmsubfp_1): Ditto.
1964         (altivec_vnmsubfp_2): Ditto.
1965         (altivec_vnmsubfp_3): Delete.
1966
1967         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
1968         (fmasf4_fpr): Ditto.
1969         (fmssf4_fpr): Ditto.
1970         (fnmasf4_fpr): Ditto.
1971         (fnmssf4_fpr): Ditto.
1972         (fmadf4): Ditto.
1973         (fmadf4_fpr): Ditto.
1974         (fmsdf4_fpr): Ditto.
1975         (fnmadf4_fpr): Ditto.
1976         (fnmsdf4_fpr): Ditto.
1977
1978         * optabs.h (OTI_fma): Add fma optab.
1979         (fma_optab): Ditto.
1980
1981         * genopinit.c (optabs): Set fma optab.
1982
1983         * rtl.def (FMA): Add FMA rtl.
1984
1985         * tree.h (mode_has_fma): New function to return if MODE supports a
1986         fast multiply and add instruction.
1987         * builtins.c (mode_has_fma): Ditto.
1988
1989 2010-10-15  Jan Hubicka  <jh@suse.cz>
1990
1991         * lto-streamer-out.c (write_symbol): Use pointer set of seen
1992         objects instead of bitmap.
1993         (produce_symtab): Likewise; output defined symbols first.
1994
1995 2010-10-15  Jie Zhang  <jie@codesourcery.com>
1996
1997         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
1998         Option Summary and Index.
1999
2000 2010-10-15  Richard Guenther  <rguenther@suse.de>
2001
2002         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
2003         for automatic variables again.
2004
2005 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2006
2007         * doc/extend.texi (Variable Length): Don't refer to VLAs not
2008         conforming to C99.
2009
2010 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2011
2012         * config/rx/rx.c (rx_option_optimization): Change to
2013         rx_override_options_after_change.  Don't change
2014         flag_lto_compression_level.  Don't check for changes to whether
2015         FPU instructions can be used.  Check and set only
2016         flag_finite_math_only, not other fast-math flags.
2017         (rx_option_override): Call rx_override_options_after_change.
2018         (TARGET_OPTION_OPTIMIZATION): Remove.
2019         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
2020
2021 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2022
2023         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
2024         disable section anchors for lang_hooks.name[4] != 'O'.
2025
2026 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2027
2028         * config/frv/frv.c (frv_option_optimization,
2029         TARGET_OPTION_OPTIMIZATION): Remove.
2030         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
2031
2032 2010-10-15  Michael Matz  <matz@suse.de>
2033
2034         * cgraphunit.c (clone_of_p): Define unconditionally.
2035
2036 2010-10-15  Richard Guenther  <rguenther@suse.de>
2037
2038         PR lto/45957
2039         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
2040
2041 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
2042
2043         * ifcvt.c (find_active_insn_before): New function.
2044         (find_active_insn_after): New function.
2045         (cond_exec_process_if_block): Use new functions to replace
2046         prev_active_insn() and next_active_insn().
2047
2048 2010-10-14  Yao Qi  <yao@codesourcery.com>
2049
2050         PR target/45447
2051         * config/arm/arm.c (arm_build_builtin_va_list): Assign
2052         va_list_name to TYPE_STUB_DECL (va_list_type).
2053
2054 2010-10-14  Jan Hubicka  <jh@suse.cz>
2055
2056         PR middle-end/45621
2057         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
2058         redirected to clone, be happy.
2059         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
2060         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
2061         former_clone_of unconditionally.
2062
2063 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
2064
2065         Merge from FSF apple 'trunk' branch.
2066         2006 Fariborz Jahanian <fjahanian@apple.com>
2067
2068         Radars 4436866, 4505126, 4506903, 4517826
2069         * c-parser.c (c_parser, objc_property_attr_context) New flag.
2070         (c_lex_one_token): Handle property attributes.
2071         (c_parser_external_declaration): Handle @property.
2072         (c_parser_declaration_or_fndef): Warn on invalid attributes before
2073         @alias, @class, @end and @property objc keywords.
2074         (c_parser_objc_methodprotolist): Handle @property.
2075         (c_parser_objc_property_attrlist): New.
2076         (c_parser_objc_at_property): New.
2077         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
2078         (build_modify_expr): Likewise.
2079
2080 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
2081
2082         PR tree-optimization/46008
2083         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
2084
2085 2010-10-14  Richard Guenther  <rguenther@suse.de>
2086
2087         PR tree-optimization/44913
2088         * tree-data-ref.c (disjoint_objects_p): Remove.
2089         (dr_may_alias_p): Simplify.  Only hand the base object to
2090         the alias-oracle.
2091         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2092         some more trees, bail out instead of asserting.
2093         (ptr_derefs_may_alias_p): Likewise.  Export.
2094         (refs_may_alias_p_1): Handle STRING_CSTs.
2095         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
2096
2097 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
2098
2099         PR c/45969
2100         * c-typeck.c (build_binary_op): Don't try to compute a semantic
2101         type with excess precision for boolean operations.
2102
2103 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
2104             Basile Starynkevitch  <basile@starynkevitch.net>
2105
2106         * gengtype.c:  Include getopt.h and version.h.
2107
2108         (lang_bitmap, struct outf, outf_p)
2109         (get_output_file_with_visibility, oprintf): Definitions moved to
2110         gengtype.h
2111         (output_files, header_file, srcdir, srcdir_len, this_file)
2112         (do_dump): No more static variables.
2113         (do_debug): New.
2114         (dbgprint_count_type_at): Added new function.
2115         (gengtype_long_options): New.
2116         (print_usage, print_version, parse_program_options): New.
2117         (main): Call parse_program_options, and removed old option
2118         handling code.  Added some debug output.
2119
2120         * gengtype.h:  Updated copyright year.
2121         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
2122         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
2123         Moved from gengtype.c to here.
2124         (do_debug, read_state_filename, write_state_filename): New variables.
2125         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
2126
2127         * Makefile.in:
2128         (REVISION): Always defined.
2129         (version.o): Removed ifdef REVISION_c.
2130         (s-gtype): Pass arguments to build/gengtype program.
2131         (build/version.o): Added building rule.
2132         (build/gengtype$(build_exeext)): Added build/version.o.
2133
2134 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
2135
2136         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
2137         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
2138         __strong macros.
2139
2140 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
2141
2142         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
2143         may_trap_or_fault_p instead of may_trap_p predicate.
2144         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
2145         (substitute_placeholder_in_expr): Likewise.
2146         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
2147         flag on MEM_REF nodes.
2148         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
2149         flags on INDIRECT_REF nodes.
2150
2151 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
2152
2153         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
2154         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
2155         (arm*-*-eabi*) <tm_file>: Likewise.
2156         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
2157         (frv-*-*linux*) <tm_file>: Likewise.
2158         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
2159         and associated helper macros.
2160         * config/frv/frv-abi.h: Delete.
2161
2162 2010-10-14  Richard Guenther  <rguenther@suse.de>
2163
2164         PR lto/44561
2165         * tree.def (NULLPTR_TYPE): New tree code.
2166         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
2167         * dwarf2out.c (is_base_type): Likewise.
2168         (gen_type_die_with_usage): Likewise.
2169         * sdbout.c (plain_type_1): Likewise.
2170         * tree.c (build_int_cst_wide): Likewise.
2171         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
2172
2173 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
2174
2175         * params.c (params_finished): New.
2176         (add_params): Assert !params_finished.
2177         (finish_params): New.
2178         (set_param_value_internal): Take params and params_set
2179         parameters.  Assert params_finished.
2180         (set_param_value, maybe_set_param_value): Take params and
2181         params_set parameters.  Update calls to set_param_value_internal.
2182         (set_default_param_value): Assert !params_finished.  Don't use
2183         set_param_value_internal.
2184         (default_param_value, init_param_values): New.
2185         * params.h (struct param_info): Change value to default_value.
2186         Remove set.
2187         (set_param_value, maybe_set_param_value): Add params and
2188         params_set parameters.
2189         (PARAM_VALUE): Get parameters from global_options.
2190         (PARAM_SET_P): Remove.
2191         (finish_params, default_param_value, init_param_values): New.
2192         * common.opt (param_values): New Variable.
2193         * config/arm/arm.c (arm_option_override): Pass extra arguments to
2194         maybe_set_param_value.
2195         * config/i386/i386.c (ix86_option_override_internal): Pass extra
2196         arguments to maybe_set_param_value.
2197         * config/picochip/picochip.c (picochip_option_override): Pass
2198         extra arguments to maybe_set_param_value.
2199         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
2200         extra arguments to maybe_set_param_value.
2201         * config/s390/s390.c (s390_option_override): Use
2202         maybe_set_param_value instead of set_param_value.  Pass extra
2203         arguments to maybe_set_param_value.
2204         * config/sparc/sparc.c (sparc_option_override): Pass extra
2205         arguments to maybe_set_param_value.
2206         * config/spu/spu.c (spu_option_override): Pass extra arguments to
2207         maybe_set_param_value.
2208         * opts.c (handle_param): Take opts and opts_set parameters.
2209         Update call to set_param_value.
2210         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
2211         initial_loop_invariant_max_bbs_in_loop): Remove.
2212         (init_options_once): Don't set them.
2213         (init_options_struct): Initialize parameters structures.
2214         (default_options_optimization): Use default_param_value when
2215         restoring defaults.  Update calls to maybe_set_param_value.
2216         (finish_options): Update calls to maybe_set_param_value.
2217         (common_handle_option): Update calls to handle_param and
2218         set_param_value.
2219         * toplev.c (DEFPARAM): Update definition for changes to param_info.
2220         (general_init): Call finish_params.
2221
2222 2010-10-14  Nick Clifton  <nickc@redhat.com>
2223
2224         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
2225         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
2226         (FIRST_PSEUDO_REGISTER): Increase by one.
2227         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
2228         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
2229         (MODES_TIEABLE): Call mn10300_modes_tieable.
2230         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
2231         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
2232         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
2233         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
2234         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
2235         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2236         (mn10300_cc_status_mdep): Delete.
2237         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
2238         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
2239         the combine-stack-adjust pass.
2240         (print_operand): Use the mode of the comparison operation to
2241         select the comparison suffix.
2242         (notice_update_cc): Delete.
2243         (mn10300_secondary_reload_class): Remove test for stack pointer
2244         based arithmetic.
2245         (output_tst): Rename to mn10300_output_cmp.
2246         (impossible_plus_operand): Move into predicates.md.
2247         (mn10300_legitimize_address): Make static.
2248         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
2249         constant pic operands.
2250         (mn10300_legitimate_constant_p): New function.
2251         (mn10300_case_values_threshold): Make static.
2252         (mn10300_hard_regno_mode_ok): New function.
2253         (mn10300_modes_tieable): New function.
2254         (mn10300_select_cc_mode): New function.
2255         * config/mn10300/predicates.md (impossible_plus_operand): Define.
2256         * config/mn10300/mn10300-protos.h: Tidy.
2257         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
2258         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
2259         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
2260         with clobbers or sets of CC_REG.
2261         (CC_REG): Define.
2262         (mov*): Remove use of CLR instruction.
2263         (cbranch_si4_<code>): New pattern/split.
2264         (integer_conditional_branch): New pattern.
2265         (cbranch_sf4_<code>): New pattern/split.
2266         (float_conditional_branch): New pattern.
2267         (casesi): Use addsi3 pattern instead of movsi pattern to add and
2268         move a value at the same time.
2269         (cc0 peepholes): Remove.
2270
2271 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
2272
2273         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
2274         on RTX_FRAME_RELATED_P insns and the insn to which
2275         NOTE_INSN_EPILOGUE_BEG is attached.
2276         * sched-vis.c (print_value): Allow NULL value.
2277
2278 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
2279
2280         PR rtl-optimization/45570
2281         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
2282         assert that we are pipelining outer loops.  Allow returning
2283         zero predecessors.
2284
2285 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
2286
2287         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
2288         (tidy_control_flow): Tidy vertical space.
2289         (sel_remove_bb): New variable idx.  Use it to remember the basic
2290         block index before deleting the block.
2291         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
2292         (sel_merge_blocks): ... here.
2293         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
2294
2295 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
2296
2297         * cse.c (is_dead_reg): Change into inline function that is not
2298         called through for_each_rtx.
2299         (set_live_p): Adjust caller.
2300         (insn_live_p): Don't reset DEBUG_INSNs here.
2301         (struct dead_debug_insn_data): New data.
2302         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
2303         (delete_trivially_dead_insns): If there is just one setter for the
2304         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
2305         and add DEBUG_INSN for it right before the removed setter and
2306         use the DEBUG_EXPR instead of the dead pseudo.
2307
2308 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
2309
2310         * et-forest.c (et_nca): Return NULL immediately when
2311         the dominance forest has disjoint components.
2312
2313 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
2314
2315         * ira.c (setup_class_hard_regs): Fix typo in indexing
2316         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
2317
2318 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
2319
2320         * graph.c (inbb): New variable.
2321         (start_bb): Set inbb to 1 if output is inside of a building block.
2322         (end_bb): Check if output is inside of a building block.
2323
2324 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
2325
2326         PR rtl-optimization/45912
2327         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
2328         regno of registers instead of their index to compute the alignment.
2329
2330 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
2331
2332         * config/i386/i386.c (ix86_build_const_vector): Check vector
2333         mode instead of scalar mode.
2334         (ix86_build_signbit_mask): Likewise.
2335         (ix86_expand_fp_absneg_operator): Updated.
2336         (ix86_expand_copysign): Likewise.
2337         (ix86_expand_int_vcond): Likewise.
2338         (ix86_emit_swdivsf): Likewise.
2339         (ix86_sse_copysign_to_positive): Likewise.
2340         (ix86_expand_sse_fabs): Likewise.
2341         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
2342         * config/i386/sse.md (copysign<mode>3): Likewise.
2343         (sse2_cvtudq2ps): Likewise.
2344         (vec_unpacku_float_hi_v4si): Likewise.
2345         (vec_unpacku_float_lo_v4si): Likewise.
2346
2347         * config/i386/i386.c (ix86_builtins): Add
2348         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
2349         (bdesc_args): Likewise.
2350         (ix86_builtin_vectorized_function): Support
2351         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
2352         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
2353         and IX86_BUILTIN_CVTPS2DQ256.
2354         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
2355
2356         * config/i386/sse.md (STORENT_MODE): New.
2357         (VEC_FLOAT_MODE): Likewise.
2358         (VEC_EXTRACT_MODE): Likewise.
2359         (*avx_cvtdq2pd256_2): Likewise.
2360         (vec_pack_trunc_v4df): Likewise.
2361         (vec_interleave_highv8sf): Likewise.
2362         (vec_interleave_lowv8sf): Likewise.
2363         (storent<mode>): Macroized.
2364         (<code><mode>2: absneg): Likewise.
2365         (copysign<mode>3): Likewise.
2366         (vec_extract<mode>): Likewise.
2367
2368         PR target/44180
2369         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
2370         for V8SFmode.
2371
2372 2010-10-13  Richard Guenther  <rguenther@suse.de>
2373             H.J. Lu  <hongjiu.lu@intel.com>
2374
2375         * config/i386/sse.md (reduc_splus_v8sf): Add.
2376         (reduc_splus_v4df): Likewise.
2377         (vec_unpacks_hi_v8sf): Likewise.
2378         (vec_unpacks_lo_v8sf): Likewise.
2379         (*avx_cvtps2pd256_2): Likewise.
2380         (vec_unpacks_float_hi_v8si): Likewise.
2381         (vec_unpacks_float_lo_v8si): Likewise.
2382         (vec_interleave_highv4df): Likewise.
2383         (vec_interleave_lowv4df): Likewise.
2384
2385 2010-10-13  Richard Guenther  <rguenther@suse.de>
2386
2387         PR objc/45878
2388         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
2389         alone if there are no virtual methods.
2390
2391 2010-10-13  Richard Henderson  <rth@redhat.com>
2392
2393         * expr.c (build_personality_function): Take parameter LANG instead
2394         of parameter NAME.  Build the name based on the lang prefix and the
2395         unwind method in use.
2396         * tree.c (lhd_gcc_personality): Update call to
2397         build_personality_function.
2398
2399 2010-10-13  Richard Guenther  <rguenther@suse.de>
2400
2401         PR objc/45878
2402         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
2403
2404 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
2405
2406         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
2407         Canonicalize input operands of ASM_OPERANDS insns.
2408
2409 2010-10-13  Richard Guenther  <rguenther@suse.de>
2410
2411         PR tree-optimization/45788
2412         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
2413         EH update until fixup-cfg.
2414
2415 2010-10-13  Julian Brown  <julian@codesourcery.com>
2416
2417         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
2418         from CORE_REGS and GENERAL_REGS classes.
2419         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
2420         final constraint for register preferencing.
2421
2422 2010-10-13  Richard Guenther  <rguenther@suse.de>
2423
2424         PR tree-optimization/45970
2425         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
2426         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
2427         (stmt_kills_ref_p): Likewise.
2428         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
2429
2430 2010-10-13  Richard Guenther  <rguenther@suse.de>
2431
2432         PR tree-optimization/45982
2433         * tree-ssa-structalias.c (make_constraints_to): New function.
2434         (make_constraint_to): Implement in terms of make_constraints_to.
2435         (find_func_aliases): Properly make return values of pure/const
2436         functions escape if they assign to sth that is not a pointer.
2437
2438 2010-10-13  Richard Guenther  <rguenther@suse.de>
2439
2440         PR middle-end/45874
2441         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
2442         Fixup the CFG when EH was fixed up.
2443
2444 2010-10-13  Ira Rosen  <irar@il.ibm.com>
2445
2446         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
2447         Use operand's type for POINTER_PLUS_EXPR.
2448
2449 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
2450
2451         * c-parser.c (c_parser_for_statement): Initialize incr.
2452
2453 2010-10-12  Xinliang David Li  <davidxl@google.com>
2454
2455         PR tree-optimization/45972
2456         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
2457         with too many arguments.
2458
2459 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
2460
2461         PR fortran/45636
2462         * tree-ssa-forwprop.c: Include expr.h.
2463         (constant_pointer_difference, simplify_builtin_call): New functions.
2464         (tree_ssa_forward_propagate_single_use_vars): Call
2465         simplify_builtin_call on builtin calls.
2466
2467 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
2468
2469         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
2470         (*adddi3_extend_sp32): Likewise.
2471         (*subdi3_insn_sp32): Likewise.
2472         (*subdi3_extend_sp32): Likewise.
2473         (*negdi2_sp32): Use negative test for consistency.
2474
2475 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
2476
2477         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
2478         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2479         * config/fixed-bit.h: Likewise.
2480         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2481         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2482         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
2483         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
2484         (DF_SIZE): Likewise.
2485         * doc/tm.texi: Regenerate.
2486
2487 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
2488
2489         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
2490         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
2491         (*isel_reversed_unsigned_<mode>): New.
2492         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
2493         as valid comparisons and adjust operands and output appropriately.
2494         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
2495
2496 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
2497
2498         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
2499         DATA_ALIGNMENT and add COND parameter. Update comments above.
2500         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
2501         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
2502
2503 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
2504
2505         PR bootstrap/45958
2506         * exec-tool.in: Support '-plugin' as the second option to the linker.
2507
2508 2010-10-12  Richard Henderson  <rth@redhat.com>
2509
2510         PR middle-end/45962
2511         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
2512         (expand_stack_vars): Assert large base allocated when used.
2513
2514 2010-10-12  Richard Guenther  <rguenther@suse.de>
2515
2516         * tree-ssa-structalias.c (get_constraint_for_1): Constants
2517         only point to nonlocal, not anything.
2518
2519 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
2520
2521         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
2522         unwind info for exceptions.
2523
2524 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2525
2526         PR testsuite/45851
2527         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
2528         Document optional target selector.
2529
2530 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
2531
2532         * flag-types.h: New.
2533         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
2534         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
2535         options.h.
2536         (OPTIONS_H): Define.
2537         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
2538         of options.h.
2539         * configure.ac (tm_include_list): Include options.h not flags.h.
2540         * configure: Regenerate.
2541         * flags.h: Include flag-types.h.  Include options.h at top of file
2542         again.
2543         (enum debug_info_type, enum debug_info_level, enum
2544         debug_info_usage, enum symbol_visibility, struct visibility_flags,
2545         enum ira_algorithm, enum ira_region, enum excess_precision, enum
2546         graph_dump_types, enum stack_check_type,
2547         enum warn_strict_overflow_code): Move to flag-types.h
2548         * opth-gen.awk: Include flag-types.h in options.h.
2549
2550 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
2551
2552         * expr.c (store_expr): Share code for STRING_CST and
2553         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
2554         check if target is a MEM.
2555
2556         * rtl.h: Include hashtab.h.
2557         (iterative_hash_rtx): New prototype.
2558         * rtl.c (iterative_hash_rtx): New function.
2559         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
2560         (output_loc_list): Return immediately if emitted is set, set it.
2561         (hash_loc_operands, hash_locs, hash_loc_list,
2562         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
2563         optimize_location_lists_1, optimize_location_lists): New function.
2564         (dwarf2out_finish): Call optimize_location_lists.
2565         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
2566
2567 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2568
2569         PR testsuite/45974
2570         Revert:
2571         * Makefile.in ($(lang_checks_parallel))
2572         ($(lang_checks_parallelized)): Use single quotes for
2573         $(RUNTESTFLAGS), to allow passing quoted content.
2574
2575 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2576
2577         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
2578         actual_oldval.  Use __builtin_expect.
2579         (SUBWORD_VAL_CAS): Likewise.
2580
2581 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
2582
2583         * recog.c (nonmemory_operand): Call immediate_operand for
2584         CONSTANT_P operands.
2585
2586 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
2587
2588         * config/i386/i386.md (movmem<mode>): Macroize expander from
2589         movmem{si,di} using SWI48 mode iterator.
2590         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
2591         *strmovsi_rex_1 using P mode iterator.
2592         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
2593         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
2594         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
2595         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
2596         (setmem<mode>): Macroize expander from setmem{si,di} using
2597         SWI48 mode iterator.
2598         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
2599         *strsetsi_rex_1 using P mode iterator.
2600         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
2601         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
2602         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
2603         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
2604         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
2605         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
2606         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
2607         mode iterator.
2608         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
2609         *strlenqi_rex_1 using P mode iterator.
2610
2611 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
2612
2613         PR bootstrap/45445
2614         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
2615         static functions.
2616         (mark_ref_live, mark_ref_dead): Use them.
2617         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
2618         Save the original reg, and use the new functions.
2619         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
2620         changed.
2621         (check_and_make_def_conflict): Save the original reg.
2622
2623 2010-10-11  Martin Jambor  <mjambor@suse.cz>
2624
2625         PR middle-end/45699
2626         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
2627         thunks.
2628
2629 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2630
2631         * Makefile.in ($(lang_checks_parallel))
2632         ($(lang_checks_parallelized)): Use single quotes for
2633         $(RUNTESTFLAGS), to allow passing quoted content.
2634
2635         PR bootstrap/35855
2636         * opt-functions.awk (BEGIN): New section.
2637         (lower, upper, digit, alnum): New variables.
2638         (static_var, opt_sanitized_name): Use alnum instead of character
2639         classes, for non-C locale.
2640         * optc-gen.awk: Likewise.
2641         * opth-gen.awk: Likewise.
2642
2643 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
2644
2645         * target.def (preferred_reload_class): New hook.
2646         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
2647         * doc/tm.texi: Regenerate.
2648         * targhooks.c (default_preferred_reload_class): New function.
2649         * targhooks.h (default_preferred_reload_class): Declare.
2650         * reload.c (find_dummy_reload): Change preferred_class variable type
2651         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
2652         target hook.
2653         (find_reloads): Change goal_alternative array type from int to
2654         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
2655         (push_reload, find_reloads_address_part): Use
2656         TARGET_PREFERRED_RELOAD_CLASS target hook.
2657         * reload1.c (emit_input_reload_insns): Ditto.
2658         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
2659         hook. Change rclass argument and secondary_class variable types from
2660         'enum reg_class' to reg_class_t.
2661
2662         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
2663         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
2664         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
2665         Change regclass argument and result types from enum reg_class to
2666         reg_class_t.
2667         (TARGET_PREFERRED_RELOAD_CLASS): Define.
2668
2669 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
2670
2671         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
2672         in masking operations.
2673         (simplify_const_unary_operation): Likewise.
2674         (simplify_binary_operation_1): Likewise.
2675         (simplify_const_binary_operation): Likewise.
2676         (simplify_const_relational_operation): Likewise.
2677         (simplify_ternary_operation): Likewise.
2678         (simplify_immed_subreg): Likewise.
2679
2680 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2681
2682         PR middle-end/45862
2683         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
2684         (TARGET_SUPPORTS_WEAK): New.
2685         * doc/tm.texi: Regenerate.
2686         * defaults.h (SUPPORTS_WEAK): Update comment.
2687         (TARGET_SUPPORTS_WEAK): New.
2688         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
2689         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
2690         SUPPORTS_WEAK.
2691         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
2692         make_decl_one_only): Likewise.
2693         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
2694         TARGET_SUPPORTS_WEAK.
2695         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
2696         instead of SUPPORTS_WEAK.
2697
2698 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2699
2700         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
2701
2702 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
2703
2704         * vec.h (VEC_qsort): Define.
2705         * dbxout.c (output_used_types): Use it.
2706         * df-scan.c (df_sort_and_compress_refs): Likewise.
2707         (df_sort_and_compress_mws): Likewise.
2708         * genautomata.c (uniq_sort_alt_states): Likewise.
2709         (evaluate_equiv_classes): Likewise.
2710         (output_trans_table): Likewise.
2711         (output_state): Likewise.
2712         * gimplify.c (compare_case_labels): Likewise.
2713         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
2714         * ipa.c (build_cdtor_fns): Likewise.
2715         * lto.c (lto_wpa_write_files): Likewise.
2716         * sel-sched.c (fill_vec_av_set): Likewise.
2717         * tree-predcom.c (determine_roots_comp): Likewise.
2718         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
2719         (splice_param_accesses): Likewise.
2720         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
2721         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
2722         (reassociate_bb): Likewise.
2723         * tree-ssa-sccvn.c (sort_scc): Likewise.
2724         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
2725
2726 2010-10-11  Ian Lance Taylor  <iant@google.com>
2727
2728         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
2729         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
2730         TREE_THIS_NOTRAP when appropriate.
2731         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
2732         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
2733         newly created MEM_REF.
2734
2735 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
2736
2737         Nathan Froyds patch to hooks FUNCTION_ARG etc.
2738         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
2739         (picochip_incoming_function_arg): Delete.
2740         (picochip_arg_advance): Delete.
2741         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
2742         (FUNCTION_INCOMING_ARG): Delete.
2743         (FUNCTION_ARG_ADVANCE): Delete.
2744         * config/picochip/picochip.c (picochip_function_arg): Take a
2745         const_tree and a bool.
2746         (picochip_incoming_function_arg): Likewise.
2747         (picochip_arg_advance): Likewise.
2748         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2749         (TARGET_FUNCTION_ARG_ADVANCE): Define.
2750
2751 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2752
2753         PR middle-end/45955
2754         * ipa.c (build_cdtor): Delete endless loop.
2755
2756 2010-10-07  Andi Kleen  <ak@linux.intel.com>
2757
2758         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
2759         checksum-options.
2760         (checksum-options): Add.
2761         (cc1-dummy): Remove.
2762         (cc1-checksum): Change to run checksum over object files
2763         and options only.
2764         * dummy-checksum.c: Remove.
2765         * genchecksum.c: Update copyright.
2766         (usage): Allow multiple arguments.
2767         (BLOCKSIZE): Add.
2768         (dosum): Change for incremental checksum. Remove C output.
2769         (main): Iterate over all argument files. Add C output.
2770
2771 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
2772
2773         * params.c (set_param_value_internal): New.
2774         (set_param_value): Use set_param_value_internal.
2775         (maybe_set_param_value, set_default_param_value): New.
2776         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
2777         (maybe_set_param_value, set_default_param_value): Declare.
2778         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
2779         * config/i386/i386.c (ix86_option_override_internal): Use
2780         maybe_set_param_value.
2781         * config/ia64/ia64.c (ia64_option_default_params,
2782         TARGET_OPTION_DEFAULT_PARAMS): New.
2783         (ia64_option_optimization): Move some code to
2784         ia64_option_default_params.
2785         * config/picochip/picochip.c (picochip_option_override): Use
2786         maybe_set_param_value.
2787         * config/rs6000/rs6000.c (rs6000_option_default_params,
2788         TARGET_OPTION_DEFAULT_PARAMS): New.
2789         (rs6000_option_override_internal): Use maybe_set_param_value.
2790         (rs6000_option_optimization): Move some code to
2791         rs6000_option_default_params.
2792         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
2793         * config/sh/sh.c (sh_option_default_params,
2794         TARGET_OPTION_DEFAULT_PARAMS): New.
2795         (sh_option_optimization): Move some code to sh_option_default_params.
2796         * config/sparc/sparc.c (sparc_option_override): Use
2797         maybe_set_param_value.
2798         * config/spu/spu.c (spu_option_default_params,
2799         TARGET_OPTION_DEFAULT_PARAMS): New.
2800         (spu_option_optimization): Move some code to spu_option_default_params.
2801         (spu_option_override): Use maybe_set_param_value.
2802         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
2803         * doc/tm.texi: Regenerate.
2804         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
2805         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
2806         compiler_params.
2807         (default_options_optimization): Use maybe_set_param_value.
2808         (finish_options): Use maybe_set_param_value.
2809         * target.def (target_option.default_params): New hook.
2810         * toplev.c (general_init): Call targetm.target_option.default_params.
2811
2812 2010-10-11  Ira Rosen  <irar@il.ibm.com>
2813
2814         PR tree-optimization/45902
2815         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
2816         vector type for constants, unless it's a pointer.
2817
2818 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2819
2820         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
2821
2822 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
2823
2824         PR target/45870
2825         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
2826         (ix86_delegitimize_address): Use it.
2827
2828 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
2829
2830         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
2831
2832 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
2833
2834         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
2835         to cum struct in the call to function_arg_advance.
2836         (alpha_function_arg_advance): Mark named as unused.
2837
2838 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
2839
2840         * config/mips/mips.c (mips_handle_option): Make "value" with
2841         ATTRIBUTE_UNUSED.
2842
2843 2010-10-09  Richard Henderson  <rth@redhat.com>
2844
2845         PR rtl-opt/33721
2846         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
2847         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
2848         required_align, tidy the code a bit.  Emit split_stack code in the
2849         right place.  Mark the return value with the alignment properly.
2850         * expr.h (allocate_dynamic_stack_space): Update decl.
2851         * builtins.c (expand_builtin_apply): Update call to
2852         allocate_dynamic_stack_space.
2853         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
2854         * calls.c (initialize_argument_information): Update call to
2855         allocate_dynamic_stack_space.
2856         (expand_call): Likewise.
2857
2858         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
2859         Don't update_stack_alignment here.
2860         (alloc_stack_frame_space): Make ALIGN unsigned.
2861         (stack_var_cmp): Sort by alignment too.
2862         (partition_stack_vars): Don't merge large and small alignment vars.
2863         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
2864         Take care when BASE is not virtual_stack_vars_rtx.
2865         (expand_stack_vars): Allocate dynamic stack space for large
2866         alignment variables.
2867         (expand_one_stack_var): Update all to expand_one_stack_var_at.
2868         (defer_stack_allocation): True for large alignment vars.
2869         (update_stack_alignment): Merge into ...
2870         (expand_one_var): ... here.
2871         (gimple_expand_cfg): Place code from expand_stack_vars.
2872
2873 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2874
2875         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2876         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
2877         (pdp11_function_arg_advance): New function.
2878         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2879
2880 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2881
2882         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
2883         * libgcc2.c: Likewise.
2884
2885 2010-10-09  Richard Guenther  <rguenther@suse.de>
2886
2887         PR lto/45956
2888         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
2889         Properly check if a decl is an automatic var.
2890
2891 2010-10-09  Richard Guenther  <rguenther@suse.de>
2892
2893         PR lto/45947
2894         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
2895
2896 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2897
2898         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
2899         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2900         * config/mmix/mmix.c (mmix_function_arg): Rename to...
2901         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
2902         bool arguments.
2903         (mmix_function_arg): New function.
2904         (mmix_function_incoming_arg): New function.
2905         (mmix_function_arg_advance): New function.
2906         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2907         (TARGET_FUNCTION_ARG_ADVANCE): Define.
2908
2909 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2910
2911         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2912         * config/vax/vax.c (vax_function_arg): New function.
2913         (vax_function_arg_advance): New function.
2914         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2915
2916 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2917
2918         * config/pa/pa-protos.h (function_arg): Delete.
2919         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2920         * config/pa/pa.c (function_arg): Rename to...
2921         (pa_function_arg): ...this.  Make static.  Take a const_tree and
2922         a bool.
2923         (pa_function_arg_advance): New function.
2924         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2925
2926 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2927
2928         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2929         * config/m68k/m68k.c (m68k_function_arg): New function.
2930         (m68k_function_arg_advance): New function.
2931         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2932
2933 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2934
2935         * config/avr/avr-protos.h (function_arg): Delete.
2936         (function_arg_advance): Delete.
2937         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2938         * config/avr/avr.c (function_arg): Rename to...
2939         (avr_function_arg): ...this.  Make static.  Take a const_tree and
2940         a bool.
2941         (function_arg_advance): Rename to...
2942         (avr_function_arg_advance): ...this.  Make static.  Take a
2943         const_tree and a bool.
2944         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2945
2946 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2947
2948         * config/alpha/alpha-protos.h (function_arg): Delete.
2949         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2950         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
2951         * config/alpha/alpha.c (function_arg): Rename to...
2952         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
2953         a bool.  Delete TARGET_ABI_UNICOSMK code.
2954         (alpha_function_arg_advance): New function.
2955         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2956
2957 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2958
2959         * config/mep/mep-protos.h (mep_function_arg): Delete.
2960         (mep_function_arg_advance): Delete.
2961         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2962         * config/mep/mep.c (mep_function_arg): Make static.  Take a
2963         const_tree and a bool.
2964         (mep_function_arg_advance): Likewise.
2965         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2966
2967 2010-10-09  Richard Guenther  <rguenther@suse.de>
2968
2969         PR tree-optimization/45945
2970         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
2971
2972 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
2973
2974         PR tree-optimization/45612
2975         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
2976         Test LABEL_DECLs as well.  Fix formatting issues.
2977         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
2978         whose label is present in NON_SSA_VARS.
2979         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
2980         as well.  Fix formatting issues.
2981         (visit_bb): Fix typos and formatting issue.
2982
2983 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2984
2985         PR tree-optimization/45950
2986         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
2987         before initializing vno->op.
2988
2989 2010-10-09  Ralf Corsépius <ralf.corsepius@rtems.org>
2990
2991         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
2992         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
2993
2994 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
2995
2996         PR target/45913
2997         * config/i386/i386.c (ix86_binary_operator_ok): Support
2998         "andhi/andsi/anddi" as a zero-extending move.
2999
3000 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3001
3002         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
3003         into a temporary array.
3004
3005 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
3006
3007         PR tree-optimization/45903
3008         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
3009         of {A,L}SHIFTRT of MEM.
3010
3011 2010-10-08  Richard Guenther  <rguenther@suse.de>
3012
3013         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
3014         Re-construct BLOCK_VARS.
3015         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
3016         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
3017         * tree.c (free_lang_data_in_block): Remove.
3018         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
3019         Do not touch the BLOCK tree.
3020         * expr.c (expand_expr_real_1): Allow externals.
3021
3022 2010-10-08  Richard Guenther  <rguenther@suse.de>
3023
3024         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
3025         Do not output BLOCK_SUBBLOCKS.
3026         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
3027         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
3028         Re-construct BLOCK_SUBBLOCKS of parent block.
3029         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
3030         for BINFO_BASE_ACCESSES.
3031
3032 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
3033
3034         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
3035         (TREE_H): Include $(FLAGS_H) instead of options.h.
3036         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
3037         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
3038         * common.opt (flag_complex_method, flag_evaluation_order,
3039         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
3040         Variable declarations.
3041         * configure.ac (tm_include_list): Include flags.h instead of options.h.
3042         * configure: Regenerate.
3043         * flags.h: Condition out contents for target libraries.  Include
3044         options.h at end of file.
3045         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
3046         flag_evaluation_order, flag_warn_unused_result): Remove.
3047         * gcc.c (main): Intialize global_options with global_options_init.
3048         * langhooks-def.h (lhd_init_options_struct): Declare.
3049         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
3050         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
3051         * langhooks.c (lhd_init_options_struct): New.
3052         * langhooks.h (struct lang_hooks): Add init_options_struct.
3053         Update comment on init_options.
3054         * optc-gen.awk: Generate initializer for global_options_init, not
3055         global_options.
3056         * opth-gen.awk: Condition out structure declarations for target
3057         libraries.  Declare global_options_init.
3058         * opts-common.c: Include flags.h instead of options.h.
3059         * opts.c (flag_warn_unused_result): Remove.
3060         (read_cmdline_options): Take gcc_options parameters.  Pass them to
3061         read_cmdline_option.
3062         (initial_lang_mask, initial_min_crossjump_insns,
3063         initial_max_fields_for_field_sensitive,
3064         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
3065         (init_options_once): New.  Split out of decode_options.
3066         (init_options_struct): New.  Split out of decode_options.
3067         (decode_cmdline_options_to_array_default_mask): New.
3068         (default_options_optimization): New.  Split out of decode_options.
3069         (decode_options): Move most code to other functions.  Update call
3070         to read_cmdline_options.
3071         (finish_options): New.  Split out of decode_options.
3072         * opts.h (decode_options): Add gcc_options parameters.
3073         (init_options_once, init_options_struct,
3074         decode_cmdline_options_to_array_default_mask): New.
3075         * toplev.c (flag_complex_method, flag_ira_algorithm,
3076         flag_ira_region, flag_evaluation_order): Remove.
3077         (general_init): Use global_options_init for initial flag values
3078         for global_dc.
3079         (toplev_main): Call init_options_once, init_options_struct,
3080         lang_hooks.init_options_struct,
3081         decode_cmdline_options_to_array_default_mask and
3082         lang_hooks.init_option before decode_options.  Update arguments to
3083         decode_options.
3084         * tree.h: Include flags.h instead of options.h.
3085
3086 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3087
3088         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3089
3090 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3091
3092         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
3093         Delete.
3094         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
3095         (FUNCTION_INCOMING_ARG): Delete.
3096         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
3097         (function_arg_slotno): Likewise.  Take bool arguments.
3098         (sparc_arg_partial_bytes): Update call to it.
3099         (function_arg): Rename to...
3100         (sparc_function_arg_1): ...this.  Take bool arguments.
3101         (sparc_function_arg, sparc_function_incoming_arg): New functions.
3102         (function_arg_advance): Rename to...
3103         (sparc_function_arg_advance): ...this.  Take bool argument.
3104         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
3105         (TARGET_FUNCTION_INCOMING_ARG): Define.
3106
3107 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3108
3109         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
3110         Delete.
3111         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3112         * config/bfin/bfin.c (function_arg_advance): Rename to...
3113         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
3114         and bool arguments.
3115         (function_arg): Rename to...
3116         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
3117         arguments.
3118         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3119
3120 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3121
3122         * config/score/score-protos.h (score_function_arg): Delete.
3123         (score_function_arg_advance): Delete.
3124         * config/score/score3.h (score3_function_arg_advance): Take a
3125         const_tree and a bool.
3126         (score3_function_arg): Likewise.
3127         * config/score/score7.h (score7_function_arg_advance): Likewise.
3128         (score7_function_arg): Likewise.
3129         * config/score/score3.c (score3_classify_arg): Likewise.
3130         (score3_function_arg_advance, score3_function_arg): Likewise.
3131         * config/score/score7.c (score7_classify_arg): Likewise.
3132         (score7_function_arg_advance, score7_function_arg): Likewise.
3133         * config/score/score.c (score_function_arg_advance): Likewise.
3134         (score_function_arg): Likewise.  De-const-ify `cum' argument.
3135         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3136
3137 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3138
3139         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
3140         (s390_function_arg): Delete.
3141         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3142         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
3143         (s390_function_arg_integer): Likewise.
3144         (s390_function_arg_advance): Make static.  Take a const_tree and
3145         a bool.
3146         (s390_function_arg): Likewise.
3147         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3148
3149 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3150
3151         * config/spu/spu-protos.h (spu_function_arg): Delete.
3152         * config/spu/spu.h (FUNCTION_ARG): Delete.
3153         (FUNCTION_ARG_ADVANCE): Move code to ...
3154         * config/spu/spu.c (spu_function_arg_advance): New function.
3155         (spu_function_arg): Make static.  Take a const_tree and a bool.
3156         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
3157         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3158
3159 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3160
3161         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3162
3163 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3164
3165         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
3166         (init_vn_nary_op_from_op): New function.
3167         (init_vn_nary_op_from_stmt): New function.
3168         (vn_nary_op_lookup_1): New function.
3169         (sizeof_vn_nary_op): New function.
3170         (alloc_vn_nary_op_noinit): New function.
3171         (alloc_vn_nary_op): New function.
3172         (vn_nary_op_insert_into): New function.
3173         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
3174         (vn_nary_op_lookup): Likewise.
3175         (vn_nary_op_lookup_stmt): Likewise.
3176         (vn_nary_op_insert_pieces): Likewise.
3177         (vn_nary_op_insert): Likewise.
3178         (vn_nary_op_insert_stmt): Likewise.
3179         (copy_nary): Likewise.
3180         (set_value_id_for_result): New function.
3181         (set_hashtable_value_ids): Call it.
3182
3183 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3184
3185         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3186         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
3187
3188 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3189
3190         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
3191         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3192
3193 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
3194
3195         PR debug/45656
3196         * cse.c (cse_extended_basic_block): Preserve cc0 info across
3197         debug isnsn.  Skip them when searching for cc0 setter.
3198         (set_live_p): Skip debug insns when searching for cc0 user.
3199
3200 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
3201
3202         PR debug/45673
3203         PR debug/45604
3204         PR debug/45419
3205         PR debug/45408
3206         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
3207         type of MEM_REFs to INTEGER_CSTs.
3208
3209 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
3210
3211         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
3212         m68hc11_print_operand_address.
3213
3214 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
3215
3216         * builtins.c (rewrite_call_expr): Move code to...
3217         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
3218         (rewrite_call_expr_array): New function.
3219         (fold_builtin_sprintf_chk_1): New function.
3220         (fold_builtin_sprintf_chk): Call it.
3221         (gimple_fold_builtin_sprintf_chk): Likewise.
3222         (fold_builtin_snprintf_chk_1): New function.
3223         (fold_builtin_snprintf_chk): Call it.
3224         (gimple_fold_builtin_snprintf_chk): Likewise.
3225         (gimple_rewrite_call_expr): Delete.
3226
3227 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
3228
3229         * config.host: Update copyright year.
3230
3231 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
3232
3233         * config.host (host_lto_plugin_soname): New shell variable.
3234         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
3235         * config.in: Regenerate.
3236         * configure: Regenerate.
3237         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
3238         LTO plugin shared library.
3239
3240 2010-10-07  Richard Henderson  <rth@redhat.com>
3241
3242         * target.h (enum unwind_info_type): Move ...
3243         * coretypes.h: ... here.
3244
3245 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
3246
3247         * doc/objc.texi (Fast enumeration protocol): Mention that
3248         'unsigned int' can also be used instead of 'unsigned long' in
3249         countByEnumeratingWithState:objects:count:.
3250
3251 2010-10-07  Martin Jambor  <mjambor@suse.cz>
3252
3253         * tree-sra.c (struct access): New field grp_assignment_write.
3254         (dump_access): Dump grp_assignment_write.
3255         (build_accesses_from_assign): Set grp_assignment_write.
3256         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
3257         (mark_read_status): Renamed to mark_rw_status, individual values
3258         renamed too.
3259         (analyze_access_subtree): Changed type of mark_write to
3260         mark_read_status.  Fixed propagating of mark_read and
3261         mark_write.  Changed benefit estimate.  Updated comment.
3262
3263 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
3264
3265         PR Tree-Vect/45847
3266         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
3267         check for vectype_out returned by get_vectype_for_scalar_type().
3268
3269 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
3270
3271         PR target/45805
3272         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
3273         constraint, add register specifier in instruction template.
3274         (neon_vec_pack_trunc_<mode>): Likewise.
3275         (neon_vec_<US>mult_<mode>): Add register specifier to
3276         instruction template.
3277
3278 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
3279
3280         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
3281         cygwin2.o.
3282         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
3283         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
3284         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
3285         (cygwin2.o): Likewise.
3286         * config/i386/cygwin1.c: Delete file.
3287         * config/i386/cygwin2.c: Likewise.
3288         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
3289         make all {%!mno-cygwin} ones unconditional.
3290         (STARTFILE_SPEC): Likewise.
3291         (REAL_LIBGCC_SPEC): Likewise.
3292         (LIB_SPEC): Likewise.
3293         (CXX_WRAP_SPEC): Likewise.
3294         (LINK_SPEC): Likewise.
3295         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
3296         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
3297         (cygwin_gplusplus_include_dir): Delete now-unused array.
3298         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
3299         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
3300         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
3301         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
3302         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
3303         (cygwin_local_include_dir): Delete now-unused array.
3304         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
3305         (cygwin_cross_include_dir): Delete now-unused array.
3306         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
3307         (cygwin_tool_include_dir): Delete now-unused array.
3308         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
3309         (cygwin_standard_include_dir): Delete now-unused array.
3310         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
3311         (GEN_CVT_ARRAY): Delete now-unused macro definition.
3312         (cvt_to_mingw): Delete now-unused array.
3313         (mingw_scan): Remove prototype of deleted function.
3314         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
3315         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
3316         * doc/invoke.texi (-mcygwin): Don't document removed option.
3317         (-mno-cygwin): Likewise.
3318
3319 2010-10-07  Richard Guenther  <rguenther@suse.de>
3320
3321         * machmode.h (mode_for_vector): Declare.
3322         * stor-layout.c (mode_for_vector): New function, split out from ...
3323         (layout_type): ... here.
3324         * tree-vectorizer.h (current_vector_size): Declare.
3325         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
3326         mask vector type is available.
3327         (get_vectype_for_scalar_type): Rename to ...
3328         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
3329         size argument.
3330         (get_vectype_for_scalar_type): New wrapper around
3331         get_vectype_for_scalar_type_and_size using current_vector_size.
3332         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
3333         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
3334         of vect_analyze_loop here.
3335         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
3336         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
3337         to autodetect.
3338         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
3339         V8SF to V8SI conversion builtin.
3340
3341 2010-10-07  Richard Guenther  <rguenther@suse.de>
3342
3343         * target.def (autovectorize_vector_sizes): New target hook.
3344         * targhooks.c (default_autovectorize_vector_sizes): New function.
3345         * targhooks.h (default_autovectorize_vector_sizes): Declare.
3346         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
3347         Document.
3348         * doc/tm.texi: Update.
3349         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
3350         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3351
3352 2010-10-07  Richard Guenther  <rguenther@suse.de>
3353
3354         * target.def (units_per_simd_word): Rename to ...
3355         (preferred_simd_mode): ... this.  Return mode instead of size.
3356         * targhooks.c (default_units_per_simd_word): Rename to ...
3357         (default_preferred_simd_mode): ... this.  Return word_mode.
3358         * targhooks.h (default_preferred_simd_mode): Declare.
3359         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
3360         (arm_preferred_simd_mode): ... this.  Re-implement.
3361         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
3362         (ix86_preferred_simd_mode): ... this.  Re-implement.
3363         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
3364         (sparc_preferred_simd_mode): ... this.  Re-implement.
3365         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
3366         (mips_preferred_simd_mode): ... this.  Re-implement.
3367         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
3368         (rs6000_preferred_simd_mode): ... this.  Re-implement.
3369         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
3370         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
3371         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
3372         * doc/tm.texi: Update.
3373
3374 2010-10-07  Richard Guenther  <rguenther@suse.de>
3375
3376         PR middle-end/45869
3377         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
3378         of pointers.
3379
3380 2010-10-07  Alan Modra  <amodra@gmail.com>
3381
3382         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
3383         rather than sign extension by hand.
3384
3385 2010-10-07  Jan Hubicka  <jh@suse.cz>
3386
3387         PR middle-end/45926
3388         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
3389
3390 2010-10-07  Richard Guenther  <rguenther@suse.de>
3391
3392         PR bootstrap/45914
3393         * configure.ac: Fix typo.
3394         * configure: Regenerated.
3395
3396 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3397
3398         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
3399         define_builtin_std where it's unnecessary.
3400         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
3401
3402 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
3403
3404         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
3405         * doc/tm.texi.in: Regenerate.
3406         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
3407         * targhooks.c (default_class_likely_spilled_p): Don't use the
3408         CLASS_LIKELY_SPILLED_P macro.
3409
3410         * config/arm/arm.md: Update comment.
3411
3412 2010-10-06  Jan Hubicka  <jh@suse.cz>
3413
3414         * ipa.c (cgraph_remove_unreachable_nodes): External references can
3415         always be removed.
3416         (cgraph_externally_visible_p): We can not bring local comdats that
3417         are known to linker; fix handling of internal visibility.
3418         (function_and_variable_visibility): Likewise.
3419
3420 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3421
3422         PR rtl-optimization/45394
3423         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
3424         (struct rtx_subst_pair): Remove AFTER field.
3425         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
3426         (propagate_for_debug): Remove MOVE parameter and adjust.
3427         (try_combine): In the special case where I2 is a PARALLEL, combine only
3428         destinations of SETs and set I2SRC to the I2 source.
3429         Adjust calls to propagate_for_debug throughout.
3430         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
3431         insns.
3432
3433 2010-10-06  Olivier Hainque  <hainque@adacore.com>
3434
3435         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
3436         switch on insn codes as sequence of ifs.
3437
3438 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
3439
3440         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
3441         be UI_NONE for picochip.
3442         (picochip_option_override): Do not disable exception flags.
3443         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
3444         Declare.
3445
3446 2010-10-06  Richard Guenther  <rguenther@suse.de>
3447
3448         * Makefile.in (regmove.o): Depend on $(TARGET_H).
3449
3450 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
3451
3452         Implemented fast enumeration for Objective-C.
3453         * c-parser.c (objc_could_be_foreach_context): New.
3454         (c_lex_one_token): Recognize RID_IN keyword in a potential
3455         Objective-C foreach context.
3456         (c_parser_declaration_or_fndef): Added parameter.  Accept
3457         Objective-C RID_IN keyword as terminating a declaration; in that
3458         case, return the declaration in the new parameter.
3459         (c_parser_extenral_declaration): Updated calls to
3460         c_parser_declaration_or_fndef.
3461         (c_parser_declaration_or_fndef): Same change.
3462         (c_parser_compound_statement_nostart): Same change.
3463         (c_parser_label): Same change.
3464         (c_parser_objc_methodprotolist): Same change.
3465         (c_parser_omp_for_loop): Same change.
3466         (c_parser_for_statement): Detect and parse Objective-C foreach
3467         statements.
3468         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
3469         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
3470         fast enumeration parsing code to turn off the c99 error but still
3471         perform checks on the loop declarations.
3472         * c-tree.h (check_for_loop_decls): Updated declaration.
3473         * doc/objc.texi: Document fast enumeration.
3474
3475 2010-10-06  Nick Clifton  <nickc@redhat.com>
3476
3477         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
3478         (MDR_REGNUM): Define.
3479         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
3480         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
3481         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
3482         (REGISTER_NAMES): Add MDR.
3483         (DWARF2_DEBUGGING_INFO): Define to 1.
3484         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3485         (F): New function.  Sets RTX_FRAME_RELATED_P.
3486         (mn10300_gen_multiple_store): Use F.
3487         (expand_prologue): Use F.  Use gen_movsf() to push floating
3488         point registers.
3489         (expand_epilogue): Use gen_movsf() to pop floating point registers.
3490         (mn10300_option_override): Disable combine stack adjust pass.
3491
3492 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
3493
3494         PR target/45901
3495         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
3496         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
3497
3498 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
3499
3500         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
3501         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
3502         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
3503         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
3504         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
3505         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
3506         BUILT_IN_TOUPPER): Mark as leaf.
3507
3508         PR middle-end/45838
3509         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
3510         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
3511         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
3512         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
3513         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
3514         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
3515         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
3516
3517 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
3518
3519         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
3520         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3521         (m68hc11_class_likely_spilled_p): New function.
3522
3523 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
3524
3525         * c-parser.c (c_parser_objc_method_definition): Updated comment.
3526
3527 2010-10-05  Jan Hubicka  <jh@suse.cz>
3528
3529         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
3530         Document.
3531         * opts.c (decode_options): Handle lto partitions.
3532         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
3533         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
3534
3535 2010-10-05  Jan Hubicka  <jh@suse.cz>
3536
3537         * cgraphunit.c (assemble_function): Output thunks and aliases before
3538         the function itself.
3539
3540 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
3541
3542         * config/picochip/picochip.c (picochip_option_override): Disable
3543         exception flags for picochip.
3544
3545 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
3546
3547         * opts-common.c (handle_option, handle_generated_option,
3548         read_cmdline_option, set_option): Add diagnostic_context
3549         parameter.  Update calls among these functions.
3550         (set_option): Don't use global_dc.
3551         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
3552         (decode_options): Pass global_dc to enable_warning_as_error.
3553         (common_handle_option): Pass global_dc to enable_warning_as_error.
3554         (enable_warning_as_error): Add diagnostic_context parameter.
3555         Document parameters.  Don't use global_dc.  Pass
3556         diagnostic_context parameter to handle_generated_option.
3557         * opts.h (set_option, handle_option, handle_generated_option,
3558         read_cmdline_option, enable_warning_as_error): Add
3559         diagnostic_context parameter.
3560         * Makefile.in (lto-opts.o): Update dependencies.
3561         * coretypes.h (struct diagnostic_context, diagnostic_context):
3562         Declare here.
3563         * diagnostic.h (diagnostic_context): Don't declare typedef here.
3564         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
3565         * langhooks-def.h (struct diagnostic_context): Don't declare here.
3566         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
3567         using diagnostic_context typedef.
3568         * langhooks.c (lhd_initialize_diagnostics): Declare using
3569         diagnostic_context typedef.
3570         * langhooks.h (struct diagnostic_context): Don't declare here.
3571         (initialize_diagnostics, print_error_function): Declare using
3572         diagnostic_context typedef.
3573         * lto-opts.c: Include diagnostic.h.
3574         (lto_reissue_options): Pass global_dc to set_option.  Pass
3575         DK_UNSPECIFIED not 0.
3576         * plugin.c (plugins_internal_error_function): Declare using
3577         diagnostic_context typedef.
3578         * plugin.h (struct diagnostic_context): Don't declare here.
3579         (plugins_internal_error_function): Declare using
3580         diagnostic_context typedef.
3581
3582 2010-10-05  Olivier Hainque  <hainque@adacore.com>
3583             Nicolas Roche  <roche@adacore.com>
3584
3585         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
3586         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
3587
3588 2010-10-05  Ira Rosen  <irar@il.ibm.com>
3589
3590         PR tree-optimization/45752
3591         * tree-vect-slp.c (vect_get_mask_element): Remove static
3592         variables, make them function arguments.
3593         (vect_transform_slp_perm_load): Pass new arguments to
3594         vect_get_mask_element.
3595
3596 2010-10-05  Richard Guenther  <rguenther@suse.de>
3597
3598         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
3599         (gimple_mod_pow2): Likewise.
3600         (gimple_mod_subtract): Likewise.
3601         (gimple_ic): Likewise.
3602         (gimple_stringop_fixed_value): Likewise.
3603         * tree-profile.c (tree_init_edge_profiler): Mark profile
3604         functions nothrow and leaf.
3605         (add_abnormal_goto_call_edges): Remove.
3606         (tree_gen_edge_profiler): Work on SSA form.
3607         (tree_gen_ic_profiler): Likewise.  Simplify.
3608         (do_tree_profiling): Update SSA form.
3609         (pass_tree_profile): Remove.
3610         (do_tree_profiling): Likewise.
3611         (gate_tree_profile_ipa): New function.
3612         (pass_ipa_tree_profile): New.
3613         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
3614         state of instrumented functions.
3615         * passes.c (init_optimization_passes): Remove early non-SSA
3616         inlining.  Move profiling after early optimizations.
3617         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
3618         (pass_ipa_early_inline): Likewise.
3619         * tree-pass.h (pass_ipa_early_inline): Remove.
3620         (pass_tree_profile): Likewise.
3621         (pass_ipa_tree_profile): Declare.
3622
3623 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3624             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
3625
3626         * gcc/config/s390/s390.c (z196_cost): New.
3627         (s390_handle_arch_option): Add -march=z196.
3628         (s390_option_override): Use the new cost function and use the z10
3629         defaults also for z196.
3630         (legitimate_reload_constant_p): Adjust comment.
3631         (legitimate_reload_fp_constant_p): New function.
3632         (s390_preferred_reload_class): Distingiush between FP and Int constants.
3633         (preferred_la_operand_p): Avoid la with index on z196.
3634         (s390_adjust_priority): Trigger also for z196.
3635         (s390_issue_rate): Issue rate for z196 is 3.
3636         (s390_z10_fix_long_loop_prediction): Rename to ...
3637         (s390_fix_long_loop_prediction): ... this.
3638         (s390_reorg): Apply the z10 adjustments also for z196.
3639         (s390_loop_unroll_adjust): Do this also for z196.
3640         * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
3641         (enum processor_flags): Add PF_Z196.
3642         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
3643         (TARGET_CPU_Z196, TARGET_Z196): New macros.
3644         * gcc/config.gcc: Enable z196 for --with-arch.
3645         * gcc/config/s390/2817.md: New file.
3646         * gcc/config/s390/2084.md: New type for multiply and add.
3647         * gcc/config/s390/2097.md: Likewise.
3648         * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
3649         (UNSPECV_ATOMIC_OP): New constants.
3650         (fmadddf, fmaddsf): New values for type attribute.
3651         (z196prop): New insn attribute.
3652         (cpu, cpu_facility): Add z196.
3653         (ATOMIC_Z196): New code iterator.
3654         (noxa): New code attribute.
3655         (gk): New mode attribute.
3656         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
3657         Support load zero for fp constants.
3658         (fixuns_truncdddi2, fixuns_trunctddi2)
3659         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
3660         for z196.
3661         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
3662         (popcounthi2, popcountqi2): New expander.
3663         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
3664         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
3665         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
3666         insn definition.
3667         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
3668         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
3669         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
3670         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
3671         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
3672         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
3673         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
3674         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
3675         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
3676         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
3677         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
3678         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
3679         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
3680         Support new z196 instructions.
3681
3682 2010-10-05  Richard Guenther  <rguenther@suse.de>
3683
3684         PR middle-end/45877
3685         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
3686         case where gimplification optimizes away the stmt.
3687
3688 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
3689
3690         PR debug/45849
3691         * var-tracking.c (strip_pointer_flags): New function.
3692         (emit_note_insn_var_location): If rtx_equal_p check failed,
3693         retry on locations simplified with simplify_replace_fn_rtx
3694         and strip_pointer_flags as its callback.
3695
3696 2010-10-04  Jan Hubicka  <jh@suse.cz>
3697
3698         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
3699         (can_refer_decl_in_current_unit_p): ... this one; reverse return
3700         value; handle comdats too.
3701         (canonicalize_constructor_val): Use it; handle function_decls
3702         correctly.
3703         (gimple_fold_obj_type_ref_known_binfo): Likewise.
3704         * gimple.c (get_base_address): Accept all kinds of decls.
3705
3706 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
3707
3708         * flags.h (g_switch_value, g_switch_set): Remove.
3709         * opts.c (g_switch_value, g_switch_set): Remove.
3710         * config/g.opt (G): Add Var(g_switch_value).
3711         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
3712         (alpha_option_override): Check global_options_set.x_g_switch_value
3713         instead of g_switch_set.
3714         (alpha_in_small_data_p): Remove cast in comparison with
3715         g_switch_value.
3716         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
3717         g_switch_value to unsigned HOST_WIDE_INT.
3718         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
3719         with g_switch_value.
3720         (frv_handle_option): Don't handle -G here.
3721         (frv_option_override): Check global_options_set.x_g_switch_value
3722         instead of g_switch_set.  Don't modify g_switch_set.
3723         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
3724         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
3725         g_switch_value to unsigned HOST_WIDE_INT.
3726         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
3727         (ia64_option_override): Check global_options_set.x_g_switch_value
3728         instead of g_switch_set.
3729         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
3730         Remove.
3731         (lm32_in_small_data_p): Remove cast in comparison with
3732         g_switch_value.
3733         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
3734         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
3735         HOST_WIDE_INT.
3736         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
3737         (m32r_init): Check global_options_set.x_g_switch_value instead of
3738         g_switch_set.
3739         (m32r_in_small_data_p): Remove cast in comparison with
3740         g_switch_value.
3741         (m32r_file_start): Format g_switch_value with %d.
3742         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
3743         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
3744         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
3745         handle -G here.
3746         (microblaze_option_override): Check
3747         global_options_set.x_g_switch_value instead of g_switch_set.
3748         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
3749         (mips_option_override): Check global_options_set.x_g_switch_value
3750         instead of g_switch_set.
3751         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
3752         (rs6000_file_start): Format g_switch_value with %d.
3753         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
3754         comparisons with g_switch_value.
3755         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
3756         global_options_set.x_g_switch_value instead of g_switch_set.
3757         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
3758         global_options_set.x_g_switch_value instead of g_switch_set.
3759         * config/score/score.c (score_handle_option): Don't handle -G here.
3760         * config/score/score3.c (score3_option_override): Check
3761         global_options_set.x_g_switch_value instead of g_switch_set.
3762         * config/score/score7.c (score7_option_override): Check
3763         global_options_set.x_g_switch_value instead of g_switch_set.
3764
3765 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
3766
3767         * common.opt (fira-coalesce): Remove.
3768
3769         * doc/invoke.texi (flag_ira_coalesce): Remove.
3770
3771         * ira-color.c (allocno_coalesced_p): Move before
3772         copy_freq_compare_func.
3773         processed_coalesced_allocno_bitmap): Ditto.
3774         (update_conflict_hard_regno_costs): Don't use
3775         ALLOCNO_FIRST_COALESCED_ALLOCNO.
3776         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
3777         (assign_hard_reg): Assume no coalesced allocnos.
3778         (get_coalesced_allocnos_attributes): Remove.
3779         (bucket_allocno_compare_func): Assume no coalesced allocnos.
3780         (push_allocno_to_stack): Ditto.
3781         (remove_allocno_from_bucket_and_push): Use
3782         ira_print_expanded_allocno instead of print_coalesced_allocno.
3783         (push_allocnos_to_stack): Assume uncoalesced allocnos.
3784         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
3785         all_conflicting_hard_regs.
3786         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
3787         (setup_allocno_left_conflicts_size): Ditto.
3788         (put_allocno_into_bucket): Ditto.
3789         (copy_freq_compare_func): Remove.
3790         (copy_freq_compare_func, merge_allocnos): Move before
3791         coalesced_pseudo_reg_freq_compare.
3792         coalesced_allocno_conflict_p): Ditto.
3793         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
3794         parameter.  Assume it true.
3795         (color_allocnos): Assume uncoalesced allocnos.  Use
3796         ira_print_expanded_allocno instead of print_coalesced_allocno.
3797         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
3798         parameter.
3799
3800         * ira.c: Remove comment about coalescing.
3801
3802 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
3803
3804         * config/mips/mips.h (target_flags_explicit): Declare for
3805         GENERATOR_FILE.
3806
3807 2010-10-04  Andi Kleen <ak@linux.intel.com>
3808
3809         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
3810         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
3811
3812 2010-10-04  Matthias Klose  <doko@ubuntu.com>
3813
3814         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
3815         multilib osdirname if it exists.
3816         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
3817
3818 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
3819
3820         PR middle-end/45876
3821         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
3822         arg0's type or its unsigned counterpart as utype.  Convert
3823         arg1 to utype unconditionally.
3824
3825 2010-10-04  Julian Brown  <julian@codesourcery.com>
3826
3827         * expr.c (expand_assignment): Add assertion to prevent emitting
3828         null rtx for movmisalign pattern.
3829         (expand_expr_real_1): Likewise.
3830         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
3831         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
3832         (arm_vector_alignment_reachable): New.
3833         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
3834         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
3835         (arm_print_operand): Include alignment qualifier in %A.
3836         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
3837         (movmisalign<mode>): New expander.
3838         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
3839         insn patterns.
3840
3841 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
3842
3843         * optc-gen.awk: Define global_options_set.  Don't define
3844         target_flags_explicit.
3845         * opth-gen.awk: Declare global_options_set.  Define
3846         target_flags_explicit as macro.
3847         * opts-common.c (handle_option): Take opts_set and generated_p
3848         parameters.
3849         (handle_generated_option, read_cmdline_option, set_option): Take
3850         opts_set parameter.
3851         (set_option): Use opts_set instead of hardcoding target_flags and
3852         target_flags_explicit.
3853         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
3854         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
3855         flag_value_profile_transformations_set, flag_peel_loops_set,
3856         flag_branch_probabilities_set, flag_inline_functions_set,
3857         flag_ipa_cp_set, flag_ipa_cp_clone_set,
3858         flag_predictive_commoning_set, flag_unswitch_loops_set,
3859         flag_gcse_after_reload_set): Remove.
3860         (common_handle_option, lang_handle_option, target_handle_option):
3861         Take opts_set parameter.  Assert that it is &global_options_set.
3862         (common_handle_option): Don't set _set variables.  Check opts_set
3863         instead of such variables.
3864         (enable_warning_as_error): Pass &global_options_set to
3865         handle_generated_option.
3866         * opts.h (cl_option_handler_func.handler, set_option,
3867         handle_option, handle_generated_option, read_cmdline_option): Add
3868         opts_set parameters.
3869         (handle_option): Add generated_p parameter.
3870         * config/i386/i386.c (ix86_function_specific_save,
3871         ix86_function_specific_restore): Updat for renaming of
3872         target_flags_explicit field.
3873         * config/i386/i386.opt (target_flags_explicit): Rename to
3874         ix86_target_flags_explicit.
3875         * config/ia64/ia64.c (ia64_override_options_after_change): Check
3876         global_options_set.x_flag_selective_scheduling and
3877         global_options_set.x_flag_selective_scheduling2, not
3878         sel_sched_switch_set.
3879         * flags.h (sel_sched_switch_set,
3880         flag_speculative_prefetching_set): Remove.
3881         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
3882         that it is &global_options_set.
3883         (process_command): Pass &global_options_set to read_cmdline_option.
3884         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
3885         set_option.
3886         * toplev.c (target_flags_explicit): Remove.
3887
3888 2010-10-04  Jan Hubicka  <jh@suse.cz>
3889
3890         PR middle-end/45871
3891         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
3892         use get_ref_base_and_offset to handle references.
3893         (fold_const_aggregate_ref): Update.
3894
3895 2010-10-04  Martin Jambor  <mjambor@suse.cz>
3896
3897         PR tree-optimization/45572
3898         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
3899         ipa_check_create_node_params.
3900         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
3901
3902 2010-10-04  Yao Qi  <yao@codesourcery.com>
3903
3904         * doc/passes.texi: Clean up.
3905
3906 2010-10-03  Ian Lance Taylor  <iant@google.com>
3907
3908         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
3909         referring to a field using a typedef name.
3910         (find_anonymous_field_with_type): New static function.
3911         (convert_to_anonymous_field): New static function.
3912         (convert_for_assignment): If -fplan9-extensions, permit converting
3913         pointer to struct to pointer to anonymous field.
3914         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
3915         (is_duplicate_field): New static function.
3916         (detect_field_duplicates_hash): If -fplan9-extensions, check for
3917         typedef names duplicating field names.
3918         (detect_field_duplicates): Likewise.
3919         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
3920         (C Dialect Options): Document -fplan9-extensions.
3921         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
3922
3923 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
3924
3925         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
3926         revision 164914.
3927         (vect_create_data_ref_ptr): Likewise.
3928         * tree-vect-stmts.c (vectorizable_store): Likewise.
3929         (perm_mask_for_reverse): Likewise.
3930         (reverse_vec_elements): Likewise.
3931         (vectorizable_load): Likewise.
3932
3933 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3934
3935         * cppbuiltin.c: New file.
3936         * cppbuiltin.h: New file.
3937         * Makefile.in: Take into account cppbuiltin.{h,c}.
3938
3939 2010-10-03  Andi Kleen <ak@linux.intel.com>
3940
3941         * lto-cgraph.c (input_cgraph): Check for missing sections.
3942
3943 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
3944
3945         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
3946         to nonimmediate_operand.  Force operand 2 to register when allowed.
3947         (*<shiftrt_insn><mode>3_mask): Ditto.
3948         (*<rotate_insn><mode>3_mask): Ditto.
3949
3950 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
3951
3952         PR tree-optimization/45720
3953         PR tree-optimization/45764
3954         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
3955         Don't accept backwards consecutive accesses.
3956         (vect_create_data_ref_ptr): Disallow negative steps.
3957
3958         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
3959         (perm_mask_for_reverse): Removed.
3960         (reverse_vec_elements): Likewise.
3961         (vectorizable_load): Don't handle negative steps.
3962
3963 2010-10-02  Jan Hubicka  <jh@suse.cz>
3964
3965         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
3966         call destination is known.
3967
3968 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3969
3970         PR target/45820
3971         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
3972         earlier.
3973
3974 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3975
3976         * doc/install.texi (Configuration): Document build_configargs,
3977         host_configargs, target_configargs.
3978
3979 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
3980
3981         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
3982         (*<shiftrt_insn><mode>3_mask): Ditto.
3983         (*<rotate_insn><mode>3_mask): Ditto.
3984
3985 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
3986
3987         PR tree-optimization/44716
3988         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
3989         (HOT_TEXT_SECTION_NAME): Define.
3990
3991 2010-10-01  Nick Clifton  <nickc@redhat.com>
3992
3993         * common.opt: Add -fcombine-stack-adjustments.
3994         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
3995         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
3996         flag_combine_stack_adjustments.
3997         * doc/invoke.texi: Document the new option.
3998
3999 2010-10-01  Richard Guenther  <rguenther@suse.de>
4000
4001         PR tree-optimization/45854
4002         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
4003
4004 2010-10-01  Anthony Green  <green@moxielogic.com>
4005
4006         * config.gcc: Fix moxie-*-rtems* configuration.
4007
4008 2010-10-01  Richard Guenther  <rguenther@suse.de>
4009
4010         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
4011         (gen_decl_die): Likewise.
4012
4013 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4014
4015         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
4016         to the function code for SPU MD builtins.
4017         (spu_expand_builtin): Update.
4018         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
4019
4020 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4021
4022         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
4023         sjlj_except_unwind_info.
4024
4025 2010-10-01  Tristan Gingold  <gingold@adacore.com>
4026
4027         * configure.ac: Define the nop insn for avr*-*-*
4028         * configure: Regenerate.
4029
4030 2010-10-01  Alan Modra  <amodra@gmail.com>
4031
4032         PR target/45807
4033         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
4034         extend toc_restore_insn.
4035
4036 2010-09-30  Richard Guenther  <rguenther@suse.de>
4037
4038         PR tree-optimization/43959
4039         * function.c (gimplify_parameters): Use create_tmp_reg instead of
4040         create_tmp_var.
4041
4042 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
4043
4044         * config/sh/sh.c (sh_expand_prologue): Set
4045         current_function_static_stack_size.
4046
4047 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4048
4049         * configure.ac: Check for Solaris 8 ld with .hidden support.
4050         * configure: Regenerate.
4051
4052 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4053
4054         PR middle-end/45758
4055         * graphite.c (graphite_initialize): Call scev_reset.
4056
4057 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4058
4059         * sese.h (scev_analyzable_p): Return false for real or floating
4060         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
4061
4062 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4063
4064         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
4065         and ps.
4066         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
4067         domain.
4068         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
4069         Do not allocate ub_expr, it is passed in initialized.
4070
4071 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4072
4073         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
4074         (build_cloog_prog): Dump CLooG input file when
4075         flag_graphite_dump_cloog is set.  This is disabled on trunk.
4076         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
4077
4078 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4079
4080         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
4081         verify_dominators for CDI_POST_DOMINATORS.
4082         * sese.h: Remove comment about CDI_POST_DOMINATORS.
4083         (recompute_all_dominators): Remove call to free_dominance_info
4084         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
4085         for CDI_POST_DOMINATORS.
4086
4087 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4088
4089         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
4090         over pbb_dim_iter_domain.
4091
4092 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4093
4094         * graphite-flattening.c: Fix comments.
4095
4096 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4097
4098         * Makefile.in (OBJS-common): Add graphite-flattening.o.
4099         (graphite-flattening.o): New rule.
4100         * common.opt (floop-flatten): New flag.
4101         * doc/invoke.texi (-floop-flatten): Documented.
4102         * graphite-flattening.c: New.
4103         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
4104         * graphite-poly.h (flatten_all_loops): Declared.
4105         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
4106         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
4107         is set, also set flag_graphite.
4108
4109 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4110
4111         * graphite-poly.c (cloog_checksum): New.
4112         * graphite-poly.h (cloog_checksum): Declared.
4113
4114 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4115
4116         * graphite-poly.c (pbb_number_of_iterations): Removed.
4117         (pbb_number_of_iterations_at_time): Correctly compute the number
4118         of iterations in the transformed loop.
4119         * graphite-poly.h (pbb_number_of_iterations): Removed.
4120
4121 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4122
4123         * graphite-poly.h (lst_update_scattering_seq): Removed.
4124         (lst_update_scattering): Correctly handle outermost loop dewey
4125         renumbering.
4126
4127 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4128
4129         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
4130         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
4131         * graphite-poly.h (lst_niter_for_loop): New.
4132
4133 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4134
4135         * graphite-poly.c (apply_poly_transforms): Do not abort when the
4136         transform read from disk is not legal.  Call fatal_error instead.
4137
4138 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4139
4140         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
4141         (print_scop_header): Removed.  Inlined in the only call place...
4142         (print_scop): ... here.
4143
4144 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4145
4146         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
4147
4148 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4149
4150         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
4151
4152 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4153
4154         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
4155         (dot_deps_stmt): Same.
4156         * graphite-poly.c (dot_lst): Same.
4157
4158 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4159
4160         * graphite-blocking.c (scop_do_strip_mine): Do not call
4161         graphite_legal_transform.
4162         (scop_do_block): Same.
4163
4164 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
4165
4166         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
4167         description.
4168
4169 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4170
4171         * tree-scalar-evolution.c (instantiate_array_ref): New.
4172         (instantiate_scev_r): Also handle ARRAY_REFs.
4173
4174 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4175
4176         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
4177         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
4178         RESULT_DECL, and FIELD_DECL.  Return false for an
4179         SSA_NAME_IS_DEFAULT_DEF.
4180         (compute_scalar_evolution_in_loop): Do not further analyze the
4181         scalar evolution when no_evolution_in_loop_p returns true.
4182
4183 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4184
4185         * tree-chrec.h (evolution_function_is_affine_p): Do not check
4186         whether CHREC_LEFT is invariant.  A function is affine when
4187         CHREC_RIGHT is invariant.
4188
4189 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4190
4191         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
4192         is_gimple_reg.
4193         (rewrite_degenerate_phi): Same.
4194         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
4195
4196 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
4197
4198         * graphite-scop-detection.c (graphite_can_represent_scev,
4199         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
4200         graphite_can_represent_loop): Remove outermost_loop.
4201
4202 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4203
4204         PR middle-end/45229
4205         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
4206         handle GIMPLE_CALLs with no LHS.
4207
4208 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
4209
4210         * graphite-poly.c (init_graphite_out_file): New.
4211         (init_graphite_in_file): New.
4212         (apply_poly_transforms): Updated to enable reading and writing of
4213         multiple scop files.
4214
4215 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
4216
4217         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
4218         redundant checks.
4219
4220 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4221
4222         * graphite-clast-to-gimple.c (precision_for_value): Adjust
4223         computation of precision by 1.
4224
4225 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
4226
4227         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
4228         (openscop_read_polyhedron_matrix): New.
4229         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
4230         (openscop_read_N_int): Same.
4231         * graphite-poly.c (openscop_read_N_int): New.
4232         (openscop_read_one_int): New.
4233         (openscop_read_N_string): New.
4234         (openscop_read_one_string): New.
4235         (openscop_read_powerset_matrix): New.
4236         (graphite_read_transforms): Remove.
4237         (graphite_read_scatt): New.
4238         (graphite_read_scop_file): New.
4239         (apply_poly_transforms): Updated to call graphite_read_scop_file.
4240
4241 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4242
4243         * graphite-poly.c: Change include order.
4244
4245 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4246
4247         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
4248         (cloog_matrix_nrows): New.
4249
4250 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
4251
4252         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
4253         from matrix lines.
4254         * graphite-poly.c (openscop_print_scattering_function_1): Same.
4255         (print_scattering_function_1): Same.
4256         (openscop_print_pbb_domain): Same.
4257         (openscop_print_scop_context): Same.
4258         (print_scop_context): Same.
4259
4260 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
4261
4262         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
4263         (openscop_print_pdr_polyhedron): Print pph.
4264
4265 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4266
4267         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
4268         priority signed types.
4269
4270 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4271
4272         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
4273         the call to lang_hooks.types.type_for_size.  Call
4274         build_nonstandard_integer_type.
4275
4276 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
4277
4278         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
4279         (openscop_print_polyhedron_matrix): New.
4280         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
4281         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
4282         (openscop_print_pdr_powerset): New.
4283         (openscop_print_powerset_matrix): New.
4284         (openscop_print_scattering_function_1): New.
4285         (print_scattering_function): Add support for scattering names and
4286         OpenScop format.
4287         (graphite_write_transforms): Remove.
4288         (print_pdr_access_layout): Updated to support OpenScop format.
4289         (print_pdr): Same.
4290         (openscop_print_pbb_domain): New.
4291         (print_pbb_body): Added a parameter to allow indicating that pbb_body
4292         is not provided.
4293         (print_pbb): Updated to call the new print_pbb_body.
4294         (openscop_print_scop_context): New.
4295         (print_scop_header): New.
4296         (print_scop): Updated to call print_scop_header.
4297         * graphite-poly.h: Document OpenScop format.
4298
4299 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
4300
4301         * config/cris/m32c.c (cris_memory_move_cost): New.
4302         (cris_register_move_cost): Make static. Change arguments type from
4303         enum reg_class to reg_class_t.
4304         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
4305         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
4306         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
4307
4308 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
4309
4310         PR target/45843
4311         * config/i386/i386.c (ix86_gimplify_va_arg): Use
4312         INTVAL (XEXP (slot, 1)) as prev_size.
4313
4314 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
4315
4316         PR target/45837
4317         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
4318         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
4319         defined.
4320         * config/rs6000/option-defaults.h (toplevel): Change #if
4321         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
4322         global option changes.
4323
4324 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
4325
4326         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
4327
4328         PR tree-optimization/31261
4329         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
4330         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
4331
4332 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4333
4334         PR bootstrap/45796
4335         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
4336         special-casing for generators and turn into ...
4337         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
4338         rule, for better error messages in case of toplevel dependency errors.
4339         (genprog): Add hooks, rename to ...
4340         (genprogerr): ... this, and let genprog also contain check,
4341         checksum, condmd.
4342         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
4343         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
4344         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
4345
4346 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
4347             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4348
4349         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
4350         for GMP, MPFR and MPC.
4351
4352 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4353
4354         * config/sparc/sparc.opt (mimpure-text): Move ...
4355         * config/sol2.opt: ... here.  Correct description.
4356         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
4357         * doc/invoke.texi (Option Summary, SPARC Options): Move
4358         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
4359         (Option Summary, Solaris 2 Options): ... here.
4360         (Submodel Options, Solaris 2 Options): New menu entry.
4361         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
4362         (Solaris 2 Options): ... here.
4363
4364 2010-09-30  Michael Eager  <eager@eagercon.com>
4365
4366         * extend.texi (interrupt_handler): Add MicroBlaze to list.
4367         (save_volatiles): Describe option for MicroBlaze.
4368         * invoke.texi: Add MicroBlaze Options.
4369         * contrib.texi: Add acknowledgment.
4370         * md.texi: Add MicroBlaze d and z constraints.
4371         * install.texi: Add microblaze-*-elf.
4372         * configure.ac: Add microblaze-*-* to target list.
4373         * configure: Regenerate.
4374         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
4375         * config/microblaze/microblaze-protos.h: New.
4376         * config/microblaze/crti.s: New.
4377         * config/microblaze/predicates.md: New.
4378         * config/microblaze/linux.h: New.
4379         * config/microblaze/microblaze.md: New.
4380         * config/microblaze/constraints.md: New.
4381         * config/microblaze/crtn.s: New.
4382         * config/microblaze/microblaze.opt: New.
4383         * config/microblaze/microblaze-c.c: New.
4384         * config/microblaze/t-microblaze: New.
4385         * config/microblaze/microblaze.c: New.
4386         * config/microblaze/microblaze.h: New.
4387
4388 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
4389
4390         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
4391         parse @optional/@required and set the flags as appropriate.
4392
4393 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
4394
4395         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
4396
4397 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
4398
4399         * opt-functions.awk (static_var): Update comment.
4400         (var_ref): Return offsetof expression or -1, not variable address.
4401         * optc-gen.awk: Generate structure field initializers instead of
4402         static variables.  Expect -1 for missing variables instead of null
4403         pointer.  Add gcc_options parameters to generated functions.
4404         * opth-gen.awk: Generate structure fields for static variables.
4405         Add gcc_options parameters to generated functions.
4406         * common.opt (optimize, optimize_size): Add variables.
4407         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
4408         &global_options to cl_target_option_restore.
4409         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
4410         &global_options to cl_optimization_restore, cl_target_option_save
4411         and cl_target_option_restore.
4412         (ix86_set_current_function): Pass &global_options to
4413         cl_target_option_restore.
4414         * config/pdp11/pdp11.h (optimize): Remove.
4415         * config/rs6000/rs6000.h (optimize): Remove.
4416         * config/sh/sh.h (optimize): Remove.
4417         * config/xtensa/xtensa.h (optimize): Remove.
4418         * coretypes.h (struct gcc_options): Declare.
4419         * diagnostic.c (diagnostic_initialize): Initialize
4420         context->option_state.
4421         (diagnostic_report_diagnostic): Pass option_state to
4422         option_enabled hook.
4423         * diagnostic.h (diagnostic_context.option_enabled): Add void *
4424         parameter.
4425         (diagnostic_context.option_state): New field.
4426         * final.c (final_start_function, final, final_scan_insn): Rename
4427         optimize parameter to optimize_p.
4428         * flags.h (optimize, optimize_size): Remove.
4429         * function.c (invoke_set_current_function_hook): Pass
4430         &global_options to cl_optimization_restore.
4431         * gcc.c (driver_handle_option): Take gcc_options parameter.
4432         Assert that it is &global_options.
4433         (process_command): Pass &global_options to read_cmdline_option.
4434         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
4435         option_enabled.
4436         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
4437         &global_options to set_option.
4438         * opts-common.c (handle_option, handle_generated_option,
4439         read_cmdline_option, set_option): Take explicit gcc_options
4440         parameters.  Use option_flag_var.
4441         (option_flag_var): New.
4442         * opts.c (common_handle_option, lang_handle_option,
4443         target_handle_option): Take gcc_options parameter.  Assert that it
4444         is &global_options.
4445         (read_cmdline_options): Pass &global_options to read_cmdline_option.
4446         (print_filtered_help): Use option_flag_var.  Pass &global_options
4447         to option_enabled.
4448         (common_handle_option): Use option_flag_var.
4449         (option_enabled): Take opts parameter.  Use option_flag_var.
4450         (get_option_state): Take gcc_options parameter.  Use
4451         option_flag_var.  Pass gcc_options parameter to option_enabled.
4452         (enable_warning_as_error): Pass &global_options to
4453         handle_generated_option.
4454         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
4455         (cl_option_handler_func.handler): Take gcc_options parameter.
4456         (option_enabled, get_option_state, set_option, handle_option,
4457         handle_generated_option, read_cmdline_option): Take gcc_options
4458         parameters.
4459         * toplev.c (optimize, optimize_size): Remove.
4460         (print_switch_values): Pass &global_options to option_enabled.
4461         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
4462         to get_option_state.
4463         (general_init): Initialize global_dc->option_state.
4464         * tree.c (build_optimization_node): Pass &global_options to
4465         cl_optimization_save.
4466         (build_target_option_node): Pass &global_options to
4467         cl_target_option_save.
4468
4469 2010-09-30  Martin Jambor  <mjambor@suse.cz>
4470
4471         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
4472         zero sized bit-fields.
4473
4474 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
4475
4476         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
4477         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
4478         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
4479         (c_parser_objc_class_declaration): Same change.
4480         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
4481         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
4482         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
4483         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
4484         and RID_AT_PUBLIC instead of RID_PUBLIC.
4485         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
4486         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
4487
4488 2010-09-30  Tom G. Christensen <tgc@jupiterrise.com>
4489
4490         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
4491         Add links to current providers of packages for Solaris and IRIX.
4492
4493 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
4494
4495         Merge from 'apple/trunk' branch on FSF servers.
4496         * c-parser.c: Applied change originally in c-parse.in.
4497
4498         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
4499
4500         Radar 4281748
4501         * c-decl.c (start_decl): Check for redeclaration of class name.
4502         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
4503
4504 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
4505
4506         * config/ia64/ia64.c (ia64_builtin_decl): New.
4507         (TARGET_BUILTIN_DECL): Define.
4508         (ia64_builtins): New.
4509         (ia64_init_builtins): Save decls in ia64_builtins.
4510
4511 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
4512
4513         PR target/40457
4514         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
4515         (move2add_use_add3_insn): Likewise.
4516         (reload_cse_move2add): Likewise.
4517         * rtlanal.c (get_full_rtx_cost): New function.
4518         * rtl.h (struct full_rtx_costs): New.
4519         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
4520         costs_add_n_insns): New inline functions.
4521         (get_full_rtx_cost): Declare.
4522
4523         PR c/45054
4524         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
4525         invariants.  Check for reg_equiv_invariant.
4526         (reload): Assert that spilled_pseudos is empty when returning.
4527
4528 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
4529
4530         * config/i386/mingw32.h (TARGET_64BIT): replaced by
4531         TARGET_64BIT_DEFAULT in #if check.
4532
4533 2010-09-29  Jack Howarth <howarth@bromo.med.uc.edu>
4534
4535         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
4536
4537 2010-09-29  Mike Stump  <mikestump@comcast.net>
4538
4539         * config/darwin.h (flag_mkernel): Remove.
4540         (flag_apple_kext): Likewise.
4541
4542 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
4543             Jack Howarth <howarth@bromo.med.uc.edu>
4544
4545         * config/darwin.opt (undefined): Add.
4546
4547 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
4548
4549         PR testsuite/45664
4550         * configure.ac: Add --enable-indirect-function option.
4551         * config.gcc: Add default_gnu_indirect_function.
4552         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
4553         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
4554         * varasm.c (do_assemble_alias): Adjust for macro name change.
4555         * configure: Rebuilt.
4556         * doc/install.texi: Document --enable-indirect-function.
4557
4558 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
4559
4560         * doc/options.texi (Variable, Var, Init): Update documentation
4561         without reference to VarExists.
4562         (VarExists): Remove.
4563         * common.opt, config/i386/i386.opt, config/linux.opt,
4564         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
4565         Don't use VarExists.
4566
4567 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
4568
4569         * optc-gen.awk: Generate global_options initializer instead of
4570         individual variables.  Add x_ prefix to names of structure members.
4571         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
4572         names of structure members.
4573         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4574         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
4575         * doc/tm.texi: Regenerate.
4576         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4577         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
4578         * c-parser.c (disable_extension_diagnostics,
4579         restore_extension_diagnostics): Update names of cpp_options members.
4580         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4581         * common.opt (fcompare-debug-second): Don't use Var.
4582         * config/alpha/alpha.h (target_flags): Remove.
4583         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4584         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
4585         * config/bfin/bfin.h (target_flags): Remove.
4586         * config/cris/cris.h (target_flags): Remove.
4587         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
4588         cl_target_option members.
4589         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
4590         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
4591         ix86_can_inline_p): Update names of cl_target_option members.
4592         * config/i386/i386.h (ix86_isa_flags): Remove.
4593         * config/lm32/lm32.h (target_flags): Remove.
4594         * config/mcore/mcore.h (mcore_stack_increment): Remove.
4595         * config/mcore/mcore.md (addsi3): Remove extern declaration of
4596         flag_omit_frame_pointer.
4597         * config/mep/mep.h (target_flags): Remove.
4598         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4599         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
4600         * config/mmix/mmix.h (target_flags): Remove.
4601         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
4602         flag_expensive_optimizations): Remove.
4603         * config/s390/s390.h (flag_pic): Remove.
4604         * config/score/score-conv.h (target_flags): Remove.
4605         * config/sh/sh.h (sh_fixed_range_str): Remove.
4606         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
4607         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
4608         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4609         * diagnostic.c (diagnostic_initialize): Update names of
4610         diagnostic_context members.
4611         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
4612         warn_system_headers.
4613         (diagnostic_report_warnings_p): Update for new names.
4614         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
4615         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
4616         HARD_FRAME_POINTER_IS_ARG_POINTER.
4617         * flags.h (flag_compare_debug): Declare.
4618         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4619         * opts.c (flag_compare_debug): Define.
4620         (common_handle_option): Update names of diagnostic_context
4621         members.  Handle -fcompare-debug-second.
4622         (fast_math_flags_struct_set_p): Update names of cl_optimization
4623         members.
4624         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4625         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4626         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4627         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4628         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4629         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4630         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
4631         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4632         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
4633
4634 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
4635
4636         * config/picochip/picochip.c (picochip_output_internal_label):
4637         This function can now be called for debug CFI labels, which can come
4638         in the middle of a vliw instruction.  Postpone until end of vliw.
4639
4640 2010-09-29  Richard Guenther  <rguenther@suse.de>
4641
4642         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
4643         (DECL_FILE_SCOPE_P): Use it.
4644         (TYPE_FILE_SCOPE_P): New macro.
4645
4646 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
4647
4648         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
4649         a CPP_NAME which is a reserved word, clearly separate cases for
4650         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
4651
4652 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
4653
4654         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
4655         token->value with the canonical spelling.  Do exactly like C and
4656         C++ and leave it as it is.
4657
4658 2010-09-28  Richard Henderson  <rth@redhat.com>
4659
4660         * config/alpha/alpha.c (alpha_builtins): New.
4661         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
4662         (alpha_builtin_function): New.
4663         (alpha_add_builtins, alpha_init_builtins): Use it.
4664
4665 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
4666
4667         * doc/standards.texi (Standards): Expanded the section on
4668         Objective-C and Objective-C++.
4669
4670 2010-09-28  DJ Delorie  <dj@redhat.com>
4671
4672         PR target/45800
4673         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
4674         volatile MEMs.
4675
4676 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
4677
4678         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
4679         attributes on methods.
4680          (c_parser_objc_method_definition): Handle attributes.
4681         (c_parser_objc_methodproto): Likewise.
4682         (c_parser_objc_maybe_method_attributes): New.
4683         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
4684         missing definition, similar to that in ObjC++.
4685
4686 2010-09-28  Richard Henderson  <rth@redhat.com>
4687
4688         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
4689         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
4690         (CONFIG_SJLJ_EXCEPTIONS): Remove.
4691         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
4692         (STACK_CHECK_PROTECT): Likewise.
4693         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
4694         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
4695         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
4696         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
4697         (dwarf2out_assembly_start): Likewise.
4698         * except.c (init_eh): Use targetm.except_unwind_info.
4699         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
4700         (output_one_function_exception_table): Likewise.
4701         * final.c: Unconditionally include dwarf2out.h.
4702         (final_start_function): Unconditionally call dwarf2out routines.
4703         (final_end_function, final_scan_insn): Likewise.
4704         * function.c (expand_function_end): Use targetm.except_unwind_info.
4705         * opts.c (decode_options): Use targetm.except_unwind_info.
4706         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
4707         * target.def (debug_unwind_info, except_unwind_info): New.
4708         * target.h (enum unwind_info_type): New.
4709         * targhooks.c (default_debug_unwind_info): New.
4710         (default_except_unwind_info): New.
4711         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
4712         * targhooks.h: Declare them.
4713         * tree-tailcall.c: Include "target.h"
4714         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
4715         * Makefile.in (tree-tailcall.o): Update.
4716         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
4717         (lhd_gcc_personality): Likewise.
4718
4719         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
4720         (TARGET_EXCEPT_UNWIND_INFO): New.
4721         (DWARF2_UNWIND_INFO): Update.
4722         (TARGET_DEBUG_UNWIND_INFO): New.
4723         * doc/tm.texi: Rebuild.
4724
4725         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
4726         targetm.except_unwind_info.
4727
4728         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
4729         (arm_except_unwind_info): New.
4730         (arm_compute_func_type): Use it.
4731         (arm_expand_prologue, thumb_pushpop): Likewise.
4732         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
4733         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
4734         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
4735         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
4736         (DWARF2_UNWIND_INFO): Remove.
4737         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
4738         (ARM_EABI_UNWIND_TABLES): Remove.
4739
4740         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
4741         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
4742         (ia64_except_unwind_info): New.
4743         (ia64_output_function_prologue): Use it.
4744         (ia64_add_bundle_selector_before): Likewise.
4745         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
4746         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
4747         (TARGET_UNWIND_INFO): Remove.
4748
4749         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
4750
4751 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
4752
4753         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
4754         (c_parser_objc_protocol_definition): Likewise.
4755         (c_parser_external_declaration): Provide dummy attribute arguments.
4756         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
4757         (c_parser_objc_class_definition): Handle attributes.
4758         (c_parser_objc_protocol_definition): Likewise.
4759
4760 2010-09-28  Tobias Burnus  <burnus@net-b.de>
4761
4762         PR fortran/40569
4763         PR fortran/40568
4764         * toplev.h (save_decoded_options, save_decoded_options_count):
4765         New global variables.
4766         * toplev.c (save_decoded_options, save_decoded_options_count):
4767         Export variables.
4768
4769 2010-09-28  Ian Lance Taylor  <iant@google.com>
4770
4771         * config/i386/i386.c (ix86_supports_split_stack): Test
4772         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
4773
4774 2010-09-28  Ian Lance Taylor  <iant@google.com>
4775
4776         PR target/45815
4777         * opts.c (decode_options): Don't test whether the target supports
4778         split stack if flag_split_stack == 0.
4779
4780 2010-09-28  Jan Hubicka  <jh@suse.cz>
4781
4782         * builtin-attrs.def (ATTR_LEAF): New attribute.
4783         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
4784         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
4785         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
4786         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
4787         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
4788         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
4789         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
4790         * sync-builtins.def: Annotate all builtins by leaf.
4791         * omp-builtins.def: Annotate all builtins by leaf.
4792         * builtins.def: Annotate relevant builtins with leaf attribute.
4793         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
4794         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
4795         leaf.
4796
4797 2010-09-28  Jan Hubicka  <jh@suse.cz>
4798
4799         * tree-ssa-ccp.c (fold_ctor_reference): New function.
4800         (fold_const_aggregate_ref): Use it.
4801         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
4802         into external static.
4803
4804 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4805
4806         PR target/44452
4807         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
4808         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
4809         (ix86_solaris_return_in_memory): Remove.
4810         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
4811         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
4812         (TARGET_SUBTARGET_DEFAULT): Redefine.
4813         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
4814         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
4815         (TARGET_SUBTARGET_DEFAULT): Redefine.
4816         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
4817         -mvect8-ret-in-mem.
4818         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
4819
4820 2010-09-29  Alan Modra  <amodra@gmail.com>
4821
4822         PR target/45807
4823         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
4824         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
4825         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
4826         Delete.
4827         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
4828         (rs6000_emit_prologue): Don't just create frame save info for r2,
4829         actually save r2.
4830
4831 2010-09-28  Richard Henderson  <rth@redhat.com>
4832
4833         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
4834         when 8 bytes are requested.
4835
4836 2010-09-28  Tristan Gingold  <gingold@adacore.com>
4837
4838         * config/avr/avr.c (expand_prologue): Set
4839         current_function_static_stack_size.
4840
4841 2010-09-28  Tristan Gingold  <gingold@adacore.com>
4842
4843         * config/alpha/alpha.md: Change the initial condition of the
4844         probing loop.
4845
4846 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
4847
4848         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
4849         Split from *avx_<maxmin:code><mode>3.
4850         (*avx_<smaxmin:code><mode>3): Ditto.
4851         * config/i386/i386.md (maxmin): Remove code iterator.
4852
4853 2010-09-27  Ian Lance Taylor  <iant@google.com>
4854
4855         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
4856         requires assembler support for CFI directives.
4857
4858 2010-09-27  Richard Henderson  <rth@redhat.com>
4859
4860         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
4861
4862 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
4863
4864         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
4865         that AFTER is not in the range FROM..TO, inclusive.
4866
4867 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
4868             Bernd Schmidt  <bernds@codesourcery.com>
4869
4870         PR rtl-optimization/45792
4871         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
4872         If not all insns are to be merged, for each edge, stash the
4873         next candidate after the to-be-merged insns before doing the
4874         merge, and use them for the retry at the new insertion point.
4875         Handle CC0 targets when retrying.
4876
4877 2010-09-27  Ian Lance Taylor  <iant@google.com>
4878
4879         * common.opt (fsplit-stack): New option.
4880         * opts.c (decode_options): Set flag_split_stack to final value.
4881         * target.def (supports_split_stack): New hook.
4882         * gcc.c (STACK_SPLIT_SPEC): Define.
4883         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
4884         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
4885         (Code Gen Options): Document -fsplit-stack.
4886         * doc/extend.texi (Function Attributes): Mention no_split_stack.
4887         (Function Attributes): Document no_split_stack.
4888         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
4889         TARGET_SUPPORTS_SPLIT_STACK.
4890         * doc/tm.texi: Rebuild.
4891         * function.c (thread_prologue_and_epilogue_insns): If
4892         flag_split_stack, add split stack prologue.
4893         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
4894         * varasm.c (saw_no_split_stack): New static variable.
4895         (assemble_start_function): Set saw_no_split_stack if the function
4896         has the no_split_stack attribute.
4897         (file_end_indicate_split_stack): New function.
4898         * output.h (file_end_indicate_split_stack): Declare.
4899         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
4900         and function.
4901         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
4902         routines.
4903         * config/i386/i386.c (ix86_option_override_internal): Don't set
4904         expand_builtin_va_start to NULL if -fsplit-stack.
4905         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
4906         -fsplit-stack.
4907         (ix86_va_start): If -fsplit-stack, get overflow pointer from
4908         scratch register set by prologue.
4909         (ix86_code_end): If -fsplit-stack, call
4910         file_end_indicate_split_stack.
4911         (ix86_supports_split_stack): New static function.
4912         (SPLIT_STACK_AVAILABLE): Define.
4913         (split_stack_prologue_scratch_regno): New static function.
4914         (split_stack_fn): New static variable.
4915         (ix86_expand_split_stack_prologue): New function.
4916         (ix86_live_on_entry): New static function.
4917         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
4918         (output_pic_addr_const): Likewise.
4919         (i386_asm_output_addr_const_extra): Likewise.
4920         (ix86_expand_call): Change return type to rtx.  Return the new
4921         call instruction.
4922         (TARGET_SUPPORTS_SPLIT_STACK): Define.
4923         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
4924         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
4925         (split_stack_prologue, split_stack_return): New insns.
4926         (split_stack_space_check): New insn.
4927         * config/i386/i386.h (struct machine_function): Add
4928         split_stack_varargs_pointer field.
4929         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
4930         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
4931         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
4932         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
4933         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
4934         Declare.
4935         (ix86_expand_call): Update declaration.
4936
4937 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4938
4939         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
4940         code.  Added byref, which was missing in the list of codes.
4941         Explain that enumeration values are encoded as the integer type
4942         that the compiler uses to store them.  Explain and make examples
4943         of how 'const' interacts with pointers, and the complication of
4944         the encoding of 'const char *'.
4945         (Legacy type encoding): New subsection, explaining that GCC emits
4946         incorrect type encodings for the NeXT runtime for compatibility
4947         reasons.
4948         (@@encode): New subsection, explaining @encode and particularly
4949         that protocol qualifiers are not recognized inside an @encode()
4950         expression.
4951         (Method signatures): New subsection, explaining how method
4952         signatures are encoded.
4953
4954 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4955
4956         Merge from 'apple/trunk' branch on FSF servers.  Removed small
4957         change in build_conditional_expr that had been added when fixing
4958         PR objc/27377 and which did the same check in a less complete way.
4959
4960         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
4961
4962         Radar 4229905
4963         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
4964         looking for objective-c common pointer types.
4965
4966         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
4967
4968         Radar 4154928
4969         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
4970         use their ObjC common type.
4971
4972 2010-09-27  Richard Guenther  <rguenther@suse.de>
4973
4974         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
4975
4976 2010-09-27  Jie Zhang  <jie@codesourcery.com>
4977
4978         * print-tree.c (print_node): Print in-constant-pool.
4979
4980 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
4981
4982         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
4983         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
4984         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
4985         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
4986
4987 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
4988
4989         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
4990         from pro_epilogue_adjust_stack_<mode>_{1,2}.
4991         (pro_epilogue_adjust_stack_<mode>_add): Rename from
4992         pro_epilogue_adjust_stack_<mode>_3.
4993         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
4994         renamed pro_epilogue_adjust_stack_{si,di}_add.
4995         (ix86_expand_prologue): Use indirect functions.  Update for renamed
4996         pro_epilogue_adjust_stack_{si,di}_sub.
4997
4998 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
4999
5000         * config/i386/i386.md (movmsk_df): New insn.
5001         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
5002         sequence for TARGET_SSE_MATH.
5003
5004 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
5005
5006         * config/mips/mips.c (mips_builtin_decls): Declare.
5007         (mips_init_builtins): Store function declarations in
5008         mips_builtin_decls.
5009         (mips_builtin_decl): New function.
5010         (TARGET_BUILTIN_DECL): Define.
5011
5012 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
5013             Richard Henderson  <rth@redhat.com>
5014
5015         * config/i386/cygwin.asm: Include auto-host.h.
5016         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
5017         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
5018         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
5019         alignment code from the 64-bit path.  Use gas local labels.
5020         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
5021         from _di_2.  Remove the useless constant integer argument.
5022         (pro_epilogue_adjust_stack_<mode>_3): New.
5023         (allocate_stack_worker_probe_<mode>): Macroize from
5024         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
5025         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
5026         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
5027         (__chkstk_ms): New function.
5028         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
5029         * gcc/config/i386/t-interix: Likewise.
5030         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
5031         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
5032         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
5033         * configure, config.in: Rebuild.
5034
5035 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
5036
5037         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
5038         statements because of the return slot optimization.
5039
5040 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
5041
5042         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
5043         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
5044         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5045         (class_likely_spilled_p): Rename to...
5046         (avr_class_likely_spilled_p): ...this. Make static. Change argument
5047         type to reg_class_t.
5048
5049 2010-09-24  Jan Hubicka  <jh@suse.cz>
5050
5051         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
5052         (lto_symtab_resolve_symbols): Set it.
5053         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
5054         store resolution field in cgraph/varpool.
5055         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
5056         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
5057         (cgraph_dump_node): Drop used_from_object_file.
5058         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
5059         (cgraph_function_body_availability): Use decl_replaceable_p.
5060         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
5061         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
5062         cgraph_used_from_object_file_p.
5063         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
5064         cgraph_used_from_object_file_p.
5065         (resolution_used_from_other_file_p): New functoin.
5066         (cgraph_used_from_object_file_p): New predicate.
5067         * cgraph.h: Include plugin-api.h
5068         (struct cgraph_local_info): Remove used_from_object_file.
5069         (struct cgraph_node): Add resolution field.
5070         (struct varpool_node): Likewise; remove used_from_object_file;
5071         reove const_value_known.
5072         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
5073         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
5074         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
5075         varpool_used_from_object_file_p): Declare.
5076         (varpool_get_node, varpool_extra_name_alias): Update prototype.
5077         * tree.h (DECL_REPLACEABLE_P): Remove.
5078         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
5079         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
5080         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
5081         input_overwrite_node, input_node, input_varpool_node): Stream
5082         resolution.
5083         * expr.c (expand_expr_real_1): Use const_value_known_p
5084         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
5085         const_value_known.
5086         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
5087         (function_and_variable_visibility): Set resolution for local vars
5088         and functions; use varpool_used_from_object_file_p.
5089         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
5090         static functions.
5091         (default_binds_local_p_1): Use resolutoin info.
5092         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
5093         * varpool.c (varpool_get_node): Constify.
5094         (const_value_known_p): Do not use vnode->const_value_known;
5095         use decl_replaceable_p.
5096         (varpool_finalize_decl): Do not set const_value_known.
5097         (cgraph_variable_initializer_availability): Use decl_replaceable_p
5098         (varpool_extra_name_alias): Return new node.
5099         (varpool_used_from_object_file_p): New function.
5100
5101 2010-09-24  Richard Henderson  <rth@redhat.com>
5102
5103         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
5104         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
5105         (do_spill): Use REG_CFA_OFFSET.
5106         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
5107         as appropriate.
5108         (ia64_expand_epilogue): Likewise.
5109         (process_set): Split into ...
5110         (process_cfa_adjust_cfa): this,
5111         (process_cfa_register): this,
5112         (process_cfa_offset): and this new function.
5113         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
5114         instead of REG_FRAME_RELATED_EXPR.
5115
5116 2010-09-24  Olivier Hainque  <hainque@adacore.com>
5117
5118         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
5119
5120 2010-09-24  Jan Hubicka  <jh@suse.cz>
5121
5122         * doc/extend.texi: (attribute leaf): Document.
5123         * tree.c (local_define_builtin): Handle ECF_LEAF.
5124         (build_common_builtin_nodes): Set ECF_LEAF where needed.
5125         * tree.h (ECF_LEAF): New.
5126         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
5127         overwrittable and unavailable functions.
5128         (ipa_init): Put all_module_statics into optimization_summary_obstack.
5129         (copy_global_bitmap): Do not copy all_module_statics.
5130         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
5131         (propagate): Handle overwritable and unavailable leaf functions;
5132         initialize global info for overwritable and unavailable leaf functions;
5133         do not free all module statics.
5134         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
5135         local statics.
5136         * calls.c (flags_from_decl_or_type): Handle leaf.
5137         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
5138         abnormal gotos.
5139
5140 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
5141
5142         * gengtype.c: Reindented.
5143         * gengtype.h: Reindented.
5144         * gengtype-parse.c: Reindented.
5145
5146 2010-09-24  Jan Hubicka  <jh@suse.cz>
5147
5148         PR tree-optimization/45738
5149         PR tree-optimization/45741
5150         * expr.c (string_constant): Allow CONST_DECL too;
5151         check that DECL_INITIAL is set.
5152         * varpool.c (const_value_known_p): Only look into VAR_DECL
5153         and CONST_DECL.
5154
5155 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
5156
5157         * common.opt (undef): New.
5158
5159 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
5160
5161         PR middle-end/45234
5162         * rtl.h (enum global_rtl_index): Add
5163         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
5164         (LAST_VIRTUAL_POINTER_REGISTER): Define.
5165         (virtual_preferred_stack_boundary_rtx,
5166         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
5167         (LAST_VIRTUAL_REGISTER): Increase by one.
5168         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
5169         instead of LAST_VIRTUAL_REGISTER.
5170         * function.c (instantiate_new_reg): Handle
5171         virtual_preferred_stack_boundary_rtx.
5172         * emit-rtl.c (init_virtual_regs): Handle
5173         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
5174         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
5175         * explow.c (round_push): If crtl->preferred_stack_boundary
5176         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
5177         virtual_preferred_stack_boundary_rtx alignment instead of
5178         crtl->preferred_stack_boundary alignment.
5179         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
5180         macros.  Never decrease crtl->preferred_stack_boundary,
5181         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
5182         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
5183         stack_pointer_delta in dynamic allocation, even when size
5184         is constant.
5185         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
5186         macro.
5187         * print-rtl.c (print_rtx): Handle
5188         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
5189         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
5190         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
5191         * config/frv/frv.c (frv_emit_movsi): Likewise.
5192         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
5193         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
5194         Likewise.
5195
5196         Revert:
5197         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
5198
5199         PR middle-end/45234
5200         * calls.c (expand_call): Make sure that all variable sized
5201         adjustments are multiple of preferred stack boundary after
5202         stack alignment.
5203
5204 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
5205             Dominique Dhumieres  <dominiq@lps.ens.fr>
5206
5207         PR bootstrap/45751
5208         * gcc/config/darwin-driver.c (darwin_default_min_version):
5209         Adjust size passed to memcpy in two places.
5210
5211 2010-09-24  Richard Guenther  <rguenther@suse.de>
5212
5213         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
5214         Make sure to not call set_type_context with error_mark_node.
5215         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
5216
5217 2010-09-24  Richard Guenther  <rguenther@suse.de>
5218
5219         * Makefile.in (OBJS-onestep): Remove.
5220         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
5221         (libbackend.a): Remove onestep support.
5222         (libbackend.o): Remove.
5223         * configure.ac (--enable-intermodule): Remove.
5224         * configure: Regenerate.
5225
5226 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
5227
5228         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
5229         reaching the end of a block if it occurs at a DEBUG_INSN.
5230
5231 2010-09-09  Tristan Gingold  <gingold@adacore.com>
5232
5233         PR target/44242
5234         * config/vms/vms-crt0-64.c: Removed.
5235         * config/vms/vms-crt0.c: Removed.
5236         * config/vms/vms-psxcrt0-64.c: Removed.
5237         * config/vms/vms-psxcrt0.c: Removed.
5238         * config/vms/vms-ucrt0.c: New file.
5239         * config/vms/t-vms64: Removed.
5240         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
5241         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
5242         * config.gcc (alpha-dec-vms): Use t-vms.
5243
5244 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
5245
5246         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
5247         underfull hbox in DVI output.
5248         (-fobjc-class-cxx-cdtors): Same change.
5249         (-fobjc-exceptions): Tidied up documentation.  Explain what the
5250         option does, but moved the (lenghty) description of the exception
5251         syntax into objc.texi.
5252         (-fobjc-gc): Explain that the option is not useful with the GNU
5253         runtime.
5254         (-fzero-link): Explain that the GNU runtime always works in
5255         "zero-link" mode.
5256         * doc/objc.texi: All sections: simplified @node declarations
5257         removing specification of next, previous, up node.
5258         (Objective-C): Updated introduction.
5259         (Garbage Collection): Updated.  The bohem-gc library is now
5260         included in gcc itself.  Mention that this section only applies to
5261         the GNU Objective-C runtime.
5262         (compatibility_alias): Small tidy up.
5263         (Exceptions): New section mostly containing text previously in the
5264         description of the -fobjc-exception command-line option.
5265         (Synchronization): Same.
5266
5267 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
5268
5269         * config/i386/i386.md (ix86_code_end): Move the initialization of
5270         xops array near the consumer.  Use AX_REG and SP_REG instead of
5271         numerical constants.
5272
5273 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
5274
5275         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
5276         method [methodname]' for an Objective-C method instead of the less
5277         satisfactory 'too many arguments to function' (with no method name).
5278
5279 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
5280
5281         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
5282         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
5283         (execute_update_addresses_taken): Remove parameter.  Execute the
5284         optimization unconditionally.
5285         * passes.c (execute_function_todo): Call execute_update_addresses_taken
5286         unconditionally if TODO_rebuild_alias is set, else only when optimizing
5287         if TODO_update_address_taken is set.
5288
5289 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
5290
5291         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
5292         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
5293         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5294         (arm_output_addr_const_extra): Make static.
5295
5296 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
5297
5298         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
5299         define as unspec_volatile.
5300         ("nops"): Define as unspec_volatile. Use fputs to write to
5301         asm_out_file directly.  Output NOPs on separate lines using while loop.
5302         * config/i386/i386.c (ix86_code_end): Use fputs to write to
5303         asm_out_file directly.  Output NOPs on separate lines using while loop.
5304
5305 2010-09-23  Richard Guenther  <rguenther@suse.de>
5306
5307         PR tree-optimization/45565
5308         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
5309         Make sure to adjust the fndecl before replacing the stmt.
5310
5311 2010-09-23  Richard Guenther  <rguenther@suse.de>
5312
5313         PR middle-end/45750
5314         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
5315         gimplifying MEM_REF.
5316
5317 2010-09-23  Alan Modra  <amodra@gmail.com>
5318
5319         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
5320         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
5321
5322 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
5323
5324         PR rtl-optimization/44374
5325         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
5326         * df-core.c (df_set_bb_dirty): Set it.
5327         * ifcvt.c (find_memory): Remove function.
5328         (dead_or_predicable): Use can_move_insns_across.
5329         * df.h (can_move_insns_across): Declare function.
5330         * cfgcleanup.c (block_was_dirty): New static variable.
5331         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
5332         than df_get_bb_dirty.
5333         (try_head_merge_bb): New static function.
5334         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
5335         is set.
5336         * df-problems.c: Include "target.h"
5337         (df_simulate_find_uses): New static function.
5338         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
5339         (find_memory, find_memory_store): New static functions.
5340         (can_move_insns_across): New function.
5341         * Makefile.in (df-problems.o): Update dependencies.
5342
5343 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
5344
5345         PR java/44095
5346         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
5347         is specified and the suffix of the file isn't ".c".
5348         * config/sparc/linux64.h (ASM_SPEC): Likewise.
5349
5350 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5351
5352         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
5353         * doc/cppopts.texi: Fix markup of index entry.
5354         * doc/extend.texi (Constructing Calls): Fix markup of
5355         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
5356         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
5357         (Vague Linkage, C++ Attributes): Fix markup of index entries and
5358         keywords.
5359         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
5360         avoid long lines.
5361         (C Dialect Options, C++ Dialect Options, Warning Options)
5362         (Debugging Options, Spec Files, Darwin Options)
5363         (i386 and x86-64 Options, MIPS Options)
5364         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
5365         index entries, avoid abbreviations, allow URLs to wrap, avoid
5366         long lines, avoid overlong pages from long @itemx lists.
5367         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
5368         * doc/standards.texi (Standards): Likewise.
5369         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
5370
5371 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
5372
5373         * opts-common.c (prune_options): Make static.  Work with decoded
5374         options.
5375         (decode_cmdline_options_to_array): Call prune_options.  Don't
5376         resize option array here.
5377         * opts.h (prune_options): Remove prototype.
5378         * gcc.c (process_command): Take decoded options; don't call
5379         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
5380         (main): Call decode_cmdline_options_to_array here instead of
5381         prune_options.  Update call to process_command.
5382         * config/darwin-driver.c: Include opts.h.
5383         (darwin_default_min_version): Work with decoded options.  Don't
5384         handle -b or -V here.
5385         * config/darwin.h (darwin_default_min_version): Update prototype.
5386         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
5387         darwin_default_min_version.
5388         * config/i386/cygwin.h (mingw_scan): Update prototype.
5389         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
5390         * config/i386/cygwin1.c: Include opts.h.
5391         (mingw_scan): Work with decoded options.
5392         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
5393         * config/t-darwin (darwin-driver.o): Update dependencies.
5394
5395 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
5396
5397         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
5398         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
5399         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
5400         -force-link, -force-link=, -language, -language=,
5401         -library-directory, -library-directory=, -no-canonical-prefixes,
5402         -no-standard-libraries, -no-warnings, -optimize, -output,
5403         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
5404         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
5405         -print-file-name=, -print-libgcc-file-name,
5406         -print-multi-directory, -print-multi-lib,
5407         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
5408         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
5409         -profile, -save-temps, -shared, -specs, -specs=, -static,
5410         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
5411         symbolic): New.
5412         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
5413         * gcc.c (A Short Introduction to Adding a Command-Line Option):
5414         Remove comment.
5415         (cc1_options): Correct specs for passing down --help,
5416         --target-help and --help=*.  Add spec for passing down --version.
5417         (struct option_map, option_map, target_option_translations,
5418         translate_options): Remove.
5419         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
5420         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
5421         OPT_fhelp_ and OPT_ftarget_help.
5422         (process_command): Don't call translate_options.  Call
5423         decode_cmdline_options_to_array before checking for
5424         -no-canonical-prefixes using decoded options.
5425         * opts-common.c (tm.h): Update comment on #include.
5426         (find_opt): Allow abbreviations of long options.
5427         (struct option_map, option_map): New.
5428         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
5429         and -mno handling.
5430         (target_option_translations): New.
5431         (decode_cmdline_options_to_array): Handle
5432         TARGET_OPTION_TRANSLATE_TABLE in driver.
5433         * opts.c (common_handle_option): Don't handle OPT_fhelp,
5434         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
5435
5436 2010-09-22  Richard Guenther  <rguenther@suse.de>
5437
5438         * tree-inline.c (optimize_inline_calls): Schedule cleanups
5439         only if we inlined something.  Block compaction and conditional
5440         folding are done by cfg cleanup.  Schedule update-address-taken.
5441         (tree_function_versioning): Remove redundant call to number_blocks.
5442         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
5443         folding is done by cfg cleanup.
5444         * passes.c (init_optimization_passes): Remove update-address-taken
5445         pass after IPA inlining.
5446
5447 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
5448
5449         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
5450         to update conditions. Fix reg_mode[] check.
5451
5452 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
5453
5454         * config/picochip/picochip.md (movhicc): Use expand to check whether
5455         movhicc is available and split it after reload.
5456
5457 2010-09-22  Richard Guenther  <rguenther@suse.de>
5458
5459         * tree-ssanames.c (release_dead_ssa_names): Do not remove
5460         callee edges here.
5461         * passes.c (init_optimization_passes): Remove early CFG cleanup.
5462         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
5463         (pass_cleanup_cfg): Likewise.
5464         (execute_fixup_cfg): Cleanup.
5465         * tree-pass.h (pass_cleanup_cfg): Remove.
5466
5467 2010-09-22  Martin Jambor  <mjambor@suse.cz>
5468
5469         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
5470         builtins if it is true.
5471         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
5472         parameter.
5473
5474 2010-09-22  Martin Jambor  <mjambor@suse.cz>
5475
5476         * tree-sra.c (struct access): New field grp_no_warning.
5477         (create_access_replacement): Set TREE_NO_WARNING according to
5478          grp_no_warning.
5479         (create_artificial_child_access): Use build_ref_for_model and set
5480         grp_no_warning if build_user_friendly_ref_for_offset fails.
5481         (propagate_subaccesses_across_link): Likewise.
5482
5483 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
5484
5485         PR target/35664
5486         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
5487         ('f'): Likewise.
5488
5489 2010-09-22  Tristan Gingold  <gingold@adacore.com>
5490
5491         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
5492
5493 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
5494
5495         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
5496         * config/i386/i386.c (decide_alg): Update for rename.
5497
5498 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
5499
5500         PR rtl-optimization/45739
5501         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
5502         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
5503
5504 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
5505
5506         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
5507         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
5508         Remove.
5509         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
5510         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5511
5512 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
5513
5514         PR objc/23710
5515         * c-parser.c (c_parser_objc_method_definition): Check the return
5516         value of objc_start_method_definition and if false is returned,
5517         parse the method definition but emit no code.
5518
5519 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
5520
5521         PR objc/25965
5522         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
5523         call objc_get_interface_ivars ().
5524
5525 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
5526
5527         PR target/45694
5528         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
5529         static chain-register is used for 64-bit.
5530
5531 2010-09-21  Richard Guenther  <rguenther@suse.de>
5532
5533         * dwarf2out.c (is_cu_die): New function.
5534         (add_pubtype): Use it.
5535         (gen_subprogram_die): Likewise.
5536         (gen_struct_or_union_type_die): Likewise.
5537         (dwarf2out_finish): Likewise.
5538         (comp_unit_die): Rename to ...
5539         (single_comp_unit_die): ... this.
5540         (comp_unit_die): New function lazily constructing and
5541         returning single_comp_unit_die.
5542         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
5543         base_type_die, subrange_type_die, modified_type_die,
5544         lower_bound_default, add_bound_info, add_prototyped_attribute,
5545         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
5546         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
5547         force_decl_die, gen_namespace_die, dwarf2out_decl,
5548         dwarf2out_start_source_file, dwarf2out_end_source_file,
5549         prune_unused_types, dwarf2out_finish): Use it.
5550         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
5551         the global list of translation-unit decls.
5552         (dwarf2out_init): Do not create single_comp_unit_die here.
5553         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
5554
5555 2010-09-21  Richard Guenther  <rguenther@suse.de>
5556
5557         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
5558         for bool for C++.
5559
5560 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
5561
5562         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
5563         (qhs_extenddi_cstr): Likewise.
5564         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
5565         them for the source operand.
5566
5567 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
5568
5569         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
5570         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
5571         (ix86_split_ashr): Ditto.
5572         (ix86_split_lshr): Ditto.
5573
5574 2010-09-21  Richard Guenther  <rguenther@suse.de>
5575
5576         PR tree-optimization/45580
5577         * tree-ssa-propagate.c (substitute_and_fold): Always replace
5578         regular uses.
5579         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
5580         virtuals fold the call into a regular indirect one.
5581
5582 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
5583
5584         PR rtl-optimization/42775
5585         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
5586         scheduling is enabled.
5587
5588 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
5589
5590         PR rtl-optimization/45728
5591         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
5592         gen_lowpart_common first and if that fails, force_reg first
5593         before calling gen_lowpart.
5594
5595         PR middle-end/45678
5596         * cfgexpand.c (expand_one_stack_var_at): Use
5597         crtl->max_used_stack_slot_alignment as max_align, instead
5598         of maximum of that and PREFERRED_STACK_BOUNDARY.
5599         Don't call update_stack_alignment.
5600
5601 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
5602
5603         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
5604         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
5605         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
5606         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
5607         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
5608         (build_nonstandard_integer_type): Likewise.
5609         (build_range_type_1): New function, built from...
5610         (build_range_type): ...this.  Call build_range_type_1.
5611         (build_nonshared_range_type): New function.
5612         (build_array_type_1): New function, built from...
5613         (build_array_type: ...this.  Call build_array_type_1.
5614         (build_nonshared_array_type): New function.
5615         * tree.h (build_nonshared_range_type): Declare.
5616         (build_nonshared_array_type): Likewise.
5617
5618 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
5619
5620         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
5621         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5622         (arm_class_likely_spilled_p): New function.
5623
5624 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
5625
5626         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
5627         indirect functions.
5628         (ix86_split_ashl): Ditto.
5629         (ix86_split_ashr): Ditto.
5630         (ix86_split_lshr): Ditto.
5631         (ix86_adjust_counter): Ditto.
5632
5633 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
5634
5635         * c-family/c-common.h (constant_string_class): Documented with
5636         comment identical to the one already in c-common.c.
5637
5638 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
5639
5640         * dwarf2out.c (any_cfis_emitted): New static variable.
5641         (add_fde_cfi): Set it.
5642         (dwarf2out_frame_debug): Clear it before processing,
5643         if it is set afterwards, flush any queued reg saves.
5644
5645         PR debug/45124
5646         * dwarf2out.c (add_accessibility_attribute): Assume
5647         DW_ACCESS_private as the default for dwarf_version > 2
5648         and DW_TAG_class_type parent.
5649         (gen_inheritance_die): Assume DW_ACCESS_public as the default
5650         for dwarf_version > 2 and parent other than DW_TAG_class_type.
5651
5652 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
5653
5654         PR target/45726
5655         * arm.md (arm_movt): Only enable on machines with MOVT.
5656
5657 2010-09-20  Jie Zhang  <jie@codesourcery.com>
5658
5659         * config/arm/arm.c (arm_address_offset_is_imm): New.
5660         (arm_early_store_addr_dep): New.
5661         (arm_early_load_addr_dep): New.
5662         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
5663         (arm_early_load_addr_dep): Declare.
5664         (arm_address_offset_is_imm): Declare.
5665         * config/arm/cortex-m4.md: New file.
5666         * config/arm/cortex-m4-fpu.md: New file.
5667         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
5668         (attr generic_sched): Exclude cortexm4.
5669         (attr generic_vfp): Exclude cortexm4.
5670
5671 2010-09-20  Richard Guenther  <rguenther@suse.de>
5672
5673         PR middle-end/45704
5674         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
5675
5676 2010-09-20  Jan Hubicka  <jh@suse.cz>
5677
5678         PR tree-optimize/45605
5679         * cgraph.h (const_value_known_p): Declare.
5680         (varpool_decide_const_value_known): Remove.
5681         * tree-ssa-ccp.c (get_base_constructor): Use it.
5682         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
5683         * expr.c (string_constant): Likewise.
5684         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
5685         * ipa.c (ipa_discover_readonly_nonaddressable_var,
5686         function_and_variable_visibility): Likewise.
5687         * gimplify.c (gimplify_call_expr): Likewise.
5688         * gimple-fold.c (get_symbol_constant_value): Likewise.
5689         * varpool.c (varpool_decide_const_value_known): Replace by...
5690         (const_value_known_p): ... this one; handle other kinds of DECLs
5691         too and work for automatic vars.
5692         (varpool_finalize_decl): Use const_value_known_p.
5693
5694 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
5695
5696         PR target/45726
5697         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
5698
5699 2010-09-20  Richard Guenther  <rguenther@suse.de>
5700
5701         PR tree-optimization/45705
5702         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
5703
5704 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
5705
5706         PR rtl-optimization/45695
5707         * combine.c (try_combine): When splitting a two set pattern,
5708         make sure the pattern which will be put into i2 doesn't use REGs
5709         or MEMs set by insns in between i2 and i3.
5710
5711 2010-09-19  Jan Hubicka  <jh@suse.cz>
5712
5713         PR lto/44246
5714         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
5715         processing same node twice.
5716
5717 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
5718
5719         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
5720         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5721         (bfin_class_likely_spilled_p): New function
5722
5723 2010-09-19  Ira Rosen  <irar@il.ibm.com>
5724
5725         PR tree-optimization/45714
5726         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
5727         created in vectorizable_call instead of the original statement in
5728         def stmt updates.
5729
5730 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
5731
5732         * config/i386/i386-protos.h (split_double_mode): New prototype.
5733         (split_di, split_ti): Remove prototypes.
5734         * config/i386/i386.c (split_double_mode): New function.
5735         (split_di, split_ti): Remove.
5736         (ix86_expand_branch): Use split_double_mode.
5737         (ix86_split_to_parts): Ditto.
5738         (ix86_split_ashl): Ditto.
5739         (ix86_split_ashr): Ditto.
5740         (ix86_split_lshr): Ditto.
5741         (ix86_force_to_memory): Ditto.
5742         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
5743
5744 2010-09-18  Jan Hubicka  <jh@suse.cz>
5745
5746         PR tree-optimization/45453
5747         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
5748         virtual functions are reachable.
5749         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
5750         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
5751         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
5752         when modifying function.
5753
5754 2010-09-18  Jan Hubicka  <jh@suse.cz>
5755
5756         PR tree-optimization/45605
5757         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
5758         * gimple-fold.c (static_object_in_other_unit_p): New function.
5759         (canonicalize_constructor_val): Use it.
5760         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
5761         returning NULL.
5762         (gimple_fold_obj_type_ref_known_binfo): Use
5763         static_object_in_other_unit_p.
5764
5765 2010-09-18  Richard Guenther  <rguenther@suse.de>
5766
5767         PR tree-optimization/45709
5768         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
5769         insertions until after all PHI nodes of the block are processed.
5770
5771 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
5772
5773         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
5774
5775 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
5776
5777         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
5778
5779 2010-09-18  Richard Guenther  <rguenther@suse.de>
5780
5781         PR tree-optimization/45709
5782         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
5783
5784 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
5785
5786         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
5787         (dot_deps_stmt): Same.
5788         * graphite-poly.c (dot_lst): Same.
5789         * graphite-scop-detection.c (dot_all_scops): Same.
5790         (dot_scop): Same.
5791
5792 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
5793
5794         Revert:
5795         2009-12-16  Ben Elliston  <bje@au.ibm.com>
5796
5797         * tree-data-ref.c (dot_rdg_1): Added back.
5798         (dot_rdg): Same.  Added "#if 0" around system call.
5799
5800 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
5801             Richard Henderson  <rth@redhat.com>
5802
5803         * config/i386/i386.c (initial_ix86_tune_features): Add
5804         X86_TUNE_PAD_SHORT_FUNCTION.
5805         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
5806         (ix86_count_insn): New.
5807         (ix86_pad_short_function): Likewise.
5808         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
5809
5810         * config/i386/i386.h (ix86_tune_indices): Add
5811         X86_TUNE_PAD_SHORT_FUNCTION.
5812         (TARGET_PAD_SHORT_FUNCTION): New.
5813
5814         * config/i386/i386.md (UNSPEC_NOPS): New.
5815         (nops): Likewise.
5816
5817 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
5818
5819         PR middle-end/45234
5820         * calls.c (expand_call): Make sure that all variable sized
5821         adjustments are multiple of preferred stack boundary after
5822         stack alignment.
5823
5824 2010-09-17  DJ Delorie  <dj@redhat.com>
5825
5826         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
5827         passed an invalid value, print an error instead of ICEing.
5828         (valid_psw_flag): New.
5829         (rx_expand_builtin): Call it for setpsw/clrpsw.
5830         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
5831
5832         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
5833         (bitclr_in_memory): Likewise.
5834         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
5835
5836 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
5837
5838         PR middle-end/45678
5839         * cfgexpand.c (update_stack_alignment): New.
5840         (get_decl_align_unit): Use it.
5841         (expand_one_stack_var_at): Call update_stack_alignment.
5842
5843 2010-09-17  Richard Guenther  <rguenther@suse.de>
5844
5845         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
5846         Properly copy the read string.
5847
5848 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
5849
5850         * doc/options.texi (Variable): Document.
5851         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
5852         generate target_flags declarations explicitly.  Don't define
5853         VarExists variables for the driver.
5854         * common.opt (target_flags): New Variable record.
5855         (flag_dump_unnumbered, flag_dump_unnumbered_links,
5856         flag_var_tracking, flag_var_tracking_assignments,
5857         flag_var_tracking_assignments_toggle): Don't mark variables with
5858         VarExists.
5859         * config/i386/i386.c (ix86_isa_flags): Don't define here.
5860         * config/i386/i386.opt (ix86_isa_flags): Define here.
5861         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
5862         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
5863         VarExists.
5864         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
5865         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
5866         Only define for generator programs.
5867         * rtlanal.c (target_flags): Remove.
5868         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
5869         flag_var_tracking_assignments_toggle): Remove.
5870
5871 2010-09-17  Michael Matz  <matz@suse.de>
5872
5873         PR tree-optimization/43432
5874         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
5875         Accept backwards consecutive accesses.
5876         (vect_create_data_ref_ptr): If step is negative generate
5877         decreasing IVs.
5878         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
5879         (perm_mask_for_reverse, reverse_vec_elements): New functions.
5880         (vectorizable_load): Handle loads with negative steps when easily
5881         possible.
5882
5883 2010-09-03  Jan Hubicka  <jh@suse.cz>
5884
5885         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
5886
5887 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
5888
5889         * config/v850/v850.c (v850_function_value_regno_p): Make static.
5890         Adjust comments. Declare.
5891         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
5892         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
5893
5894 2010-09-17  Richard Guenther  <rguenther@suse.de>
5895
5896         * common.opt (combine): Remove.
5897         * gcc.c (default_compilers): Remove specs testing combine.
5898         The C compilers no longer can combine.
5899         (option_map): Remove -combine.
5900         (display_help): Remove -combine.
5901         (driver_handle_option): Remove OPT_combine handling.
5902         (compile_input_file_p): Remove.
5903         (do_spec): Remove code concerning combine.
5904         (main): Likewise.
5905         * doc/invoke.texi: Remove traces of -combine.
5906         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
5907
5908 2010-09-17  Richard Guenther  <rguenther@suse.de>
5909
5910         PR middle-end/45678
5911         * builtins.c (fold_builtin_memory_op): Always properly adjust
5912         alignment of memory accesses.
5913
5914 2010-09-16  Jan Hubicka  <jh@suse.cz>
5915
5916         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
5917         processing clone.
5918
5919 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
5920
5921         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
5922
5923         * config/i386/i386.c (predict_jump): Add prototype.
5924         (flag_opts): Add -m8bit-idiv.
5925         (ix86_split_idivmod): New.
5926
5927         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
5928         Add 2 splitters for SI/DI mode divide.
5929         (divmod<mode>4_1): New pattern.
5930         (udivmod<mode>4_1): Likewise.
5931         (testdi_ccno_1): Likewise.
5932
5933         * config/i386/i386.opt (m8bit-idiv): New.
5934
5935         * doc/invoke.texi: Document -m8bit-idiv.
5936
5937 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
5938
5939         PR bootstrap/45680
5940         * config/i386/i386.c (min_insn_size): Moved out of the
5941         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
5942
5943 2010-09-16  Jan Hubicka  <jh@suse.cz>
5944
5945         * lto-cgraph.c (lto_output_node): Fix handling of clones.
5946         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
5947         unreachable clones with reachable clones.
5948         * tree-inline.c (copy_bb): Fix sanity checking when producing
5949         unreachable clone.
5950
5951 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
5952
5953         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
5954         (TARGET_MEMORY_MOVE_COST): Define.
5955         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
5956
5957 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
5958
5959         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
5960         maybe_tidy_empty_bb.
5961
5962         Revert:
5963         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
5964         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
5965
5966 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
5967
5968         * target.def (target_option.optimization): New hook.
5969         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
5970         TARGET_OPTION_OPTIMIZATION hook.
5971         * doc/tm.texi: Regenerate.
5972         * hooks.c (hook_void_int_int): New.
5973         * hooks.h (hook_void_int_int): Declare.
5974         * opts.c: Don't include tm_p.h.
5975         (decode_options): Use targetm.target_option.optimization instead
5976         of OPTIMIZATION_OPTIONS.
5977         * system.h (OPTIMIZATION_OPTIONS): Poison.
5978         * config/arm/arm-protos.h (arm_optimization_options): Remove.
5979         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
5980         (arm_optimization_options): Rename to arm_option_optimization.
5981         Make static.
5982         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
5983         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
5984         (cris_option_optimization): New.
5985         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
5986         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
5987         (crx_option_optimization): New.
5988         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
5989         * config/frv/frv-protos.h (frv_optimization_options): Remove.
5990         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
5991         (frv_optimization_options): Rename to frv_option_optimization.
5992         Make static.
5993         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
5994         * config/h8300/h8300.c (h8300_option_optimization): New.
5995         (TARGET_OPTION_OPTIMIZATION): Define.
5996         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
5997         * config/i386/i386-protos.h (optimization_options): Remove.
5998         * config/i386/i386.c (optimization_options): Rename to
5999         ix86_option_optimization.  Make static.
6000         (TARGET_OPTION_OPTIMIZATION): Define.
6001         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
6002         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
6003         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
6004         (ia64_optimization_options): Rename to ia64_option_optimization.
6005         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
6006         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
6007         commented-out definition.
6008         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
6009         instead of OPTIMIZATION_OPTIONS.
6010         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
6011         (m32r_option_optimization): New.
6012         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
6013         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
6014         Remove.
6015         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
6016         (mcore_option_optimization): New.
6017         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
6018         * config/mep/mep-protos.h (mep_optimization_options): Remove.
6019         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
6020         (mep_optimization_options): Rename to mep_option_optimization.
6021         Make static.  Take unused level and size parameters.
6022         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
6023         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
6024         (mmix_option_optimization): New.
6025         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
6026         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
6027         (pdp11_option_optimization): New.
6028         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
6029         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
6030         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
6031         (optimization_options): Rename to rs6000_option_optimization.
6032         Make static.
6033         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
6034         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
6035         * config/rx/rx.c (rx_set_optimization_options): Rename to
6036         rx_option_optimization.  Make static.  Take unused level and size
6037         parameters.
6038         (TARGET_OPTION_OPTIMIZATION): Define.
6039         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
6040         * config/s390/s390-protos.h (optimization_options): Remove.
6041         * config/s390/s390.c (optimization_options): Rename to
6042         s390_option_optimization.  Make static.  Don't mark size parameter
6043         unused.
6044         (TARGET_OPTION_OPTIMIZATION): Define.
6045         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
6046         * config/sh/sh-protos.h (sh_optimization_options): Remove.
6047         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
6048         (sh_optimization_options): Rename to sh_option_optimization.  Make
6049         static.  Don't mark parameters unused.
6050         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
6051         * config/spu/spu-protos.h (spu_optimization_options): Remove.
6052         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
6053         (spu_optimization_options): Rename to spu_option_optimization.
6054         Make static.
6055         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
6056         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
6057         (v850_option_optimization): New.
6058         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
6059         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
6060         (xtensa_option_optimization): New.
6061         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
6062
6063 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
6064
6065         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
6066         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
6067         * doc/tm.texi: Regenerate.
6068         * system.h (OVERRIDE_OPTIONS): Poison.
6069         * target.def (override): Default to hook_void_void.
6070         * targhooks.c (default_target_option_override): Remove.
6071         * genmodes.c, machmode.def: Update comments mentioning
6072         OVERRIDE_OPTIONS.
6073         * config/alpha/alpha-modes.def: Update comment mentioning
6074         alpha_override_options.
6075         * config/alpha/alpha-protos.h (override_options): Remove.
6076         * config/alpha/alpha.c (override_options): Rename to
6077         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
6078         (TARGET_OPTION_OVERRIDE): Define.
6079         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
6080         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
6081         of OVERRIDE_OPTIONS.
6082         * config/arc/arc-protos.h (arc_init): Remove.
6083         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
6084         (arc_init): Rename to arc_option_override.  Make static.
6085         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
6086         (OVERRIDE_OPTIONS): Remove.
6087         * config/arm/arm-protos.h (arm_override_options): Remove.
6088         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
6089         (arm_override_options): Rename to arm_option_override.  Make
6090         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
6091         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
6092         * config/arm/arm.md: Update comment referring to arm_override_options.
6093         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
6094         instead of OVERRIDE_OPTIONS.
6095         * config/avr/avr-protos.h (avr_override_options): Remove.
6096         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
6097         (avr_override_options): Rename to avr_option_override.  Make static.
6098         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
6099         * config/bfin/bfin-protos.h (override_options): Remove (twice).
6100         * config/bfin/bfin.c (override_options): Rename to
6101         bfin_option_override.  Make static.
6102         (TARGET_OPTION_OVERRIDE): Define.
6103         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
6104         * config/cris/cris-protos.h (cris_override_options): Remove.
6105         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
6106         (cris_override_options): Rename to cris_option_override.  Make static.
6107         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
6108         * config/frv/frv-protos.h (frv_override_options): Remove.
6109         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
6110         (frv_override_options): Rename to frv_option_override.  Make static.
6111         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
6112         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
6113         * config/h8300/h8300.c (h8300_init_once): Rename to
6114         h8300_option_override.  Make static.
6115         (TARGET_OPTION_OVERRIDE): Define.
6116         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
6117         * config/i386/i386-protos.h (override_options): Remove.
6118         * config/i386/i386.c (override_options): Rename to
6119         ix86_option_override_internal.  Make static.  Comments referring
6120         to this function and callers changed.
6121         (ix86_option_override): New.
6122         (TARGET_OPTION_OVERRIDE): Define.
6123         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
6124         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
6125         * config/ia64/ia64.c (ia64_file_start): Update comment referring
6126         to ia64_override_options.
6127         * config/iq2000/iq2000-protos.h (override_options): Remove.
6128         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
6129         (override_options): Rename to iq2000_option_override.  Make static.
6130         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
6131         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
6132         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
6133         (lm32_override_options): Rename to lm32_option_override.  Make static.
6134         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
6135         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
6136         (m32r_option_override): New.
6137         (m32r_init): Update comment.
6138         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
6139         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
6140         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
6141         (m68hc11_override_options): Rename to m68hc11_option_override.
6142         Make static.  Return void.
6143         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
6144         * config/m68k/m68k-protos.h (override_options): Remove.
6145         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
6146         (override_options): Rename to m68k_option_override.  Make static.
6147         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
6148         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
6149         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
6150         (mcore_override_options): Rename to mcore_option_override.  Make
6151         static.
6152         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
6153         * config/mep/mep-protos.h (mep_override_options): Remove.
6154         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
6155         (mep_override_options): Rename to mep_option_override.  Make static.
6156         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
6157         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
6158         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
6159         (mmix_override_options): Rename to mmix_option_override.  Make static.
6160         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
6161         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
6162         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
6163         (mn10300_override_options): Rename to mn10300_option_override.
6164         Make static.
6165         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
6166         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
6167         * config/moxie/moxie.c (moxie_override_options): Rename to
6168         moxie_option_override.  Make static.
6169         (TARGET_OPTION_OVERRIDE): Define.
6170         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
6171         * config/picochip/picochip-protos.h (picochip_override_options):
6172         Remove.  Update comment referring to picochip_override_options.
6173         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
6174         (picochip_override_options): Rename to picochip_option_override.
6175         Make static.  Update comment and definition of
6176         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
6177         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
6178         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6179         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6180         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6181         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6182         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6183         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
6184         instead of OVERRIDE_OPTIONS.
6185         * config/rs6000/rs6000-modes.def: Update comment referring to
6186         rs6000_override_options.
6187         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
6188         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
6189         (rs6000_override_options): Rename to
6190         rs6000_option_override_internal.  Make static.  Commented
6191         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
6192         (rs6000_option_override): New.
6193         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
6194         instead of OVERRIDE_OPTIONS.
6195         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6196         * config/s390/s390-protos.h (override_options): Remove.
6197         * config/s390/s390.c (override_options): Rename to
6198         s390_option_override.  Make static.
6199         (TARGET_OPTION_OVERRIDE): Define.
6200         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
6201         * config/score/score-protos.h (score_override_options): Remove.
6202         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
6203         (score_override_options): Rename to score_option_override.  Make
6204         static.
6205         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
6206         Update comment referring to override_options.
6207         * config/score/score3.c (score3_override_options): Rename to
6208         score3_option_override.
6209         * config/score/score3.h (score3_override_options): Rename to
6210         score3_option_override.
6211         * config/score/score7.c (score7_override_options): Rename to
6212         score7_option_override.
6213         * config/score/score7.h (score7_override_options): Rename to
6214         score7_option_override.
6215         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
6216         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
6217         (sparc_override_options): Rename to sparc_option_override.  Make
6218         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
6219         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
6220         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
6221         instead of OVERRIDE_OPTIONS.
6222         * config/spu/spu-protos.h (spu_override_options): Remove.
6223         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
6224         (spu_override_options): Rename to spu_option_override.  Make
6225         static.
6226         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
6227         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
6228         OVERRIDE_OPTIONS.
6229         * config/vax/vax-protos.h (override_options): Remove.
6230         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
6231         (override_options): Rename to vax_option_override.  Make static.
6232         Call SUBTARGET_OVERRIDE_OPTIONS.
6233         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
6234         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
6235         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
6236         * config/xtensa/xtensa-protos.h (override_options): Remove.
6237         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
6238         (override_options): Rename to xtensa_option_override.  Make static.
6239         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
6240
6241 2010-09-16  Richard Guenther  <rguenther@suse.de>
6242
6243         PR tree-optimization/45623
6244         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
6245         (get_constraint_for_component_ref): If computing a constraint
6246         for the rhs handle type punning through unions.
6247         (get_constraint_for_address_of): Adjust.
6248         (get_constraint_for_1): Likewise.
6249         (get_constraint_for): Likewise.
6250         (get_constraint_for_rhs): New function.
6251         (do_structure_copy): Adjust.
6252         (make_constraint_to): Likewise.
6253         (handle_const_call): Likewise.
6254         (find_func_aliases): Likewise.
6255         (process_ipa_clobber): Likewise.
6256         (create_variable_info_for): Likewise.
6257
6258 2010-09-16  Ira Rosen  <irar@il.ibm.com>
6259
6260         * tree-vectorizer.c: Fix documentation.
6261         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
6262         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
6263         is_pattern_stmt_p, is_loop_header_bb_p,
6264         stmt_vinfo_set_inside_of_loop_cost,
6265         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
6266         known_alignment_for_access_p): Likewise.
6267         * tree-vect-loop.c: Fix documentation.
6268         (vect_get_cost): Start function name from new line.
6269         * tree-vect-data-refs.c: Fix documentation.
6270         * tree-vect_stmts.c: Likewise.
6271         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
6272         (vectorizable_store): Free vec_oprnds if allocated.
6273         (vectorizable_condition): Initialize several variables to avoid
6274         warnings.
6275         * tree-vect-slp.c: Fix documentation.
6276
6277 2010-09-16  Richard Guenther  <rguenther@suse.de>
6278
6279         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
6280         is TS_TRANSLATION_UNIT_DECL.
6281         (initialize_tree_contains_struct): Adjust.
6282         (all_translation_units): New global vector.
6283         (build_translation_unit_decl): New function.
6284         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
6285         (struct tree_translation_unit_decl): New.
6286         (all_translation_units): Declare.
6287         (union tree_node): Add translation_unit_decl member.
6288         (build_translation_unit_decl): Declare.
6289         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
6290         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
6291         New function.
6292         (pack_value_fields): Call it.
6293         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
6294         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
6295         (lto_output_tree_pointers): Call it.
6296         * lto-streamer-in.c (lto_input_tree_ref): Handle references
6297         to TRANSLATION_UNIT_DECL.
6298         (unpack_ts_translation_unit_decl_value_fields): New function.
6299         (unpack_value_fields): Call it.
6300         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
6301         (lto_input_tree_pointers): Call it.
6302         * lto-streamer.c (check_handled_ts_structures): Adjust.
6303         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
6304         * c-decl.c (all_translation_units): Remove.
6305         (pop_scope): Use build_translation_unit_decl.
6306         (collect_all_refs): Adjust.
6307         (for_each_global_decl): Likewise.
6308         (c_write_global_declarations): Likewise.
6309
6310 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
6311
6312         PR bootstrap/45686
6313         * fold-const.c (fold_checksum_tree): Change slot from const void **
6314         to void **, use CONST_CAST_TREE to store into *slot.
6315
6316 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
6317
6318         * config/i386/i386.md: Remove unneeded empty conditions and
6319         preparation statements from expanders.
6320         * config/i386/mmx.md: Ditto.
6321         * config/i386/sse.md: Ditto.
6322
6323 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
6324
6325         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
6326
6327 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
6328
6329         PR rtl-optimization/45593
6330         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
6331         insns that were in delay slots as stand-alone insns.
6332
6333 2010-09-15  Ian Lance Taylor  <iant@google.com>
6334
6335         * incpath.c (remove_duplicates): If name is not a directory, issue
6336         a warning rather than an error.
6337
6338 2010-09-15  Martin Jambor  <mjambor@suse.cz>
6339
6340         PR middle-end/45644
6341         * tree-sra.c (create_access): Check for bit-fields directly.
6342
6343 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
6344
6345         PR tree-optimization/45633
6346         * tree-cfg.c (verify_gimple_assign_binary): Allow
6347         MINUS_EXPR with lhs and rhs1 pointer vector and
6348         rhs2 sizetype vector.
6349         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
6350         or vector pointer use TER to optimize pointer subtraction.
6351
6352 2010-09-15  Jie Zhang  <jie@codesourcery.com>
6353
6354         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
6355         fcmpd to fcmps.
6356
6357 2010-09-15  Ian Lance Taylor  <iant@google.com>
6358
6359         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
6360
6361 2010-09-15  Ian Lance Taylor  <iant@google.com>
6362
6363         * function.c (get_arg_pointer_save_area): Set
6364         arg_pointer_save_area_init to true.
6365
6366 2010-09-15  Martin Jambor  <mjambor@suse.cz>
6367
6368         * tree-sra.c (generate_subtree_copies): Updated comment.
6369         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
6370         obtained from the statement iterator instead.
6371         (load_assign_lhs_subreplacements): Removed parameters lhs and
6372         right_offset, which is obtained from top_racc instead.  Parameter lacc
6373         is now expected to be the root of the processed tree rather than root's
6374         first child.  Updated all callers.
6375
6376 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
6377
6378         * config/pdp11/pdp11.c (register_move_cost): Rename to
6379         pdp11_register_move_cost.
6380         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
6381         pdp11_register_move_cost.
6382         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
6383         pdp11_register_move_cost instead of register_move_cost.
6384
6385 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
6386
6387         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
6388         pattern for vmovn. Expansion in case of non
6389         -mvectorize-with-neon-quad.
6390         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
6391         non- -mvectorize-with-neon-quad case.
6392         (move_lo_quad_<mode>): New expansion to vmov into low part.
6393         (move_hi_quad_<mode>): New expansion to vmov into high part.
6394         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
6395         (move_lo_quad_v4sf): Likewise.
6396         (move_lo_quad_v8hi): Likewise.
6397         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
6398         low part.
6399         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
6400         high part.
6401         * config/arm/iterators.md (ANY128): New mode iterator.
6402         (V_narrow_pack): New mode attribute.
6403         (V_HALF): Add attribute.
6404         (V_DOUBLE): Add attribute.
6405         (V_mode_nunits): Add attribute.
6406
6407 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
6408
6409         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
6410         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
6411
6412 2010-09-15  Olivier Hainque  <hainque@adacore.com>
6413             Jose Ruiz  <ruiz@adacore.com>
6414
6415         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
6416         * config/alpha/osf5-unwind.h: New file.
6417
6418 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6419
6420         PR bootstrap/45672
6421         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
6422         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
6423         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
6424
6425 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6426
6427         * c-lang.h (struct lang_type): Add variable_size GTY option.
6428
6429 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6430
6431         PR bootstrap/45672
6432         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
6433
6434 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6435
6436         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
6437         result isn't used in memory address.
6438
6439 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6440
6441         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
6442         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
6443         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
6444         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
6445         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
6446         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
6447
6448         * target.def: Add units_per_simd_word to vectorize.
6449
6450         * targhooks.c (default_units_per_simd_word): New.
6451         * targhooks.h (default_units_per_simd_word): Likewise.
6452         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
6453         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6454         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
6455         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6456         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
6457         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6458         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
6459         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6460
6461         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
6462         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
6463
6464         * tree-vect-stmts.c: Don't include "tm_p.h".
6465         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
6466         with targetm.vectorize.units_per_simd_word.
6467
6468         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
6469
6470         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
6471
6472         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
6473         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
6474
6475         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
6476         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
6477
6478         * doc/tm.texi: Regenerated.
6479
6480 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6481
6482         * tree-vect-stmts.c: Include "tm_p.h".
6483
6484         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
6485         out of RTX_CODE.
6486
6487 2010-09-14  Martin Jambor  <mjambor@suse.cz>
6488
6489         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
6490         location of generated statement.  Changed all callers.
6491         (build_ref_for_model): New parameter loc which used to set location of
6492         all generated expressions.  Changed all callers.
6493         (generate_subtree_copies): Likewise.
6494         (init_subtree_with_zero): Likewise.
6495         (sra_modify_expr): Set locations of all generated statements and
6496         expressions to the location the original statement.
6497         (handle_unscalarized_data_in_subtree): Likewise.
6498         (load_assign_lhs_subreplacements): Likewise.
6499         (sra_modify_constructor_assign): Likewise.
6500         (sra_modify_assign): Likewise.
6501
6502 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
6503
6504         PR target/45277
6505         PR target/45363
6506         PR target/45407
6507         * doc/install.texi (sparc*-*-*): New section.
6508         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
6509
6510 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
6511
6512         PR middle-end/45567
6513         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
6514         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
6515         (expand_builtin): Adjust caller.
6516         (expand_builtin_unop): Only use subtarget if it has the right mode.
6517
6518 2010-09-14  Tristan Gingold  <gingold@adacore.com>
6519
6520         * configure.ac (plugins): Fix typos.
6521         * configure: Regenerate.
6522
6523 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
6524
6525         PR debug/45660
6526         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
6527         gen_type_die for function/method return type.
6528
6529 2010-09-14  Ira Rosen  <irar@il.ibm.com>
6530
6531         PR tree-optimization/45470
6532         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
6533         can throw an exception.
6534         * tree-vect-stmts.c (vectorizable_call): Likewise.
6535
6536 2010-09-14  DJ Delorie  <dj@redhat.com>
6537
6538         PR target/44749
6539         * config/mep/mep-protos.h (mep_save_register_info,
6540         mep_reinit_regs, mep_init_regs): Declare.
6541
6542         * config/mep/mep.c: Move all target definitions to the end of the
6543         file to avoid the need for duplicate declarations.
6544         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
6545         (mep_reorg_erepeat): Remove unused variables.
6546         (mep_expand_builtin): Likewise.
6547
6548         * config/mep/mep-pragma.c: Don't include rtl.h.
6549         (INVALID_REGNUM): New.
6550         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
6551         functions.
6552         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
6553         Avoid enum/integer math.
6554
6555 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
6556
6557         PR target/44749
6558         * config/mep/t-mep (GTM_H): Add insn-constants.h.
6559         * config/mep/mep.c (mep_conditional_register_usage): Take no
6560         parameters.
6561         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
6562         prototype.
6563         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
6564         call to mep_conditional_register_usage.
6565
6566 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
6567
6568         PR debug/43937
6569         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
6570         the DECL as well.
6571
6572 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
6573
6574         PR rtl-optimization/45617
6575         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
6576         even if low N bits of X aren't known to be zero.
6577
6578 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
6579
6580         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
6581
6582         * config/i386/i386.c (initial_ix86_tune_features): Add
6583         X86_TUNE_VECTORIZE_DOUBLE.
6584         (ix86_units_per_simd_word): New.
6585
6586         * config/i386/i386.h (ix86_tune_indices): Add
6587         X86_TUNE_VECTORIZE_DOUBLE.
6588         (TARGET_VECTORIZE_DOUBLE): New.
6589         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
6590
6591 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
6592
6593         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
6594         (new_temp_expr_table): Allocate call_cnt vector.
6595         (free_temp_expr_table): Free it.
6596         (process_replaceable): Add call_cnt parm and set in vector.
6597         (find_replaceable_in_bb): Skip replacement if def/use span a call.
6598         (debug_ter): Dump call_cnt value, remove stderr uses.
6599
6600 2010-09-13  Jan Hubicka  <jh@suse.cz>
6601
6602         * tree.c (build_zero_cst): New.
6603         * tree.h (build_zero_cst): Declare.
6604         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
6605         (get_base_constructor): Break out from ...
6606         (fold_const_aggregate_ref): Here; handle empty constructors.
6607
6608 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6609
6610         * config/arm/arm.md: (define_attr "conds"): Update comment.
6611         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
6612         conds attribute to clob.
6613         (arm_sync_compare_and_swapsi): Likewise.
6614         (arm_sync_compare_and_swap<mode>): Likewise.
6615         (arm_sync_lock_test_and_setsi): Likewise.
6616         (arm_sync_lock_test_and_set<mode>): Likewise.
6617         (arm_sync_new_<sync_optab>si): Likewise.
6618         (arm_sync_new_nandsi): Likewise.
6619         (arm_sync_new_<sync_optab><mode>): Likewise.
6620         (arm_sync_new_nand<mode>): Likewise.
6621         (arm_sync_old_<sync_optab>si): Likewise.
6622         (arm_sync_old_nandsi): Likewise.
6623         (arm_sync_old_<sync_optab><mode>): Likewise.
6624         (arm_sync_old_nand<mode>): Likewise.
6625
6626 2010-09-13  Olivier Hainque  <hainque@adacore.com>
6627
6628         * fwprop.c (forward_propagate_and_simplify): Only attach a
6629         REG_EQUAL note to an insn if the destination is a register.
6630         * gcse.c (try_replace_reg): Likewise.
6631
6632 2010-09-13  Richard Guenther  <rguenther@suse.de>
6633
6634         PR tree-optimization/45611
6635         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
6636         (copy_ref_info): Likewise.
6637
6638 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
6639
6640         PR debug/45604
6641         PR debug/45419
6642         PR debug/45408
6643         * tree-pretty-print.c (dump_generic_node): Disregard top-level
6644         types of MEM_REF pointer types to the same type.
6645
6646 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
6647
6648         PR rtl-optimization/41087
6649         * ifcvt.c (noce_get_condition): Don't allow conditions with
6650         side-effects.
6651
6652 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
6653
6654         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6655         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
6656         * config/frv/frv.c (frv_register_move_cost): Make static. Change
6657         arguments type to reg_class_t. Add mode argument.
6658         (frv_memory_move_cost): New.
6659         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
6660
6661 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
6662
6663         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
6664         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
6665
6666 2010-09-10  Jan Hubicka  <jh@suse.cz>
6667
6668         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
6669
6670 2010-09-10  Richard Guenther  <rguenther@suse.de>
6671
6672         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
6673         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
6674         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
6675         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
6676         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
6677
6678 2010-09-10  Richard Guenther  <rguenther@suse.de>
6679
6680         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
6681         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
6682         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
6683         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
6684
6685 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
6686
6687         PR middle-end/45634
6688         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
6689         of string folding is of integral type.
6690
6691 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
6692
6693         * doc/invoke.texi (-x): Fix typo.
6694
6695 2010-09-10  Richard Guenther  <rguenther@suse.de>
6696
6697         PR debug/44115
6698         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
6699         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6700         Output DECL_DEBUG_EXPR.
6701         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6702         Input DECL_DEBUG_EXPR.
6703
6704 2010-09-10  Richard Guenther  <rguenther@suse.de>
6705
6706         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
6707         (build_index_type): Implement in terms of build_range_type.
6708         (build_range_type): Do not allow NULL_TREE type, improve
6709         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
6710         if we didn't hash.
6711         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
6712         create a distinct copy of the type.
6713
6714 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
6715
6716         * configure: Regenerated.
6717         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
6718
6719 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6720
6721         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
6722         * config/arm/cortex-a9-neon.md: New and partially generated.
6723         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
6724
6725 2010-09-10  Richard Guenther  <rguenther@suse.de>
6726
6727         * tree.h (build_index_2_type): Remove.
6728         * tree.c (build_index_2_type): Remove.
6729
6730 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
6731
6732         PR bootstrap/45630
6733         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
6734         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
6735         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
6736
6737 2010-09-10  Martin Jambor  <mjambor@suse.cz>
6738
6739         PR tree-optimization/44972
6740         * tree-sra.c: Include toplev.h.
6741         (build_ref_for_offset): Entirely reimplemented.
6742         (build_ref_for_model): New function.
6743         (build_user_friendly_ref_for_offset): New function.
6744         (analyze_access_subtree): Removed build_ref_for_offset check.
6745         (propagate_subaccesses_across_link): Likewise.
6746         (create_artificial_child_access): Use
6747         build_user_friendly_ref_for_offset.
6748         (propagate_subaccesses_across_link): Likewise.
6749         (ref_expr_for_all_replacements_p): Removed.
6750         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
6751         (sra_modify_expr): Use build_ref_for_model.
6752         (load_assign_lhs_subreplacements): Likewise.
6753         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
6754         checks for return values of build_ref_for_offset.
6755         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
6756         build_ref_for_offset.
6757         * ipa-prop.h: Include gimple.h
6758         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
6759         (ipa_analyze_indirect_call_uses): Update comment.
6760         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
6761         (IPA_PROP_H): Likewise.
6762
6763 2010-09-10  Martin Jambor  <mjambor@suse.cz>
6764
6765         PR tree-optimization/44972
6766         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
6767         calling build_ref_for_offset.
6768
6769 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6770
6771         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
6772         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
6773         * config/arm/arm-tune.md: Regenerate.
6774         * doc/invoke.texi (ARM Options): Document it.
6775
6776 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
6777
6778         * config/i386/i386.c: Include sched-int.h.
6779         (TARGET_SCHED_DISPATCH): Defined.
6780         (TARGET_SCHED_DISPATCH_DO): Defined.
6781         (DISPATCH_WINDOW_SIZE): Defined.
6782         (MAX_DISPATCH_WINDOWS): Defined.
6783         (MAX_INSN): Defined.
6784         (MAX_IMM): Defined.
6785         (MAX_IMM_SIZE): Defined.
6786         (MAX_IMM_32): Defined.
6787         (MAX_IMM_64): Defined.
6788         (MAX_LOAD): Defined.
6789         (MAX_STORE): Defined.
6790         (BIG): Defined.
6791         (dispatch_group): New.
6792         (num_allowable_groups): New.
6793         (group_name): New.
6794         (sched_insn_info_s): New.
6795         (dispatch_windows_s): New.
6796         (imm_info_s): New.
6797         (dispatch_window_list): New.
6798         (dispatch_window_list1): New.
6799         (get_mem_group): New.
6800         (is_cmp): New.
6801         (dispatch_violation): New.
6802         (is_branch): New.
6803         (is_prefetch): New.
6804         (init_window): New.
6805         (allocate_window): New.
6806         (init_dispatch_sched): New.
6807         (is_end_basic_block): New.
6808         (process_end_window): New.
6809         (allocate_next_window): New.
6810         (find_constant_1): New.
6811         (find_constant): New.
6812         (get_num_immediates): New.
6813         (has_immediate): New.
6814         (get_insn_path): New.
6815         (get_insn_group): New.
6816         (count_num_restricted): New.
6817         (fits_dispatch_window): New.
6818         (add_insn_window): New.
6819         (add_to_dispatch_window): New.
6820         (debug_dispatch_window_file): New.
6821         (debug_dispatch_window): New.
6822         (debug_insn_dispatch_info_file): New.
6823         (debug_ready_dispatch): New.
6824         (do_dispatch): New.
6825         (has_dispatch): New.
6826         * config/i386/i386.h (debug_ready_dispatch): Declared.
6827         (debug_dispatch_window): Declared.
6828         * config/i386/i386.opt (mdispatch-scheduler): New flag.
6829         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
6830         (TARGET_SCHED_DISPATCH_DO): New.
6831         * doc/tm.texi: Regererated.
6832         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
6833         ready_remove_first_dispatch
6834         (schedule_block): Call targetm.sched.dispatch and
6835         targetm.sched.dispatch_do.
6836         (sched_init): Call targetm.sched.dispatch and
6837         targetm.sched.dispatch_do.
6838         (ready_remove_first_dispatch): New.
6839         (number_in_ready): New.
6840         (get_ready_element): New.
6841         * hooks.c (hook_bool_rtx_int_false): New.
6842         (hook_void_rtx_int): New.
6843         * hooks.h (hook_bool_rtx_int_false): Declared.
6844         (hook_void_rtx_int): Declared.
6845         * sched-int.h (IS_DISPATCH_ON): Defined.
6846         (IS_CMP): Defined.
6847         (DISPATCH_VIOLATION): Defined.
6848         (FITS_DISPATCH_WINDOW): Defined.
6849         (DISPATCH_INIT): Defined.
6850         (ADD_TO_DISPATCH_WINDOW): Defined.
6851         (get_ready_element): Declared.
6852         (number_in_ready): Declared.
6853         * target.def (dispatch): Defined.
6854         (dispatch_do): Defined.
6855
6856 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6857
6858         PR middle-end/45312
6859         * reload1.c (merge_assigned_reloads): Remove.
6860         (reload_as_needed): Don't call it.
6861
6862 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
6863
6864         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
6865         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6866         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6867
6868 2010-09-09  Matthias Klose  <doko@ubuntu.com>
6869
6870         PR bootstrap/43847
6871         * configure.ac (--enable-plugin): Enhance for cross builds.
6872         * configure: Regenerate.
6873
6874 2010-09-09  Jan Hubicka  <jh@suse.cz>
6875
6876         PR tree-optimization/45598
6877         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
6878         string folding is of integral type.
6879
6880 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6881
6882         * configure.ac (gnu_indirect_function): New test.
6883         * configure: Rebuilt.
6884         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
6885         * defaults.h (IFUNC_ASM_TYPE): Provide default.
6886
6887         * doc/extend.texi (Function Attributes): Document ifunc.
6888         * varasm.c (do_assemble_alias): Deal with ifuncs too.
6889
6890 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6891
6892         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
6893         epilogue instruction move.
6894
6895 2010-09-09  Jan Hubicka  <jh@suse.cz>
6896
6897         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
6898         command line to allow more partitions than input files.
6899
6900 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6901
6902         PR middle-end/44554
6903         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
6904
6905 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6906
6907         PR middle-end/40386
6908         * ira.c (pseudo_for_reload_consideration_p): Don't use
6909         flag_ira_share_spill_slots.
6910
6911 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6912
6913         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
6914         point zero operands that fit into a single GPR.
6915         (s390_preferred_reload_class): Ensure we only return general-purpose
6916         register classes.
6917         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
6918         floating-point zero operands into GPRs.
6919         ("*mov<mode>_64"): Likewise.
6920         ("mov<mode>"): Likewise using lhi.
6921
6922 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6923
6924         * config/s390/s390.c (s390_symref_operand_p): Return false for
6925         literal pool references.
6926         (s390_check_qrst_address): Update caller.
6927
6928 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
6929
6930         * config/i386/predicates.md (ext_register_operand): Check that
6931         SUBREG_REG is really a register before looking for REGNO.
6932         (reg_not_xmm0_operand): Handle SUBREGs correctly.
6933         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
6934
6935 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
6936
6937         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
6938         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
6939         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
6940         * print-rtl.c (print_rtx): Likewise.
6941         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
6942         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
6943         for ADDR_EXPR with non-addressable object.
6944         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
6945         (struct dw_val_struct): Add v.val_decl_ref.
6946         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
6947         Handle DW_OP_GNU_implicit_pointer.
6948         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
6949         (get_ref_die_offset_label): New function.
6950         (implicit_ptr_descriptor): New function.
6951         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
6952         (loc_descriptor): Likewise.
6953         (gen_variable_die): Put even definitions into decl_die_table.
6954         (resolve_addr_in_expr): Resolve still unresolved
6955         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
6956         return false.
6957         (dwarf2out_finish): Call output_location_lists after outputting
6958         .debug_info and .debug_abbrev instead of before.
6959
6960 2010-09-09  Roland McGrath  <roland@redhat.com>
6961
6962         * dwarf2out.c (DWARF_REF_SIZE): Define.
6963         (size_of_loc_descr): Use it for DW_OP_call_ref.
6964
6965 2010-09-09  Alan Modra  <amodra@gmail.com>
6966
6967         * doc/invoke.text: Reinstate mcmodel=medium.
6968         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6969         CMODEL_MEDIUM as default.
6970         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
6971         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
6972         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
6973         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
6974
6975 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6976
6977         PR target/45250
6978         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
6979         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
6980         (builtin_longjmp): Likewise.
6981         (allocate_stack): Use hard_frame_pointer_rtx instead of
6982         frame_pointer_rtx.
6983         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
6984         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
6985         (pa_can_eliminate): Likewise.
6986         (TARGET_INTERNAL_ARG_POINTER): Define.
6987         (TARGET_CAN_ELIMINATE): Define.
6988         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
6989         pointer.
6990         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
6991         (pa_internal_arg_pointer, pa_can_eliminate,
6992         pa_initial_elimination_offset): New.
6993         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
6994         (HARD_FRAME_POINTER_REGNUM): Set to register three.
6995         (INITIAL_FRAME_POINTER_OFFSET): Delete.
6996         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
6997         Define.
6998         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
6999         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
7000         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
7001         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
7002         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
7003         new soft frame pointer.
7004         * config/pa/pa64-regs.h: Likewise.
7005
7006 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
7007
7008         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
7009         numerical constant.
7010         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
7011
7012 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
7013
7014         PR debug/45531
7015         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
7016
7017 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
7018
7019         PR debug/45419
7020         PR debug/45408
7021         * tree-pretty-print.c (dump_generic_node): Disregard top-level
7022         qualifiers in otherwise equal MEM_REF pointer types.
7023         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
7024         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
7025
7026 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7027
7028         PR target/44392
7029         * config/arm/arm.md (bswapsi2): Handle condition correctly
7030         for armv6 and optimize_size.
7031
7032 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7033
7034         PR other/18555
7035         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
7036
7037 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
7038
7039         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
7040         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
7041         ix86_expand_strlen, legitimate_pic_address_disp_p,
7042         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
7043         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
7044         ix86_check_movabs, ix86_secondary_memory_needed): Change function
7045         prototype to bool.
7046         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
7047         return_in_memory_ms_64, ix86_check_movabs,
7048         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
7049         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
7050         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
7051         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
7052         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
7053         ix86_secondary_memory_needed): Change to bool.  Return
7054         "true" and "false" values.
7055         * config/i386/i386.md: Return "true" and "false" values.
7056
7057 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7058
7059         * doc/sourcebuild.texi (Effective-Target Keywords): Document
7060         run_expensive_tests.
7061
7062 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7063
7064         * toplev.c (output_stack_usage): Use lbasename instead of basename.
7065
7066 2010-09-08  Martin Jambor  <mjambor@suse.cz>
7067
7068         PR other/45443
7069         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
7070         at -O3.
7071
7072 2010-09-08  Richard Guenther  <rguenther@suse.de>
7073
7074         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
7075         (visit): Adjust.
7076         (iterative_hash_gimple_type): Likewise.
7077         (gimple_type_hash): Likewise.
7078         (gimple_register_type): Likewise.
7079         (print_gimple_types_stats): Likewise.
7080         (free_gimple_type_tables): Likewise.
7081
7082 2010-09-08  Michael Matz  <matz@suse.de>
7083
7084         PR tree-optimization/43430
7085         * tree-vect-stmts.c (vectorizable_condition): Support multiple
7086         copies for conditional statements if it's not part of a reduction.
7087
7088 2010-09-08  Michael Matz  <matz@suse.de>
7089
7090         PR tree-optimization/33244
7091         * tree-ssa-sink.c (statement_sink_location): Don't sink into
7092         empty loop latches.
7093
7094 2010-09-08  Richard Guenther  <rguenther@suse.de>
7095
7096         PR tree-optimization/45578
7097         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
7098         Be more careful when transfering alignment information to
7099         the new induction variable.
7100         (copy_ref_info): Likewise.
7101
7102 2010-09-08  Richard Guenther  <rguenther@suse.de>
7103
7104         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
7105         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
7106
7107 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
7108
7109         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
7110         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
7111
7112 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
7113
7114         PR doc/45587
7115         * doc/md.texi: Fixed modes on several standard pattern names.
7116
7117 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
7118
7119         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
7120         (ashl<mode>3): ...this.
7121         (loongson_psra<V_suffix>): Rename to...
7122         (ashr<mode>3): ...this.
7123         (loongson_psrl<V_suffix>): Rename to...
7124         (lshr<mode>3): ...this.
7125         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
7126         (CODE_FOR_loongson_psllw): Define.
7127         (CODE_FOR_loongson_psrlh): Define.
7128         (CODE_FOR_loongson_psrlw): Define.
7129         (CODE_FOR_loongson_psrah): Define.
7130         (CODE_FOR_loongson_psraw): Define.
7131
7132 2010-09-07  Richard Henderson  <rth@redhat.com>
7133
7134         * tree-vect-data-refs.c: Include tm_p.h.
7135         * Makefile.in (tree-vect-data-refs.o): Update deps.
7136         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
7137         Move delarations outside #ifdef RTX_CODE.
7138
7139 2010-09-07  Richard Henderson  <rth@redhat.com>
7140
7141         * final.c (rest_of_handle_final): Unconditionally do
7142         output_function_exception_table before assemble_end_function.
7143
7144 2010-09-07  Jan Hubicka  <jh@suse.cz>
7145
7146         * tree-inline.c (tree_inlinable_function_p): Do not test
7147         DECL_REPLACEABLE_P.
7148         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
7149         update_callee_keys, cgraph_decide_inlining): Test function availability.
7150         * cif-code.def (OVERWRITABLE): New code.
7151
7152 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
7153             Jack Howarth  <howarth@bromo.med.uc.edu>
7154
7155         PR target/36502
7156         PR target/42313
7157         PR target/44651
7158         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
7159         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
7160         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
7161         MAX macro.
7162
7163 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
7164
7165         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
7166         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
7167
7168 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
7169
7170         * config.gcc: Don't append t-android for Android targets.
7171
7172         * config/t-android: Removed.
7173
7174 2010-09-07  Richard Henderson  <rth@redhat.com>
7175
7176         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
7177         * doc/tm.texi.in: Add doc marker.
7178         * doc/tm.texi: Rebuild.
7179         * except.c (switch_to_exception_section): Always build.
7180         (output_one_function_exception_table): Move section switch,
7181         personality output, and label output ...
7182         (output_function_exception_table): ... here.  Use the new
7183         personality hook.
7184
7185         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
7186         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
7187         TARGET_ASM_INIT_SECTIONS): New.
7188         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
7189         make static.
7190         (TARGET_ASM_UNWIND_EMIT): Update to match.
7191         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
7192
7193         * config/arm/arm.c (arm_asm_emit_except_personality): New.
7194         (arm_asm_init_sections): New.
7195         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
7196
7197 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7198
7199         * config/arm/arm.md: Remove unused variable.
7200
7201 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
7202
7203         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7204         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
7205         (m32r_memory_move_cost): New function.
7206
7207 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
7208
7209         * config.gcc: Append t-android for Android targets.
7210
7211         * config/t-android: New.
7212
7213 2010-09-07  Richard Henderson  <rth@redhat.com>
7214
7215         * target.def (unwind_emit_before_insn): New hook.
7216         * doc/tm.texi.in: Add @hook marker for it.
7217         * doc/tm.texi: Rebuild.
7218         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
7219
7220 2010-09-07  Martin Jambor  <mjambor@suse.cz>
7221
7222         PR fortran/43665
7223         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
7224         are any type attributes.
7225
7226 2010-09-07  Jan Hubicka  <jh@suse.cz>
7227
7228         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
7229         array_ref_low_bound in string access folding.
7230
7231 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
7232
7233         PR target/45206
7234         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
7235         eh_return fixup sequence.
7236
7237 2010-09-07  Jan Hubicka  <jh@suse.cz>
7238
7239         * gimple-fold.c (maybe_fold_reference): Verify that operand is
7240         gimple_min_invariant.
7241
7242 2010-09-07  Richard Guenther  <rguenther@suse.de>
7243
7244         PR middle-end/45569
7245         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
7246         nor CONSTRUCTOR can trap.
7247         * tree-complex.c (update_complex_assignment): Update EH info.
7248
7249 2010-09-07  Richard Guenther  <rguenther@suse.de>
7250
7251         PR middle-end/45569
7252         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
7253         * passes.c (execute_function_todo): Do not verify anything if
7254         we saw errors.
7255
7256 2010-09-07  Richard Guenther  <rguenther@suse.de>
7257
7258         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
7259
7260 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
7261
7262         PR target/43137
7263         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
7264         New define_mode_attrs.
7265         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
7266         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
7267         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
7268         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
7269         Remove pool_range attribute.
7270         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
7271         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
7272         pool_range and neg_pool_range attributes.
7273         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
7274         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
7275         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
7276
7277 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
7278
7279         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
7280         check glibc.
7281
7282 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
7283
7284         PR target/22152
7285         * config/i386/mmx.md (*mov<mode>_internal_rex64,
7286         *mov<mode>_internal_avx, *mov<mode>_internal,
7287         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
7288         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
7289
7290 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
7291
7292         * c-typeck.c (do_warn_double_promotion): Remove.
7293         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
7294         Objective-C++ too.
7295
7296 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
7297
7298         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
7299         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
7300         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
7301         argument type to reg_class_t. Change result type to bool.
7302         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7303
7304 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
7305
7306         PR libobjc/19850
7307         * gthr-posix.h (__gthread_objc_thread_detach): Use
7308         _objc_thread_attribs when detaching a thread.
7309         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
7310
7311 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
7312
7313         PR target/45524
7314         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
7315         * configure: Regenerated.
7316
7317 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7318
7319         * combine.c (try_combine): Set subst_low_luid to i0.
7320
7321 2010-09-06  Richard Guenther  <rguenther@suse.de>
7322
7323         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
7324         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
7325         (build_aligned_type): Declare.
7326         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
7327         (check_aligned_type): New function.
7328         (build_aligned_type): Likewise.
7329         * expr.c (expand_assignment): Handle misaligned stores via
7330         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
7331         (expand_expr_real_1): Likewise.
7332         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
7333         * tree-vect-stmts.c (vectorizable_store): Do not build
7334         MISALIGNED_INDIRECT_REF but initialize alignment information.
7335         (vectorizable_load): Likewise.
7336         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
7337         handling.
7338         * cfgexpand.c (expand_debug_expr): Likewise.
7339         * dwarf2out.c (loc_list_from_tree): Likewise.
7340         * fold-const.c (maybe_lvalue_p): Likewise.
7341         (operand_equal_p): Likewise.
7342         (build_fold_addr_expr_with_type_loc): Likewise.
7343         * gimplify.c (gimplify_addr_expr): Likewise.
7344         (gimplify_expr): Likewise.
7345         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
7346         (verify_gimple_assign_single): Likewise.
7347         * tree-dump.c (dequeue_and_dump): Likewise.
7348         (tree_could_trap_p): Likewise.
7349         * tree-predcom.c (ref_at_iteration): Likewise.
7350         * tree-pretty-print.c (dump_generic_node): Likewise.
7351         (op_code_prio): Likewise.
7352         (op_symbol_code): Likewise.
7353         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
7354         * tree-ssa-loop-im.c (for_each_index): Likewise.
7355         (gen_lsm_tmp_name): Likewise.
7356         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
7357         (find_interesting_uses_address): Likewise.
7358         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
7359         * tree-ssa-operands.c (get_expr_operands): Likewise.
7360         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
7361         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7362         (ao_ref_init_from_vn_reference): Likewise.
7363         * tree.c (staticp): Likewise.
7364         (build1_stat): Likewise.
7365         (reference_alias_ptr_type): Likewise.
7366         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7367         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
7368         MISALIGNED_INDIRECT_REF handling.
7369
7370 2010-09-06  Richard Guenther  <rguenther@suse.de>
7371
7372         PR tree-optimization/45534
7373         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
7374         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
7375         on the target.
7376         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
7377         valid on the target.
7378
7379 2010-09-06  Andreas Schwab  <schwab@redhat.com>
7380
7381         * configure.ac: Quote argument of AC_MSG_WARN.
7382         * configure: Regenerate.
7383
7384 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
7385
7386         * sel-sched.c (move_cond_jump): Correct arguments to
7387         maybe_tidy_empty_bb.
7388         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
7389
7390 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
7391
7392         PR rtl-optimization/44919
7393         * sel-sched.c (move_cond_jump): Remove assert, check that
7394         the several blocks case can only happen with mutually exclusive
7395         insns instead.  Rewrite the movement code to support moving through
7396         several basic blocks.
7397
7398 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
7399
7400         * config/i386/i386.md (iptrsize): New mode attribute.
7401         (tp_seg): Ditto.
7402         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
7403         mode iterator.
7404         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
7405         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
7406         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
7407         (stack_tls_protect_set_<mode>): Ditto from
7408         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
7409         of thread base pointer load.
7410         (stack_tls_protect_test_<mode>): Ditto from
7411         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
7412         of thread base pointer load.
7413         (stack_protect_set): Rewrite using indirect functions.
7414         (stack_protect_test): Ditto.
7415         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
7416         (ix86_print_operand): Handle '@'.
7417
7418 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
7419
7420         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
7421         MINUS_EXPR.
7422
7423 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
7424
7425         * doc/invoke.texi: Document -Wdouble-promotion.
7426         * c-typeck.c (convert_arguments): Check for implicit conversions
7427         from float to double.
7428         (do_warn_double_promotion): New function.
7429         (build_conditional_expr): Use it.
7430         (build_binary_op): Likewise.
7431
7432 2010-09-05  Richard Guenther  <rguenther@suse.de>
7433
7434         PR tree-optimization/45535
7435         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
7436         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
7437         dereferencing it.
7438         (indirect_refs_may_alias_p): Likewise.
7439
7440 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
7441
7442         * config/sh/sh.c (sh_option_override): Make static.
7443         Adjust comments.  Declare.
7444         (sh_function_value_regno_p): Likewise.
7445         (sh_register_move_cost): Modify the arguments, make static.
7446         Adjust comments.  Declare.
7447         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
7448         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7449         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
7450         REGISTER_MOVE_COST): Delete.
7451         * config/sh/sh-protos.h (sh_override_options): Delete.
7452         (sh_register_move_cost): Delete.
7453         (sh_function_value_regno_p): Delete.
7454
7455 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
7456
7457         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
7458         m32r_function_value_regno_p): New functions.
7459         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7460         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
7461         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
7462         FUNCTION_VALUE_REGNO_P): Remove.
7463
7464 2010-09-04  Jan Hubicka  <jh@suse.cz>
7465
7466         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
7467         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
7468         fold_read_from_constant_string.
7469
7470         * gimple.h (canonicalize_constructor_val): Declare.
7471         * gimple-fold.c (canonicalize_constructor_val): New function.
7472         (get_symbol_constant_value):Use it.
7473         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
7474
7475 2010-09-04  Jan Hubicka  <jh@suse.cz>
7476
7477         * tree-switch-conversion.c (build_one_array): Set constructor to be
7478         static.
7479         * varpool.c (varpool_finalize_decl): Compute const_value_known.
7480
7481 2010-09-04  Richard Guenther  <rguenther@suse.de>
7482
7483         PR bootstrap/45519
7484         * tree-flow.h (force_gimple_operand_1): Declare.
7485         (force_gimple_operand_gsi_1): Likewise.
7486         * gimplify.c (force_gimple_operand_1): New worker taking a
7487         gimple predicate for ...
7488         (force_gimple_operand): ... which now wraps it.
7489         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
7490         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
7491         last change.
7492         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
7493         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
7494         (create_mem_ref): Likewise.
7495
7496 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
7497
7498         * config/i386/predicates.md (sse_reg_operand): New predicate.
7499         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
7500         predicate for operand 1.
7501         (XFmode push splitter): Use fp_register_operand predicate
7502         for operand 1.
7503         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
7504         (SF-DF float_extend push splitter): Add reload_completed insn
7505         predicate.
7506         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
7507         MODEF mode macro.  Add reload_completed insn predicate.
7508
7509 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
7510
7511         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
7512         (struct df_extract_ref): Remove.
7513         (union df_ref_d): Remove extract_ref member.
7514         (df_ref_create): Remove last three arguments.
7515         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
7516         * df-scan.c (df_ref_record): Remove last three arguments, do not
7517         pass them to df_ref_create_structure.
7518         (df_uses_record): Remove first and last three arguments.  Replace
7519         first argument with DF_REF_REGULAR, adjust calls to remove the
7520         width, offset and mode.  Always call recursively on the second
7521         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
7522         (df_ref_create_structure): Remove first argument.
7523         (struct df_scan_problem_data): Remove ref_extract_pool.
7524         (df_scan_free_internal): Do not free it.
7525         (df_scan_alloc): Do not allocate it.
7526         (df_ref_create): Remove last three arguments, do not pass them to
7527         df_ref_create_structure.
7528         (df_free_ref): Remove DF_REF_EXTRACT case.
7529         (df_notes_rescan): Adjust call to df_uses_record.
7530         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
7531         Remove DF_REF_EXTRACT case.
7532         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
7533         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
7534         and SUBREG definitions.
7535         (df_get_conditional_uses): Remove references to width/offset/mode,
7536         adjust call to df_ref_create_structure.
7537         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
7538         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
7539         calls to df_uses_record and df_ref_record.
7540         * fwprop.c (update_df): Remove references to width/offset/mode,
7541         adjust call to df_ref_create.
7542
7543 2010-09-03  Jan Hubicka  <jh@suse.cz>
7544
7545         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
7546         (build_cdtor_fns): Update use of build_cdtor.
7547
7548 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
7549
7550         * doc/options.texi (SeparateAlias): Document.
7551         * opt-functions.awk (switch_flags): Handle SeparateAlias.
7552         * opth-gen.awk: Generate enumeration names for options marked
7553         SeparateAlias, but not for those marked Ignore.
7554         * opts-common.c (generate_canonical_option): Don't output separate
7555         argument for options marked CL_SEPARATE_ALIAS.
7556         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
7557         * opts.h (CL_SEPARATE_ALIAS): New.
7558         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
7559         CL_COMMON): Adjust definitions.
7560         * config/i386/darwin.opt, config/mips/sde.opt: New.
7561         * common.opt (fdump-final-insns): New.
7562         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
7563         i386/darwin.opt.
7564         (mips*-sde-elf*): Add mips/sde.opt.
7565         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
7566         -mno-data-in-code and -mcode-xonly here.
7567         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
7568         * gcc.c (option_map): Add "j" to --dump entry.
7569         (translate_options): Don't translate -d to -foutput-class-dir= here.
7570
7571 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
7572
7573         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
7574         DR_IS_WRITE.
7575         (compute_all_dependences): Same.
7576         (create_rdg_edge_for_ddr): Same.
7577         * tree-data-ref.h (DR_IS_WRITE): New.
7578         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
7579         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
7580         (write_memrefs_written_at_least_once): Same.
7581         * tree-predcom.c (suitable_component_p): Same.
7582         (determine_roots_comp): Same.
7583         (execute_load_motion): Same.
7584         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
7585         (vect_enhance_data_refs_alignment): Same.
7586         (vect_analyze_group_access): Same.
7587
7588 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
7589
7590         PR testsuite/42843
7591         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
7592         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
7593
7594 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
7595
7596         * dwarf2out.c (file scope): Remove #if0'd code.
7597         (gen_subprogram_die): Same.
7598
7599 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
7600
7601         PR middle-end/45484
7602         * dwarf2out.c (flush_queued_reg_saves): Rename to...
7603         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
7604         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
7605         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
7606         * config/i386/i386.c (output_set_got): Call it.
7607
7608 2010-09-03  Michael Matz  <matz@suse.de>
7609
7610         PR middle-end/45415
7611         * tree-sra.c (sra_modify_assign): If we modify the statement,
7612         say so.
7613
7614         * tree-ssa.c (verify_ssa): Check number of operands and links
7615         per statement to agree.
7616
7617 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
7618             Iain Sandoe  <iains@gcc.gnu.org>
7619
7620         PR target/45476
7621         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
7622         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
7623         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
7624
7625 2010-09-03  Richard Guenther  <rguenther@suse.de>
7626
7627         * lto-streamer-out.c (output_function): Output function
7628         start and end loci.
7629         * lto-streamer-in.c (input_function): Input function start
7630         and end loci.
7631
7632 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7633
7634         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
7635         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
7636         * configure: Regenerate.
7637         * aclocal.m4: Regenerate.
7638
7639 2010-09-03  Jan Hubicka  <jh@suse.cz>
7640
7641         PR lto/44812
7642         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
7643         on functions/variables in other partition.
7644
7645 2010-09-03  Jan Hubicka  <jh@suse.cz>
7646
7647         * cgraph.h (struct varpool_node): Add const_value_known.
7648         (varpool_decide_const_value_known): Declare.
7649         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
7650         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
7651         (input_varpool_node): Restore const_value_known.
7652         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
7653         initializer folding.
7654         * ipa.c (ipa_discover_readonly_nonaddressable_var,
7655         function_and_variable_visibility): Compute const_value_known.
7656         * gimple-fold.c (get_symbol_constant_value): Use varpool for
7657         initializer folding.
7658         * varpool.c (varpool_decide_const_value_known): New function.
7659
7660 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
7661
7662         * config/i386/i386.md: Remove empty preparation statements
7663         from splitters.
7664
7665 2010-09-03  Jan Hubicka  <jh@suse.cz>
7666
7667         * passes.c (rest_of_decl_compilation): Do not add local vars into
7668         varpool.
7669         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
7670         static or extern vars are in varpool.
7671         (varpool_finalize_decl): Sanity check that only static vars are
7672         finalized.
7673
7674 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
7675
7676         PR debug/45500
7677         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
7678         not just generic vectors with BLKmode.
7679
7680 2010-09-03  Richard Guenther  <rguenther@suse.de>
7681
7682         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
7683         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
7684         * tree.h (TMR_SYMBOL): Remove.
7685         (TMR_BASE, TMR_OFFSET): Adjust.
7686         (TMR_INDEX2): New.
7687         * alias.c (ao_ref_from_mem): Use TMR_BASE.
7688         * builtins.c (get_object_alignment): Merge TMR_BASE and
7689         TMR_SYMBOL handling.
7690         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
7691         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
7692         handling.  Also allow TARGET_MEM_REF as base address.
7693         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
7694         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
7695         base.  Gimplify TMR_INDEX2.
7696         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
7697         * tree-dfa.c (get_ref_base_and_extent): Likewise.
7698         (get_addr_base_and_unit_offset): Likewise.
7699         * tree-eh.c (tree_could_trap_p): Likewise.
7700         * tree-pretty-print.c (dump_generic_node): Likewise.
7701         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
7702         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
7703         base to index2.
7704         (get_address_description): Reconstruct addres description
7705         from merged TMR_BASE and TMR_INDEX2.
7706         (maybe_fold_tmr): Fold propagated addresses.
7707         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
7708         MEM_REF and TARGET_MEM_REF paths.
7709         (indirect_refs_may_alias_p): Likewise.
7710         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
7711         instead of TMR_SYMBOL.
7712         * tree-ssa-operands.c (get_tmr_operands): Simplify.
7713         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
7714         according to changes ...
7715         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
7716         Split TARGET_MEM_REF into two fields plus the base.
7717         * tree.c (mem_ref_offset): Simplify.
7718         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
7719         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
7720         Strip NOPs when folding MEM_REF addresses.
7721         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
7722         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
7723         (fold_gimple_assign): ... not here.
7724
7725 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
7726
7727         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
7728         * config/mips/mips.c (mips_shift_truncation_mask): New function.
7729         (TARGET_SHIFT_TRUNCATION_MASK): Define.
7730
7731 2010-09-02  Richard Henderson  <rth@redhat.com>
7732
7733         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
7734         instead of readelf in the test.
7735         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
7736         in the .debug_frame section for coff targets.
7737         * configure: Rebuild.
7738
7739 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
7740
7741         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
7742         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
7743         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7744         (m32c_class_likely_spilled_p): Make static. Change argument type to
7745         reg_class_t. Change result type to bool.
7746
7747 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7748
7749         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
7750         to convert (double)(long) into a single FRIZ instruction or not
7751         when -ffast-math is used.
7752
7753         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
7754         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
7755         or FRIZ instruction if -ffast-math.
7756         * config/rs6000/rs6000.md (friz): Ditto.
7757
7758         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
7759
7760 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
7761
7762         * opth-gen.awk (quote, comma): Remove unused variables.
7763
7764 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
7765
7766         * arm.c (arm_override_options): Correct fall-back code to use
7767         SUBTARGET_CPU_DEFAULT.
7768
7769 2010-09-02  Julian Brown  <julian@codesourcery.com>
7770
7771         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
7772         unspecs.
7773         (vcond<mode>, vcondu<mode>): New expanders.
7774         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
7775         comparisons with zero.
7776         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
7777         * config/arm/constraints.md (Dz): New constraint.
7778
7779 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
7780
7781         * target.def (class_likely_spilled_p): New hook.
7782         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
7783         * doc/tm.texi: Regenerate.
7784         * targhooks.c (default_class_likely_spilled_p): New function.
7785         * targhooks.h (default_class_likely_spilled_p): Declare.
7786         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
7787         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
7788         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
7789         Use fixed_reg_set instead of fixed_regs.
7790         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
7791         * calls.c (avoid_likely_spilled_reg): Ditto.
7792         * ira-conflicts.c (ira_build_conflicts): Ditto.
7793         * ira.c (update_equiv_regs): Ditto.
7794         * mode-switching.c (create_pre_exit): Ditto.
7795         * regmove.c (find_matches): Ditto.
7796         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
7797         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
7798         (small_register_class_p): New inline function.
7799         (push_secondary_reload, find_reusable_reload, find_reloads): Use
7800         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
7801
7802         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
7803         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
7804         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7805
7806 2010-09-02  Richard Guenther  <rguenther@suse.de>
7807
7808         PR tree-optimization/44937
7809         PR tree-optimization/45412
7810         * ipa-split.c (split_function): Properly remove PHI nodes.
7811
7812 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
7813
7814         * opts.h (struct cl_option): Add warn_message field.
7815         (struct cl_decoded_option): Add warn_message field.
7816         * doc/options.texi (Ignore, Warn): Document.
7817         * opt-functions.awk (needs_state_p): Don't consider aliases or
7818         ignored options to need state saved.
7819         * optc-gen.awk: Handle Warn and Ignore.
7820         * opth-gen.awk: Output OPT_SPECIAL_ignore.
7821         * opts-common.c (decode_cmdline_option): Set warn_message field.
7822         Handle ignored options.
7823         (decode_cmdline_options_to_array, generate_option,
7824         generate_option_input_file): Set warn_message field.
7825         (read_cmdline_option): Generate warnings from warn_message field.
7826         Handle ignored options.
7827         * common.opt (Wunreachable-code, fargument-alias,
7828         fargument-noalias, fargument-noalias-global,
7829         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
7830         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
7831         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
7832         ftree-salias): Mark Ignore.
7833         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
7834         -mintel-syntax and -mno-intel-syntax here.
7835         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
7836         using Warn.
7837         * opts.c (common_handle_option): Don't handle options marked as
7838         ignored.
7839         (enable_warning_as_error): Handle ignored options.
7840
7841 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
7842
7843         PR driver/44076
7844         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
7845         alias_target fields.
7846         * opt-functions.awk (opt_sanitized_name): Don't handle
7847         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
7848         * optc-gen.awk: Generate alias fields.
7849         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
7850         Don't generate such constants for aliases.
7851         * opts-common.c (generate_canonical_option): New.
7852         (decode_cmdline_option): Handle aliases.  Use
7853         generate_canonical_option for known options instead of copying the
7854         input option text.
7855         * doc/options.texi (Alias): Document.
7856         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
7857         fstack-check, specs): Mark as aliases.
7858         * gcc.c (driver_handle_option): Canonicalize -L options to joined
7859         arguments.
7860         (driver_handle_option): Don't handle OPT_specs.
7861         * opts.c (common_handle_option): Don't handle options marked as
7862         aliases.
7863         (enable_warning_as_error): Handle aliases.
7864         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
7865         OPT_Wlarger_than_eq.
7866         * tree-optimize.c (tree_rest_of_compilation): Use
7867         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
7868
7869 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
7870
7871         * config/i386/i386.md (nonmemory_operand): New mode attribute.
7872         (push memory peephole2): Macroize peepholes using SWI mode iterator.
7873         (move immediate to memory peephole2): Macroize peepholes using
7874         SWI124 mode iterator.
7875         (non-pairable NOT peephole2): Macroize peepholes using SWI124
7876         mode iterator.
7877         (simple lea add peephole2): Macroize peepholes using SWI48
7878         mode iterator.
7879         (simple lea mult peephole2): Ditto.
7880         (imul by 3,5,9 to lea peephole2): Ditto.
7881         (mov $-1, reg peephole2): Macroize peepholes using SWI248
7882         mode iterator.
7883         (imul $32bit_imm,mem,reg peephole2): Ditto.
7884         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
7885
7886 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
7887
7888         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
7889
7890 2010-09-02  Olivier Hainque  <hainque@adacore.com>
7891
7892         PR middle-end/44763
7893         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
7894         (allocno_priority_compare_func): Use it instead of a straight
7895         difference computation over priorities.
7896
7897 2010-09-02  Andi Kleen  <ak@linux.intel.com>
7898
7899         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
7900
7901 2010-09-02  Ira Rosen  <irar@il.ibm.com>
7902
7903         * tree-vectorizer.h (get_later_stmt): New function.
7904         (vect_analyze_data_ref_dependences): Add argument.
7905         * tree-vect-loop.c (vect_analyze_loop): Update call to
7906         vect_analyze_data_ref_dependences.
7907         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
7908         New function.
7909         (vect_analyze_data_ref_dependence): Add argument for basic block
7910         dependencies. Check dependencies in basic block vectorization.
7911         (vect_analyze_data_ref_dependences): Add argument and update call to
7912         vect_analyze_data_ref_dependences.
7913         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
7914         (vect_bb_vectorizable_with_dependencies): New.
7915         (vect_slp_analyze_bb): Check dependencies in basic block.
7916         (vect_schedule_slp_instance): Insert stores before the last store in
7917         SLP instance.
7918
7919 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
7920
7921         PR target/45476
7922         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
7923         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
7924
7925 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
7926
7927         PR middle-end/45458
7928         * bb-reorder.c (add_labels_and_missing_jumps): Treat
7929         bbs ending with throwing insns like blocks ending with a call.
7930         (fix_up_fall_thru_edges): Likewise.
7931
7932 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
7933
7934         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
7935         (m32c_function_arg_advance): Delete.
7936         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7937         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
7938         comments.  Take a const_tree and a bool.  Declare.
7939         (m32c_function_arg_advance): Likewise.
7940         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7941
7942 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
7943
7944         PR target/45476
7945         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
7946         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
7947         * config/i386/mingw32.h: ... here.
7948
7949 2010-09-01  Andi Kleen  <ak@linux.intel.com>
7950
7951         PR lto/45475
7952         * lto-streamer-in.c (lto_input_ts_target_option): Add.
7953         (lto_input_tree_pointers): Call lto_input_ts_target_option.
7954         * lto-streamer-out (lto_output_ts_target_option): Add.
7955         (lto_output_tree_pointers): Call lto_output_ts_target_option.
7956
7957 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
7958
7959         PR/target 45452
7960         * config/i386/cygwin.h: Change order of specified import libraries.
7961         * config/i386/mingw32.h: Likewise.
7962         * config/i386/t-cygwin: Likewise.
7963         * config/i386/t-mingw32: Likewise.
7964         * config/i386/t-mingw-w32: Likewise.
7965         * config/i386/t-mingw-w64: Likewise.
7966
7967 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7968
7969         * config/arm/neon-schedgen.ml (core): New type.
7970         (allCores): List of supported cores.
7971         (availability_table): Add supported cores.
7972         (collate_bypasses): Accept core as a parameter.
7973         (worst_case_latencies_and_bypasses): Accept core as a parameter.
7974         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
7975         and coreStr to get tune attribute and prefix for functional units.
7976         (emit_bypasses): Accept core name and use it.
7977         (calculate_per_core_availability_table): New.
7978         (filter_core): New.
7979         (calculate_core_availability_table): New.
7980         (main): Use calculate_core_availablity_table.
7981         * config/arm/cortex-a8-neon.md: Update copyright year.
7982         Regenerated from ml file and merged in.
7983         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
7984         cortex_a8_neon_mrc.
7985
7986 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
7987
7988         * Makefile.in (tree-switch-conversion.o): Update dependencies.
7989
7990 2010-09-01  Richard Guenther  <rguenther@suse.de>
7991
7992         * alias.c (ao_ref_from_mem): Adjust.
7993         * builtins.c (get_object_alignment): Likewise.
7994         * cfgexpand.c (expand_debug_expr): Likewise.
7995         * gimple.c (get_base_address): Likewise.
7996         * tree-dfa.c (get_ref_base_and_extent): Likewise.
7997         (get_addr_base_and_unit_offset): Likewise.  Fix for
7998         both TMR_SYMBOL and TMR_BASE being set.
7999         * tree-eh.c (tree_could_trap_p): Likewise.
8000         * gimplify.c (gimplify_expr): Do not attempt to gimplify
8001         TMR_SYMBOL.  Always gimplify TMR_BASE.
8002         * tree-cfg.c (verify_types_in_gimple_reference): Verify
8003         TMR_BASE if there is a TMR_SYMBOL.
8004         * tree-pretty-print.c (dump_generic_node): Adjust.
8005         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
8006         (tree_mem_ref_addr): Likewise.
8007         (create_mem_ref_raw): Likewise.
8008         (move_fixed_address_to_symbol): Likewise.
8009         (create_mem_ref): Likewise.
8010         (dump_mem_address): Likewise.
8011         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
8012         Fix for both TMR_SYMBOL and TMR_BASE being set.
8013         (indirect_refs_may_alias_p): Likewise.
8014         * tree-ssa-operands.c (get_tmr_operands): Adjust.
8015         * tree.def (TARGET_MEM_REF): Adjust documentation.
8016
8017 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
8018
8019         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
8020         Rename from X86_TUNE_ADD_ESP_4.
8021         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
8022         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
8023         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
8024         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
8025         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
8026         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
8027         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
8028         * config/i386/i386.c (initial_ix86_tune_features)
8029         <X86_TUNE_SINGLE_POP>: Invert members.
8030         <X86_TUNE_DOUBLE_POP>: Ditto.
8031         <X86_TUNE_SINGLE_PUSH>: Ditto.
8032         <X86_TUNE_DOUBLE_PUSH>: Ditto.
8033         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
8034         No longer exported.
8035         (push peephole2 patterns): Macroize peepholes using P mode iterator.
8036         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
8037         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
8038         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
8039
8040 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
8041
8042         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
8043         a volatile LHS if the constructor has only one element.
8044
8045 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
8046
8047         PR bootstrap/45321
8048         * tree.c (stdarg_p): Make fntype parameter const.
8049         * tree.h (stdarg_p): Likewise.
8050         (function_args_iterator): Remove unused fntype field.
8051         (function_args_iter_init): Do not initialize fntype
8052         field.  Make fntype parameter const.
8053
8054 2010-09-01  Richard Guenther  <rguenther@suse.de>
8055
8056         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
8057         estimate.
8058         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
8059         (execute_vrp): Compute number of iteration estimates.
8060         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
8061         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
8062         * tree-data-ref.c (estimated_loop_iterations): Adjust.
8063         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
8064         Infer loop bounds from undefined behavior based on a new parameter.
8065         (estimate_numbers_of_iterations): Likewise.
8066         (scev_probably_wraps_p): Adjust.
8067         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
8068
8069 2010-09-01  Nick Clifton  <nickc@redhat.com>
8070
8071         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
8072         where appropriate.
8073         (xstormy16_legitimate_address_p): Use true and false instead of 1
8074         and 0.
8075         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
8076         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
8077         magic constant 2.
8078         (xstormy16_expand_call): Fix comment at start of function.
8079
8080 2010-09-01  Nick Clifton  <nickc@redhat.com>
8081
8082         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
8083         when pushing accumulator register.
8084         (rx_get_stack_layout): Always save call clobbered registers inside
8085         interrupt handlers.
8086         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
8087
8088 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
8089
8090         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
8091         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
8092
8093         * libgcc-std.ver (GCC_4.6.0): Define version.
8094
8095 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
8096
8097         * tree-nested.c (convert_all_function_calls): Iterate until after the
8098         sum of static chains in the nest doesn't change.
8099
8100 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
8101
8102         * config/m32c/m32c.c (classes_intersect): Remove.
8103         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
8104         reg_classes_intersect_p instead of classes_intersect.
8105         (class_can_hold_mode): Change arguments type from enum reg_class to
8106         reg_class_t.  Use reg_class_contents instead of class_contents.
8107         (m32c_register_move_cost): Make static. Change arguments type from
8108         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
8109         classes_intersect. Use reg_class_contents instead of class_contents.
8110         (m32c_memory_move_cost): Make static. Change arguments type from
8111         enum reg_class to reg_class_t.
8112         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
8113         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8114         * config/m32c/m32c-protos.h (m32c_register_move_cost,
8115         m32c_memory_move_cost): Remove.
8116
8117 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
8118
8119         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
8120         (arm_function_arg): Delete.
8121         (arm_needs_doubleword_align): Take a const_tree.
8122         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8123         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
8124         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
8125         (arm_function_arg): Make static.  Take a const_tree and a bool.
8126         (arm_function_arg_advance): Likewise.
8127         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8128
8129 2010-08-31  Andi Kleen  <ak@linux.intel.com>
8130
8131         * common.opt (fwhopr=): Update for -fwhopr=jobserver
8132         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
8133         * lto-wrapper.c (run_gcc): Add jobserver mode.
8134         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
8135         argument.
8136
8137 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
8138
8139         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
8140         (popsi1): Ditto.
8141         (*popdi1_epilogue): Ditto.
8142         (*popsi1_epilogue): Ditto.
8143         (popsi, popdi peephole2 patterns): Update peepholes for changed
8144         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
8145
8146         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
8147         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
8148
8149         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
8150         (override_options): Do not initialize removed ix86_gen_pop1.
8151         (gen_pop): New static function.
8152         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
8153         (release_scratch_register_on_entry): Ditto.
8154         (ix86_restore_reg_using_pop): Ditto.
8155         (ix86_expand_epilogue): Ditto.
8156
8157 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
8158
8159         PR middle-end/45461
8160         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
8161
8162 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
8163
8164         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
8165         semicolons.
8166
8167 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8168
8169         * doc/extend.texi: Fix documentation of the return value of
8170         __builtin_choose_expr.
8171
8172 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
8173
8174         * config/v850/v850-protos.h (function_arg): Delete.
8175         * config/v850/v850.h (FUNCTION_ARG): Delete.
8176         (FUNCTION_ARG_ADVANCE): Move code to...
8177         * config/v850/v850.c (v850_function_arg_advance): ...here.
8178         (v850_function_arg): Make static.  Take a const_tree and a bool.
8179         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8180
8181 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
8182
8183         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
8184         these...
8185         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
8186         ...and these...
8187         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
8188         ..to here..
8189         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
8190         ...and here.
8191         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8192
8193 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
8194
8195         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
8196         Delete.
8197         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8198         * config/rx/rx.c (rx_function_arg_size): Make static.
8199         (rx_function_arg): Likewise.
8200         (rx_function_arg_advance): New function.
8201         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8202
8203 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
8204
8205         * config/arm/arm.c (arm_override_options): Remove superfluous test.
8206         Fix indentation.
8207
8208 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
8209
8210         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
8211         (dwarf2out_decl) <CONST_DECL>: Likewise.
8212
8213 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
8214
8215         Stack usage support
8216         * common.opt (-fstack-usage): New option.
8217         * doc/invoke.texi (Debugging options): Document it.
8218         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
8219         allocate_dynamic_stack_space.
8220         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
8221         and propagate it to allocate_dynamic_stack_space.
8222         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
8223         * calls.c (initialize_argument_information): Pass TRUE as 4th
8224         argument to allocate_dynamic_stack_space.
8225         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
8226         to 1 when pushing a variable-sized argument onto the stack.  Pass
8227         TRUE as 4th argument to allocate_dynamic_stack_space.
8228         Update current_function_pushed_stack_size.
8229         (emit_library_call_value_1): Likewise.
8230         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
8231         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
8232         attempt to find an upper bound.  Remove redundant code for the
8233         SETJMP_VIA_SAVE_AREA case.
8234         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
8235         * function.h (struct stack_usage): New structure.
8236         (current_function_static_stack_size): New macro.
8237         (current_function_dynamic_stack_size): Likewise.
8238         (current_function_pushed_stack_size): Likewise.
8239         (current_function_dynamic_alloc_count): Likewise.
8240         (current_function_has_unbounded_dynamic_stack_size): Likewise.
8241         (current_function_allocates_dynamic_stack_space): Likewise.
8242         (struct function): Add new field 'su'.
8243         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
8244         add the value of the dynamic offset to the dynamic stack usage.
8245         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
8246         for variable-sized objects.
8247         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
8248         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
8249         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
8250         BUILT_IN_ALLOCA for variable-sized objects.
8251         * output.h (output_stack_usage): Declare.
8252         * toplev.c (stack_usage_file): New file pointer.
8253         (output_stack_usage): New function.
8254         (open_auxiliary_file): Likewise.
8255         (lang_dependent_init): Open file if flag_stack_usage is set.
8256         (finalize): Close file if stack_usage_file is not null.
8257         * tree.h (ALLOCA_FOR_VAR_P): New macro.
8258         * config/alpha/alpha.c (compute_frame_size): New function.
8259         (alpha_expand_prologue): Use it.
8260         (alpha_start_function): Likewise.
8261         (alpha_expand_epilogue): Likewise.  Set stack usage info.
8262         * config/i386/i386.c (ix86_expand_prologue): Likewise.
8263         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8264         * config/mips/mips.c (mips_expand_prologue): Likewise.
8265         * config/pa/pa.c (hppa_expand_prologue): Likewise.
8266         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8267         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
8268
8269 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
8270
8271         PR tree-optimization/45427
8272         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
8273         Handle the case that the exit is never taken correctly.
8274         (number_of_iterations_ne): Pass exit_must_be_taken to
8275         number_of_iterations_ne_max.
8276
8277 2010-08-30  Catherine Moore  <clm@codesourcery.com>
8278
8279         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
8280         Infer -mdspr2 for the the 74K.
8281
8282 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
8283
8284         PR debug/45419
8285         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
8286
8287         PR middle-end/45423
8288         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
8289         and TRUTH_{AND,OR,XOR}_EXPR.
8290         * c-parser.c (c_parser_omp_atomic): Handle boolean
8291         {PRE,POST}_{INC,DEC}REMENT.
8292
8293 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
8294
8295         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
8296         (function_arg): Delete.
8297         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8298         (FUNCTION_INCOMING_ARG): Delete.
8299         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
8300         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
8301         and a bool.
8302         (function_arg): Rename to...
8303         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
8304         a bool.
8305         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
8306         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8307         (TARGET_FUNCTION_INCOMING_ARG): Define.
8308
8309 2010-08-30  Richard Guenther  <rguenther@suse.de>
8310
8311         PR tree-optimization/21602
8312         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
8313         using points-to information.
8314
8315 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
8316
8317         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
8318
8319 2010-08-30  Richard Guenther  <rguenther@suse.de>
8320
8321         PR tree-optimization/45449
8322         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
8323         variables.
8324
8325 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
8326
8327         * opts.h (CL_ERR_NEGATIVE): Define.
8328         * opts.c (unknown_option_callback): Don't postpone warnings for
8329         options marked with CL_ERR_NEGATIVE.
8330         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
8331         for negative versions of CL_REJECT_NEGATIVE options.
8332
8333 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
8334
8335         * config/i386/i386.md (zero_extendsidi2_1): Rename from
8336         zero_extendsidi2_32.
8337         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
8338         using SWI12 mode iterator.
8339         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
8340         to define_insn_and_split pattern.
8341         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
8342         using SWI24 mode iterator.
8343         (*zero_extendqi<mode>2_and): Macroize insn from
8344         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
8345         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
8346         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
8347         SWI24 mode iterator.
8348         (*zero_extendqi<mode>2_movzbl): Ditto from
8349         *zero_extendqi{hi,si}2_movzbl.
8350         (extendsidi2_1): Rename from extendsidi2_32.
8351         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
8352         SWI12 mode iterator.
8353
8354 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
8355
8356         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
8357         general purpose registers.
8358         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
8359         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
8360         with general purpose registers and memory operands.  Add associated
8361         CCImode post-reload splitter.
8362         * config/ia64/div.md: Change BImode to CCImode throughout.
8363
8364 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
8365
8366         * config/ia64/ia64.md (cstorebi4): Fix thinko.
8367
8368 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
8369
8370         * config/picochip/picochip.c (reorder_var_tracking_notes): This
8371         function was dropping debug insns which caused PR45299.
8372
8373 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
8374
8375         * config/i386/sse.md (extsuffix): New code attribute.
8376         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
8377         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
8378         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
8379         and sse4_1_zero_extendv4qiv4si2.
8380         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
8381         and sse4_1_zero_extendv2qiv2di2.
8382         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
8383         and sse4_1_zero_extendv4hiv4si2.
8384         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
8385         and sse4_1_zero_extendv2hiv2di2.
8386         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
8387         and sse4_1_zero_extendv2siv2di2
8388
8389         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
8390         using any_extend code iterator.
8391         (*avx_<s>mulv8hi3_highpart): Macroize insn from
8392         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
8393         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
8394
8395         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
8396         gen_sse4_1_sign_extend* functions.
8397         (struct builtin_description bdesc_args): Ditto.
8398
8399 2010-08-27  Xinliang David Li  <davidxl@google.com>
8400
8401         PR/45422
8402         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
8403         (iv_ca_set_no_cp): Update used inv expr count.
8404         (iv_ca_set_cp): Ditto.
8405         (iv_ca_new): Initialize new member.
8406         (iv_ca_free): Free memory.
8407
8408 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
8409
8410         * config/sh/sh-protos.h (sh_function_arg): Delete.
8411         (sh_function_arg_advance): Delete.
8412         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8413         (PASS_IN_REG_P): Eliminate cast.
8414         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
8415         const_tree and a bool.
8416         (sh_function_arg): Likewise.
8417         (sh_output_mi_thunk): Call sh_function_arg_advance) and
8418         sh_function_arg.
8419         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8420
8421 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
8422             Kaz Kojima  <kkojima@gcc.gnu.org>
8423
8424         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
8425         when possible.
8426         (sh_expand_epilogue): Likewise.
8427         * config/sh/sh.md (movml_push_banked): New insn.
8428         (movml_pop_banked): Likewise.
8429
8430 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
8431
8432         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
8433         gen_regexp_oneof, gen_regexp_sequence): Use the string found
8434         in vector element 0 rather than the original string when there's
8435         only one element.
8436         (gen_regexp): Remove extra semicolon.
8437
8438         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
8439         thumb2_movsf_vfp): Set attribute "insn".
8440         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
8441         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
8442         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
8443         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
8444         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
8445         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
8446         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
8447         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
8448         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
8449         if_not_arith, if_arith_not, cond_move_not): Likewise.
8450
8451 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
8452
8453         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
8454         New declaration.
8455         (rs6000_allocate_stack_temp): Ditto.
8456         (rs6000_expand_convert_si_to_sfdf): Ditto.
8457
8458         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
8459         line.  Update the options set if power6 or power7 server/embedded
8460         type options are used.  If we give a warning for no vsx under
8461         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
8462         (rs6000_allocate_stack_temp): New function to allocate a stack
8463         tempoary and adjust the address so it meets either REG+OFFSET or
8464         REG+REG addressing requirements.
8465         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
8466         that they can be used with the LFIWAX/LFIWZX instrucitons.
8467         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
8468         converting signed/unsigned SImode to either SFmode/DFmode.
8469
8470         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
8471         whether certain instructions can be generated.
8472         (TARGET_FCTIDZ): Ditto.
8473         (TARGET_STFIWX): Ditto.
8474         (TARGET_LFIWAX): Ditto.
8475         (TARGET_LFIWZX): Ditto.
8476         (TARGET_FCFIDS): Ditto.
8477         (TARGET_FCFIDU): Ditto.
8478         (TARGET_FCFIDUS): Ditto.
8479         (TARGET_FCTIDUZ): Ditto.
8480         (TARGET_FCTIWUZ): Ditto.
8481
8482         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
8483         (UNSPEC_FCTID): Ditto.
8484         (UNSPEC_LFIWAX): Ditto.
8485         (UNSPEC_LFIWZX): Ditto.
8486         (UNSPEC_FCTIWUZ): Ditto.
8487         (rreg): Use correct constraints.
8488         (SI_CONVERT_FP): New mode attribute for floating point conversion
8489         tests.
8490         (E500_CONVERT): Ditto.
8491         (lfiwax): New insns for converting from integer to floating point
8492         utilizing newer instructions.  Attempt to optimize conversions
8493         that come from memory so that we don't load the value into a GPR,
8494         spill it to the stack and reload it into a FPR.
8495         (floatsi<mode>2_lfiwax): Ditto.
8496         (floatsi<mode>2_lfiwax_mem): Ditto.
8497         (floatsi<mode>2_lfiwax_mem2): Ditto.
8498         (lfiwzx): Ditto.
8499         (floatunssi<mode>2_lfiwzx): Ditto.
8500         (floatunssi<mode>2_lfiwzx_mem): Ditto.
8501         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
8502         (floatdidf2_mem): Ditto.
8503         (floatunsdidf2_fcfidu): Ditto.
8504         (floatunsdidf2_mem): Ditto.
8505         (floatunsdisf2): Ditto.
8506         (floatunsdisf2_fcfidus): Ditto.
8507         (floatunsdisf2_mem): Ditto.
8508         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
8509         Use FCFID on 32-bit hosts that support it.
8510         (floatsidf2_internal): Ditto.
8511         (floatunssisf2): Ditto.
8512         (floatunssidf2): Ditto.
8513         (floatunssidf2_internal): Ditto.
8514         (floatsisf2): Ditto.
8515         (floatdidf2): Ditto.
8516         (floatdidf2_fpr): Ditto.
8517         (floatunsdidf2): Ditto.
8518         (floatdisf2): Ditto.
8519         (floatdisf2_fcfids): Ditto.
8520         (floatdisf2_internal1): Ditto.
8521         (fixuns_truncsfsi2): Delete, merge into common pattern for both
8522         SF/DF.  Add power7 support.
8523         (fix_truncsfsi2): Ditto.
8524         (fixuns_truncdfsi2): Ditto.
8525         (fixuns_truncdfdi2): Ditto.
8526         (fix_truncdfsi2): Ditto.
8527         (fix_truncdfsi2_internal): Ditto.
8528         (fix_truncdfsi2_internal_gfxopt): Ditto.
8529         (fix_truncdfsi2_mfpgpr): Ditto.
8530         (fctiwz): Ditto.
8531         (btruncdf2): Ditto.
8532         (btruncdf2_fpr): Ditto.
8533         (btructsf2): Ditto.
8534         (ceildf2): Ditto.
8535         (ceildf2_fpr): Ditto.
8536         (ceilsf2): Ditto.
8537         (floordf2): Ditto.
8538         (floordf2_fpr): Ditto.
8539         (floorsf2): Ditto.
8540         (rounddf2): Ditto.
8541         (rounddf2_fpr): Ditto.
8542         (roundsf2): Ditto.
8543         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
8544         (fix_trunc<mode>di2): Ditto.
8545         (fixuns_trunc<mode>si2): Ditto.
8546         (fixuns_trunc<mode>di2): Ditto.
8547         (fctiwz_<mode>): Ditto.
8548         (btrunc<mode>2): Ditto.
8549         (btrunc<mode>2_fpr): Ditto.
8550         (ceil<mode>2): Ditto.
8551         (ceil<mode>2_fpr): Ditto.
8552         (floor<mode>2): Ditto.
8553         (float<mode>2_fpr): Ditto.
8554         (round<mode>2): Ditto.
8555         (round<mode>2_fpr): Ditto.
8556         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
8557         (fixuns_trunc<mode>si2_stfiwx): Ditto.
8558         (fix_truncdfsi2_internal): Ditto.
8559         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
8560         converted value on stack, loaded into GPR, and then stored into
8561         the final destination.
8562         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
8563         FCTIDZ.
8564         (lrint<mode>di2): New insn, provide the lrint builtin functions.
8565         (ftruncdf2): Delete, unused.
8566         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
8567
8568         * config/rs6000/vsx.md (toplevel): Update copyright year.
8569         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
8570         (VSr3): Ditto.
8571
8572 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
8573             Jeremie Salvucci  <jeremie.salvucci@free.fr>
8574
8575         * gengtype.c (output_type_enum): Test the right union member.
8576
8577 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
8578
8579         PR target/41484
8580         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
8581         operands for operand 1.
8582         (sse4_1_extendv4qiv4si2): Ditto.
8583         (sse4_1_extendv2qiv2di2): Ditto.
8584         (sse4_1_extendv4hiv4si2): Ditto.
8585         (sse4_1_extendv2hiv2di2): Ditto.
8586         (sse4_1_extendv2siv2di2): Ditto.
8587         (sse4_1_zero_extendv8qiv8hi2): Ditto.
8588         (sse4_1_zero_extendv4qiv4si2): Ditto.
8589         (sse4_1_zero_extendv2qiv2di2): Ditto.
8590         (sse4_1_zero_extendv4hiv4si2): Ditto.
8591         (sse4_1_zero_extendv2hiv2di2): Ditto.
8592         (sse4_1_zero_extendv2siv2di2): Ditto.
8593         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
8594         (*sse4_1_extendv4qiv4si2): Ditto.
8595         (*sse4_1_extendv2qiv2di2): Ditto.
8596         (*sse4_1_extendv4hiv4si2): Ditto.
8597         (*sse4_1_extendv2hiv2di2): Ditto.
8598         (*sse4_1_extendv2siv2di2): Ditto.
8599         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
8600         (*sse4_1_zero_extendv4qiv4si2): Ditto.
8601         (*sse4_1_zero_extendv2qiv2di2): Ditto.
8602         (*sse4_1_zero_extendv4hiv4si2): Ditto.
8603         (*sse4_1_zero_extendv2hiv2di2): Ditto.
8604         (*sse4_1_zero_extendv2siv2di2): Ditto.
8605
8606 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
8607
8608         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
8609         (mips_function_arg): Delete.
8610         (mips_function_arg_boundary): Take a const_tree.
8611         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
8612         (mips_arg_info): Likewise.
8613         (mips_setup_incoming_varargs): Call mips_function_arg_advance
8614         instead of FUNCTION_ARG_ADVANCE.
8615         (mips_function_arg_advance): Adjust prototype.  Make static.
8616         (mips_function_arg): Likewise.
8617         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8618         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8619
8620 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
8621
8622         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8623         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
8624         (function_arg): Delete.
8625         (function_arg_boundary): Take a const_tree.
8626         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
8627         (rs6000_spe_function_arg): Likewise.
8628         (rs6000_parm_start): Likewise.
8629         (rs6000_arg_size): Likewise.
8630         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
8631         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
8632         (rs6000_mixed_function_arg): Likewise.
8633         (function_arg): Rename to...
8634         (rs6000_function_arg): ...this.
8635         (function_arg_advance): Rename to...
8636         (rs6000_function_arg_advance_1): ...this
8637         (rs6000_function_arg_advance): New function.  Call it.
8638         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
8639         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
8640         (rs6000_function_value): Likewise.
8641         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8642
8643 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8644
8645         * config/arm/arm.md (enabled): Test the value of arch_enabled
8646         rather than just using it.
8647
8648 2010-08-27  Olivier Hainque  <hainque@adacore.com>
8649             Eric Botcazou  <ebotcazou@adacore.com>
8650
8651         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
8652         cover all the possible offsets from this base.
8653         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
8654
8655 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
8656
8657         PR tree-optimization/44485
8658         * calls.c (flags_from_decl_or_type): For const or pure
8659         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
8660         together with ECF_CONST resp. ECF_PURE.
8661         * builtins.c (expand_builtin): Use flags_from_decl_or_type
8662         instead of querying flags directly.
8663         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
8664         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
8665
8666 2010-08-26  Richard Guenther  <rguenther@suse.de>
8667
8668         PR tree-optimization/45255
8669         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
8670         and externals are also invariant.
8671
8672 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
8673
8674         PR rtl-optimization/44858
8675         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
8676         newi2pat, make sure they don't affect newpat.
8677
8678         PR rtl-optimization/45400
8679         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
8680         SUBREG_REG if both modes are of MODE_INT class.
8681
8682 2010-08-25  Julian Brown  <julian@codesourcery.com>
8683
8684         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
8685         * config/arm/arm.md (generic_sched): No for Cortex-A5.
8686         (generic_vfp): Likewise.
8687         (cortex-a5.md): Include.
8688         * config/arm/cortex-a5.md: New.
8689
8690 2010-08-25  Richard Guenther  <rguenther@suse.de>
8691
8692         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
8693         * gimple.c (gimple_get_alias_set): Remove special handling
8694         for pointers.
8695
8696 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
8697
8698         PR middle-end/45355
8699         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
8700         dead_or_set_p when computing i0_feeds_i2_n.
8701
8702         * combine.c (find_split_point): Undo canonicalization of multiply-add
8703         to (minus x (mult)) when it seems likely that this will increase the
8704         chances of a split.
8705
8706 2010-08-25  Richard Guenther  <rguenther@suse.de>
8707
8708         PR lto/44562
8709         * lto-streamer.c (lto_record_common_node): Do not mess with
8710         TYPE_CANONICAL when not in lto.
8711         * gimple.c (gimple_register_type): Likewise.
8712
8713 2010-08-25  Richard Guenther  <rguenther@suse.de>
8714
8715         PR tree-optimization/45316
8716         * tree-ssa-pre.c (eliminate): Properly clean EH info.
8717
8718 2010-08-25  Richard Guenther  <rguenther@suse.de>
8719
8720         PR tree-optimization/45393
8721         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
8722         and clean EH info.  Avoid SSA update.
8723         (execute_cse_sincos): Cleanup the CFG if it has changed.
8724
8725 2010-08-25  Richard Guenther  <rguenther@suse.de>
8726
8727         PR middle-end/45379
8728         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
8729         TARGET_MEM_REF in alignment computation.
8730
8731 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
8732
8733         PR tree-optimization/45059
8734         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
8735         type conversions from newop{1,2}.  Assert t is a comparison and
8736         newop{1,2} after the stripping are gimple vals.
8737
8738 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
8739
8740         * config/arm/iterators.md (VU, SE, V_widen_l): New.
8741         (V_unpack, US): New.
8742         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
8743         (vec_unpack<US>_lo_<mode>): Likewise.
8744         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
8745         (neon_vec_unpack<US>_lo_<mode>): Likewise.
8746         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
8747         (vec_widen_<US>mult_hi_<mode>): Likewise.
8748         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
8749         (neon_vec_<US>mult_hi_<mode>"): Likewise.
8750         (neon_unpack<US>_<mode>): Widening move intermediate step for
8751         vectorizing without -mvectorize-with-neon-quad.
8752         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
8753         for vectorizing without -mvectorize-with-neon-quad.
8754         * config/arm/predicates.md (vect_par_constant_high): Check for
8755         high-half lanes of a vector.
8756         (vect_par_constant_low): Check for low-half lanes of a vector.
8757
8758 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
8759
8760         * tree-if-conv.c (struct ifc_dr): New.
8761         (IFC_DR): New.
8762         (DR_WRITTEN_AT_LEAST_ONCE): New.
8763         (DR_RW_UNCONDITIONALLY): New.
8764         (memref_read_or_written_unconditionally): Use the cached values
8765         when possible.
8766         (write_memref_written_at_least_once): Same.
8767         (if_convertible_loop_p): Initialize and free DR->aux fields.
8768
8769 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
8770
8771         * gimple.c (gimple_could_trap_p_1): Not static anymore.
8772         Pass an extra bool parameter include_mem.
8773         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
8774         (gimple_assign_rhs_could_trap_p): Same.
8775         * gimple.h (gimple_could_trap_p_1): Declared.
8776         * tree-data-ref.h (same_data_refs_base_objects): New.
8777         (same_data_refs): New.
8778         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
8779         (write_memrefs_written_at_least_once): New.
8780         (ifcvt_memrefs_wont_trap): New.
8781         (operations_could_trap): New.
8782         (ifcvt_could_trap_p): New.
8783         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
8784         Gets a vector of data refs.
8785         (if_convertible_stmt_p): Same.
8786         (if_convertible_loop_p_1): New.
8787         (if_convertible_loop_p): Call if_convertible_loop_p_1.
8788
8789 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
8790
8791         * common.opt (ftree-loop-if-convert-stores): New flag.
8792         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
8793         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
8794         the created statement before GSI.
8795         (if_convertible_phi_p): Allow virtual phi nodes when
8796         flag_loop_if_convert_stores is set.
8797         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
8798         Do not handle types that do not match is_gimple_reg_type.
8799         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
8800         when flag_loop_if_convert_stores is set, as LHS can contain
8801         memory refs.
8802         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
8803         to if_convertible_gimple_assign_stmt_p.
8804         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
8805         (replace_phi_with_cond_gimple_assign_stmt): Renamed
8806         predicate_scalar_phi.  Do not handle virtual phi nodes.
8807         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
8808         Call predicate_scalar_phi.
8809         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
8810         just after the labels for flag_loop_if_convert_stores, otherwise
8811         insert the predicate in the end of the BB.
8812         (predicate_mem_writes): New.
8813         (combine_blocks): Call predicate_all_scalar_phis.  When
8814         flag_loop_if_convert_stores is set, call predicate_mem_writes.
8815         (tree_if_conversion): Call mark_sym_for_renaming when
8816         flag_loop_if_convert_stores is set.
8817         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
8818         flag_loop_if_convert_stores is set.
8819
8820 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
8821
8822         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
8823         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
8824         (pa_function_value): Make static.
8825         (override_options): Rename to...
8826         (pa_option_override): ...this. Make static.
8827         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
8828         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
8829         TARGET_OPTION_OVERRIDE): Define.
8830         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
8831         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
8832         Remove.
8833         * config/pa/pa-protos.h (override_options): Remove.
8834
8835 2010-08-24  Richard Guenther  <rguenther@suse.de>
8836
8837         PR middle-end/45379
8838         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
8839         if addr->index is NULL or zero.
8840         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
8841         TARGET_MEM_REF more properly.
8842         (indirect_ref_may_alias_decl_p): Likewise.
8843         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
8844         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
8845
8846 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
8847
8848         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
8849         (m32c_override_options): Rename to...
8850         (m32c_option_override): ...this. Make static.
8851         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
8852         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
8853         Remove.
8854         * config/m32c/m32c-protos.h (m32c_override_options,
8855         m32c_function_value_regno_p): Remove.
8856
8857 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
8858
8859         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
8860         Fix a typo in a previous commit.
8861
8862 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
8863
8864         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
8865         Pre-initialize innerloop_iters to one.
8866
8867 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
8868
8869         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
8870         existing static function global.
8871
8872         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
8873         is changed to global.
8874
8875         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
8876         may_be_nonaddressable_p on base, and don't collect this reference
8877         if the address of the base could not be taken.
8878
8879 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
8880
8881         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
8882         enable the compiler to autovectorize mathmetical functions for
8883         power7 using the Mathematical Acceleration Subsystem library.
8884
8885         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
8886         handle which vector math library we have.
8887         (rs6000_override_options): Add -mveclibabi=mass support.
8888         (rs6000_builtin_vectorized_libmass): New function to handle auto
8889         vectorizing math functions that are in the MASS library.
8890         (rs6000_builtin_vectorized_function): Call it.
8891
8892         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
8893         -mveclibabi=mass.
8894
8895 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8896
8897         PR boehm-gc/34544
8898         * gthr-posix.h (__gthread_active_init): Delete.
8899         (__gthread_active_p): Do activity check here.
8900         Don't include errno.h on hppa-hpux.  Update comment.
8901         * gthr-posix95.h (__gthread_active_init): Delete.
8902         (__gthread_active_p): Do activity check here.
8903         Don't include errno.h on hppa-hpux.  Update comment.
8904         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
8905         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
8906         add -lpthread when -mt or -pthread is specified.
8907         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
8908         (LINK_GCC_C_SEQUENCE_SPEC): Define.
8909         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
8910         (stublib.c, pthread_default_stacksize_np-stub.o,
8911         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
8912         $(T)libgcc_stub.a): Add methods.
8913         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
8914         (stublib.c, pthread_default_stacksize_np-stub.o,
8915         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
8916         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
8917         pthread_mutex_unlock): New stubs.
8918
8919 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
8920
8921         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
8922         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
8923         options.
8924         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
8925         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
8926         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
8927         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
8928         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
8929         "-l".
8930         * cppspec.c: Include opts.h.
8931         (lang_specific_driver): Use cl_decoded_option structures.
8932         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
8933         * doc/tm.texi: Regenerate.
8934         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
8935         (driver_handle_option): Allow driver options needing no special
8936         processing.
8937         (process_command): Decode options before call to
8938         lang_specific_driver.  Pass decoded options to
8939         lang_specific_driver.
8940         * gcc.h (lang_specific_driver): Update prototype.
8941         * gccspec.c: Include opts.h.
8942         (lang_specific_driver): Use cl_decoded_option structures.
8943         * opts-common.c (option_ok_for_language, generate_option,
8944         generate_option_input_file): New.
8945         (decode_cmdline_option): Use option_ok_for_language.
8946         (decode_cmdline_options_to_array): Use generate_option_input_file.
8947         (handle_generated_option): Use generate_option.
8948         * opts.h (generate_option, generate_option_input_file): Declare.
8949
8950 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
8951
8952         * config/mips/mips.c (mips_override_options): Rename to...
8953         (mips_option_override): ...this. Make static.
8954         (TARGET_OPTION_OVERRIDE): Define.
8955         (mips_in_small_data_p): Update comment.
8956         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
8957         (FIXED_REGISTERS): Update comment.
8958         * config/mips/mips-protos.h (mips_override_options): Remove.
8959
8960 2010-08-21  Olivier Hainque  <hainque@adacore.com>
8961
8962         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
8963
8964 2010-08-21  Olivier Hainque  <hainque@adacore.com>
8965
8966         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
8967         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
8968
8969 2010-08-20  Jan Hubicka  <jh@suse.cz>
8970
8971         * tree-pass.h (pass_ipa_cdtor_merge): New function.
8972         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
8973         heap allocated.
8974         (record_cdtor_fn): Move to ipa.c; do not test for
8975         have_ctors_dtors.
8976         (build_cdtor): Move to ipa.c; add code avoiding construction
8977         when target have ctors/dtors and there is only one ctor/dtor at given
8978         priority.
8979         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
8980         sort; reverse order of constructors.
8981         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
8982         (cgraph_finalize_function): Do not call record_cdtor_fn.
8983         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
8984         (cgraph_build_static_cdtor): Move to ipa.c.
8985         * ipa.c: Include target.h and tree-iterator.h.
8986         (cgraph_build_static_cdtor, static_ctors, static_dtors,
8987         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
8988         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
8989         pass_ipa_cdtor_merge): New.
8990         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
8991         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
8992         bounds access.
8993
8994 2010-08-20  Jan Hubicka  <jh@suse.cz>
8995
8996         PR c++/45307
8997         PR c++/17736
8998         * cgraph.h (cgraph_only_called_directly_p,
8999         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
9000         static cdtors.
9001         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
9002         are not needed.
9003         (cgraph_finalize_function): Static cdtors are reachable.
9004         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
9005
9006 2010-08-20  Jan Hubicka  <jh@suse.cz>
9007
9008         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
9009         flag_wpa.
9010         * lto-streamer-out.c (lto_output): Likewise.
9011         * passes.c (ipa_write_optimization_summaries): Initialize statement
9012         uids.
9013
9014 2010-08-20  Olivier Hainque  <hainque@adacore.com>
9015
9016         * tree.h (alias_diag_flags): New enum.
9017         (alias_pair): Add an 'emitted_diags' field.
9018         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
9019         (assemble_alias): Initialize emitted_diags of new pairs.
9020
9021 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
9022
9023         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
9024         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9025         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9026         (STACK_CHECK_PROTECT): Define.
9027         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
9028         (output_probe_stack_range): Likewise.
9029         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
9030         builtin stack checking is enabled.
9031         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
9032         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
9033         (probe_stack_range): New insn.
9034
9035 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
9036
9037         PR target/45336
9038         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
9039         short first.
9040
9041         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
9042         char first.
9043
9044 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
9045
9046         PR target/45336
9047         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
9048         to cover zero extension into 64-bit register.
9049         (*sse2_pextrw): Likewise.
9050         (*sse4_1_pextrd_zext): New insn.
9051
9052 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
9053
9054         revert r163410, partially revert r163267.
9055         * config/rs6000/darwin.h (LIB_SPEC): Remove.
9056         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
9057         Darwin versions.
9058
9059 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
9060
9061         PR middle-end/44974
9062         * builtins.c (expand_builtin): Don't optimize away
9063         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
9064
9065 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
9066
9067         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
9068         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
9069         alternative 1 of operand 2.
9070
9071 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
9072             Paolo Bonzini  <bonzini@gnu.org>
9073
9074         * simplify-rtx.c (simplify_unary_operation_1): Optimize
9075         (sign_extend (zero_extend (...)) and
9076         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
9077
9078 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
9079
9080         PR rtl-optimization/45353
9081         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
9082         after bb_note is a BARRIER.
9083
9084 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
9085
9086         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
9087         linking libgcc.a.
9088
9089 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
9090             Michael Matz  <matz@suse.de>
9091
9092         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
9093
9094 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
9095
9096         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
9097         (ggc_mark_roots): ...here.
9098
9099 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
9100
9101         * vec.h (FOR_EACH_VEC_ELT): Define.
9102         * c-decl.c: Use it.
9103         * cfgloop.c: Likewise.
9104         * cfgloopmanip.c: Likewise.
9105         * cgraph.c: Likewise.
9106         * cgraphunit.c: Likewise.
9107         * combine.c: Likewise.
9108         * config/bfin/bfin.c: Likewise.
9109         * config/mips/mips.c: Likewise.
9110         * config/rs6000/rs6000.c: Likewise.
9111         * dbxout.c: Likewise.
9112         * df-scan.c: Likewise.
9113         * dominance.c: Likewise.
9114         * dse.c: Likewise.
9115         * dwarf2out.c: Likewise.
9116         * except.c: Likewise.
9117         * expr.c: Likewise.
9118         * function.c: Likewise.
9119         * gcse.c: Likewise.
9120         * genattr.c: Likewise.
9121         * ggc-common.c: Likewise.
9122         * gimplify.c: Likewise.
9123         * graphite-blocking.c: Likewise.
9124         * graphite-clast-to-gimple.c: Likewise.
9125         * graphite-dependences.c: Likewise.
9126         * graphite-interchange.c: Likewise.
9127         * graphite-poly.c: Likewise.
9128         * graphite-scop-detection.c: Likewise.
9129         * graphite-sese-to-poly.c: Likewise.
9130         * graphite.c: Likewise.
9131         * haifa-sched.c: Likewise.
9132         * ifcvt.c: Likewise.
9133         * implicit-zee.c: Likewise.
9134         * ipa-prop.c: Likewise.
9135         * ipa-struct-reorg.c: Likewise.
9136         * ipa.c: Likewise.
9137         * ira-build.c: Likewise.
9138         * ira-color.c: Likewise.
9139         * ira-emit.c: Likewise.
9140         * lambda-code.c: Likewise.
9141         * loop-invariant.c: Likewise.
9142         * loop-unroll.c: Likewise.
9143         * lower-subreg.c: Likewise.
9144         * lto-cgraph.c: Likewise.
9145         * lto-opts.c: Likewise.
9146         * lto-streamer-in.c: Likewise.
9147         * lto-streamer-out.c: Likewise.
9148         * lto-streamer.c: Likewise.
9149         * lto-symtab.c: Likewise.
9150         * matrix-reorg.c: Likewise.
9151         * opts.c: Likewise.
9152         * predict.c: Likewise.
9153         * print-tree.c: Likewise.
9154         * sdbout.c: Likewise.
9155         * sel-sched-dump.c: Likewise.
9156         * sel-sched-ir.c: Likewise.
9157         * sel-sched.c: Likewise.
9158         * sese.c: Likewise.
9159         * stor-layout.c: Likewise.
9160         * tree-cfg.c: Likewise.
9161         * tree-cfgcleanup.c: Likewise.
9162         * tree-chrec.c: Likewise.
9163         * tree-data-ref.c: Likewise.
9164         * tree-emutls.c: Likewise.
9165         * tree-inline.c: Likewise.
9166         * tree-into-ssa.c: Likewise.
9167         * tree-loop-distribution.c: Likewise.
9168         * tree-loop-linear.c: Likewise.
9169         * tree-mudflap.c: Likewise.
9170         * tree-outof-ssa.c: Likewise.
9171         * tree-parloops.c: Likewise.
9172         * tree-predcom.c: Likewise.
9173         * tree-pretty-print.c: Likewise.
9174         * tree-scalar-evolution.c: Likewise.
9175         * tree-ssa-live.c: Likewise.
9176         * tree-ssa-loop-im.c: Likewise.
9177         * tree-ssa-loop-ivcanon.c: Likewise.
9178         * tree-ssa-loop-ivopts.c: Likewise.
9179         * tree-ssa-loop-manip.c: Likewise.
9180         * tree-ssa-loop-niter.c: Likewise.
9181         * tree-ssa-loop-prefetch.c: Likewise.
9182         * tree-ssa-phiprop.c: Likewise.
9183         * tree-ssa-pre.c: Likewise.
9184         * tree-ssa-reassoc.c: Likewise.
9185         * tree-ssa-sccvn.c: Likewise.
9186         * tree-ssa-structalias.c: Likewise.
9187         * tree-ssa.c: Likewise.
9188         * tree-vect-data-refs.c: Likewise.
9189         * tree-vect-loop-manip.c: Likewise.
9190         * tree-vect-loop.c: Likewise.
9191         * tree-vect-patterns.c: Likewise.
9192         * tree-vect-slp.c: Likewise.
9193         * tree-vect-stmts.c: Likewise.
9194         * tree-vrp.c: Likewise.
9195         * tree.c: Likewise.
9196         * value-prof.c: Likewise.
9197         * var-tracking.c: Likewise.
9198         * varasm.c: Likewise.
9199         * vmsdbgout.c: Likewise.
9200
9201 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
9202             Richard Guenther  <richard.guenther@gmail.com>
9203
9204         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
9205         copy the src value and return a copy.
9206         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
9207         (C++ Volatiles): Adjust to describe C++ semantics only.
9208
9209 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
9210
9211         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
9212         be zero or nonzero.
9213         * doc/tm.texi: Regenerate.
9214         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
9215         * df-scan.c (df_get_exit_block_use_set), reginfo.c
9216         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
9217         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
9218         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
9219         to 1.
9220
9221 2010-08-20  Olivier Hainque  <hainque@adacore.com>
9222
9223         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
9224         an extra nop past a sibling call at the very end.
9225
9226 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
9227
9228         PR bootstrap/45350
9229         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
9230         a comment.
9231
9232 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
9233
9234         * target.def (function_arg, function_incoming_arg): Remove const
9235         qualifier on CUMULATIVE_ARGS parameter.
9236         * targhooks.h (default_function_arg, default_function_incoming_arg):
9237         Likewise.
9238         * targhooks.c (default_function_arg, default_function_incoming_arg):
9239         Likewise.
9240         * config/i386/i386.c (ix86_function_arg): Likewise.
9241
9242 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
9243
9244         PR target/45336
9245         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
9246         SIGN_EXTENDs or ZERO_EXTENDs.
9247
9248 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
9249
9250         PR target/42172
9251         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
9252         Take its cost into account if nonnull.
9253         (insn_a_feeds_b): New static function.
9254         (combine_instructions): Look for four-insn combinations.
9255         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
9256         them into account when computing all_adjacent and looking for other
9257         uses.
9258         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
9259         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
9260         (try_combine): New arg I0.  Handle four-insn combinations.
9261         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
9262         like ELIM_I1.
9263
9264 2010-08-19  Jason Merrill  <jason@redhat.com>
9265
9266         PR c++/45307
9267         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
9268         if ctor is empty.
9269         (gimplify_modify_expr_rhs): Adjust.
9270
9271 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
9272
9273         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
9274         bitmap_bit_p.
9275         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
9276         * dominance.c (iterate_fix_dominators): Likewise.
9277         * dse.c (set_usage_bits): Likewise.
9278         (set_position_unneeded, record_store): Likewise.
9279         * gimple-fold.c (get_maxval_strlen): Likewise.
9280         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
9281         * ipa-inline.c (update_caller_keys): Likewise.
9282         * ipa-split.c (verify_non_ssa_vars): Likewise.
9283         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
9284         (close_type_exposed_parameter, close_type_full_escape): Likewise.
9285         (close_addressof_down): Likewise.
9286         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
9287         (setup_allocno_left_conflicts_size): Likewise.
9288         (ira_reassign_conflict_allocnos): Likewise.
9289         (ira_reassign_pseudos): Likewise.
9290         * ira-emit.c (change_loop): Likewise.
9291         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
9292         * lto-streamer-out.c (write_symbol): Likewise.
9293         * predict.c (expr_expected_value_1): Likewise.
9294         * regstat.c (regstat_bb_compute_ri): Likewise.
9295         * sel-sched.c (create_block_for_bookkeeping): Likewise.
9296         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
9297         * stmt.c (expand_case): Likewise.
9298         * tree-eh.c (emit_eh_dispatch): Likewise.
9299         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
9300         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
9301         Likewise.
9302         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
9303         (rdg_build_components): Likewise.
9304         * tree-object-size.c (collect_object_sizes_for): Likewise.
9305         * tree-sra.c (convert_callers): Likewise.
9306         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
9307         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
9308         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
9309
9310 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
9311
9312         * config/i386/i386.md (*lea_1): Use P mode iterator.
9313         (lea add splitter): Also handle DImode operands.
9314         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
9315         predicate.  Do not use ix86_lea_for_add_ok.
9316         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
9317         (lea ashift splitter): Also handle DImode operands.
9318         (DImode lea ashift splitter): Remove splitter.
9319
9320 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
9321
9322         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
9323         ix86_binary_operator_ok.
9324
9325 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
9326
9327         PR rtl-optimization/44691
9328         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
9329         is not a register.
9330
9331 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
9332
9333         PR target/45070
9334         * config/arm/arm.c (arm_output_epilogue): Ensure that return
9335          value of size 1-3 is handled correctly.
9336
9337 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
9338
9339         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
9340         type for the conditional has wide enough range.
9341
9342 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
9343
9344         PR target/45327
9345         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
9346         ix86_binary_operator_ok.
9347
9348 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
9349
9350         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
9351         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
9352         code to output insn mnemonic.  Fix comment.
9353         (*addsi_1_zext): Add r-r-0 alternative 1.
9354         <TYPE_LEA>: Split insn to lea.
9355         <default>: Handle alternative 1.
9356         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
9357         multi-level if_then_else RTX to set "type" attribute.
9358         <default>: Handle alternative 2.
9359         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
9360         Use cond RTX instead of multi-level if_then_else RTX to set
9361         "type" attribute.
9362         <default>: Handle alternatives 2 and 4.
9363         (lea splitters): Update calls to ix86_lea_for_add_ok.
9364
9365         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
9366         argument.
9367         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
9368
9369 2010-08-18  Richard Guenther  <rguenther@suse.de>
9370
9371         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
9372         use operand helpers.
9373
9374 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
9375
9376         PR middle-end/45292
9377         * optabs.c (expand_bool_compare_and_swap): Expand pending
9378         pops before trying the optab.
9379
9380 2010-08-18  Yao Qi  <yao@codesourcery.com>
9381
9382         PR target/45094
9383         * config/arm/arm.c (output_move_double): Fix typo generating
9384         instructions ('ldr'->'str').
9385
9386 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
9387
9388         PR rtl-optimization/42575
9389         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
9390         live ranges.
9391
9392 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
9393
9394         * config/arm/arm-protos.h (arm_expand_sync): New.
9395         (arm_output_memory_barrier, arm_output_sync_insn): New.
9396         (arm_sync_loop_insns): New.
9397         * config/arm/arm.c (FL_ARCH7): New.
9398         (FL_FOR_ARCH7): Include FL_ARCH7.
9399         (arm_arch7): New.
9400         (arm_print_operand): Support %C markup.
9401         (arm_legitimize_sync_memory): New.
9402         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
9403         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
9404         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
9405         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
9406         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
9407         (arm_process_output_sync_insn, arm_output_sync_insn): New.
9408         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
9409         * config/arm/arm.h (struct arm_sync_generator): New.
9410         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
9411         (TARGET_HAVE_MEMORY_BARRIER): New.
9412         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
9413         * config/arm/arm.md: Include sync.md.
9414         (UNSPEC_MEMORY_BARRIER): New.
9415         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
9416         (VUNSPEC_SYNC_OP):New.
9417         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
9418         (sync_result, sync_memory, sync_required_value): New attributes.
9419         (sync_new_value, sync_t1, sync_t2): Likewise.
9420         (sync_release_barrier, sync_op): Likewise.
9421         (length): Add logic to length attribute defintion to call
9422         arm_sync_loop_insns when appropriate.
9423         * config/arm/sync.md: New file.
9424
9425 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
9426
9427         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
9428         ENABLE_TREE_CHECKING.
9429         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
9430         and GCC >= 4.3.
9431
9432 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
9433
9434         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
9435         or optimizing for size, always avoid lea if possible.
9436
9437         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
9438
9439 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
9440
9441         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
9442         Dunmmy function with NULL return unless the target is
9443         OSX >= 10.6 (Darwin10).
9444
9445 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
9446
9447         * gcc.c (spec_function): Add remove-outfile.
9448         (remove_outfile_spec_function): New function.
9449         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
9450         * invoke.texi (replace-outfile): Document.
9451
9452 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
9453
9454         PR target/45296
9455         * reginfo.c (globalize_reg): Reject stack registers.
9456
9457 2010-08-17  Richard Guenther  <rguenther@suse.de>
9458
9459         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
9460         list of conditional equivalences.
9461         (free_all_edge_infos): Adjust.
9462         (record_equivalences_from_incoming_edge): Likewise.
9463         (record_cond): Likewise.
9464         (build_and_record_new_cond): Likewise.
9465         (record_conditions): Likewise.
9466         (dom_opt_leave_block): Likewise.
9467
9468 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
9469
9470         * doc/invoke.texi (ms-extension): Add documentation.
9471
9472 2010-08-17  Richard Guenther  <rguenther@suse.de>
9473
9474         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
9475
9476 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
9477
9478         PR c/40563
9479         * c-decl.c (diagnose_uninitialized_cst_member): New function.
9480         (finish_decl): Use it to issue a -Wc++-compat warning about
9481         uninitialized const field in struct or union.
9482
9483         (finish_struct): Use strip_array_types.
9484
9485 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
9486
9487         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
9488         functions.
9489         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
9490         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
9491         call block_nreverse here.
9492         (blocks_nreverse): Rename decl temporary to block.
9493
9494 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
9495
9496         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
9497         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
9498         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
9499         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
9500         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
9501         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
9502         thumb2_iorsi3): Delete.
9503         (orsi_notsi_si): No longer a named pattern.
9504         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
9505         * config/arm/predicates.md (shift_amount_operand): New.
9506         (mult_operator): New.
9507         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
9508         attr enabled): New.
9509         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
9510         arch matches t2.
9511         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
9512         (not_shiftsi_compare0): Likewise, renamed from
9513         arm_notsi_shiftsi_compare0.
9514         (not_shiftsi_compare0_scratch): Likweise, renamed from
9515         arm_notsi_shiftsi_compare0_scratch.
9516         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
9517         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
9518         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
9519         so that the register alternative is disabled when the shift_operator
9520         is MULT.  Use "M" as the constraint for constants.
9521         (arith_shiftsi splitter): Enable for TARGET_32BIT.
9522         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
9523         constraint for constants.
9524         (arith_shiftsi_compare0_scratch): Likewise.
9525         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
9526         Handle Thumb2 alternative.
9527
9528 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
9529
9530         * doc/options.texi (NoDriverArg): Document.
9531         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
9532         -MDX and -MMDX.
9533         * opt-functions.awk (switch_flags): Handle NoDriverArg.
9534         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
9535         marking for CL_NO_DRIVER_ARG options when in the driver.
9536         * opts.h (CL_NO_DRIVER_ARG): Define.
9537         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
9538         CL_COMMON): Update values.
9539
9540 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
9541
9542         * common.opt: Add driver options.
9543         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
9544         * doc/options.texi (Driver, RejectDriver): Document.
9545         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
9546         print_prog_name, print_multi_directory, print_sysroot,
9547         print_multi_os_directory, print_multi_lib,
9548         print_sysroot_headers_suffix, report_times, combine_flag,
9549         use_pipes, wrapper_string): Remove.
9550         (save_switch, driver_unknown_option_callback,
9551         driver_wrong_lang_callback, driver_post_handling_callback,
9552         driver_handle_option): New.
9553         (spec_lang, last_language_n_infiles): Make file-scope static
9554         instead of local to process_command.
9555         (process_command): Use decode_cmdline_options_to_array and
9556         read_cmdline_option for option processing.  Compute have_c in
9557         prescan of decoded options.
9558         * opt-functions.awk (switch_flags): Handle Driver and
9559         RejectDriver.
9560         (var_type, var_type_struct): Handle Separate options as generating
9561         const char * variables.
9562         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
9563         CL_TARGET to be passed by caller if required.
9564         (decode_cmdline_options_to_array): Update comment.
9565         * opts.c (complain_wrong_lang): Handle options only valid for the
9566         driver.
9567         (decode_options): Update call to decode_cmdline_options_to_array.
9568         (print_filtered_help): Ignore driver-only options.
9569         (print_specific_help): Ignore CL_DRIVER.
9570         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
9571         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
9572         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
9573         Update values.
9574
9575 2010-08-16  Richard Guenther  <rguenther@suse.de>
9576
9577         * tree-cfg.c (verify_types_in_gimple_reference): Verify
9578         TARGET_MEM_REF a bit.
9579         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
9580         (create_mem_ref_raw): Always create TMR_OFFSET, store the
9581         alias pointer type via it.
9582         (copy_mem_ref_info): Adjust.
9583         (maybe_fold_tmr): Likewise.
9584         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
9585         (reference_alias_ptr_type): Likewise.
9586         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
9587         adjust documentation of TMR_OFFSET operand.
9588         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
9589         use the alias pointer type.
9590         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
9591         initialize mem attrs but the TMR itself.
9592         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
9593         similar to MEM_REF.
9594         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
9595         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
9596         (unshare_and_remove_ssa_names): Likewise.
9597         (copy_ref_info): Adjust.
9598         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
9599         TARGET_MEM_REF case.
9600         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
9601         at TMR_ORIGINAL.
9602         * tree.h (TMR_ORIGINAL): Remove.
9603         * gimple.c (get_base_address): For TARGET_MEM_REF with a
9604         symbol return that.
9605         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
9606         with a symbol.
9607         (get_addr_base_and_unit_offset): Likewise.
9608         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
9609         TARGET_MEM_REFs.
9610         (indirect_ref_may_alias_decl_p): Likewise.
9611         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
9612
9613 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
9614
9615         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
9616         with GCC version 4.6, the default setting (when not optimizing
9617         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
9618         been changed to -fomit-frame-pointer.
9619
9620 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
9621
9622         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
9623         Darwin10.  Do not link libgcc.a for Darwin >= 9.
9624
9625 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
9626
9627         * doc/invoke.texi (Warning Options): Fix terminology and markup
9628         in the description of how unknown warning options are handled.
9629
9630 2010-08-15  Ira Rosen  <irar@il.ibm.com>
9631
9632         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
9633         in basic blocks.
9634         (vect_supportable_dr_alignment): Check alignment for basic blocks.
9635         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
9636         data references.
9637         (vect_bb_vectorization_profitable_p): New function.
9638         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
9639         check if it's worthwhile to vectorize the basic block.
9640
9641 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
9642
9643         * reload.h (register_move_cost, memory_move_secondary_cost,
9644         secondary_reload_class): Adjust prototype.
9645         * rtl.h (reg_class_subset_p): Adjust prototype.
9646         * reload.c (secondary_reload_class): Change arguments type from
9647         enum reg_class to reg_class_t. Change result type to reg_class_t.
9648         * reginfo.c (register_move_cost, reg_class_subset_p): Change
9649         arguments type from enum reg_class to reg_class_t.
9650         (memory_move_secondary_cost): Change arguments type from
9651         enum reg_class to reg_class_t. Change type of saved_flags to
9652         reg_class_t.
9653
9654         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9655         Remove macros.
9656         (mips_cost): Remove.
9657         (struct mips_rtx_cost_data): Moved to mips.c.
9658         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
9659         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
9660         (mips_cost): Make static.
9661         (mips_canonicalize_move_class): Change argument type to reg_class_t.
9662         Change result type to reg_class_t.
9663         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
9664         type from enum reg_class to reg_class_t.
9665         (mips_register_move_cost): Make static. Change arguments
9666         type from enum reg_class to reg_class_t.
9667         (mips_memory_move_cost): New function.
9668         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9669
9670 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
9671
9672         PR rtl-optimization/43358
9673         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
9674         of a single hard register, using simplify_subreg_regno to decide
9675         what that register should be.
9676
9677 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
9678
9679         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
9680         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
9681         (loongson_pmull<V_suffix>): Rename to...
9682         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
9683
9684 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
9685
9686         * configure.ac: Enable -fomit-frame-pointer on darwin
9687         which support dwarf2.
9688         * config/i386/i386.c (override_options): Same.
9689
9690 2010-08-13  Jie Zhang  <jie@codesourcery.com>
9691
9692         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
9693
9694 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
9695
9696         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
9697         -MMD.
9698
9699 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
9700
9701         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
9702         up dot_prod pattern searching if a stmt is outside the loop.
9703
9704 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
9705             Uros Bizjak  <ubizjak@gmail.com>
9706
9707         * config.gcc: Handle --enable-frame-pointer.
9708
9709         * configure.ac: Add --enable-frame-pointer.
9710         * configure: Regenerated.
9711
9712         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
9713         (override_options): If not configured with --enable-frame-pointer,
9714         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
9715         optimizing for size), -fasynchronous-unwind-tables and
9716         -maccumulate-outgoing-args by default.
9717
9718 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
9719
9720         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
9721
9722         PR middle-end/45262
9723         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
9724         -a overflows.  Normalize the range.
9725
9726 2010-08-12  Richard Guenther  <rguenther@suse.de>
9727
9728         PR tree-optimization/45232
9729         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
9730         for types with undefined overflow.
9731         (reassociate_bb): Allow re-associating of bit and min/max
9732         operations for types with undefined overflow.
9733         * tree-ssa-forwprop.c (associate_plusminus): New function.
9734         (tree_ssa_forward_propagate_single_use_vars): Call it.
9735
9736 2010-08-12  Richard Guenther  <rguenther@suse.de>
9737
9738         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
9739         * tree-ssa-alias.c (get_ptr_info): Move ...
9740         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
9741         align and misalign fields conservatively.
9742         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
9743         derive alignment information.
9744         (evaluate_stmt): Derive alignment information from memory
9745         allocation functions.
9746         * tree.h (get_pointer_alignment): Make unsigned.
9747         * builtins.c (get_object_alignment): Use alignment information we
9748         have computed for pointers.
9749         (get_pointer_alignment): Likewise.  Make conservative, return
9750         and unsigned value.
9751         (expand_builtin_strlen): Adjust.
9752         (expand_builtin_memcmp): Likewise.
9753         (expand_builtin_strcmp): Likewise.
9754         (expand_builtin_strncmp): Likewise.
9755         (get_builtin_sync_mem): Use at least mode alignment.
9756         (fold_builtin_memset): Adjust.
9757         (fold_builtin_memory_op): Likewise.
9758         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
9759         information also dump pointer alignment knowledge.
9760         (dump_gimple_stmt): Likewise.
9761
9762 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
9763
9764         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
9765         (EMPTY_FIELD_BOUNDARY): Remove.
9766         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
9767
9768 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
9769
9770         PR debug/45259
9771         * caller-save.c (save_call_clobbered_regs): Only swap notes with
9772         DEBUG_INSNs if n_regs_saved.
9773
9774 2010-08-12  Wei Guozhi  <carrot@google.com>
9775
9776         PR target/44999
9777         * config/arm/arm.md (andsi3): Change to zero extension if possible.
9778         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
9779
9780 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
9781
9782         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
9783
9784         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
9785
9786 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9787
9788         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
9789         the case removed in the previous patch, when the only phi argument
9790         is defined in the same loop as the phi node itself.  Handle it
9791         separately from the invariant case by both propagating it outside
9792         the region and replacing the phi node with an assign.
9793
9794 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9795
9796         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
9797         constant phi nodes with one argument are is_gimple_min_invariant
9798         and SSA_NAME_IS_DEFAULT_DEF.
9799
9800 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9801
9802         * graphite-cloog-util.c (oppose_constraint):
9803         Extend loop counter's value range (CLOOG_ORG).
9804         (cloog_matrix_to_ppl_constraint): Same.
9805         (new_Constraint_System_from_Cloog_matrix): Same.
9806         * graphite-cloog-compat.h (matrix_num_type): New.
9807
9808 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9809
9810         * graphite.c (graphite_initialize): Do not initialize
9811         CLooG and initialize the Parma Polyhedra Library
9812         manually when using CLOOG_ORG.
9813         (graphite_finalize): Do not finalize CLooG and finalize
9814         the Parma Polyhedra Library manually when using CLOOG_ORG.
9815         * graphite-cloog-compat.h (cloog_initialize): Hide function
9816         when using CLOOG_ORG.
9817         (cloog_finalize): Same.
9818
9819 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9820
9821         * graphite-clast-to-gimple.c (free_scattering): Change
9822         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
9823         (CLOOG_ORG).
9824         (build_cloog_prog): Same.
9825         * graphite-cloog-compat.h (cloog_domain): Removed.
9826         (cloog_scattering): New.
9827         (cloog_set_domain): Removed.
9828         (cloog_set_scattering): New.
9829         (cloog_next_domain): Removed.
9830         (cloog_next_scattering): New.
9831         (cloog_set_next_domain): Removed.
9832         (cloog_set_next_scattering): New.
9833         (CloogScatteringList): New.
9834         (CloogScattering): New.
9835         (cloog_scattering_free): New.
9836         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
9837         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
9838         New.
9839
9840 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9841
9842         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
9843         CloogState.
9844         (set_cloog_options): Same.
9845         (print_clast_stmt): Same.
9846         (scop_to_clast): Same.
9847         (print_generated_program): Same.
9848         (gloog): Same.
9849         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
9850         (scop_to_clast): Extend with CloogState.
9851         * graphite-cloog-util.c: Include graphite-cloog-compat.h
9852         (new_Cloog_Domain_from_ppl_Polyhedron):
9853         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
9854         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
9855         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9856         * graphite-cloog-util.h (build_cloog_prog): Same.
9857         * graphite-cloog-copat.h (build_cloog_prog): New.
9858         (CloogState): New.
9859         (cloog_state_malloc): New.
9860         (cloog_state_free): New.
9861         (cloog_loop_malloc): New.
9862         (cloog_options_malloc): New.
9863         (cloog_statement_alloc): New.
9864         (cloog_domain_from_cloog_matrix): New.
9865         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
9866         (new_Cloog_Domain_from_ppl_Polyhedron): New.
9867
9868 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9869
9870         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
9871         type of NAME now depends on used CLooG version.
9872         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
9873         (gcc_type_for_clast_expr): Same.
9874         (print_clast_stmt): Replace pprint with clast_pprint.
9875         * graphite-cloog-compat.h: Provide compatibility macros for
9876         CLooG Legacy.
9877         (clast_name_p): New.
9878         (clast_expr_term): New.
9879         (clast_expr_red): New.
9880         (clast_expr_bin): New.
9881         (clast_pprint): New.
9882
9883 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9884
9885         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
9886         compatible to newer CLooG releases (CLOOG_ORG).
9887         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
9888         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
9889         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
9890         (build_cloog_prog) : New.
9891         (cloog_program_extract_scalars): New.
9892         (cloog_program_scatter): New.
9893
9894 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9895
9896         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
9897         conditionally (CLOOG_ORG).
9898         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
9899         (cloog_statement_usr): New.
9900         (cloog_domain): Same.
9901         (cloog_set_domain): Same.
9902         (cloog_next_domain): Same.
9903         (cloog_set_next_domain): Same.
9904         (cloog_program_nb_scattdims): Same.
9905         (cloog_program_set_nb_scattdims): Same.
9906         (cloog_program_names): Same.
9907         (cloog_program_set_names): Same.
9908         (cloog_program_set_context): Same.
9909         (cloog_program_set_loop): Same.
9910         (cloog_program_blocklist): Same.
9911         (cloog_program_set_blocklist): Same.
9912         (cloog_program_scaldims): Same.
9913         (cloog_program_set_scaldims): Same.
9914         (cloog_names_nb_parameters): Same.
9915         (cloog_names_set_nb_parameters): Same.
9916         (cloog_names_parameters): Same.
9917         (cloog_names_set_parameters): Same.
9918         (cloog_names_set_nb_iterators): Same.
9919         (cloog_names_set_iterators): Same.
9920         (cloog_names_set_nb_scattering): Same.
9921         (cloog_names_set_scattering): Same.
9922         (cloog_statement_set_usr): Same.
9923         (cloog_loop_set_next): Same.
9924         (cloog_loop_set_domain): Same.
9925         (cloog_loop_set_block): Same.
9926         (cloog_block_list_next): Same.
9927         (cloog_block_list_set_next):
9928         (cloog_block_list_set_block): Same.
9929
9930 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9931
9932         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
9933         a bool.
9934         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
9935         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
9936         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
9937         when something has been changed.
9938         (rewrite_commutative_reductions_out_of_ssa): Same.
9939
9940 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9941
9942         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
9943         handle the case when def is in the sese region.
9944         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
9945         for invariant expressions.
9946         (rewrite_cross_bb_phi_deps): Removed.
9947         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
9948         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
9949         rewrite_cross_bb_phi_deps.
9950
9951 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9952
9953         * graphite-sese-to-poly.c
9954         (rewrite_commutative_reductions_out_of_ssa_loop): Call
9955         scev_analyzable_p only on is_gimple_reg
9956
9957 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9958
9959         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
9960         (rewrite_close_phi_out_of_ssa): Propagate constant values or
9961         parametric expressions outside the scop region.
9962         (rewrite_cross_bb_scalar_deps): Same.
9963         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
9964
9965 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9966
9967         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
9968         SSA_NAME_DEF_STMT only on SSA_NAMEs.
9969
9970 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9971
9972         * tree-scalar-evolution.c (instantiate_scev_name): Do not
9973         instantiate default definitions.
9974
9975 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
9976             Sebastian Pop  <sebastian.pop@amd.com>
9977
9978         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
9979         (loop_exits_from_bb_p): New.
9980         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
9981         (loop_exits_from_bb_p): Declared.
9982         * graphite-scop-detection.c (scopdet_basic_block_info): Call
9983         loop_exits_to_bb_p.
9984
9985 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9986
9987         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
9988         extra parameter for the region.  Call scev_analyzable_p.
9989         (rewrite_reductions_out_of_ssa): Update call to
9990         rewrite_close_phi_out_of_ssa.
9991         (rewrite_cross_bb_phi_deps): Same.
9992         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
9993         parameter for the region.  Call scev_analyzable_p.
9994         (rewrite_commutative_reductions_out_of_ssa): Update call to
9995         rewrite_commutative_reductions_out_of_ssa_loop.
9996
9997 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9998
9999         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
10000
10001 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10002
10003         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
10004         SSA scalar phi nodes that can be scev_analyzable_p.
10005
10006 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10007
10008         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
10009         handle SSA_NAME_IS_DEFAULT_DEF.
10010
10011 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10012
10013         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
10014
10015 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10016
10017         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
10018         case non close-phi nodes with one argument.
10019
10020 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10021
10022         * sese.h (scev_analyzable_p): Scevs could be expressions without
10023         chrecs and still be scev_analyzable_p.
10024
10025 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10026
10027         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
10028
10029 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10030
10031         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
10032         * cfgloop.h (struct loop): Remove single_iv field.
10033         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
10034         (scop_canonicalize_loops): Removed.
10035         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
10036         over all the loop phi nodes in loop->header.
10037         (build_poly_scop): Remove use of scop_canonicalize_loops.
10038
10039 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10040
10041         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
10042         handle GIMPLE_CALL.
10043
10044 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10045
10046         * tree-chrec.c (chrec_apply): Should only apply to the specified
10047         variable.  Also handle multivariate chains of recurrences that
10048         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
10049
10050 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10051
10052         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
10053         (debug_clast_name_indexes_1): Removed.
10054         (debug_clast_name_indexes): Removed.
10055         (pbb_to_depth_to_oldiv): Removed.
10056         (build_iv_mapping): Replace the use of rename_map with iv_map.
10057         (translate_clast_user): Remove uses of rename_map.  Allocate and
10058         free iv_map.
10059         (translate_clast_for_loop): Remove uses of rename_map.
10060         (translate_clast_for): Same.
10061         (translate_clast_guard): Same.
10062         (translate_clast): Same.
10063         (gloog): Same.
10064         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
10065         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
10066         * sese.c (set_rename): Now static.
10067         (rename_variables_in_stmt): Removed.
10068         (rename_uses): New.
10069         (is_parameter): Removed.
10070         (is_iv): Removed.
10071         (expand_scalar_variables_call): Removed.
10072         (expand_scalar_variables_ssa_name): Removed.
10073         (expand_scalar_variables_expr): Removed.
10074         (expand_scalar_variables_stmt): Removed.
10075         (expand_scalar_variables): Removed.
10076         (rename_variables): Removed.
10077         (remove_condition): Removed.
10078         (get_true_edge_from_guard_bb): Removed.
10079         (get_false_edge_from_guard_bb): Removed.
10080         (struct igp): Removed.
10081         (default_before_guard): Removed.
10082         (convert_for_phi_arg): Removed.
10083         (add_guard_exit_phis): Removed.
10084         (insert_guard_phis): Removed.
10085         (graphite_copy_stmts_from_block): Now also uses iv_map and a
10086         region.  Do not copy conditions.  Do not copy induction variables.
10087         Call rename_uses.
10088         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
10089         the translated statement.  Use the iv_map for the induction
10090         variable renaming.
10091         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
10092         (set_rename): Removed declaration.
10093         (scev_analyzable_p): ...here.
10094         * tree-chrec.c (chrec_apply_map): New.
10095         * tree-chrec.h (chrec_apply_map): Declared.
10096
10097 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10098
10099         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
10100         insert_loop_close_phis.
10101         * sese.c (name_defined_in_loop_p): Removed.
10102         (expr_defined_in_loop_p): Removed.
10103         (alive_after_loop): Removed.
10104         (close_phi_not_yet_inserted_p): Removed.
10105         (struct alep): Removed.
10106         (add_loop_exit_phis): Removed.
10107         (insert_loop_close_phis): Removed.
10108
10109 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10110
10111         * graphite-cloog-util.c
10112         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
10113         * graphite-poly.c
10114         (psct_scattering_dim_for_loop_depth): Same.
10115
10116 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10117
10118         * graphite-cloog-util.h: Added cloog.h.
10119         * graphite-blocking.c: Removed cloog.h.
10120         * graphite-dependences.c: Same.
10121         * graphite-interchange.c: Same.
10122         * graphite-poly.c: Same.
10123         * graphite-ppl.c: Same.
10124         * graphite-scop-detection.c: Same.
10125         * graphite-sese-to-poly.c:
10126         Removed cloog.h.
10127         Removed graphite-clast-to-gimple.h.
10128         (check_poly_representation): Removed (unused).
10129         * graphite-sese-to-poly.h
10130         (check_poly_representation): Removed (unused).
10131
10132 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10133
10134         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
10135         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
10136         (graphite-cloog-util.o): New.
10137         (graphite-ppl.o): Added graphite-cloog-util.h.
10138         * graphite-clast-to-gimple.c:
10139         Added graphite-cloog-util.h to include statements.
10140         * graphite-cloog-util.c: New.
10141         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
10142         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
10143         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
10144         (new_C_Polyhedron_from_Cloog_Matrix): Same.
10145         (insert_constraint_into_matrix): Same.
10146         (ppl_Constrain_System_number_of_constraints): Same.
10147         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
10148         (oppose_constraint): Same.
10149         (cloog_matrix_to_ppl_constraint): Same.
10150         (new_Constraint_System_from_Cloog_Matrix): Same.
10151         * graphite-cloog-util.h: New.
10152         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
10153         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
10154         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
10155         (new_C_Polyhedron_from_Cloog_Matrix): Same.
10156         (insert_constraint_into_matrix): Same.
10157         * graphite-ppl.c:
10158         Added graphite-cloog-util.h to include statements.
10159         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
10160         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
10161         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
10162         (new_C_Polyhedron_from_Cloog_Matrix): Same.
10163         (insert_constraint_into_matrix): Same.
10164         (ppl_Constrain_System_number_of_constraints): Same.
10165         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
10166         (oppose_constraint): Same.
10167         (cloog_matrix_to_ppl_constraint): Same.
10168         (new_Constraint_System_from_Cloog_Matrix): Same.
10169         * graphite-ppl.h:
10170         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
10171         graphite-cloog-util.h.
10172         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
10173         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
10174         (new_C_Polyhedron_from_Cloog_Matrix): Same.
10175         (insert_constraint_into_matrix): Same.
10176
10177 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10178
10179         * graphite-clast-to-gimple.c
10180         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
10181         (precision_for_interval): Same.
10182         (gcc_type_for_interval): Same.
10183         (compute_type_for_level): Same.
10184         * graphite-interchange.c
10185         (lst_interchange_profitable_p): Same.
10186         * graphite-poly.c
10187         (psct_scattering_dim_for_loop_depth): Same.
10188         * graphite-ppl.c
10189         (ppl_max_for_le_pointset): Same.
10190         (ppl_min_for_le_pointset): Same.
10191
10192 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10193
10194         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
10195         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
10196
10197 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10198
10199         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
10200         rewrite_close_phi_out_of_ssa.
10201
10202 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10203
10204         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
10205
10206 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10207
10208         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
10209         rename_map.
10210         * sese.c (debug_rename_map): Same.
10211         (get_rename): Same.
10212         (set_rename): Same.
10213         (rename_variables_in_stmt): Same.
10214         (expand_scalar_variables_call): Same.
10215         (expand_scalar_variables_ssa_name): Same.
10216         (expand_scalar_variables_expr): Same.
10217         (expand_scalar_variables_stmt): Same.
10218         (expand_scalar_variables): Same.
10219         (rename_variables): Same.
10220         (graphite_copy_stmts_from_block): Same.
10221         (copy_bb_and_scalar_dependences): Same.
10222
10223 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10224
10225         * graphite-clast-to-gimple.c (copy_renames): Removed.
10226         (translate_clast_for): Do not call copy_renames.
10227         (translate_clast_guard): Same.
10228
10229 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10230
10231         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
10232         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
10233         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
10234         before rewrite_cross_bb_scalar_deps.
10235
10236 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10237
10238         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
10239         Early return in when flag_associative_math is not set.
10240
10241 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10242
10243         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
10244         of SSA copies on edges except for loop->latch.
10245
10246 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10247
10248         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
10249         Split out of rewrite_reductions_out_of_ssa.
10250         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
10251         Declared.
10252         * graphite.c (graphite_transform_loops): Call it.
10253
10254 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10255
10256         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
10257
10258 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
10259
10260         * dbgcnt.def (graphite_scop): New counter.
10261         * graphite.c: Include dbgcnt.h.
10262         (graphite_transform_loops): Use new counter to limit transformations.
10263         * Makefile.in (graphite.o): Depend on DBGCNT_H.
10264
10265 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10266
10267         * passes.c (init_optimization_passes): Add pass_graphite.
10268         Schedule a pass_copy_prop before pass_graphite_transforms.
10269         * timevar.def (TV_GRAPHITE): Declared.
10270         * tree-pass.h (pass_graphite): Declared.
10271         * tree-ssa-loop.c (pass_graphite): New.
10272
10273 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10274
10275         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
10276         Remove calls to rename_nb_iterations and rename_sese_parameters.
10277         * graphite-clast-to-gimple.h (gloog): Update declaration.
10278         * graphite.c (graphite_transform_loops): Update call to gloog.
10279         * sese.c (rename_variables_in_expr): Removed.
10280         (rename_nb_iterations): Removed.
10281         (rename_sese_parameters): Removed.
10282         * sese.h (rename_nb_iterations): Removed.
10283         (rename_sese_parameters): Removed.
10284
10285 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10286
10287         * graphite-clast-to-gimple.c (gloog): Remove call to
10288         sese_adjust_liveout_phis.
10289         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
10290         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
10291         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
10292         rewrite_phi_out_of_ssa.
10293         * sese.c (get_vdef_before_sese): Removed.
10294         (sese_adjust_vphi): Removed.
10295         (sese_adjust_liveout_phis): Removed.
10296         * sese.h (sese_adjust_liveout_phis): Removed.
10297
10298 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10299
10300         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
10301         argument for the place after which to insert the out of SSA copy.
10302         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
10303         (rewrite_phi_out_of_ssa): Same.
10304         (rewrite_cross_bb_scalar_deps): Same.
10305         (insert_copyout): Removed.
10306         (insert_copyin): Removed.
10307         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
10308         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
10309         insert_copyin.
10310
10311 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10312
10313         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
10314         (rewrite_reductions_out_of_ssa): Same.
10315         (rewrite_commutative_reductions_out_of_ssa): Same.
10316         (build_poly_scop): Do not call these functions.
10317         * graphite-sese-to-poly.h (build_poly_scop): Declared.
10318         (rewrite_reductions_out_of_ssa): Declared.
10319         (rewrite_commutative_reductions_out_of_ssa): Declared.
10320         * graphite.c (graphite_transform_loops): Call on every scop
10321         rewrite_commutative_reductions_out_of_ssa before calling
10322         rewrite_reductions_out_of_ssa and build_scop_bbs.
10323
10324 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10325
10326         * graphite-dependences.c (dot_deps): Make system call to dotty run
10327         in background.
10328         (dot_deps_stmt): Same.
10329         * graphite-poly.c (dot_lst): Same.
10330
10331 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10332
10333         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
10334         phi_arg_in_outermost_loop.
10335         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
10336         (remove_invariant_phi): Same.
10337
10338 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
10339
10340         * target.def (output_addr_const_extra): New hook.
10341         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
10342         * doc/tm.texi: Regenerate.
10343         * targhooks.c (default_asm_output_addr_const_extra): New function.
10344         * targhooks.h (default_asm_output_addr_const_extra): Declare.
10345         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
10346         target hook.
10347
10348         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10349         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
10350         * config/i386/i386.h (output_addr_const_extra): Rename to...
10351         (i386_asm_output_addr_const_extra): ...this. Make static.
10352         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10353
10354 2010-08-11  Richard Henderson  <rth@redhat.com>
10355
10356         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
10357
10358 2010-08-11  Nick Clifton  <nickc@redhat.com>
10359
10360         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
10361         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
10362         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
10363         stormy16-lib2-cmpsi.c.
10364
10365         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
10366         -O2.
10367
10368 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
10369
10370         * opts.h (struct cl_option_handler_func): Make handler take
10371         cl_decoded_option structure as parameter, not individual elements.
10372         (struct cl_option_handlers): Make callbacks take cl_decoded_option
10373         structure as parameter, not individual elements.
10374         (handle_option): Take cl_decoded_option structure as parameter,
10375         not individual elements.
10376         (handle_generated_option): Declare.
10377         * opts-common.c (handle_option): Take cl_decoded_option structure
10378         as parameter, not individual elements.  Update calls to callback
10379         and handler functions.
10380         (handle_generated_option): New.
10381         (read_cmdline_option): Update calls to callback functions and
10382         handle_option.
10383         * opts.c (common_handle_option, complain_wrong_lang,
10384         unknown_option_callback, post_handling_callback,
10385         lang_handle_option, target_handle_option): Take cl_decoded_option
10386         structure as parameter, not individual elements.
10387         (lang_handle_option, target_handle_option, common_handle_option):
10388         Assert option has at most one argument.
10389         (enable_warning_as_error): Call handle_generated_option instead of
10390         handle_option.  Do not pass -Werror argument as argument of
10391         generated option.
10392
10393 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10394
10395         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
10396         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
10397         (SUBWORD_BOOL_CAS): Likewise.
10398         (SUBWORD_SYNC_OP): Likewise.
10399         (SUBWORD_TEST_AND_SET): Likewise.
10400         (FETCH_AND_OP_WORD): Parenthesise INF_OP
10401         (SUBWORD_SYNC_OP): Likewise.
10402         (OP_AND_FETCH_WORD): Likewise.
10403
10404 2010-08-10  Xinliang David Li  <davidxl@google.com>
10405
10406         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
10407         compute max/min offset in address.
10408
10409 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
10410
10411         * ira-live.c: Include sbitmap.h.
10412         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
10413         Compress live ranges even more.
10414
10415 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
10416
10417         * coverage.c (ctr_labels): Delete.
10418
10419 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
10420
10421         PR bootstrap/45177
10422         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
10423         test here from arm_gen_load_multiple_1.
10424         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
10425         multiple_operation_profitable_p.
10426
10427 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
10428
10429         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
10430         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
10431
10432 2010-08-10  Richard Henderson  <rth@redhat.com>
10433
10434         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
10435         after saving registers.  Assert that SSE registers are only saved
10436         with a sufficiently aligned frame.
10437         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
10438         remove stack_realign_fp handling.
10439         (ix86_expand_prologue): Save int registers before stack_realign_fp,
10440         and do not mark the stack alignment as frame related.
10441         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
10442
10443         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
10444         saves when re-aligning the stack.
10445
10446 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
10447
10448         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
10449         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
10450         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
10451
10452 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
10453
10454         * dwarf2out.c (struct die_struct): Move die_tag to the end.
10455
10456 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
10457
10458         * config/arm/iterators.md: New file.
10459         * config/arm/arm.md: Include iterators.md.
10460         (QHSI): Move to new file.
10461         (LTUGEU, cnb, optab, ior_xor): Likewise.
10462         * config/arm/iwmmxt.md (VMMX): Move to new file.
10463         (VSHFT, MMX_char): Likewise.
10464         * config/arm/neon.md (VD): Move to new file.
10465         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
10466         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
10467         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
10468         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
10469         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
10470         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
10471         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
10472         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
10473         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
10474         (Is_d_reg, V_mode_nunits): Likewise.
10475         * config/arm/vec-common.md (VALL): Move to new file.
10476         (VALLW, VINT, VINTW): Likewise.
10477
10478 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
10479
10480         PR middle-end/45182
10481         * combine.c (make_compound_operation): Don't try to convert
10482         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
10483
10484 2010-08-10  Richard Guenther  <rguenther@suse.de>
10485
10486         * tree.h (get_object_alignment): Adjust prototype.
10487         * builtins.c (get_object_alignment): Return unsigned int,
10488         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
10489         and TARGET_MEM_REF properly.
10490         (get_pointer_alignment): Adjust.
10491         * emit-rtl.c (get_mem_align_offset): Adjust comment.
10492         (set_mem_attributes_minus_bitpos): Adjust.
10493         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
10494
10495 2010-08-10  Richard Guenther  <rguenther@suse.de>
10496
10497         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
10498         (copy_prop_visit_assignment): Simplify.
10499         (copy_prop_visit_stmt): Also visit assignments from
10500         constants.
10501         (copy_prop_visit_phi_node): Use operand_equal_p.
10502
10503 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
10504
10505         * ipa-split.c (find_split_points): Free stack.
10506
10507 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
10508
10509         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
10510         * tree.c (tree_node_kind): Delete corresponding entries.
10511
10512 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
10513
10514         * alias.c (may_alias_p): Remove unused ret.
10515
10516 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
10517
10518         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
10519         alias_sets_conflict_p.
10520         (walk_mems_1): Moved from alias.c.
10521         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
10522         in alias.c.
10523         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
10524         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
10525         * alias.c (walk_mems_2): Moved to ddg.c.
10526         (walk_mems_1): Ditto.
10527         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
10528         to ddg.c.
10529         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
10530         disambiguation.
10531         *(may_alias_p): New function to check whether two memory expression
10532         may alias or not. Currently used in buidling inter-iteration memory
10533         dependence.
10534         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
10535         (insn_alias_sets_conflict_p): Removed
10536         *rtl.h (may_alias_p): New function prototype.
10537
10538 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
10539
10540         * tree.c (nreverse): Assert that we don't have a BLOCK.
10541
10542 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
10543
10544         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
10545         * config/arm/arm.c (arm_get_pcs_model): Likewise.
10546         * config/avr/avr.c (init_cumulative_args): Likewise.
10547         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
10548         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
10549         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
10550         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
10551         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
10552         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10553         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
10554         * dwarf2out.c (gen_subprogram_die): Likewise.
10555         * function.c (allocate_struct_function): Likewise.
10556         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
10557         (deserves_ellipsis): Delete.
10558
10559 2010-08-09  Richard Guenther  <rguenther@suse.de>
10560
10561         * tree-ssa-copy.c (cached_last_copy_of): Remove.
10562         (valueize_val): New function.
10563         (get_last_copy_of): Remove.
10564         (set_copy_of_val): Simplify.
10565         (dump_copy_of): Likewise.
10566         (copy_prop_visit_cond_stmt): Use valueize_val.
10567         (copy_prop_visit_phi_node): Properly handle unvisited names.
10568         Drop code managing copy-of chains.
10569         (init_copy_prop): Adjust.
10570         (fini_copy_prop): Likewise.
10571         (execute_copy_prop): Remove obsolete comment.
10572
10573 2010-08-09  Richard Guenther  <rguenther@suse.de>
10574
10575         PR middle-end/44632
10576         * function.c (gimplify_parameters): Do not clear addressable
10577         bit of the original parameter.
10578
10579 2010-08-09  Richard Guenther  <rguenther@suse.de>
10580
10581         PR middle-end/45212
10582         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
10583         alignment from MEM_REF offset only if we took it from the
10584         base object.
10585
10586 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
10587
10588         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
10589
10590 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
10591
10592         * c-tree.h (build_arg_info): Declare.
10593         * c-decl.c (build_arg_info): Define.
10594         (get_parm_info): Call it.  Delete initialization code.
10595         * c-parser.c (c_parser_parms_declarator): Likewise.
10596         (c_parser_parms_list_declaractor): Likewise.
10597
10598 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
10599
10600         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
10601         (struct c_arg_info): Change type of tags field.
10602         * c-decl.c (grokdeclarator): Update for changed type of tags field.
10603         (get_parm_info): Likewise.
10604         (store_parm_decls_newstyle): Likewise.
10605
10606 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
10607
10608         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
10609         (branch_island_list): Delete.
10610         (branch_islands): Declare.
10611         (add_compiler_branch_island): Adjust for branch_islands instead of
10612         branch_island_list.
10613         (macho_branch_islands): Likewise.
10614         (no_previous_def): Likewise.
10615         (get_prev_label): Likewise.
10616
10617 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10618
10619         PR boehm-gc/34544
10620         * gthr-posix.h (__gthread_start): Delete.
10621         (__gthread_active_init): Use pthread_default_stacksize_np instead of
10622         pthread_create to determine if hpux pthreads are active.
10623         * gthr-posix95.h (__gthread_start): Delete.
10624         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
10625
10626 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
10627
10628         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
10629         _WIN64 not expanded.
10630
10631 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
10632             H.J. Lu  <hongjiu.lu@intel.com>
10633
10634         PR target/45213
10635         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
10636         to output 32bit SFmode immediate as 8 byte sign extended value.
10637
10638 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
10639
10640         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
10641         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
10642         (SUBWORD_BOOL_CAS): Likewise.
10643         (SUBWORD_SYNC_OP): Likewise.
10644         (SUBWORD_TEST_AND_SET): Likewise.
10645         (FETCH_AND_OP_WORD): Parenthesise INF_OP
10646         (SUBWORD_SYNC_OP): Likewise.
10647         (OP_AND_FETCH_WORD): Likewise.
10648
10649 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10650
10651         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
10652         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
10653         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
10654         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
10655         generic part.
10656         (cortex_a9_sched_adjust_cost): New function.
10657         (xscale_sched_adjust_cost): New function.
10658         * config/arm/arm-protos.h (struct tune_params): New field
10659         sched_adjust_cost.
10660         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
10661
10662 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
10663
10664         PR target/44942
10665         * config/sparc/sparc.c (function_arg_advance): Always take into account
10666         the padding, if any.
10667
10668 2010-08-06  Richard Guenther  <rguenther@suse.de>
10669
10670         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
10671         (dump_lattice_value): Dump it.
10672         (get_default_value): Adjust.
10673         (get_constant_value): Likewise.
10674         (set_value_varying): Likewise.
10675         (set_lattice_value): Make sure to not go up the lattice
10676         with bitwise constant values.
10677         (get_value_for_expr): Handle ADDR_EXPRs.
10678         (value_to_double_int): New function.
10679         (get_value_from_alignment): Likewise.
10680         (do_dbg_cnt): Adjust.
10681         (ccp_lattice_meet): Handle partially constant values.
10682         (bit_value_unop_1): New function.
10683         (bit_value_binop_1): Likewise.
10684         (bit_value_unop): Likewise.
10685         (bit_value_binop): Likewise.
10686         (evaluate_stmt): Track partially constant values if
10687         flag_tree_bit_ccp is set.
10688         (ccp_fold_stmt): Dump if we folded a predicate.
10689         (ccp_visit_stmt): Adjust.
10690         * common.opt (ftree-bit-ccp): New flag.
10691         * doc/invoke.texi (ftree-bit-ccp): Document.
10692         * opts.c (decode_options): Enable bit-CCP at -O1.
10693
10694 2010-08-06  Alan Modra  <amodra@gmail.com>
10695
10696         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
10697         and -mrelocatable-lib description.
10698
10699 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
10700
10701         From Martin Thuresson  <martint@google.com>
10702         * postreload.c (reload_cse_simplify_operands): Use
10703         SET_REGNO_RAW instead of SET_REGNO.
10704         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
10705         SET_REGNO.
10706         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
10707         instead of SET_REGNO.
10708         * rtl.h (SET_REGNO_RAW): New macro.
10709
10710 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
10711
10712         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
10713         computations.  Fix formatting issues.
10714         (num_sign_bit_copies1): Likewise.
10715         (canonicalize_condition): Likewise.
10716
10717 2010-08-05  Richard Henderson  <rth@redhat.com>
10718
10719         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
10720         (floor_log2): Use clz_hwi.
10721         (exact_log2): Use ctz_hwi.
10722         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
10723         * builtins.c (fold_builtin_bitop): Use them.
10724         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10725         * combine.c (get_pos_from_mask): Use ctz_hwi.
10726         * double-int.c (double_int_ctz): Likewise.
10727         * explow.c (force_reg): Likewise.
10728         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
10729
10730 2010-08-05  Richard Henderson  <rth@redhat.com>
10731
10732         PR target/45189
10733         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
10734         the alignment constant is properly sign-extended.
10735
10736 2010-08-05  Richard Guenther  <rguenther@suse.de>
10737
10738         * expr.c (store_expr): Use emit_block_move only if both
10739         source and target are MEMs.  Use store_bit_field if only
10740         the target is a MEM.
10741
10742 2010-08-05  Richard Henderson  <rth@redhat.com>
10743
10744         PR debug/45188
10745         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
10746         (INCOMING_RETURN_ADDR_RTX): Likewise.
10747         (dwarf2out_do_frame): Remove conditional compilation.
10748         (dwarf2out_frame_init): Likewise.
10749
10750 2010-08-05  Nicolas Setton  <setton@adacore.com>
10751
10752         * gcov.c (flag_display_progress): New static variable.
10753         (main): Display progress info on standard output if requested.
10754         (options): Add -d/--display-progress.
10755         (print_usage): Print them.
10756         (process_args): Handle them.
10757         * doc/gcov.texi: Document them.
10758
10759 2010-08-05  Martin Jambor  <mjambor@suse.cz>
10760
10761         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
10762         (ipcp_insert_stage): Redirect only edges not flagged with
10763         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
10764         discovered constants.
10765
10766 2010-08-05  Martin Jambor  <mjambor@suse.cz>
10767
10768         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
10769         (struct ipa_param_descriptor): New fields types and
10770         cannot_devirtualize.
10771         (ipa_param_cannot_devirtualize_p): New function.
10772         (ipa_param_types_vec_empty): Likewise.
10773         (ipa_make_edge_direct_to_target): Declare.
10774         * ipa-cp.c: Fixed first stage driver name in initial comment,
10775         described devirtualization there too.
10776         (ipcp_analyze_node): Call ipa_analyze_params_uses.
10777         (ipcp_print_all_lattices): Print devirtualization info.
10778         (ipa_set_param_cannot_devirtualize): New function.
10779         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
10780         lattice to BOTTOM.
10781         (ipcp_init_stage): Merged into...
10782         (ipcp_generate_summary): ...its caller.
10783         (ipcp_change_tops_to_bottom): Also process type lists.
10784         (ipcp_add_param_type): New function.
10785         (ipcp_copy_types): Likewise.
10786         (ipcp_propagate_types): Likewise.
10787         (ipcp_propagate_stage): Also propagate types.
10788         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
10789         Also return true if propagated types require it.
10790         (ipcp_update_callgraph): Dump redirection info.
10791         (ipcp_process_devirtualization_opportunities): New function.
10792         (ipcp_const_param_count): Include known type information.
10793         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
10794         on new node.  Fixed formatting.
10795         * ipa-prop.c (make_edge_direct_to_target): Renamed to
10796         ipa_make_edge_direct_to_target and changed all callers.  Made
10797         externally visible.
10798         (ipa_node_duplication_hook): Duplicate types vector.
10799         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
10800         redirect outgoing calls for which we can't get a decl from the
10801         statement.  Check that we can get a decl from the call statement.
10802         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
10803         ipa_analyze_params_uses only when ipa-cp is disabled.
10804         * tree-inline.c (get_indirect_callee_fndecl): Removed.
10805         (expand_call_inline): Do not call get_indirect_callee_fndecl.
10806         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
10807         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
10808
10809 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
10810
10811         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
10812         temporary. Emit move from temporary to accum, so REG_EQUAL note will
10813         be attached to this insn in correct mode.
10814
10815 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
10816
10817         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
10818         using REGNO of base_reg directly.
10819
10820 2010-08-05  Jie Zhang  <jie@codesourcery.com>
10821
10822         PR tree-optimization/45144
10823         * tree-sra.c (type_consists_of_records_p): Return false
10824         if the record contains bit-field.
10825
10826 2010-08-04  Richard Henderson  <rth@redhat.com>
10827
10828         * config/i386/i386.c (struct ix86_frame): Remove padding and
10829         to_allocate members.
10830         (ix86_compute_frame_layout): Don't store them.
10831         (ix86_can_use_return_insn_p): Use a more direct and more obviously
10832         correct condition for the position of the stack pointer.
10833         (ix86_expand_prologue): Compute remaining stack allocation based
10834         on the ultimate stack pointer offset.
10835         (ix86_expand_epilogue): Use more obvious expressions testing for
10836         the stack pointer already pointing to the saved registers.
10837
10838         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
10839         duplication deconstructing the frame pointer.  Simplify
10840         deallocation of the local stack frame.
10841
10842         * reg-notes.def (CFA_EXPRESSION): New.
10843         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
10844         (dwarf2out_frame_debug_cfa_expression): New.
10845         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
10846
10847         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
10848         * config/i386/i386.c (ix86_expand_prologue): Set it.
10849         (ix86_expand_epilogue): Clear it.
10850         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
10851         context, add REG_CFA_EXPRESSION notes.
10852
10853         * config/i386/i386.h (struct machine_frame_state): Rename from
10854         machine_cfa_state.  Add members tracking SP and FP regardless
10855         of the current CFA register.
10856         (ix86_cfa_state): Remove.
10857         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
10858         and sse_reg_save_offset members.
10859         (ix86_compute_frame_layout): Set them.
10860         (gen_push): Increment sp_offset too.
10861         (choose_baseaddr_len, choose_baseaddr): New.
10862         (ix86_emit_save_reg_using_mov): New.
10863         (ix86_emit_save_regs_using_mov): Use it.
10864         (ix86_emit_save_sse_regs_using_mov): Likewise.
10865         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
10866         compare vs the saved red_zone_offset.
10867         (pro_epilogue_adjust_stack): Adjust sp_offset.
10868         (ix86_adjust_stack_and_probe): Likewise.
10869         (ix86_expand_prologue): Set up, use, and validate the new
10870         frame_state_info members.  Use gen_frame_mem.
10871         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
10872         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
10873         new frame_state_info members.
10874         (ix86_emit_leave): Likewise.
10875         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
10876         out-of-range stack pointer offsets here.
10877         (ix86_emit_restore_sse_regs_using_mov): Likewise.
10878         (ix86_expand_epilogue): Use and validate the new frame_state_info
10879         members.  Break up and simplify the logic selecting the
10880         restore_regs_via_mov code path.  Ensure that there will be no
10881         out-of-range stack pointer offsets.
10882
10883         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
10884
10885         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
10886         argument name to reflect the expected tree; fix indentation.
10887         (ix86_asm_output_function_label): Output the entire 32-bit
10888         ms_hook here as bytes ...
10889         (ix86_expand_prologue): ... not here as insns.  Attach the
10890         unwind info for the ms_hook to a blockage insn.
10891         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
10892         (ix86_ms_bitfield_layout_p): Fix indentation.
10893         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
10894
10895         * config/i386/i386.c (ix86_using_red_zone): New.
10896         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
10897         ix86_expand_prologue, ix86_force_to_memory): Use it.
10898
10899         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
10900         saving the int registers.
10901
10902         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
10903         and DWARF2_UNWIND_INFO conditional compilation.
10904
10905 2010-08-04  Richard Henderson  <rth@redhat.com>
10906
10907         PR debug/45171
10908         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
10909         an is_naming_typedef_decl.
10910
10911 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
10912
10913         PR rtl-optimization/45162
10914         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
10915         * dce.c (word_dce_process_block): Likewise.
10916
10917 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
10918
10919         PR target/44583
10920         * config/ia64/constraints.md (Z): New.
10921         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
10922         (xfreg_or_signed_fp01_operand): New.
10923         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
10924         with fr_reg_or_signed_fp01_operand and constraint G with Z.
10925         (subsf3): Ditto.
10926         (*maddsf4): Ditto.
10927         (*msubsf4): Ditto.
10928         (adddf3): Ditto.
10929         (adddf3_trunc): Ditto.
10930         (subdf3): Ditto.
10931         (*subdf3_trunc): Ditto.
10932         (*madddf4): Ditto.
10933         (*madddf4_trunc): Ditto.
10934         (*msubdf4): Ditto.
10935         (*msubdf4_trunc): Ditto.
10936         (addxf3): Replace xfreg_or_fp01_operand with
10937         xfreg_or_signed_fp01_operand and constraint G with Z.
10938         (*addxf3_truncsf): Ditto.
10939         (*addxf3_truncdf): Ditto.
10940         (subxf3): Ditto.
10941         (*subxf3_truncsf): Ditto.
10942         (*subxf3_truncdf): Ditto.
10943         (*maddxf4): Ditto.
10944         (*maddxf4_truncsf): Ditto.
10945         (*maddxf4_truncdf): Ditto.
10946         (*msubxf4): Ditto.
10947         (*msubxf4_truncsf): Ditto.
10948         (*msubxf4_truncdf): Ditto.
10949
10950 2010-08-04  Richard Guenther  <rguenther@suse.de>
10951
10952         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
10953         if either alias-set is zero.
10954
10955 2010-08-04  Richard Guenther  <rguenther@suse.de>
10956
10957         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
10958         * tree-ssa-ccp.c: ... here.
10959         * tree-ssa-copy.c: ... and here.
10960         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
10961         value_range_t): Move ...
10962         * tree-vrp.c: ... here.
10963         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
10964         (substitute_and_fold): Adjust prototype.
10965         * tree-ssa-propagate.c (replace_uses_in): Adjust.
10966         (replace_phi_args_in): Likewise.
10967         (substitute_and_fold): Take callback to query lattice instead
10968         of pointer to lattice.  Replace SSA name defs with lattice
10969         values first.
10970         * tree-ssa-ccp.c (ccp_finalize): Adjust.
10971         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
10972         (get_value): New function.
10973         (fini_copy_prop): Adjust.
10974         * tree-vrp.c (vrp_finalize): Adjust.
10975
10976 2010-08-04  Richard Guenther  <rguenther@suse.de>
10977
10978         PR middle-end/45176
10979         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
10980         points-to set for original MEM_REF.
10981
10982 2010-08-04  Richard Guenther  <rguenther@suse.de>
10983
10984         * tree-ssa-ccp.c (get_constant_value): New function.
10985         (get_rhs_assign_op_for_ccp): Remove.
10986         (valueize_op): New function.
10987         (ccp_fold): Use get_constant_value and valueize_op.
10988         (fold_const_aggregate_ref): Likewise.
10989         (ccp_fold_stmt): Likewise.
10990         (visit_assignment): Simplify.
10991
10992 2010-08-04  Richard Guenther  <rguenther@suse.de>
10993
10994         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
10995         * double-int.h (double_int_ctz): Declare.
10996         * double-int.c (double_int_ctz): New function.
10997
10998 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
10999
11000         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
11001         Define.
11002         picochip_expand_movmemhi : Expand movmem pattern.
11003         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
11004         Declare.
11005         * config/picochip/picochip.md (movmemhi) : New pattern.
11006
11007 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
11008
11009         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
11010
11011 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
11012
11013         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
11014         NEG as operand of a MULT by merging it with the other operand.
11015         * combine.c (make_compound_operation): Use trunc_int_for_mode when
11016         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
11017         MULT.
11018         * config/arm/constraints.md (M): Examine only 32 bits of a
11019         HOST_WIDE_INT.
11020         * config/arm/predicates.md (power_of_two_operand): Likewise.
11021
11022 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11023
11024         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
11025         non-NOTE insns.
11026
11027 2010-08-03  Jan Hubicka  <jh@suse.cz>
11028
11029         * ipa-split.c (struct split_point): Add split_part_set_retval.
11030         (find_retval): Forward declare.
11031         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
11032         (consider_split): Compute current->split_part_set_retval.
11033         (visit_bb): Do not look into return value.
11034         (split_function): Handle !split_part_set_retval
11035
11036 2010-08-03  Martin Jambor  <mjambor@suse.cz>
11037
11038         * tree-sra.c (completely_scalarize_record): New parameter REF, create
11039         its own access->expr intead of using build_ref_for_offset.
11040
11041 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
11042
11043         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
11044         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
11045         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
11046         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
11047         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
11048         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
11049         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
11050         DEFAULT_SWITCH_TAKES_ARG.
11051         * config/rx/rx.opt (-patch=): Remove option.
11052         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
11053         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
11054         * doc/invoke.texi (RX Options): Remove -patch=.
11055         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
11056         (option_map): Remove --profile-blocks, --quiet and --silent.
11057
11058 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
11059
11060         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
11061         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
11062         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
11063         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
11064         Update calls to ix86_expand_compare and ix86_expand_branch.
11065         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
11066         ix86_expand_compare.
11067         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
11068         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
11069         Make static.
11070         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
11071         and ix86_compare_op1.  Update calls to ix86_expand_compare.
11072         (ix86_expand_int_movcc): Ditto.
11073         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
11074         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
11075         (ix86_expand_setcc): Ditto.
11076         (ix86_expand_compare): Remove prototype.
11077         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
11078         ix86_compare_op0 and ix86_compare_op1.  Update calls
11079         to ix86_expand_branch to directly pass operands[1] and operands[2].
11080         (cbranchxf4): Ditto.
11081         (cbranch<MODEF:mode>4): Ditto.
11082         (cbranchcc4): Ditto.
11083         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
11084         Update calls to ix86_expand_setcc to directly pass operands[2] and
11085         operands[3].
11086         (cstorexf4): Ditto.
11087         (cstore<MODEF:mode>4): Ditto.
11088         (cstorecc4): Ditto.
11089
11090 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
11091
11092         PR target/45063
11093         * caller-save.c (save_call_clobbered_regs): Remove regs from
11094         hard_regs_saved when they are set.
11095
11096 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
11097
11098         PR target/41089
11099         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
11100         as volatile.
11101
11102 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
11103
11104         * common.opt (ftree-loop-distribute-patterns): New.
11105         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
11106         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
11107         at -O3.
11108         * tree-data-ref.c (stores_zero_from_loop): New.
11109         * tree-data-ref.h (stores_zero_from_loop): Declared.
11110         * tree-loop-distribution.c (tree_loop_distribution): Call
11111         stores_zero_from_loop.
11112         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
11113
11114 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
11115
11116         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
11117         into account.
11118
11119         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
11120         * config/arm/arm.c (thumb1_code): New variable.
11121         (arm_override_options): Set it.
11122         (thumb1_final_prescan_insn): Keep track of condition code status.
11123         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
11124         jumps that depend on them.
11125         * config/arm/arm.h (thumb1_code): Declare variable.
11126         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
11127         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
11128         thumb1_cc_mode.
11129         (CC_STATUS_INIT): New macro.
11130         * config/arm/constraints.md (Pd): New constraint.
11131         * config/arm/predicates.md (noov_comparison_operator): New predicate.
11132         * config/arm/arm.md (is_thumb1): New define_attr.
11133         (conds): Set default to "clob" when generating Thumb1 code.
11134         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
11135         code are set.  Use two-operand assembly syntax.
11136         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
11137         pattern.
11138         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
11139         codes are set.  Use two-operand assembly syntax.
11140         (zero_extendhisi splitter): Remove constraints.
11141         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
11142         thumb1_movsf_insn): Set conds attribute as appropriate.
11143         (cbranchsi4_insn): Use condition code status from struct
11144         machine_function to determine whether the comparison can be eliminated.
11145         Discourage the alternative using high registers.
11146         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
11147         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
11148         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
11149         subsi3_cbranch): Delete.
11150         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
11151         one subtract and one cbranch insn.
11152
11153         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
11154         thumb2_movdf_soft_insn): Delete patterns.
11155         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
11156         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
11157         (pool_range, neg_pool_range): Use them to define defaults.
11158         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
11159         and allow for TARGET_32BIT.
11160
11161         PR target/40457
11162         * config/arm/arm.h (arm_regs_in_sequence): Declare.
11163         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
11164         load_multiple_sequence, store_multiple_sequence): Delete
11165         declarations.
11166         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
11167         declarations.
11168         * config/arm/ldmstm.md: New file.
11169         * config/arm/arm.c (arm_regs_in_sequence): New array.
11170         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
11171         CHECK_REGS.  All callers changed.
11172         If SAVED_ORDER is nonnull, copy the computed order into it.
11173         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
11174         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
11175         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
11176         If SAVED_ORDER is nonnull, copy the computed order into it.
11177         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
11178         like REGS.  Handle Thumb mode.
11179         (arm_gen_load_multiple_1): New function, broken out of
11180         arm_gen_load_multiple.
11181         (arm_gen_store_multiple_1): New function, broken out of
11182         arm_gen_store_multiple.
11183         (arm_gen_multiple_op): New function, with code from
11184         arm_gen_load_multiple and arm_gen_store_multiple moved here.
11185         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
11186         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
11187         changed.
11188         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
11189         * config/arm/predicates.md (commutative_binary_operator): New.
11190         (load_multiple_operation, store_multiple_operation): Handle more
11191         variants of these patterns with different starting offsets.  Handle
11192         Thumb-1.
11193         * config/arm/arm.md: Include "ldmstm.md".
11194         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
11195         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
11196         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
11197         peepholes): Delete.
11198         * config/arm/ldmstm.md: New file.
11199         * config/arm/arm-ldmstm.ml: New file.
11200
11201         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
11202         if statement which adds extra costs to frame-related expressions.
11203
11204 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11205
11206         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
11207
11208 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
11209
11210         PR target/45142
11211         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
11212         alternative 2.
11213         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
11214         split V4SI operands.
11215
11216 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
11217
11218         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
11219         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
11220         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
11221         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
11222
11223 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
11224
11225         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
11226         LOCAL_INCLUDE_DIR.
11227
11228 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
11229
11230         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
11231         used in the call to optab_for_tree_code.  Fix the second
11232         is_widening_mult_p call.  Check that both unwidened operands
11233         have the same sign.
11234
11235 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
11236
11237         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
11238
11239 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
11240
11241         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
11242
11243 2010-07-30  DJ Delorie  <dj@redhat.com>
11244
11245         * config/rx/predicates.md (rx_constshift_operand): New.
11246         * config/rx/rx.md (zs_cond): New.
11247         (cbranchsi4): Remove mode.
11248         (*cbranchsi4_<code>): Likewise.
11249         (*tstbranchsi4_<code>): New.
11250         (*tstbranchsi4r_<code>): New.
11251         (*tstbranchsi4m_eq): New.
11252         (*tstbranchsi4m_ne): New.
11253         (cbranchsf4): Remove mode.
11254         (*cbranchsf4_<code>): Likewise.
11255
11256 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
11257
11258         * rtlanal.c (simplify_subreg_regno): Don't treat
11259         HARD_FRAME_POINTER_REGNUM specially.
11260
11261 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
11262
11263         * common.opt (-G): Don't define option here.
11264         * config/g.opt: New.
11265         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
11266         rs6000/powerpc and score targets.
11267         * opts.c (common_handle_option): Don't handle -G here.
11268         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
11269         * config/frv/frv.c (frv_handle_option): Handle -G.
11270         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
11271         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
11272         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
11273         * config/mips/mips.c (mips_handle_option): Handle -G.
11274         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
11275         * config/score/score.c (score_handle_option): Handle -G.
11276
11277 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
11278
11279         * config/mmix/mmix.c: Include basic-block.h.
11280
11281 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
11282
11283         PR debug/45055
11284         PR rtl-optimization/45137
11285         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
11286         prototypes.
11287         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
11288         New functions.
11289         * combine.c (next_nonnote_nondebug_insn): Removed.
11290         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
11291         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
11292         * sched-deps.c (sched_analyze_insn): Likewise.
11293         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
11294         * rtlanal.c (canonicalize_condition): Likewise.
11295         * postreload.c (reload_combine_recognize_pattern): Likewise.
11296         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
11297
11298 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
11299
11300         * config/i386/i386.md (int_cond): Remove code iterator.
11301         (fp_cond): Ditto.
11302         (cbranch<mode>4): Use ordered_comparison_operator predicate
11303         for operator0.
11304         (cstore<mode>4): Ditto for operator1.
11305         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
11306         (add<mode>cc): ditto.
11307
11308 2010-07-30  Richard Guenther  <rguenther@suse.de>
11309
11310         PR middle-end/45141
11311         * expr.c (expand_expr_real_1): Check for not handled base address.
11312
11313 2010-07-30  Richard Guenther  <rguenther@suse.de>
11314
11315         * ipa-prop.c (ipa_modify_formal_parameters): Use
11316         build_distinct_type_copy.
11317
11318 2010-07-30  Anthony Green  <green@moxielogic.com>
11319
11320         * config/moxie/rtems.h: New file.
11321         * config.gcc: Add moxie-rtems support.
11322
11323 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
11324
11325         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
11326         df flags as in run_fast_df_dce.
11327
11328 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
11329
11330         Revert:
11331         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
11332
11333         * rtl.def (NOTE): Swap operands 4 and 5.
11334         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
11335         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
11336         Adjust accordingly.
11337         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
11338
11339 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
11340
11341         PR debug/45110
11342         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
11343         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
11344         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
11345         formal parameters.
11346         (gen_decl_die): Change return type to dw_die_ref, return what
11347         gen_formal_parameter_die returned.
11348
11349 2010-07-29  Martin Jambor  <mjambor@suse.cz>
11350
11351         * dbgcnt.def (eipa_sra): New counter.
11352         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
11353
11354 2010-07-29  Xinliang David Li  <davidxl@google.com>
11355
11356         PR bootstrap/45119
11357         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
11358         in revision 162652.
11359
11360 2010-07-29  Richard Guenther  <rguenther@suse.de>
11361
11362         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
11363         (TV_TREE_STORE_CCP): Likewise.
11364         (TV_TREE_REDPHI): Likewise.
11365
11366 2010-07-29  Richard Guenther  <rguenther@suse.de>
11367
11368         * double-int.h (double_int_and_not): New function.
11369         * combine.c (try_combine): Use it.
11370         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
11371
11372 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
11373
11374         PR rtl-optimization/42575
11375         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
11376         Argument AU removed.  All callers changed.  Ignore artificial refs.
11377         Use return value of df_word_lr_simulate_defs to decide whether an insn
11378         is necessary.
11379         (fast_dce): Rename arg to WORD_LEVEL.
11380         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
11381         static.
11382         (pass_fast_rtl_byte_dce): Delete.
11383         * dce.h (run_word_dce): Declare.
11384         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
11385         All callers changed.  Simplify code to only deal with two-word regs.
11386         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
11387         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
11388         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
11389         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
11390         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
11391         (df_word_lr_mark_ref): Declare.
11392         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
11393         df_word_lr_simulate_uses): Declare or rename from byte variants.
11394         (df_byte_lr_simulate_artificial_refs_at_top,
11395         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
11396         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
11397         declarations.
11398         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
11399         (enum df_mm): Delete.
11400         * df-byte-scan.c: Delete file.
11401         * df-problems.c (df_word_lr_problem_data): Renamed from
11402         df_byte_lr_problem_data, all members deleted except for
11403         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
11404         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
11405         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
11406         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
11407         df_byte_lr_confluence_0): Delete functions.
11408         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
11409         callers changed.
11410         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
11411         Don't initialize members that were deleted, don't try to discover data
11412         about registers.  Ignore hard regs.
11413         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
11414         (df_word_lr_mark_ref): New function.
11415         (df_word_lr_bb_local_compute): Renamed from
11416         df_byte_bb_lr_local_compute; all callers changed.  Use
11417         df_word_lr_mark_ref.  Assert that artificial refs don't include
11418         pseudos.  Ignore hard registers.
11419         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
11420         Assert that exit block uses don't contain pseudos.
11421         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
11422         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
11423         callers changed.  Ignore hard regs.
11424         (df_word_lr_transfer_function): Renamed from
11425         df_byte_lr_transfer_function; all callers changed.
11426         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
11427         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
11428         changed.
11429         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
11430         callers changed.
11431         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
11432         confluence operator 0 set to NULL.
11433         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
11434         callers changed.
11435         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
11436         Return bool, true if bitmap changed or insn otherwise necessary.
11437         All callers changed.  Simplify using df_word_lr_mark_ref.
11438         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
11439         all callers changed.  Simplify using df_word_lr_mark_ref.
11440         * lower-subreg.c: Include "dce.h"
11441         (decompose_multiword_subregs): Call run_word_dce if df available.
11442         * Makefile.in (lower-subreg.o): Adjust dependencies.
11443         (df-byte-scan.o): Delete.
11444         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
11445
11446 2010-07-29  Richard Guenther  <rguenther@suse.de>
11447
11448         * tree.c (build_vector): Assert that the vector constant
11449         has enough elements.
11450         (build_vector_from_ctor): Pad with trailing zeros.
11451
11452 2010-07-29  Richard Guenther  <rguenther@suse.de>
11453
11454         PR tree-optimization/45120
11455         * tree-ssa-structalias.c (get_constraint_for_component_ref):
11456         Handle offset in DEREFs properly.
11457         (get_constraint_for_1): Handle MEM_REF offset properly.
11458
11459 2010-07-29  Richard Guenther  <rguenther@suse.de>
11460
11461         PR middle-end/45034
11462         * convert.c (convert_to_integer): Always use an unsigned
11463         type for narrowed negate and bitwise not.
11464
11465 2010-07-29  Ira Rosen  <irar@il.ibm.com>
11466
11467         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
11468         to outer loop when creating reduction epilogue for double reduction,
11469         and switch back to the inner loop when updating the phi nodes.
11470         Update uses of outer loop exit phi nodes in double reduction (instead
11471         of uses of reduction).
11472
11473 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
11474
11475         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
11476         popcount on power7 and parity on power6 systems.
11477         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
11478         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
11479         instructions.
11480
11481         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
11482         (UNSPEC_PARITY): Ditto.
11483         (SFDF): New iterator for SF/DF.
11484         (rreg2): New mode attribute for floating register constraint.
11485         (TARGET_FLOAT): New mode attribute for whether single/double float
11486         is supported.
11487         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
11488         pattern.
11489         (parity<mode>2_cmpb): New insn for parity on power6 and newer
11490         machines.
11491         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
11492         pattern.  Add support for fcpsgn instruction added in power6.
11493         (copysignsf3): Delete.
11494         (copysigndf3): Delete.
11495         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
11496         instead of if_then_else in RTL to avoid problems with -0.
11497
11498         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
11499         of if_then_else to mirror scalar code.
11500         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
11501         rs6000.md.
11502
11503         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
11504         instead of if_then_else.
11505
11506 2010-07-28  Xinliang David Li  <davidxl@google.com>
11507
11508         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
11509         (dump_cand): Dump var_before/after.
11510         (htab_inv_expr_eq): New function.
11511         (htab_inv_expr_hash): New function.
11512         (tree_ssa_iv_optimize_init): Support pseudo invariants.
11513         (add_candidate_1): consider base type precision.
11514         (set_use_iv_cost): New parameter.
11515         (adjust_setup_cost): Use profile information.
11516         (get_address_cost): Do not hard code width in computing address
11517         offset limits.
11518         (compare_aff_trees): New function.
11519         (get_loop_invariant_expr_id): New function.
11520         (get_computation_cost_at): New parameter and use profile information.
11521         (get_computation_cost): New parameter.
11522         (determine_use_iv_cost_generic): Pass new parameter.
11523         (determine_use_iv_cost_address): Ditto.
11524         (determine_use_iv_cost_condition): Ditto.
11525         (autoinc_possible_for_pair): Ditto.
11526         (determine_use_iv_costs): More dumps.
11527         (iv_ca_get_num_inv_exprs): New function.
11528         (iv_ca_recount_cost): Consider loop invariants in register pressure
11529         cost.
11530         (iv_ca_add_use): New parameter.
11531         (iv_ca_dump): Better dumping.
11532         (iv_ca_extend): New parameter.
11533         (try_add_cand_for): Attempt to get better partial solution.
11534         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
11535         (create_new-ivs): More dumps.
11536         (rewrite_use_compare): Ditto.
11537         (free_loop_data): More cleanup.
11538         (treee_ssa_iv_optimize_finalize): Ditto.
11539
11540 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
11541
11542         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
11543         * config/i386/i386.c (ix86_profile_before_prologue): New.
11544         (override_options): Add special handling for -mfentry.
11545         (ix86_function_regparm): Likewise.
11546         (ix86_function_sseregparm): Likewise.
11547         (ix86_frame_pointer_required): Likewise.
11548         (ix86_expand_prologue): Check for ms_hook_prologue.
11549         (x86_function_profiler): Adjust mcount output.
11550         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
11551         * config/i386/i386.opt (mfentry): New.
11552         * doc/invoke.texi (mfentry): Add documentation.
11553         * doc/tm.texi: Regenerated..
11554         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
11555         * final.c (final_start_function): Replace macro
11556         PROFILE_BEFORE_PROLOGUE by target hook.
11557         * function.c (thread_prologue_and_epilogue_insns): Likewise.
11558         * target.def (profile_before_prologue): New hook.
11559         * targhooks.c (default_profile_before_prologue): New.
11560         * targhooks.h (default_profile_before_prologue): New.
11561
11562 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
11563
11564         PR debug/45105
11565         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
11566
11567         PR debug/45103
11568         * dwarf2out.c (dwarf2out_var_location): Always consider
11569         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
11570
11571 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
11572
11573         PR rtl-optimization/45107
11574         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
11575
11576 2010-07-28  Richard Guenther  <rguenther@suse.de>
11577
11578         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
11579         (set_lattice_value): Do not query an old default value.
11580         (get_value_for_expr): New function.  Properly canonicalize
11581         float values.
11582         (ccp_visit_phi_node): Use it.
11583
11584 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
11585
11586         * config/arm/arm.c (arm_pcs_default): Remove static.
11587         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
11588         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
11589         (arm_pcs_default): Declare.
11590
11591 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
11592
11593         * config/rs6000/rs6000.c (rs6000_override_options):
11594         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
11595         ... to darwin_rs6000_override_options.
11596         (rs6000_return_in_memory): Update preceding comment for darwin
11597         64 bit ABI.  Use TARGET_MACHO inline.
11598         (rs6000_darwin64_struct_check_p): New.
11599         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
11600         (function_arg): Likewise.
11601         (rs6000_arg_partial_bytes): Likewise.
11602         (rs6000_function_value): Likewise.
11603
11604 2010-07-28  Andi Kleen  <ak@linux.intel.com>
11605
11606         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
11607
11608 2010-07-28  Richard Guenther  <rguenther@suse.de>
11609
11610         PR middle-end/44903
11611         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
11612         targets try harder to not generate unaligned accesses.
11613
11614 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
11615
11616         PR rtl-optimization/45101
11617         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
11618         for gcse-las.
11619
11620 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
11621
11622         PR tree-optimization/44885
11623         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
11624         with non-aliased component.
11625
11626 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
11627
11628         * config/darwin-driver.c (SWITCH_TAKES_ARG,
11629         WORD_SWITCH_TAKES_ARG): Remove.
11630         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
11631         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
11632         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
11633         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
11634         definitions from gcc.c.
11635         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
11636         defaults.h.
11637         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
11638         Move to defaults.h.
11639         * opts-common.c: Include tm.h.
11640         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
11641         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
11642         Handle more than one argument.  Set canonical_option_num_elements.
11643         (decode_cmdline_options_to_array): Set
11644         canonical_option_num_elements and trailing elements of
11645         canonical_option.
11646         * opts.h (struct cl_decoded_option): Allow four elements in
11647         canonical_option.  Add field canonical_option_num_elements.
11648         * Makefile.in (opts-common.o): Update dependencies.
11649
11650 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
11651
11652         PR middle-end/44790
11653         PR middle-end/44993
11654         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
11655         sure the base has address_mode before adding the offset.
11656
11657 2010-07-27  Xinliang David Li  <davidxl@google.com>
11658
11659         * tree-flow.h (create_mem_ref): Add one new parameter.
11660         * tree-ssa-address.c (create_mem_ref): New parameter.
11661         (addr_to_parts): Ditto.
11662         (move_variant_to_index): New function.
11663         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
11664
11665 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
11666
11667         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
11668         4 and 5.
11669         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
11670         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
11671         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
11672         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
11673         CODE_LABELs and NOTEs.
11674         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
11675         * combine.c (try_combine): Likewise.
11676         * ira.c (setup_prohibited_mode_move_regs): Likewise.
11677         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
11678
11679 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
11680
11681         * coretypes.h (struct cl_option_handlers): Declare.
11682         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
11683         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
11684         * langhooks-def.h (lhd_handle_option): Declare.
11685         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
11686         * langhooks.c (lhd_handle_option): New.
11687         * langhooks.h (struct lang_hooks): Update prototype and return
11688         value type of handle_option hook.
11689         * optc-gen.awk: Generate target_flags_explicit definition for the
11690         driver.
11691         * opts-common.c: Include diagnostic.h.
11692         (handle_option): Move from opts.c.  Update prototype and return
11693         value type.  Use handlers structure.
11694         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
11695         handlers structure.
11696         (set_option): Move from opts.c.
11697         * opts.c (common_handle_option): Update prototype and return value
11698         type.  Update calls to handle_option and enable_warning_as_error.
11699         (unknown_option_callback, post_handling_callback,
11700         lang_handle_option, target_handle_option): New.
11701         (handle_option, read_cmdline_option): Move to opts-common.c.
11702         (read_cmdline_options): Update prototype.  Update call to
11703         read_cmdline_option.
11704         (decode_options): Initialize and use handlers structure.
11705         (set_option): Move to opts-common.c.
11706         (enable_warning_as_error): Update prototype.  Update call to
11707         handle_option.
11708         * opts.h (struct cl_option_handler_func, struct
11709         cl_option_handlers): New.
11710         (handle_option, enable_warning_as_error): Update prototypes.
11711         (read_cmdline_option): Declare.
11712         * Makefile.in (opts-common.o): Update dependencies.
11713
11714 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11715
11716         * config/arm/arm.c (params.h): Include.
11717         (arm_override_options): Tune gcse-unrestricted-cost.
11718         * config/arm/t-arm (arm.o): Define dependencies.
11719
11720 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11721
11722         PR target/42495
11723         PR middle-end/42574
11724         * basic-block.h (get_dominated_to_depth): Declare.
11725         * dominance.c (get_dominated_to_depth): New function, use
11726         get_all_dominated_blocks as a base.
11727         (get_all_dominated_blocks): Use get_dominated_to_depth.
11728
11729         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
11730         (hoist_exprs): Remove.
11731         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
11732         (compute_code_hoist_vbeinout): Add debug print outs.
11733         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
11734
11735         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
11736         quadratic behavior.
11737         * params.h (MAX_HOIST_DEPTH): New macro.
11738         * doc/invoke.texi (max-hoist-depth): Document.
11739
11740 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11741
11742         PR rtl-optimization/40956
11743         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
11744         constants.
11745
11746 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11747
11748         PR target/42495
11749         PR middle-end/42574
11750         * config/arm/arm.c (legitimize_pic_address): Use
11751         gen_calculate_pic_address pattern to emit calculation of PIC address.
11752         (will_be_in_index_register): New function.
11753         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
11754         (thumb1_legitimate_address_p): Use it provided !strict_p.
11755         * config/arm/arm.md (calculate_pic_address): New expand and split.
11756
11757 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11758
11759         PR target/42495
11760         PR middle-end/42574
11761         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
11762         * config/arm/arm.md (define_split "J", define_split "K"): Make
11763         IRA/reload friendly.
11764
11765 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11766
11767         * gcse.c (insert_insn_end_basic_block): Update signature, remove
11768         unused checks.
11769         (pre_edge_insert, hoist_code): Update.
11770
11771 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11772
11773         PR target/42495
11774         PR middle-end/42574
11775         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
11776
11777 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11778
11779         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
11780
11781 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11782
11783         PR rtl-optimization/40956
11784         PR target/42495
11785         PR middle-end/42574
11786         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
11787         for hoisting.
11788         (hoist_code): Count occurences in current block too.
11789
11790 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11791
11792         * gcse.c (struct expr:max_distance): New field.
11793         (doing_code_hoisting_p): New static variable.
11794         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
11795         simple expressions, don't change behavior for PRE.  Set max_distance.
11796         (insert_expr_in_table): Set new max_distance field.
11797         (hash_scan_set): Update.
11798         (hoist_expr_reaches_here_p): Stop search after max_distance
11799         instructions.
11800         (find_occr_in_bb): New static function.  Use it in ...
11801         (hoist_code): Calculate sizes of basic block before any changes are
11802         done.  Pass max_distance to hoist_expr_reaches_here_p.
11803         (one_code_hoisting_pass): Set doing_code_hoisting_p.
11804
11805         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
11806         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
11807         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
11808         macros.
11809         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
11810         Document.
11811
11812 2010-07-27  Jeff Law  <law@redhat.com>
11813             Maxim Kuvyrkov  <maxim@codesourcery.com>
11814
11815         * gcse.c (compute_transpout, transpout): Remove, move logic
11816         to prune_expressions.
11817         (compute_pre_data): Move pruning of trapping expressions ...
11818         (prune_expressions): ... here.  New static function.
11819         (compute_code_hoist_data): Use it.
11820         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
11821
11822 2010-07-27  Xinliang David Li  <davidxl@google.com>
11823
11824         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
11825         (rewrite_use_address): Adjust iv update position when needed.
11826
11827 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11828
11829         * dbgcnt.def (hoist_insn): New debug counter.
11830         * gcse.c (hoist_code): Use it.
11831
11832 2010-07-27  Xinliang David Li  <davidxl@google.com>
11833
11834         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
11835         (niter_for_single_dom_exit): Passes additional parameter.
11836         (iv_period): Fix comments.
11837         (may_eliminate_iv): Handles multiple exit loops properly.
11838         (free_tree_niter_desc): New function.
11839         (free_loop_data): Frees up loop iteration descriptors.
11840
11841 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
11842
11843         PR target/44542
11844         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
11845         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
11846         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
11847         (expand_one_var): Don't consider DECL_ALIGN for variables for
11848         which expand_one_stack_var_at has been already called.
11849
11850         PR testsuite/44701
11851         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
11852         constraints on IA-64.
11853
11854 2010-07-27  Jie Zhang  <jie@codesourcery.com>
11855
11856         PR target/44290
11857         Revert:
11858         2010-07-23  Jie Zhang  <jie@codesourcery.com>
11859
11860         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
11861         false if ! tree_versionable_function_p.
11862
11863 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
11864
11865         * dwarf2out.c (add_data_member_location_attribute): Use
11866         add_AT_unsigned instead of add_AT_int if offset is non-negative.
11867
11868 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
11869
11870         * postreload.c (try_replace_in_use): New static function.
11871         (reload_combine_recognize_const_pattern): Use it here.  Allow
11872         substituting into a final add insn, and substituting into a memory
11873         reference in an insn that sets the reg.
11874
11875 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
11876
11877         * common.opt (o): Add MissingArgError.
11878         * doc/options.texi (MissingArgError): Document.
11879         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
11880         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
11881         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
11882         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
11883         * langhooks.h (struct lang_hooks): Remove missing_argument.
11884         * optc-gen.awk: Handle MissingArgError and output new structure
11885         field initializers.
11886         * opts.c (read_cmdline_option): Use missing_argument_error field
11887         instead of missing_argument langhook.
11888         * opts.h (struct cl_option): Add missing_argument_error field.
11889         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
11890
11891 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
11892
11893         PR target/29090
11894         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
11895         Darwin64 ABI, for zero-sized objects.
11896
11897 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
11898
11899         PR target/35491
11900         PR target/29090
11901
11902         Merge from Apple local 4.2.1.
11903         2005-05-11  Stan Shebs  <shebs@apple.com>
11904         Fix 64-bit varargs for Darwin (Radar 4028089).
11905         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
11906         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
11907         Add argument, add case for 8-byte register half-filled with a float.
11908         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
11909         single-precision floats specially.
11910
11911 2010-07-27  Ira Rosen  <irar@il.ibm.com>
11912
11913         PR tree-optimization/44152
11914         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
11915         complex numbers for further check.
11916         (vect_supported_load_permutation_p): Check nodes with
11917         complex numbers.
11918
11919 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
11920
11921         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
11922         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
11923         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
11924         (LANG_HOOKS_INITIALIZER): Add new hooks.
11925         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
11926         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
11927         and complain_wrong_lang_p.  Update init_options prototype.
11928         * c-objc-common.c (c_initialize_diagnostics): First call
11929         c_common_initialize_diagnostics.
11930         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
11931         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
11932         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
11933         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
11934         (hook_uint_void_0): New.
11935         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
11936         (hook_uint_void_0): New.
11937         * opts-common.c (decode_cmdline_option,
11938         decode_cmdline_options_to_array): Also fill in canonical_option field.
11939         * opts.c (complain_wrong_lang): Use langhook to determine whether
11940         to complain instead of special-casing LTO.
11941         (decode_options): Separate lang_mask determination with
11942         option_lang_mask hook from call of init_options hook.
11943         * opts.h (struct cl_decoded_option): Add canonical_option.
11944
11945 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
11946
11947         PR tree-optimization/45083
11948         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
11949
11950 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
11951
11952         * postreload.c (reload_combine_recognize_const_pattern): Move test
11953         for limiting the insn movement to the right scope.
11954
11955         PR rtl-optimization/45051
11956         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
11957         than reg_mentioned_p.
11958
11959 2010-07-26  Richard Henderson  <rth@redhat.com>
11960
11961         PR target/44132
11962         * tree-emutls.c: New file.
11963         * Makefile.in (OBJS-common): Add it.
11964         * tree-pass.h (pass_ipa_lower_emutls): Declare.
11965         * passes.c (init_optimization_passes): Add it.
11966
11967         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
11968         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
11969         * expr.c (emutls_var_address): Delete.
11970         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
11971         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
11972         (emutls_finish): Delete.
11973         * toplev.c (compile_file): Don't call it.
11974         * tree.h (emutls_decl): Delete.
11975         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
11976         (emutls_finish, emutls_finalize_control_var): Delete.
11977         (emutls_object_type): Move to tree-emutls.c.
11978         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
11979         default_emutls_var_fields, get_emutls_object_type,
11980         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
11981         default_emutls_var_init): Likewise.
11982         (get_variable_section): Don't special case emutls.
11983         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
11984         default_elf_select_section, default_unique_section,
11985         default_encode_section_info): Likewise.
11986         * varpool.c (decide_is_variable_needed): Likewise.
11987         * gimple-iterator.c (update_call_edge_frequencies): New
11988         (gsi_insert_on_edge_immediate): Use it.
11989         (gsi_insert_seq_on_edge_immediate): Likewise.
11990         (gsi_commit_one_edge_insert): Likewise.
11991
11992         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
11993         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
11994         (x86_64_elf_unique_section): Likewise.
11995
11996 2010-07-26  Jan Hubicka  <jh@suse.cz>
11997
11998         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
11999         GTY((skip)).
12000
12001 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
12002
12003         * target.def (output_source_filename): New hook.
12004         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
12005         * doc/tm.texi: Regenerate.
12006         * toplev.c (output_file_directive) Remove function.
12007         * toplev.h (output_file_directive) Remove.
12008         * output.h (default_asm_output_source_filename,
12009         output_file_directive): Declare.
12010         * varasm.h (default_asm_output_source_filename,
12011         output_file_directive): New functions.
12012
12013         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
12014         * config/mips/mips-protos.h (mips_output_filename): Remove.
12015         * config/mips/mips.c (mips_output_filename): Make Static.
12016         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
12017
12018 2010-07-26  Richard Guenther  <rguenther@suse.de>
12019
12020         PR tree-optimization/43784
12021         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
12022         if the destination is used by the call.
12023
12024 2010-07-26  Richard Guenther  <rguenther@suse.de>
12025
12026         PR middle-end/45073
12027         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
12028         SSA updating on being in SSA form.
12029
12030 2010-07-26  Richard Guenther  <rguenther@suse.de>
12031
12032         PR middle-end/45056
12033         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
12034
12035 2010-07-26  Richard Guenther  <rguenther@suse.de>
12036
12037         PR tree-optimization/45071
12038         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
12039         adjust op->opcode.
12040
12041 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
12042
12043         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
12044         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
12045         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
12046         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
12047         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
12048         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
12049         save_r31, return_r31, save_interrupt, return_interrupt,
12050         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
12051         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
12052         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
12053         new ABI requirements.
12054         (save_r6_r9, L_callt_save_r6_r9): Remove.
12055         * config/v850/predicates.md (even_reg_operand, disp23_operand,
12056         const_float_1_operand const_float_0_operand): New Predicates.
12057         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
12058         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
12059         * config/v850/t-v850: Update multilibs for new target variants.
12060         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
12061         * config/v850/t-v850e: Likewise.
12062         * config/v850/v850.c (v850_issue_rate): New.
12063         (v850_strict_argument_naming): New.
12064         (function_arg): Modify to generate a different ABI.
12065         (print_operand): Update case 'z' to support float modes.
12066         (output_move_single): Modify to generate appropriate and better
12067         assembly.
12068         (v850_float_z_comparison_operator, v850_select_cc_mode,
12069         v850_float_nz_comparison_operator,  v850_gen_float_compare,
12070         v850_gen_compare): New functions to support comparison of float values.
12071         (ep_memory_offset): Add support for V850E2 targets.
12072         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
12073         (INTERRUPT_REGPARM_NUM): Remove.
12074         (compute_register_save_size): Add extra case to save/restore long call.
12075         (use_prolog_function): New function to support prologue.
12076         (expand_prologue): Add support for V850E2 targets and modified
12077         as per the current ABI requirements.
12078         (expand_epilogue): Likewise.
12079         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
12080         (construct_save_jarl): Likewise.
12081         (construct_dispose_instruction): Update as per the current ABI
12082         requirements.
12083         (construct_prepare_instruction): Likewise.
12084         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
12085         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
12086         (CPP_SPEC): Updated to support v850e2 targets.
12087         (STRICT_ALIGNMENT): Modified.
12088         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
12089         (FIXED_REGISTERS): Likewise.
12090         (CALL_USED_REGISTERS): Likewise.
12091         (CONDITIONAL_REGISTER_USAGE): Updated.
12092         (HARD_REGNO_MODE_OK): Updated.
12093         (reg_class): Updated to add even registers.
12094         (REG_CLASS_NAMES): Likewise.
12095         (REG_CLASS_CONTENTS): Likewise.
12096         (REGNO_REG_CLASS): Updated for CC registers.
12097         (REG_CLASS_FROM_LETTER): Added support for even registers.
12098         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
12099         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
12100         ARG_POINTER_REGNUM): Updated.
12101         (FUNCTION_ARG_ADVANCE): Define.
12102         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
12103         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
12104         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
12105         (GO_IF_LEGITIMATE_ADDRESS): Updated.
12106         (SELECT_CC_MODE): Define.
12107         (REGISTER_NAMES): Updated to add psw and fcc registers.
12108         (ADDITIONAL_REGISTER_NAMES): Updated.
12109         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
12110         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
12111         * config/v850/v850.md (define_constants): Define new constants.
12112         (type): Update store,bit1,macc,div,fpu and single attributes.
12113         (cpu): New attribute.
12114         (cc): Add set_z attribute.
12115         (unsign23byte_load, sign23byte_load, unsign23hword_load,
12116         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
12117         23word_store): New instructions for 23-bit displacement load and store.
12118         (movqi_internal, movhi_internal): Update the attributes.
12119         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
12120         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
12121         the attributes.
12122         (v850_tst1): Modified using CC_REGNUM.
12123         (tstsi): Remove.
12124         (cmpsi): Modified as define_expand from define_insn.
12125         (cmpsi_insn, cmpsf, cmpdf): New instructions.
12126         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
12127         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
12128         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
12129         one_cmplsi2): Clobber the CC_REGNUM register.
12130         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
12131         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
12132         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
12133         (setf_insn, set_z_insn, set_nz_insn): New instructions for
12134         v850e2v3 target.
12135         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
12136         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
12137         targets.
12138         (sasf_1, sasf_2): Remove.
12139         (sasf): New instruction.
12140         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
12141         targets. CC_REGNUM register is clobbered and attributes are
12142         updated.
12143         (branch_z_normal, branch_z_invert, branch_nz_normal,
12144         branch_nz_invert): New branch related instructions.
12145         (jump): Updated the attributes.
12146         (switch): Update to support new targets. CC_REGNUM register is
12147         clobbered and attributes are updated.
12148         (call_internal_short, call_internal_long, call_value_internal_short,
12149         call_value_internal_long): Updated the attributes.
12150         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
12151         clobbered and attributes are updated.
12152         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
12153         Update to support new targets. CC_REGNUM register is clobbered.
12154         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
12155         instructions.
12156         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
12157         are updated.
12158         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
12159         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
12160         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
12161         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
12162         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
12163         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
12164         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
12165         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
12166         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
12167         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
12168         point instructions defined for V850e2v3 target.
12169         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
12170         Add support for V850E2 targets and CC_REGNUM register is clobbered.
12171         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
12172         support for new targets.
12173         * config/v850/v850-modes.def: New file.
12174         * config/v850/v850.opt(mstrict-align): Remove.
12175         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
12176         mv850e2v3): New command line options for V850.
12177         * config.gcc: Update the newly added files.
12178         * doc/invoke.texi: Update the newly added command line options for
12179         V850 target.
12180
12181 2010-07-26  Richard Guenther  <rguenther@suse.de>
12182
12183         PR tree-optimization/45052
12184         * ipa-pure-const.c (check_stmt): Check volatileness.
12185
12186 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
12187
12188         PR target/44707
12189         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
12190         * config/sparc/sparc.c: Include reload.h.
12191         (legitimize_tls_address): Rename into...
12192         (sparc_legitimize_tls_address): ...this.
12193         (legitimize_pic_address): Rename into...
12194         (sparc_legitimize_pic_address): ...this.
12195         (sparc_expand_move): Adjust to above renaming.
12196         (sparc_tls_referenced_p): Likewise.
12197         (sparc_legitimize_tls_address): Likewise.
12198         (sparc_legitimize_pic_address): Likewise.
12199         (sparc_legitimize_address): Likewise.
12200         (sparc_output_mi_thunk): Likewise.
12201         (sparc_legitimize_reload_address): New global function.  Recognize
12202         (lo_sum (high ...) ...) patterns generated by earlier passes.
12203         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
12204
12205 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
12206
12207         PR target/44484
12208         * config/sparc/predicates.md (memory_reg_operand): Delete.
12209         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
12210         (*sync_compare_and_swap): Encode the address form in the pattern.
12211         (*sync_compare_and_swapdi_v8plus): Likewise.
12212
12213 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
12214
12215         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
12216         Streamline paragraph on compatibility with the system compiler.
12217
12218 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
12219
12220         PR middle-end/45035
12221         * alias.c (true_dependence_1): Fix thinko in merge of old
12222         true_dependence and canon_true_dependence.
12223
12224 2010-07-23  Jan Hubicka  <jh@suse.cz>
12225
12226         * lto-streamer-out.c (write_symbol): Fix visibilities of external
12227         references.
12228
12229 2010-07-23  Le-Chun Wu  <lcwu@google.com>
12230
12231         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
12232         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
12233         and an unnecessary assignment.
12234         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
12235         self-assign warning.
12236         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
12237         unnecessary self-init.
12238
12239 2010-07-23  Richard Guenther  <rguenther@suse.de>
12240
12241         PR lto/43071
12242         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
12243         for -flto and -fwhopr.
12244
12245 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
12246
12247         PR target/41943
12248         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
12249         (stmp-int-hdrs): Prefix/postfix headers by include_next.
12250         * config.gcc (user_headers_inc_next_pre): New.
12251         (user_headers_inc_next_post): Likewise.
12252         (*-w64-mingw*): Use for float.h post-fixing, and for
12253         stddef.h/stdarg.h pre-fixing by include_next.
12254         * configure.ac (user_headers_inc_next_post): New.
12255         (user_headers_inc_next_pre): New.
12256         * configure: Regenerated.
12257
12258 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12259
12260         * configure.ac: Don't disable TLS on Solaris 8/9 by default
12261         Set tga_func for Solaris 2/x86 resp. SPARC.
12262         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
12263         (LIB_THREAD_LDFLAGS_SPEC): Define.
12264         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
12265         * configure: Regenerate.
12266         * config.in: Regenerate.
12267         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
12268         -pthread, -threads, LIB_TLS_SPEC with -pthread.
12269         * doc/install.texi (Specific, *-*-solaris2*): Document use of
12270         alternate thread libraries on Solaris 8.
12271         Document TLS patch requirements.
12272         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
12273         Document tls.
12274
12275         PR target/18788
12276         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
12277         -shared.
12278
12279 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
12280
12281         * tree.h (struct tree_base): Add nameless_flag bitfield.
12282         (TYPE_NAMELESS, DECL_NAMELESS): Define.
12283         * omp-low.c (create_omp_child_function, scan_omp_parallel,
12284         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
12285         DECL_ARTIFICIAL where needed.
12286         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
12287         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
12288         has DECL_NAMELESS set.
12289
12290 2010-07-23  Martin Jambor  <mjambor@suse.cz>
12291
12292         PR tree-optimization/44915
12293         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
12294         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
12295         (analyze_function): Likewise.
12296
12297 2010-07-23  Martin Jambor  <mjambor@suse.cz>
12298
12299         PR tree-optimization/44914
12300         * tree-sra.c (sra_modify_function_body): Return true if CFG was
12301         changed, add purging dead eh edges.
12302         (ipa_sra_modify_function_body): Return true if CFG was changed,
12303         simplify purging dead eh edges.
12304         (modify_function): Return true if CFG was changed.
12305         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
12306         was changed.
12307         (ipa_early_sra): Likewise.
12308
12309 2010-07-23  Jie Zhang  <jie@codesourcery.com>
12310
12311         PR target/44290
12312         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
12313         if "naked".
12314         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
12315         false if ! tree_versionable_function_p.
12316
12317 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
12318
12319         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
12320         * ipa-pure-const.c (special_builtlin_state): Remove
12321         BUILT_IN_ARGS_INFO case.
12322         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
12323         * builtins.c (expand_builtin): Likewise.
12324         (expand_builtin_args_info): Remove.
12325         * doc/tm.texi (__builtin_args_info): Remove.
12326         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
12327         * doc/tm.text.in: Likewise.
12328
12329 2010-07-23  Richard Guenther  <rguenther@suse.de>
12330
12331         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
12332         (lto_symtab_merge_decls_2): Likewise.
12333         * tree-ssa.c (useless_type_conversion_p): Likewise.
12334         * lto-streamer-in.c (input_gimple_stmt): Likewise.
12335         * gimple.c (gtc_visited2, gtc_ob2): Remove.
12336         (struct type_pair_d): Make same_p an array indexed by mode.
12337         Update comment.
12338         (lookup_type_pair): Update initialization.
12339         (struct sccs): Adjust same_p type.
12340         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
12341         Adjust.
12342         (print_gimple_types_stats): Likewise.
12343         * gimple.h (enum gtc_mode): New.
12344         (gimple_types_compatible_p): Adjust prototype.
12345
12346 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
12347
12348         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
12349         again after processing insn.
12350
12351 2010-07-23  Jie Zhang  <jie@codesourcery.com>
12352
12353         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
12354         proper words when !tree_versionable_function_p.
12355
12356 2010-07-23  Richard Guenther  <rguenther@suse.de>
12357
12358         PR tree-optimization/45037
12359         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
12360
12361 2010-07-23  Jie Zhang  <jie@codesourcery.com>
12362
12363         * doc/extend.texi: Remove IP2K from the description of naked attribute.
12364         Add MCORE instead.
12365
12366 2010-07-10  Andi Kleen  <ak@linux.intel.com>
12367
12368         PR lto/44992
12369         * lto-opts.c (lto_write_options): Add NULL file_data argument to
12370         lto_get_section_name.
12371         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
12372         * lto-streamer-out.c (produce_asm): Likewise.
12373         (copy_function): Likewise.
12374         (produce_symtab): Likewise.
12375         (produce_asm_for_decls): Likewise.
12376         * lto-streamer.c (lto_get_section_name): Add file_data argument.
12377         Rewrite to add random postfix to LTO sections.
12378         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
12379         (lto_get_section_name): Add file_data argument to prototype.
12380
12381 2010-07-10  Andi Kleen  <ak@linux.intel.com>
12382
12383         * lto-section-in.c (lto_section_name): Synchronize names
12384         with lto_get_section_name.
12385
12386 2010-07-10  Andi Kleen  <ak@linux.intel.com>
12387
12388         * lto-opts.c (lto_read_file_options): Check for missing section.
12389
12390 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
12391
12392         * ira.c (check_allocation): Correctly handle the case where an allocno
12393         with two objects was allocated to a single reg.
12394
12395 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
12396
12397         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
12398         (is_widening_mult_p): Likewise.
12399         (convert_to_widen): Use them.
12400         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
12401         well as integer ones.
12402
12403 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
12404
12405         * alias.c (true_dependence_1): New function, merged version of
12406         true_dependence and canon_true_dependence.
12407         (true_dependence): Simplify.
12408         (canon_true_dependence): Simplify.
12409
12410 2010-07-22  Richard Henderson  <rth@redhat.com>
12411
12412         PR target/45027
12413         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
12414         of V4SFmode for the SSE saves; increase stack alignment if needed.
12415         (ix86_gimplify_va_arg): Don't increase stack alignment here.
12416
12417 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
12418
12419         PR bootstrap/45028
12420         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
12421         call cprop_find_used_regs again via note_uses.
12422
12423 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
12424
12425         * alias.c (get_alias_set): Fix formatting issues.
12426
12427 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
12428
12429         PR middle-end/44878
12430         * stmt.c (expand_value_return):  Call promote_function_mode with
12431         a for_return argument of 2 when returning by reference.
12432
12433 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
12434
12435         PR debug/45024
12436         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
12437         unit DIE if we can find the scope DIE.
12438
12439 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
12440
12441         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
12442         changed.  Initialize OBJECT_SUBWORD.
12443         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
12444         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
12445         all callers changed.
12446         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
12447         (finish_allocno): Likewise.
12448         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
12449         (remove_low_level_allocnos): Likewise.
12450         (update_bad_spill_attribute): Likewise.
12451         (setup_min_max_allocno_live_range_point): Likewise.
12452         (sort_conflict_id_map): Likewise.
12453         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
12454         (ior_hard_reg_conflicts): New function.
12455         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
12456         (compress_conflict_vecs): Iterate over objects, not allocnos.
12457         (ira_add_live_range_to_object): New function.
12458         (object_range_compare_func): Renamed from allocno_range_compare_func.
12459         All callers changed.
12460         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
12461         subobjects, widen the min/max range of the lowest-order object to
12462         potentially include all other such low-order objects.
12463         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
12464         (check_allocation): Likewise.  Use more fine-grained tests for register
12465         conflicts.
12466         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
12467         allocno subobjects.
12468         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
12469         choices about which bits to set in each set.  Don't use
12470         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
12471         using the multiple sets we computed.
12472         (push_allocno_to_stack): Iterate over allocno subobjects.
12473         (all_conflicting_hard_regs_coalesced): New static function.
12474         (setup_allocno_available_regs_num): Use it.
12475         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
12476         subobjects.
12477         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
12478         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
12479         by ALLOCNO_NUM_OBJECTS.
12480         (calculate_spill_cost): Likewise.
12481         (color_pass): Express if statement in a more normal way.
12482         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
12483         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
12484         (setup_slot_coalesced_allocno_live_ranges): Likewise.
12485         (allocno_reload_assign): Likewise.
12486         (ira_reassign_pseudos): Likewise.
12487         (fast_allocation): Likewise.
12488         * ira-conflicts.c (build_conflict_bit_table): Likewise.
12489         (print_allocno_conflicts): Likewise.
12490         (ira_build_conflicts): Likewise.
12491         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
12492         callers changed.  Test subword 0 of each allocno for conflicts.
12493         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
12494         callers changed.  Iterate over allocno subobjects.
12495         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
12496         * ira-int.h (struct ira_allocno): New member: num_objects.
12497         Rename object to objects and change it into an array.
12498         (ALLOCNO_OBJECT): Add new argument N.
12499         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
12500         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
12501         (ior_hard_reg_conflicts): Declare.
12502         (ira_add_live_range_to_object): Declare.
12503         (ira_allocno_object_iterator): New.
12504         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
12505         (FOR_EACH_ALLOCNO_OBJECT): New macro.
12506         * ira-lives.c (objects_live): Renamed from allocnos_live; all
12507         uses changed.
12508         (allocnos_processed): New sparseset.
12509         (make_object_born): Renamed from make_allocno_born; take an
12510         ira_object_t argument.  All callers changed.
12511         (make_object_dead): Renamed from make_allocno_dead; take an
12512         ira_object_t argument.  All callers changed.
12513         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
12514         All callers changed.
12515         (mark_pseudo_regno_live): Iterate over allocno subobjects.
12516         (mark_pseudo_regno_dead): Likewise.
12517         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
12518         functions.
12519         (mark_ref_live): Detect subword accesses and call
12520         mark_pseudo_regno_subword_live as appropriate.
12521         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
12522         (process_bb_nodes_live): Deal with object-related updates first; set
12523         and test bits in allocnos_processed to avoid computing allocno
12524         statistics more than once.
12525         (create_start_finish_chains): Iterate over objects, not allocnos.
12526         (print_object_live_ranges): New function.
12527         (print_allocno_live_ranges): Use it.
12528         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
12529         and objects_live.
12530
12531 2010-07-22  Richard Guenther  <rguenther@suse.de>
12532
12533         PR lto/42451
12534         * gimple.c (gtc_next_dfs_num): New global.
12535         (struct sccs): Make value a union, add integer same_p member.
12536         (gtc_visit): New function.
12537         (gimple_types_compatible_p_1): New function, split out from ...
12538         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
12539         (iterative_hash_gimple_type): Adjust for sccs change.
12540
12541 2010-07-22  Martin Jambor  <mjambor@suse.cz>
12542
12543         PR tree-optimization/44891
12544         * tree-sra.c: Include gimple-pretty-print.h.
12545         (replace_uses_with_default_def_ssa_name): Renamed to
12546         get_repl_default_def_ssa_name, return the new SSA name instead of
12547         replacing the old one.
12548         (sra_modify_assign): Dump a message when removing a load, if the LHS
12549         is an SSA_NAME, do not do any propagation, just set the RHS to a
12550         default definition SSA NAME, type convert if necessary.
12551         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
12552
12553 2010-07-22  Richard Guenther  <rguenther@suse.de>
12554
12555         PR tree-optimization/45017
12556         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
12557         TYPE_PRECISION of integral types in addition to size.
12558
12559 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
12560
12561         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
12562         when no C library is specified.
12563
12564 2010-07-22  Martin Jambor  <mjambor@suse.cz>
12565
12566         * ipa-prop.h (struct ipa_node_params): Updated comment.
12567         (struct ipa_edge_args): Likewise.
12568         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
12569
12570 2010-07-22  Martin Jambor  <mjambor@suse.cz>
12571
12572         * cgraphunit.c (verify_edge_count_and_frequency): New function.
12573         (verify_cgraph_node): Verify frequencies of indirect edges.
12574         * tree-inline.c (tree_function_versioning): Update frequencies of
12575         indirect edges.
12576
12577 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12578
12579         PR target/43698
12580         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
12581         Set *arm_rev to be predicable.
12582
12583 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
12584
12585         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
12586         (LINK_COMMAND_SPEC_A): New.
12587         (DSYMUTIL): New.
12588         (DSYMUTIL_SPEC): New.
12589         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
12590         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
12591
12592 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
12593
12594         * calls.c (load_register_parameters): Move check for zero
12595         sized items so that only the call to
12596         mem_overlaps_already_clobbered_arg_p () is protected.
12597
12598 2010-07-22  Jan Hubicka  <jh@suse.cz>
12599
12600         * ipa-pure-const.c (varying_state): Break out from ...
12601         (get_function_state): ... here; always return varying_state
12602         when state would be NULL otherwise.
12603         (remove_node_data): Do not free varying state.
12604
12605 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
12606
12607         PR bootstrap/44970
12608         PR middle-end/45009
12609         * postreload.c: Include "target.h".
12610         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
12611         into account.
12612         (fixup_debug_insns): Don't copy the rtx.
12613         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
12614         Don't copy when replacing.  Call fixup_debug_insns in the case where
12615         we merged one add with another.
12616         (reload_combine_recognize_pattern): Fail if there aren't any uses.
12617         Try harder to determine whether we're picking a valid index register.
12618         Don't set store_ruid for an insn we're going to scan in the
12619         next iteration.
12620         (reload_combine): Remove unused code.
12621         (reload_combine_note_use): When updating use information for
12622         an old insn, ignore a use that occurs after store_ruid.
12623         * Makefile.in (postreload.o): Update dependencies.
12624
12625         * function.c (record_hard_reg_sets): Restrict the previous change
12626         to cases where the incoming nominal mode is the same as the
12627         incoming promoted mode and everything happens in MODE_INT.
12628
12629 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
12630
12631         PR debug/45015
12632         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
12633         ASM_OPERANDS_OUTPUT_IDX.
12634         (adjust_insn): For inline asm with multiple sets ensure first
12635         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
12636         the insn.
12637
12638 2010-07-21  Richard Henderson  <rth@redhat.com>
12639
12640         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
12641         comparison for avoiding xmm register saves.  Emit the xmm register
12642         saves explicitly.
12643         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
12644         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
12645         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
12646         Remove patterns and the associated splitters.
12647
12648 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
12649
12650         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
12651         and imagine parts of a complex, so that they can have the same
12652         base and fall into the same group.
12653
12654 2010-07-21  Richard Guenther  <rguenther@suse.de>
12655
12656         PR lto/45018
12657         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
12658         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
12659         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
12660
12661 2010-07-21  Martin Jambor  <mjambor@suse.cz>
12662
12663         PR tree-optimization/44900
12664         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
12665         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
12666
12667 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
12668
12669         PR middle-end/44738
12670         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
12671
12672 2010-07-21  Richard Guenther  <rguenther@suse.de>
12673
12674         PR middle-end/45013
12675         * tree-ssa.c (useless_type_conversion_p): Dispatch to
12676         gimple_types_compatible_p only when in lto.
12677         * gimple.c (gimple_types_compatible_p): Use canonical types
12678         to speed up comparison.
12679
12680 2010-07-21  Richard Guenther  <rguenther@suse.de>
12681
12682         * tree-flow.h (referenced_var): Move define ...
12683         * tree-flow-inline.h (referenced_var): ... here as an inline
12684         function.  Assert here ...
12685         * tree-dfa.c (referenced_var_lookup): ... instead of here.
12686         * tree-ssa.c (maybe_optimize_var): Check if the variable
12687         is in referenced vars.
12688         (execute_update_addresses_taken): Remove old broken check.
12689         * gimple-pretty-print.c (pp_points_to_solution): Use
12690         referenced_var_lookup.
12691         * tree-into-ssa.c (dump_decl_set): Likewise.
12692
12693 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
12694
12695         PR debug/45003
12696         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
12697         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
12698         ZERO_EXTEND here.
12699
12700 2010-07-20  Richard Henderson  <rth@redhat.com>
12701
12702         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
12703
12704 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
12705
12706         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
12707         computing the sum of the stack pointer and a large constant.
12708         * config/arm/constraints.md (M): Remove superfluous parentheses.
12709         (Pc): New constraint.
12710
12711 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
12712
12713         PR debug/45006
12714         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
12715         operand's type if exp is tcc_unary class tree.
12716
12717 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
12718
12719         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
12720         Reverse sense of if_then_else condition.
12721
12722 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
12723
12724         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
12725         * config/rs6000/rs6000.c (rs6000_override_options): Set
12726         rs6000_block_move_inline_limit appropriately.
12727         (expand_block_move): Use rs6000_block_move_inline_limit.
12728         * doc/invoke.texi (mblock-move-inline-limit): Document.
12729
12730 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
12731
12732         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
12733         FROM and TO.  All callers changed.  Don't look for tracked uses,
12734         just scan the RTL for DEBUG_INSNs and substitute.
12735         (reload_combine_recognize_pattern): Call fixup_debug_insns.
12736         (reload_combine): Ignore DEBUG_INSNs.
12737
12738 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
12739
12740         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
12741         depth to 8 from 5.
12742
12743         PR debug/45003
12744         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
12745         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
12746         instead of the result's type.
12747
12748 2010-07-20  Richard Guenther  <rguenther@suse.de>
12749
12750         PR tree-optimization/44977
12751         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
12752         SSA form.
12753
12754 2010-07-20  Richard Guenther  <rguenther@suse.de>
12755
12756         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
12757         (lto_symtab_merge_decls_2): Likewise.
12758         * gimple.h (gimple_types_compatible_p): Declare.
12759         * gimple.c (gimple_queue_type_fixup): Remove.
12760         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
12761         (gimple_compatible_complete_and_incomplete_type_p): New function.
12762         (gimple_types_compatible_p): Adjust.
12763         (gimple_register_type): Remove type fixup code.
12764         (print_gimple_types_stats): Adjust.
12765         (free_gimple_type_tables): Likewise.
12766         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
12767         * tree-ssa.c (useless_type_conversion_p): Likewise.
12768
12769 2010-07-20  Richard Guenther  <rguenther@suse.de>
12770
12771         PR middle-end/44971
12772         PR middle-end/44988
12773         * tree-ssa.c (maybe_optimize_var): New function split out from ...
12774         (execute_update_addresses_taken): ... here.
12775         (non_rewritable_mem_ref_base): Likewise.
12776         (execute_update_addresses_taken): Do not iterate over all referenced
12777         vars but just all local decls and parms.
12778         Properly check call and asm arguments and rewrite call arguments.
12779
12780 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
12781
12782         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
12783         to top level.
12784         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
12785         definitions ...
12786         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
12787         New macro.
12788         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
12789
12790 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
12791
12792         * gengtype.c (start_root_entry): New function, split out from
12793         write_root.  Check whether V is null and raise an error if so.
12794         (write_field_root): Check for V being null.  Don't raise an error here;
12795         set V to null instead.
12796         (write_root): Update comment above function.  Use start_root_entry.
12797
12798 2010-07-19  Xinliang David Li  <davidxl@google.com>
12799
12800         PR testsuite/44932
12801         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
12802         def edges.
12803         (find_uninit_use): Add dump.
12804         (is_use_properly_guarded): Ditto.
12805         (warn_uninitialized_phi): Ditto.
12806         (execute_late_warn_uninitialized): Ditto.
12807
12808 2010-07-19  Richard Guenther  <rguenther@suse.de>
12809
12810         PR middle-end/44941
12811         * expr.c (emit_block_move_hints): Move zero size check first.
12812         Move asserts to more useful places.
12813         * calls.c (load_register_parameters): Check for zero size.
12814
12815 2010-07-19  Richard Henderson  <rth@redhat.com>
12816
12817         * tree-optimize.c (execute_all_early_local_passes): New.  Change
12818         cgraph_state here ...
12819         (execute_early_local_optimizations): ... not here.  Remove.
12820         (pass_early_local_passes, pass_all_early_optimizations): Update.
12821
12822 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
12823
12824         * postreload.c (reload_combine_closest_single_use): Ignore the
12825         number of uses for DEBUG_INSNs.
12826         (fixup_debug_insns): New static function.
12827         (reload_combine_recognize_const_pattern): Use it.  Don't let the
12828         main loop be affected by DEBUG_INSNs.
12829         Really disallow moving adds past a jump insn.
12830         (reload_combine_recognize_pattern): Don't update use_ruid here.
12831         (reload_combine_note_use): Do it here.
12832         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
12833
12834 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
12835
12836         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
12837         of a loop.
12838         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
12839
12840 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
12841
12842         * config/i386/darwin.h: Define darwin_emit_branch_islands.
12843         (TARGET_MACHO_BRANCH_ISLANDS): New.
12844         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
12845         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
12846         default value.
12847         * config/i386/i386.c (output_pic_addr_const): Do not emit
12848         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
12849         (x86_output_mi_thunk): Adjust symbol creation.
12850         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
12851         Remove out of date comment.
12852         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
12853         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
12854         (DARWIN_GENERATE_ISLANDS): Ditto.
12855         (output_call):  Do not emit branch islands unless
12856         darwin_emit_branch_islands is set.
12857         * config/darwin.c: Declare darwin_emit_branch_islands.
12858         (machopic_indirect_data_reference): Do not emit unless
12859         darwin_emit_branch_islands is set.
12860         (darwin_override_options): Set darwin_emit_branch_islands
12861         where it is needed.
12862         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
12863
12864 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12865
12866         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12867         sse_runtime, sse2_runtime.
12868
12869 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
12870
12871         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
12872         low half of a single-register SCmode return value before ORing
12873         it with the high half.
12874         * config/mips/mips16.S (MERGE_GPRf): Likewise.
12875
12876 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12877
12878         PR target/44805
12879         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
12880         on all targets.
12881
12882 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
12883
12884         PR target/42235
12885         * postreload.c (reload_cse_move2add): Return bool, true if anything.
12886         changed.  All callers changed.
12887         (move2add_use_add2_insn): Likewise.
12888         (move2add_use_add3_insn): Likewise.
12889         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
12890         reload_combine.
12891         (RELOAD_COMBINE_MAX_USES): Bump to 16.
12892         (last_jump_ruid): New static variable.
12893         (struct reg_use): New members CONTAINING_MEM and RUID.
12894         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
12895         (reload_combine_split_one_ruid, reload_combine_split_ruids,
12896         reload_combine_purge_insn_uses, reload_combine_closest_single_use
12897         reload_combine_purge_reg_uses_after_ruid,
12898         reload_combine_recognize_const_pattern): New static functions.
12899         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
12900         is true for our reg and that we have available index regs.
12901         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
12902         callers changed.  Use them to initialize fields in struct reg_use.
12903         (reload_combine): Initialize last_jump_ruid.  Be careful when to
12904         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
12905         Call reload_combine_recognize_const_pattern.
12906         (reload_combine_note_store): Update REAL_STORE_RUID field.
12907
12908 2010-07-16  Jason Merrill  <jason@redhat.com>
12909
12910         * Makefile.in (opts-common.o): Depend on options.h.
12911
12912 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
12913
12914         * tree.c (build_common_builtin_nodes): Use build_function_type_list
12915         instead of build_function_type.
12916         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
12917         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
12918
12919 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
12920
12921         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
12922         do all the work.
12923         (rs6000_emit_int_cmove): Use function pointers for insn generation.
12924         Don't force values into registers unnecessarily.
12925         (output_isel): Assert that we're not given conditions we can't handle.
12926         Delete corresponding code.
12927         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
12928         scc_comparison_operator constraint.  Permit 0 for the consequent
12929         operand.  Permit any GPR for the alternative operand.
12930         (isel_unsigned_<mode>): Likewise.
12931
12932 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
12933
12934         PR target/44942
12935         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
12936         argument to const_tree.
12937         * config/i386/i386.c (function_arg_advance): If padding needs to be
12938         inserted before argument, increment cum->words by number of padding
12939         words as well.
12940         (contains_aligned_value_p): Change argument to const_tree.
12941         (ix86_function_arg_boundary): Change second argument to const_tree.
12942
12943 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
12944
12945         PR target/42235
12946         * function.c (record_hard_reg_sets): New static function.
12947         (assign_parm_setup_reg): If an optab for extending exists and the
12948         generated code clobbbers no hard regs, emit the insn directly and
12949         create a REG_EQUIV note.
12950
12951 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
12952
12953         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
12954         TREE_CHAIN.
12955         * c-typeck.c (push_init_level): Likewise.
12956         (process_init_element): Likewise.
12957
12958 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
12959
12960         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
12961         (integer_three_node): Add.
12962         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
12963         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
12964         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
12965         of call build_int_cst.
12966         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
12967         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
12968         (find_interesting_uses_address): Ditto.
12969         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
12970         * tree-eh.c (lower_eh_constructs_2): Ditto.
12971         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
12972         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
12973         * expmed.c (expand_divmod): Ditto.
12974         * tree-mudflap.c (mx_register_decls): Ditto.
12975         * varasm.c (array_size_for_constructor): Ditto.
12976         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
12977         * c-parser.c (c_parser_postfix_expression): Ditto.
12978
12979 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
12980
12981         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
12982         New static variables.
12983         (reload_combine_recognize_pattern): New static function, broken out
12984         of reload_combine.
12985         (reload_combine): Use it.  Only initialize first_index_reg and
12986         last_index_reg once.
12987
12988 2010-07-15  Richard Henderson  <rth@redhat.com>
12989
12990         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
12991         when done.
12992
12993 2010-07-15  Jan Hubicka  <jh@suse.cz>
12994
12995         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
12996         comdats for broken gold.
12997         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
12998
12999 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
13000
13001         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
13002
13003 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
13004
13005         * tree.h (DECL_CHAIN): Define.
13006         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
13007         * c-decl.c: Likewise.
13008         * c-parser.c: Likewise.
13009         * c-typeck.c: Likewise.
13010         * cfgexpand.c: Likewise.
13011         * cgraph.c: Likewise.
13012         * cgraphunit.c: Likewise.
13013         * combine.c: Likewise.
13014         * config/alpha/alpha.c: Likewise.
13015         * config/arm/arm.c: Likewise.
13016         * config/frv/frv.c: Likewise.
13017         * config/i386/i386.c: Likewise.
13018         * config/i386/winnt-cxx.c: Likewise.
13019         * config/ia64/ia64.c: Likewise.
13020         * config/iq2000/iq2000.c: Likewise.
13021         * config/mep/mep.c: Likewise.
13022         * config/mips/mips.c: Likewise.
13023         * config/pa/som.h: Likewise.
13024         * config/rs6000/rs6000.c: Likewise.
13025         * config/s390/s390.c: Likewise.
13026         * config/sh/sh.c: Likewise.
13027         * config/sh/symbian-cxx.c: Likewise.
13028         * config/sparc/sparc.c: Likewise.
13029         * config/spu/spu.c: Likewise.
13030         * config/stormy16/stormy16.c: Likewise.
13031         * config/vxworks.c: Likewise.
13032         * config/xtensa/xtensa.c: Likewise.
13033         * coverage.c: Likewise.
13034         * dbxout.c: Likewise.
13035         * dwarf2out.c: Likewise.
13036         * emit-rtl.c: Likewise.
13037         * expr.c: Likewise.
13038         * function.c: Likewise.
13039         * gimple-low.c: Likewise.
13040         * gimple-pretty-print.c: Likewise.
13041         * gimplify.c: Likewise.
13042         * integrate.c: Likewise.
13043         * ipa-inline.c: Likewise.
13044         * ipa-prop.c: Likewise.
13045         * ipa-split.c: Likewise.
13046         * ipa-struct-reorg.c: Likewise.
13047         * ipa-type-escape.c: Likewise.
13048         * langhooks.c: Likewise.
13049         * lto-cgraph.c: Likewise.
13050         * omp-low.c: Likewise.
13051         * stor-layout.c: Likewise.
13052         * tree-cfg.c: Likewise.
13053         * tree-complex.c: Likewise.
13054         * tree-dfa.c: Likewise.
13055         * tree-dump.c: Likewise.
13056         * tree-inline.c: Likewise.
13057         * tree-mudflap.c: Likewise.
13058         * tree-nested.c: Likewise.
13059         * tree-object-size.c: Likewise.
13060         * tree-pretty-print.c: Likewise.
13061         * tree-sra.c: Likewise.
13062         * tree-ssa-live.c: Likewise.
13063         * tree-ssa-loop-niter.c: Likewise.
13064         * tree-ssa-math-opts.c: Likewise.
13065         * tree-ssa-reassoc.c: Likewise.
13066         * tree-ssa-sccvn.c: Likewise.
13067         * tree-ssa-structalias.c: Likewise.
13068         * tree-tailcall.c: Likewise.
13069         * tree-vrp.c: Likewise.
13070         * tree.c: Likewise.
13071         * var-tracking.c: Likewise.
13072         * varasm.c: Likewise.
13073
13074 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13075
13076         PR target/44877
13077         * config/spu/spu.c (spu_expand_builtin_1): Allow references
13078         (as well as pointers) as argument to mask_for_load builtins.
13079
13080 2010-07-15  Richard Guenther  <rguenther@suse.de>
13081
13082         PR tree-optimization/44946
13083         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
13084         with accessing only padding properly.
13085
13086 2010-07-15  Jan Hubicka  <jh@suse.cz>
13087
13088         * ipa.c (function_and_variable_visibility): Variables marked as used
13089         should not be localized.
13090
13091 2010-07-15  Jan Hubicka  <jh@suse.cz>
13092
13093         * cgraph.c: Include lto-streamer.h
13094         (change_decl_assembler_name): Work when assembler name hash is at place.
13095         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
13096         be sure to rename it to avoid name clash.
13097         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
13098         Localize hidden symbols only when locally defined.
13099
13100 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
13101
13102         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
13103
13104 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
13105             Kevin F. Quinn  <kevquinn@gentoo.org>
13106
13107         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
13108         * common.opt: Add -Wtrampolines.
13109         * doc/invoke.texi: Add -Wtrampolines.
13110
13111 2010-07-15  Jie Zhang  <jie@codesourcery.com>
13112
13113         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
13114         cortex_a8_issue_ls.
13115
13116 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
13117
13118         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
13119         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
13120
13121 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13122
13123         * config/spu/spu.c (reg_names): Remove prototype.
13124         (call_used_regs): Likewise.
13125
13126 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
13127
13128         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
13129         "unused" with attribute "used".
13130         (__JCR_END__): Likewise.
13131         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
13132         "used" attribute.
13133         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
13134
13135 2010-07-14  Richard Guenther  <rguenther@suse.de>
13136
13137         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
13138         (maybe_fixup_decls): Likewise.
13139         (input_gimple_stmt): Do not fixup anything.
13140         * lto-streamer-out.c (output_gimple_stmt): Make sure all
13141         non-automatic variable uses are wrapped inside a MEM_REF.
13142
13143 2010-07-14  Richard Henderson  <rth@redhat.com>
13144
13145         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
13146         for functions.
13147         * varasm.c (assemble_variable): Remove early exit for functions;
13148         assert that we're given a variable.
13149
13150 2010-07-14  Jie Zhang  <jie@codesourcery.com>
13151
13152         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
13153         cortex_a8_default when neon_type is not none.
13154
13155 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
13156
13157         * lower-subreg.c (subreg_context): New static bitmap.
13158         (decompose_multiword_subregs): Allocate and free it.
13159         (find_decomposable_subregs): Set a bit in it for a register that
13160         occurs in a subreg that changes mode but not size.
13161         (can_decompose_p): Test it instead of non_decomposable_context.
13162
13163 2010-07-14  Richard Guenther  <rguenther@suse.de>
13164
13165         PR tree-optimization/44824
13166         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
13167         is_gimple_mem_ref_addr.
13168         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
13169         non-decl_address_invariant_p addresses.
13170
13171 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
13172
13173         * reload.c (find_reloads): Revert code to penalize small register
13174         classes that was brought in with the IRA merge.
13175
13176 2010-07-14  Richard Guenther  <rguenther@suse.de>
13177
13178         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
13179         as base of ARRAY_REFs.
13180
13181 2010-07-14  Richard Guenther  <rguenther@suse.de>
13182
13183         PR middle-end/44930
13184         * tree-pretty-print.c (do_niy): Do not print a newline.
13185
13186 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
13187
13188         * ira-int.h (struct ira_object): New.
13189         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
13190         (struct ira_allocno): Remove members min, max,
13191         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
13192         conflict_allocnos_num and conflict_vec_p.  Add new member object.
13193         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
13194         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
13195         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
13196         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
13197         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
13198         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
13199         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
13200         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
13201         an ira_object_t rather than ira_allocno_t.  All uses changed.
13202         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
13203         contains a vector of ira_object_t; all uses changed.
13204         (ira_objects_num): Declare variable.
13205         (ira_create_allocno_object): Declare function.
13206         (ira_conflict_vector_profitable_p): Adjust prototype.
13207         (ira_allocate_conflict_vec): Renamed from
13208         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
13209         (ira_allocate_object_conflicts): Renamed from
13210         ira_allocate_allocno_conflicts; first arg now ira_object_t.
13211         (struct ira_object_iterator): New.
13212         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
13213         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
13214         to conflict_vec_p.  All uses changed.
13215         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
13216         Changed to take into account that conflicts are now tracked for
13217         objects.
13218         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
13219         Args changed to accept ira_object_t.  All uses changed.
13220         (allocnos_conflict_p): New static function.
13221         (collected_conflict_objects): Renamed from collected_allocno_objects;
13222         now a vector of ira_object_t.  All uses changed.
13223         (build_conflict_bit_table): Changed to take into account that
13224         conflicts are now tracked for objects.
13225         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
13226         (print_allocno_conflicts, ira_build_conflicts): Likewise.
13227         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
13228         setup_allocno_left_conflicts_size, allocno_reload_assign,
13229         fast_allocation): Likewise.
13230         * ira-lives.c (make_hard_regno_born, make_allocno_born)
13231         process_single_reg_class_operands, process_bb_node_lives): Likewise.
13232         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
13233         Likewise.
13234         * ira-build.c (ira_objects_num): New variable.
13235         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
13236         contains a vector of ira_object_t; all uses changed.
13237         (ira_object_id_map_vec): Corresponding change.
13238         (object_pool): New static variable.
13239         (initiate_allocnos): Initialize it.
13240         (finish_allocnos): Free it.
13241         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
13242         New functions.
13243         (ira_create_allocno): Don't set members that were removed.
13244         (ira_set_allocno_cover_class): Don't change conflict hard regs.
13245         (merge_hard_reg_conflicts): Changed to take into account that
13246         conflicts are now tracked for objects.
13247         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
13248         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
13249         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
13250         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
13251         setup_min_max_conflict_allocno_ids, ):  Likewise.
13252         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
13253         to ira_object_t; all callers changed.
13254         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
13255         to ira_object_t, all callers changed.
13256         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
13257         to ira_object_t, all callers changed.
13258         (conflict_check, curr_conflict_check_tick): Renamed from
13259         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
13260         changed.
13261         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
13262         arg changed to ira_object_t, all callers changed.
13263         (create_cap_allocno): Call ira_create_allocno_object.
13264         (finish_allocno): Free the corresponding object.
13265         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
13266         callers changed.  Adjusted for dealing with objects.
13267         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
13268         dealing with objects.
13269         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
13270
13271         * ira-int.h (struct live_range): Rename allocno member to object
13272         and change type to ira_object_t.
13273         (struct ira_object): New member live_ranges.
13274         (struct ira_allocno): Remove member live_ranges.
13275         (ALLOCNO_LIVE_RANGES): Remove.
13276         (OBJECT_LIVE_RANGES): New macro.
13277         (ira_create_live_range, ira_copy_live_range_list,
13278         ira_merge_live_range_list, ira_live_ranges_intersect_p,
13279         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
13280         * ira-build.c (ira_create_object): Initialize live ranges here.
13281         (ira_create_allocno): Not here.
13282         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
13283         changed to ira_object_t, all callers changed.
13284         (copy_live_range): Rename from copy_allocno_live_range, all callers
13285         changed.
13286         (ira_copy_live_range_list): Rename from
13287         ira_copy_allocno_live_range_list, all callers changed.
13288         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
13289         all callers changed.
13290         (ira_live_ranges_intersect_p): Rename from
13291         ira_allocno_live_ranges_intersect_p, all callers changed.
13292         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
13293         callers changed.
13294         (ira_finish_live_range_list): Rename from
13295         ira_finish_allocno_live_range_list, all callers changed.
13296         (change_object_in_range_list): Rename from change_allocno_in_range_list,
13297         last arg changed to ira_object_t, all callers changed.
13298         (finish_allocno): Changed to expect live ranges in the allocno's object.
13299         (move_allocno_live_ranges, copy_allocno_live_ranges,
13300         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
13301         ira_flattening, ira_build): Likewise.
13302         * ira-color.c (allocnos_have_intersected_live_ranges_p,
13303         slot_coalesced_allocno_live_ranges_intersect,
13304         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
13305         * ira-conflicts.c (build_conflict_bit_table): Likewise.
13306         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
13307         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
13308         make_allocno_dead, create_start_finish_chains,
13309         remove_some_program_points_and_update_live_ranges,
13310         ira_debug_live_range_list): Likewise.
13311
13312         * ira-int.h (ira_object_conflict_iterator): Rename from
13313         ira_allocno_conflict_iterator.
13314         (ira_object_conflict_iter_init): Rename from
13315         ira_allocno_conflict_iter_init, second arg changed to
13316         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
13317         FOR_EACH_ALLOCNO_CONFLICT.
13318         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
13319         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
13320         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
13321         * ira-conflicts.c (print_allocno_conflicts): Likewise.
13322
13323 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
13324
13325         PR other/44874
13326         * tree-dump.c (dump_options): Add enumerate_locals entry.
13327         Add TDF_NOID exclusion to all entry.
13328         * tree-dump.h (dump_enumerated_decls): Declare.
13329         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
13330         Don't display type uid.
13331         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
13332         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
13333         * tree-ssa-live.c: Include gimple.h.
13334         (numbered_tree_d): New struct.
13335         (numbered_tree): New typedef.
13336         (DEF_VEC_O (numbered_tree): New.
13337         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
13338         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
13339         (dump_enumerated_decls): Likewise.
13340         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
13341         debug info and flag_dump_final_insns, call dump_enumerated_decls.
13342         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
13343         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
13344
13345 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
13346
13347         * expmed.h (MAX_BITS_PER_WORD): Move to...
13348         * defaults.h (MAX_BITS_PER_WORD): ...here.
13349
13350 2010-07-13  DJ Delorie  <dj@redhat.com>
13351
13352         * config/h8300/h8300.c (h8300_init_once): Default to
13353         -fstrict_volatile_bitfields.
13354
13355         * config/sh/sh.c (sh_override_options): Default to
13356         -fstrict_volatile_bitfields.
13357
13358         * config/rx/rx.c (rx_option_override): New.
13359
13360         * config/m32c/m32c.c (m32c_override_options): Default to
13361         -fstrict_volatile_bitfields.
13362
13363 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
13364
13365         * tree.h (build_function_call_expr): Delete.
13366         (build_call_expr_loc_array): New function.
13367         (build_call_expr_loc_vec): New function.
13368         * tree-flow.h (struct omp_region): Change type of ws_args field
13369         to a VEC.
13370         * builtins.c (build_function_call_expr): Delete.
13371         (build_call_expr_loc_array): New function.
13372         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
13373         (build_call_expr): Likewise.
13374         (build_call_expr_loc_vec): New function.
13375         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
13376         build_function_call_expr.
13377         * expr.c (emutls_var_address): Likewise.
13378         * varasm.c (emutls_common_1): Likewise.
13379         * omp-low.c (expand_omp_atomic_mutex): Likewise.
13380         (expand_omp_taskreg): Adjust for new type of region->ws_args.
13381         (get_ws_args_for): Return a VEC instead of a tree.
13382         (expand_parallel_call): Call build_call_expr_loc_vec instead of
13383         build_function_call_expr.
13384         * stor-layout.c (self_referential_size): Likewise.
13385
13386 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
13387
13388         PR testsuite/44701
13389         * recog.c (constrain_operands): Allow side-effects in memory
13390         operands if either < or > constraint is used, rather than if
13391         both < and > is used.
13392
13393 2010-07-13  Richard Guenther  <rguenther@suse.de>
13394
13395         PR middle-end/44911
13396         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
13397         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
13398         without name.
13399
13400 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
13401
13402         PR target/44761
13403         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
13404         to variable emited.
13405         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
13406         * config/sh/sh.md (symGOT_load): Likewise.
13407         (symDTPOFF2reg): Likewise.
13408         (symTPOFF2reg): Likewise.
13409
13410 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13411
13412         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
13413         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
13414
13415 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13416
13417         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
13418         explanation.
13419         Find ucontext_t * on Solaris 11.
13420         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
13421         Handle new Solaris 11 __sighndlr patterns.
13422
13423 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
13424
13425         PR debug/44901
13426         * vec.h (VEC_block_remove): Fix comment.
13427         * tree-ssa-live.c (remove_unused_locals): Don't use
13428         VEC_unordered_remove on local_decls, instead replace a single
13429         vector element in each iteration if at least one element had
13430         to be removed and VEC_truncate at the end.
13431         * omp-low.c (expand_omp_taskreg): Likewise.
13432
13433 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13434
13435         * c-decl.c (finish_function): Fix typo in comment.
13436
13437 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
13438
13439         PR bootstrap/44921
13440         * postreload.c (move2add_use_add3_insn): Silence gcc warning
13441         on min_regno.
13442
13443 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
13444
13445         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
13446         (simplify_stmt_using_ranges): Use it.
13447
13448 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13449
13450         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
13451         member.  Do not mark as GTY(()).
13452         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
13453         (spu_builtin_decls): New static variable.
13454         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
13455         (spu_init_builtins): Likewise.
13456         (spu_builtin_mul_widen_even): Likewise.
13457         (spu_builtin_mul_widen_odd): Likewise.
13458         (spu_builtin_mask_for_load): Likewise.
13459         (spu_builtin_vec_perm): Likewise.
13460         * config/spu/spu-c.c: Include "target.h".
13461         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
13462         of using spu_builtins[].fndecl.
13463
13464 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13465
13466         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
13467         imply -minterlink-mips16.
13468
13469 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13470
13471         * config/mips/mips.h (mips16_globals): Declare.
13472         (SWITCHABLE_TARGET): Define.
13473         * config/mips/mips.c: Include target-globals.h.
13474         (mips16_globals): New variable.
13475         (mips_set_mips16_mode): Use save_target_globals and
13476         restore_target_globals instead of target_reinit.
13477
13478 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13479
13480         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
13481         to say that the function can be called more than once.
13482         * target-globals.c (save_target_globals): Call init_reg_sets.
13483
13484 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13485
13486         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
13487         * bb-reorder.h: New file.
13488         * bb-reorder.c (default_target_bb_reorder): New variable.
13489         (this_target_bb_reorder): New conditional variable.
13490         (uncond_jump_length): Redefine as a macro.
13491         * target-globals.h (this_target_bb_reorder): Declare.
13492         (target_globals): Add a bb_reorder field.
13493         (restore_target_globals): Copy the bb_reorder field to
13494         this_target_bb-reorder.
13495         * target-globals.c: Include bb-reorder.h.
13496         (default_target_globals): Initialize the bb_reorder field.
13497         (save_target_globals): Likewise.
13498
13499 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13500
13501         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
13502         * gcse.h: New file.
13503         * gcse.c: Include gcse.h.
13504         (default_target_gcse): New variable.
13505         (this_target_gcse): New conditional variable.
13506         (can_copy): Redefine as a macro.
13507         (can_copy_init_p): New macro.
13508         (can_copy_p): Remove can_copy_init_p.
13509         * target-globals.h (this_target_gcse): Declare.
13510         (target_globals): Add a gcse field.
13511         (restore_target_globals): Copy the gcse field to this_target_gcse.
13512         * target-globals.c: Include gcse.h.
13513         (default_target_globals): Initialize the gcse field.
13514         (save_target_globals): Likewise.
13515
13516 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13517
13518         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
13519         and x_ira_prohibited_mode_move_regs_initialized_p.
13520         (ira_prohibited_mode_move_regs): Redefine as a macro.
13521         * ira.c (ira_prohibited_mode_move_regs): Delete.
13522         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
13523
13524 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13525
13526         * reload.h (target_reload): Add x_cached_reg_save_code and
13527         x_cached_reg_restore_code.
13528         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
13529         Redefine as macros.
13530
13531 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13532
13533         * Makefile.in (target-globals.o): Depend on builtins.h.
13534         * builtins.h: New file.
13535         * builtins.c: Include builtins.h.
13536         (default_target_builtins): New variable.
13537         (this_target_builtins): New conditional variable.
13538         (apply_args_mode, apply_result_mode): Redefine as macros.
13539         * target-globals.h (this_target_builtins): Declare.
13540         (target_globals): Add a builtins field.
13541         (restore_target_globals): Copy the builtins field to
13542         this_target_builtins.
13543         * target-globals.c: Include builtins.h.
13544         (default_target_globals): Initialize the builtins field.
13545         (save_target_globals): Likewise.
13546
13547 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13548
13549         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
13550         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
13551         from expmed.c.
13552         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
13553         (alg_hash, alg_hash_used_p): New macros.
13554         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
13555         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
13556         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
13557
13558 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13559
13560         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
13561         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
13562         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
13563         (this_op_costs, costs_classes): Redefine as macros.
13564         (record_reg_classes): Don't take op_costs as a parameter.
13565         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
13566         (scan_one_insn): Update call to record_operand_costs.
13567
13568 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13569
13570         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
13571         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
13572         (target_ira_int): New structure.
13573         (default_target_ira_int): Declare.
13574         (this_target_ira_int): Declare as a variable or define as a macro.
13575         (ira_reg_mode_hard_regset, ira_register_move_cost)
13576         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
13577         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
13578         (prohibited_class_mode_regs, ira_important_classes_num)
13579         (ira_important_classes, ira_reg_class_intersect)
13580         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
13581         (ira_reg_class_union): Redefine as macros.
13582         * ira.h (target_ira): New structure.
13583         (default_target_ira): Declare.
13584         (this_target_ira): Declare as a variable or define as a macro.
13585         (ira_available_class_regs, ira_hard_regno_cover_class)
13586         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
13587         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
13588         (ira_class_hard_regs_num): Redefine as macros.
13589         * ira.c (default_target_ira, default_target_ira_int): New variables.
13590         (this_target_ira, this_target_ira_int): New conditional variables.
13591         (ira_reg_mode_hard_regset, ira_memory_move_cost)
13592         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
13593         (ira_class_subset_p): Delete.
13594         (no_unit_alloc_regs): Redefine as a macro.
13595         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
13596         (ira_class_hard_regs_num, ira_class_hard_reg_index)
13597         (ira_available_class_regs): Delete.
13598         (alloc_reg_class_subclasses): Redefine as a macro.
13599         (ira_reg_class_cover_size, ira_reg_class_cover)
13600         (ira_important_classes_num, ira_important_classes)
13601         (ira_important_class_nums, ira_class_translate): Delete.
13602         (cover_class_order): Document the variable's lifetime.
13603         (reorder_important_classes): Don't set ira_important_class_nums.
13604         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
13605         (ira_reg_class_super_classes, ira_reg_class_union)
13606         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
13607         Delete.
13608         (setup_reg_class_nregs): Don't set ira_max_regs.
13609         (prohibited_class_mode_regs): Delete.
13610         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
13611         (target_globals): Add ira and ira_int fields.
13612         (restore_target_globals): Copy the ira field to this_target_ira
13613         and the ira_int field to this_target_ira_int.
13614         * target-globals.c: Include ira-int.h.
13615         (default_target_globals): Initialize the ira and ira_int fields.
13616         (save_target_globals): Likewise.
13617
13618 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13619
13620         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
13621         * cfgloop.h (target_cfgloop): New structure.
13622         (default_target_cfgloop): Declare.
13623         (this_target_cfgloop): Declare as a variable or define as a macro.
13624         (target_avail_regs, target_clobbered_regs, target_res_regs)
13625         (target_reg_cost, target_spill_cost): Redefine as macros.
13626         * cfgloopanal.c (default_target_cfgloop): New variable.
13627         (this_target_cfgloop): New conditional variable.
13628         (target_avail_regs, target_clobbered_regs, target_res_regs)
13629         (target_reg_cost, target_spill_cost): Delete.
13630         * target-globals.h (this_target_cfgloop): Declare.
13631         (target_globals): Add a cfgloop field.
13632         (restore_target_globals): Copy the cfgloop field to
13633         this_target_cfgloop.
13634         * target-globals.c: Include cfgloop.h.
13635         (default_target_globals): Initialize the cfgloop field.
13636         (save_target_globals): Likewise.
13637
13638 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13639
13640         * regs.h (target_regs): Add x_direct_load, x_direct_store and
13641         x_float_extend_from_mem.
13642         (direct_load, direct_store, float_extend_from_mem): New macros.
13643         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
13644
13645 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13646
13647         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
13648         (target-globals.o): Depend on $(LIBFUNCS_H).
13649         * libfuncs.h: Include hashtab.h.
13650         (libfunc_entry): Moved from optabs.c.
13651         (target_libfuncs): New structure.
13652         (default_target_libfuncs): Declare.
13653         (this_target_libfuncs): Declare as a variable or define as a macro.
13654         (libfunc_table): Redefine as a macro.
13655         * optabs.c (default_target_libfuncs): New variable.
13656         (this_target_libfuncs): New conditional variable.
13657         (libfunc_table): Delete.
13658         (libfunc_entry): Moved to optabs.h.
13659         (libfunc_hash): Redefine as a macro.
13660         (hash_libfunc, eq_libfunc): Fix comments.
13661         (init_optabs): Use libfunc_hash to detect cases where the function
13662         has already been called.  Clear the hash table instead of
13663         recreating it.
13664         * target-globals.h (this_target_libfuncs): Declare.
13665         (target_globals): Add a libfuncs field.
13666         (restore_target_globals): Copy the libfuncs field to
13667         this_target_libfuncs.
13668         * target-globals.c: Include libfuncs.h.
13669         (default_target_globals): Initialize the libfuncs field.
13670         (save_target_globals): Likewise.
13671
13672 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13673
13674         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
13675         in all dependency lists.
13676
13677 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13678
13679         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
13680         * optabs.h (target_optabs): New structure.
13681         (default_target_optabs): Declare.
13682         (this_target_optabs): Declare as a variable or define as a macro.
13683         (optab_table, convert_optab_table, direct_optab_table): Redefine
13684         as macros.
13685         * optabs.c (default_target_optabs): New variable.
13686         (this_target_optabs): New conditional variable.
13687         (optab_table, convert_optab_table, direct_optab_table): Delete.
13688         * target-globals.h (this_target_optabs): Declare.
13689         (target_globals): Add a optabs field.
13690         (restore_target_globals): Copy the optabs field to
13691         this_target_optabs.
13692         * target-globals.c: Include expr.h and optabs.h.
13693         (default_target_globals): Initialize the optabs field.
13694         (save_target_globals): Likewise.
13695
13696 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13697
13698         * flags.h (target_flagstate): Add x_flag_excess_precision.
13699         (flag_excess_precision): Redefine as a macro.
13700         * toplev.c (flag_excess_precision): Delete.
13701
13702 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13703
13704         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
13705         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
13706         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
13707         (no_caller_save_reg_set): Redefine as a macro.
13708         * reload.h (target_reload): Add x_caller_save_initialized_p and
13709         x_regno_save_mode.
13710         (caller_save_initialized_p): Redefine as a macro.
13711         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
13712         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
13713         (regno_save_mode): Redefine as a macro.
13714
13715 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13716
13717         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
13718         * expmed.h: New file.
13719         * expmed.c (default_target_costs): New variable.
13720         (this_target_costs): New conditional variable.
13721         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
13722         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
13723         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
13724         * target-globals.h (this_target_expmed): Declare.
13725         (target_globals): Add a expmed field.
13726         (restore_target_globals): Copy the expmed field to
13727         this_target_expmed.
13728         * target-globals.c: Include expmed.h.
13729         (default_target_globals): Initialize the expmed field.
13730         (save_target_globals): Likewise.
13731
13732 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13733
13734         * Makefile.in (target-globals.o): Depend on reload.h.
13735         * reload.h (target_reload): New structure.
13736         (default_target_reload): Declare.
13737         (this_target_reload): Declare as a variable or define as a macro.
13738         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
13739         * reload1.c (default_target_reload): New variable
13740         (this_target_reload): New conditional variable.
13741         (indirect_symref_ok, double_reg_address_ok): Delete.
13742         (spill_indirect_levels): Redefine as a macro.
13743         * target-globals.h (this_target_reload): Declare.
13744         (target_globals): Add a reload field.
13745         (restore_target_globals): Copy the reload field to
13746         this_target_reload.
13747         * target-globals.c: Include hard-reg-set.h.
13748         (default_target_globals): Initialize the reload field.
13749         (save_target_globals): Likewise.
13750
13751 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13752
13753         * rtl.h (target_rtl): Add x_static_reg_base_value.
13754         * alias.c (static_reg_base_value): Redefine as a macro.
13755
13756 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13757
13758         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
13759         (GTFILES): Remove reginfo.c.
13760         * rtl.h (target_rtl): Add x_top_of_stack.
13761         (top_of_stack): New macro.
13762         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
13763         (top_of_stack): Delete.
13764
13765 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13766
13767         * regs.h (target_regs): Add x_hard_regs_of_mode,
13768         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
13769         x_may_move_out_cost and x_last_mode_for_init_move_cost.
13770         (have_regs_of_mode, contains_reg_of_mode, move_cost)
13771         (may_move_in_cost, may_move_out_cost): Redefine as macros.
13772         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
13773         (may_move_in_cost, may_move_out_cost): Delete.
13774         (last_mode_for_init_move_cost): Redefine as a macro.
13775
13776 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13777
13778         * hard-reg-set.h (target_hard_regs): New structure.
13779         (default_target_hard_regs): Declare.
13780         (this_target_hard_regs): Declare as a variable or define as a macro.
13781         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
13782         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
13783         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
13784         (reg_class_size, reg_class_subclasses, reg_class_subunion)
13785         (reg_class_superunion, reg_names): Redefine as macros.
13786         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
13787         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
13788         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
13789         (reg_class_contents, reg_class_size, reg_class_subclasses)
13790         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
13791         (default_target_hard_regs): New variable
13792         (this_target_hard_regs, initial_call_really_used_regs)
13793         (initial_reg_alloc_order): New conditional variables.
13794         (initial_reg_names): New variable.
13795         (init_reg_sets): Assert that initial_call_really_used_regs,
13796         initial_reg_alloc_order and initial_reg_names
13797         are all the same size as their variable counterparts.  Use them to
13798         initialize those counterparts.
13799         * target-globals.h (this_target_hard_regs): Declare.
13800         (target_globals): Add a hard_regs field.
13801         (restore_target_globals): Copy the hard_regs field to
13802         this_target_hard_regs.
13803         * target-globals.c: Include hard-reg-set.h.
13804         (default_target_globals): Initialize the hard_regs field.
13805         (save_target_globals): Likewise.
13806
13807 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13808
13809         * Makefile.in (target-globals.o): Depend on $(RTL_H).
13810         * rtl.h (target_rtl): New structure.
13811         (default_target_rtl): Declare.
13812         (this_target_rtl): Declare as a variable or define as a macro.
13813         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
13814         Redefine as macros.
13815         * emit-rtl.c (default_target_rtl): New variable.
13816         (this_target_rtl): New conditional variable.
13817         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
13818         (return_address_pointer_rtx): Delete.
13819         (initial_regno_reg_rtx): New macro.
13820         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
13821         (init_emit_regs): Likewise.
13822         * target-globals.h (this_target_rtl): Declare.
13823         (target_globals): Add a rtl field.
13824         (restore_target_globals): Copy the rtl field to this_target_rtl.
13825         * target-globals.c: Include rtl.h.
13826         (default_target_globals): Initialize the rtl field.
13827         (save_target_globals): Likewise.
13828
13829 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13830
13831         * Makefile.in (target-globals.o): Depend on $(REGS_H).
13832         * regs.h (target_reg_modes): New structure.
13833         (default_target_reg_modes): Declare.
13834         (this_target_reg_modes): Declare as a variable or define as a macro.
13835         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
13836         * reginfo.c (default_target_reg_modes): New variable.
13837         (this_target_reg_modes): New conditional variable.
13838         (hard_regno_nregs, reg_raw_mode): Delete.
13839         * target-globals.h (this_target_regs): Declare.
13840         (target_globals): Add a regs field.
13841         (restore_target_globals): Copy the regs field to this_target_regs.
13842         * target-globals.c: Include regs.h.
13843         (default_target_globals): Initialize the regs field.
13844         (save_target_globals): Likewise.
13845
13846 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13847
13848         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
13849         * doc/tm.texi: Regenerate.
13850         * Makefile.in (OBJS-common): Add target-globals.o.
13851         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
13852         and target-globals.h.
13853         (target-globals.o): New rule.
13854         (GTFILES): Include $(srcdir)/target-globals.h.
13855         * defaults.h (SWITCHABLE_TARGET): Define.
13856         * gengtype.c (open_base_files): Add target-globals.h to the
13857         list of includes.
13858         * target-globals.h: New file.
13859         * target-globals.c: Likewise.
13860
13861         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
13862         * flags.h (target_flag_state): New structure.
13863         (default_target_flag_state): Declare.
13864         (this_target_flag_state): Declare as a variable or define as a macro.
13865         (align_loops_log): Redefine as a macro.
13866         (align_loops_max_skip, align_jumps_log): Likewise.
13867         (align_jumps_max_skip, align_labels_log): Likewise.
13868         (align_labels_max_skip, align_functions_log): Likewise.
13869         * toplev.c (default_target_flag_state): New variable.
13870         (this_target_flag_state): New conditional variable.
13871         (align_loops_log): Delete.
13872         (align_loops_max_skip, align_jumps_log): Likewise.
13873         (align_jumps_max_skip, align_labels_log): Likewise.
13874         (align_labels_max_skip, align_functions_log): Likewise.
13875         * target-globals.h (this_target_flag_state): Declare.
13876         (target_globals): Add a flag_state field.
13877         (restore_target_globals): Copy the flag_state field to
13878         this_target_flag_state.
13879         * target-globals.c: Include flags.h.
13880         (default_target_globals): Initialize the flag_state field.
13881         (save_target_globals): Likewise.
13882
13883 2010-07-12  Jie Zhang  <jie@codesourcery.com>
13884
13885         * postreload.c (reg_symbol_ref[]): New.
13886         (move2add_use_add2_insn): New.
13887         (move2add_use_add3_insn): New.
13888         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
13889         (move2add_note_store): Likewise.
13890
13891 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
13892
13893         PR rtl-optimization/44752
13894         * genautomata.c (main): Don't emit an empty file even if there
13895         is no automaton.
13896
13897 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13898
13899         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
13900         ix86_solaris_return_in_memory.
13901         * config/i386-protos.h: Reflect this.
13902         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
13903         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
13904         Move ...
13905         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
13906
13907 2010-07-12  Jie Zhang  <jie@codesourcery.com>
13908
13909         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
13910         align the stack when it's going to be saved.
13911
13912 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13913
13914         PR pch/14940
13915         * config/host-solaris.c (mmap_fixed): New function.
13916         (sol_gt_pch_get_address): Use it.
13917         (sol_gt_pch_use_address): Likewise.
13918
13919 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13920
13921         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13922         pentiumpro on Solaris 8 and 9/x86.
13923         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
13924         Document SSE/SSE2 support.
13925         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
13926
13927 2010-07-12  Andi Kleen  <ak@linux.intel.com>
13928
13929         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
13930         instead of gcc_assert to print better error message for multiple
13931         prevailing defs.
13932
13933 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
13934
13935         * config/i386/i386.c (ix86_asm_output_function_label): Change format
13936         string placeholder from 0x%x to %#x.
13937         (ix86_code_end): Use putc to output '\n'.
13938         (ix86_print_operand) <case ';'>: Use putc to output ';'.
13939
13940 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
13941
13942         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
13943         in directive -export.
13944
13945 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
13946
13947         * reginfo.h (reg_classes_intersect_p): Change arguments type to
13948         reg_class_t.
13949         * rtl.h (reg_classes_intersect_p): Adjust prototype.
13950
13951         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13952         Remove macros.
13953         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
13954         rs6000_memory_move_cost): Remove
13955         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
13956         TARGET_MEMORY_MOVE_COST): Define.
13957         (rs6000_register_move_cost): Make static. Change arguments type from
13958         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
13959         (rs6000_memory_move_cost): Make static. Change arguments type from
13960         'enum reg_class' to reg_class_t.
13961
13962 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
13963
13964         PR middle-end/42505
13965         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
13966         lookup code into....
13967         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
13968         new functions.
13969         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
13970         * cfgloopanal.c (target_clobbered_regs): Define.
13971         (init_set_costs): Initialize target_clobbered_regs.
13972         (estimate_reg_pressure_cost): Add call_p argument.  When true,
13973         adjust the number of available registers to exclude the
13974         call-clobbered registers.
13975         * cfgloop.h (target_clobbered_regs): Declare.
13976         (estimate_reg_pressure_cost): Adjust declaration.
13977         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
13978         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
13979         (determine_set_costs): Dump target_clobbered_regs.
13980         (loop_body_includes_call): New function.
13981         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
13982         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
13983         call_p flag through.
13984         (best_gain_for_invariant): Likewise.
13985         (find_invariants_to_move): Likewise.
13986         (move_single_loop_invariants): Likewise, using already-computed
13987         has_call field.
13988
13989 2010-07-10  Richard Guenther  <rguenther@suse.de>
13990             Joern Rennecke  <joern.rennecke@embecosm.com>
13991
13992         PR debug/44832
13993         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
13994         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
13995         unless they have DECL_IGNORED_P set.
13996
13997 2010-07-10  Richard Guenther  <rguenther@suse.de>
13998
13999         PR lto/44889
14000         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
14001         helper function.
14002         (gimple_types_compatible_p): Similar to pointed-to
14003         types allow and merge a mix of complete and incomplete aggregate.
14004         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
14005         (iterative_hash_gimple_type): Adjust for that.
14006
14007 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
14008
14009         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
14010
14011 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
14012
14013         PR objc/44140
14014         * config/darwin.c (output_objc_section_asm_op): Save and restore
14015         section when outputting ObjC section list.
14016
14017 2010-07-09  Jan Hubicka  <jh@suse.cz>
14018
14019         * lto-streamer-out.c (produce_symtab): Do not write alias
14020         cgraph/varpool nodes.
14021
14022 2010-07-09  Jan Hubicka  <jh@suse.cz>
14023
14024         * tree-inline.c (declare_return_variable): Fix ICE while
14025         inlining DECL_BY_VALUE function not in SSA form
14026
14027 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
14028
14029         PR tree-optimization/44576
14030         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
14031         New.  Pull out from is_loop_prefetching_profitable to implement
14032         the trip count to ahead ratio heuristic.
14033         (mem_ref_count_reasonable_p): New.  Pull out from
14034         is_loop_prefetching_profitable to implement the instruction to
14035         memory reference ratio heuristic.  Also consider not reasonable if
14036         the memory reference count is above a threshold (to avoid
14037         explosive compilation time.
14038         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
14039         is_loop_prefetching_profitable to implement the instruction to
14040         prefetch ratio heuristic.
14041         (is_loop_prefetching_profitable): Removed.
14042         (loop_prefetch_arrays): Distribute the cost analysis across the
14043         function to allow early exit of the prefetch analysis.
14044         is_loop_prefetching_profitable is splitted into three functions,
14045         with each one called as early as possible.
14046         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
14047         number of memory references in a loop is considered too many.
14048
14049 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
14050
14051         * reload.c (find_reloads): Don't clear badop if we have a winreg
14052         alternative, but not win, and the class only has fixed regs.
14053         * hard-reg-set.h (class_only_fixed_regs): Declare.
14054         * reginfo.c (class_only_fixed_regs): New array.
14055         (init_reg_sets_1): Initialize it.
14056         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
14057         discourage alternatives using the stack pointer.
14058
14059         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
14060
14061         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
14062
14063         * config/arm/arm.md (cbranchqi4): Fix array size.
14064         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
14065         calculating length.
14066
14067 2010-07-09  Richard Guenther  <rguenther@suse.de>
14068
14069         * gimple.c (struct type_fixup_s): New struct and VEC type.
14070         (gimple_register_type_fixups): New static global.
14071         (gimple_queue_type_fixup): New function.
14072         (gimple_types_compatible_p): Queue type fixups instead of
14073         applying them here.
14074         (gimple_register_type): Apply queued fixups for the
14075         canonical type.  Empty the type fixup queue.
14076
14077 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
14078
14079         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
14080         * configure: Regenerate.
14081         * config.in: Ditto.
14082
14083 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
14084             Denys Vlasenko  <dvlasenk@redhat.com>
14085             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
14086
14087         PR tree-optimization/28632
14088         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
14089         (extract_range_from_binary_expr): Further optimize
14090         BIT_AND_EXPR and BIT_IOR_EXPR.
14091
14092 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
14093
14094         * tree-if-conv.c (fold_or_predicates): New.
14095         (add_to_predicate_list): Call it.
14096
14097 2010-07-09  Richard Guenther  <rguenther@suse.de>
14098
14099         PR middle-end/44890
14100         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
14101         if base is a pointer.
14102         * tree-cfg.c (verify_expr): Update MEM_REF checking.
14103
14104 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
14105
14106         PR target/44877
14107         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
14108         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
14109         builtin mask for load/store builtins.
14110
14111 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
14112
14113         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
14114         for "lock addl".
14115         * configure: Regenerate.
14116         * config/i386/i386.c (ix86_print_operand) <case ';'>:
14117         Remove TARGET_MACHO.
14118
14119 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
14120
14121         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
14122         default ISA flags.
14123         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
14124
14125 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
14126
14127         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
14128
14129 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
14130
14131         * config/picochip/picochip.md (commsTestPort): Emit more
14132         efficient sequence for tstport instruction.
14133
14134 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
14135
14136         * config/i386/i386.c (ix86_veclib_handler): Make static.
14137
14138 2010-07-09  Richard Guenther  <rguenther@suse.de>
14139
14140         PR tree-optimization/44852
14141         * tree-ssa-alias.c: Include toplev.h for exact_log2.
14142         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
14143         in MEM_REF.
14144         (indirect_refs_may_alias_p): Likewise.
14145         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
14146
14147 2010-07-09  Richard Guenther  <rguenther@suse.de>
14148
14149         PR tree-optimization/44882
14150         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
14151         sets do conflict.
14152         (vectorizable_load): Likewise.
14153
14154 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
14155
14156         PR target/40657
14157         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
14158         All callers changed.
14159         Handle the case when we're called for the epilogue.
14160         (thumb_unexpanded_epilogue): Use it.
14161         (thumb1_expand_epilogue): Likewise.
14162
14163 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
14164
14165         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
14166         both ranges are range_int_cst_p with non-negative minimum,
14167         try harder to derive smaller range.
14168
14169 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14170
14171         * genrecog.c: Include diagnostic-core.h before toplev.h.
14172         * genoutput.c: Likewise.
14173         * genextract.c: Likewise.
14174         * genautomata.c: Likewise.
14175         * genemit.c: Likewise.
14176         * genpeep.c: Likewise.
14177         * genattrtab.c: Likewise.
14178         * genconditions.c: Likewise.
14179         * genpreds.c: Likewise.
14180
14181 2010-07-08  Andi Kleen  <ak@linux.intel.com>
14182
14183         * lto-section-in.c (lto_section_name): Add missing comma.
14184
14185 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
14186
14187         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
14188         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
14189         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
14190         (ia64_override_options): Rename to...
14191         (ia64_option_override): ... this one. Make static.
14192
14193 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
14194
14195         PR middle-end/44843
14196         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
14197         pointed-to type of the offset in a MEM_REF to compute the alignment.
14198
14199 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
14200
14201         * final.c (final_scan_insn): Replace
14202         TARGET_UNWIND_INFO macro check by unwind_emit
14203         hook NULL check.
14204         * targhooks.c (default_unwind_emit): Removed.
14205         * targhooks.h (default_unwind_emit): Likewise.
14206         * target.def (unwind_emit): Set default value to NULL.
14207
14208         * config/i386/i386-protos.h (ix86_asm_output_function_label):
14209         New prototype.
14210         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
14211         for NULL fntype argument and allow 64-bit targets.
14212         (ix86_asm_output_function_label): New function.
14213         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
14214         (ix86_handle_fndecl_attribute): Likewise.
14215         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
14216         * doc/doc/tm.texi: Regenerated.
14217         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
14218         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
14219         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
14220         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
14221         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
14222         * config/elfos.h: Likewise.
14223         * config/i386/cygming.h: Likewise.
14224         * config/netbsd-aout.h: Likewise.
14225         * config/openbsd.h: Likewise.
14226         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
14227         by ix86_asm_output_function_label function call.
14228         * varasm.c (assemble_start_function): Use
14229         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
14230
14231 2010-07-08  Jan Hubicka  <jh@suse.cz>
14232
14233         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
14234         New function.
14235         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
14236         Declare.
14237         * ipa-cp.c (ipcp_estimate_growth): Use it.
14238         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
14239         Likewise.
14240
14241 2010-07-08  Jan Hubicka  <jh@suse.cz>
14242
14243         * tree-inline.c (declare_return_variable): Allocate annotation for new
14244         temporary.
14245
14246 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
14247
14248         PR tree-optimization/44710
14249         * tree-if-conv.c (parse_predicate): New.
14250         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
14251         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
14252
14253 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
14254
14255         * common.opt (ftree-loop-if-convert): New flag.
14256         * doc/invoke.texi (ftree-loop-if-convert): Documented.
14257         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
14258         when flag_tree_loop_if_convert is set.
14259
14260 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
14261
14262         * config/i386/i386.c: Use short syntax for function calls
14263         through function pointers.
14264         * config/i386/i386.md: Ditto.
14265
14266 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
14267
14268         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
14269
14270 2010-07-08  Richard Guenther  <rguenther@suse.de>
14271
14272         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
14273         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
14274
14275 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
14276
14277         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
14278         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
14279         (loc_list_from_tree): Likewise.
14280         (output_loc_operands): Handle outputting DW_OP_const[48]u
14281         with loc->dtprel set.
14282         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
14283
14284 2010-07-08  Jan Hubicka  <jh@suse.cz>
14285
14286         * ipa.c: Include pointer-set.h
14287         (cgraph_externally_visible_p): New attribute ALIASED;
14288         when in LTO, hidden symbols are local unless they are aliased.
14289         (function_and_variable_visibility): Compute aliased nodes;
14290         handle LTO and hidden symbol on functions and vars.
14291         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
14292         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
14293
14294 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
14295
14296         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14297         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14298         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14299         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14300         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14301         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
14302         (ix86_gen_probe_stack_range): Likewise.
14303         (override_options): Set them.
14304         (ix86_target_stack_probe): New function.
14305         (ix86_compute_frame_layout): Force use of push instructions to
14306         save registers if stack checking with probes is enabled.
14307         (get_scratch_register_on_entry): New function.
14308         (release_scratch_register_on_entry): Likewise.
14309         (ix86_adjust_stack_and_probe): Likewise.
14310         (output_adjust_stack_and_probe): Likewise.
14311         (ix86_emit_probe_stack_range): Likewise.
14312         (output_probe_stack_range): Likewise.
14313         (ix86_expand_prologue): Emit stack checking code if static built-in
14314         stack checking is enabled.
14315         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
14316         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
14317         (output_adjust_stack_and_probe): Likewise.
14318         (output_probe_stack_range): Likewise.
14319         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14320         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
14321         TARGET_STACK_PROBE.
14322         (allocate_stack_worker_64): Likewise.
14323         (allocate_stack): Likewise.
14324         (adjust_stack_and_probe): New insn.
14325         (probe_stack_range): Likewise.
14326
14327 2010-07-08  Richard Guenther  <rguenther@suse.de>
14328
14329         PR tree-optimization/44831
14330         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
14331         a MEM_REF preserving TBAA info of the original dereference.
14332         Dereference the original pointer if the address is not invariant.
14333         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
14334         at least one invariant address that we are going to dereference.
14335
14336 2010-07-08  Richard Guenther  <rguenther@suse.de>
14337
14338         PR tree-optimization/44861
14339         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
14340         information when building MEM_REFs.
14341         (vectorizable_load): Likewise.
14342         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
14343
14344 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
14345
14346         * config/sol2-c.c: Do not include diagnostic-core.h.
14347
14348 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14349
14350         PR bootstrap/44768
14351         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
14352         with respect to current_function_decl. Pass decl of the function.
14353         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
14354         * ipa-inline.c (compute_inline_parameters): Pass decl to
14355         estimated_stack_frame_size.
14356
14357 2010-07-08  Richard Guenther  <rguenther@suse.de>
14358
14359         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
14360         New function.
14361         (valueize_refs): Call it.
14362
14363 2010-07-08  Richard Guenther  <rguenther@suse.de>
14364
14365         PR rtl-optimization/44838
14366         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
14367         SSA form do not use pointer equivalence.
14368
14369 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
14370
14371         * dwarf2out.c (AT_linkage_name): Delete.
14372         (add_linkage_attr): New function.
14373         (add_linkage_name): Call it to emit the linkage attribute.
14374         (dwarf2out_finish): Likewise.
14375         (move_linkage_attr): Explicitly accept both attribute variants.
14376
14377 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14378
14379         * toplev.h: Do not include diagnostic-core.h.
14380         Include diagnostic-core.h in every file that includes toplev.h.
14381         * c-tree.h: Do not include toplev.h.
14382         * pretty-print.h: Update comment.
14383         * Makefile.in: Update dependencies.
14384         * alias.c: Include diagnostic-core.h in every file that includes
14385         toplev.h.
14386         * attribs.c: Likewise.
14387         * auto-inc-dec.c: Likewise.
14388         * bb-reorder.c: Likewise.
14389         * bt-load.c: Likewise.
14390         * caller-save.c: Likewise.
14391         * calls.c: Likewise.
14392         * cfg.c: Likewise.
14393         * cfganal.c: Likewise.
14394         * cfgbuild.c: Likewise.
14395         * cfgcleanup.c: Likewise.
14396         * cfghooks.c: Likewise.
14397         * cfgloop.c: Likewise.
14398         * combine.c: Likewise.
14399         * config/alpha/alpha.c: Likewise.
14400         * config/arc/arc.c: Likewise.
14401         * config/arm/arm.c: Likewise.
14402         * config/arm/pe.c: Likewise.
14403         * config/avr/avr.c: Likewise.
14404         * config/bfin/bfin.c: Likewise.
14405         * config/cris/cris.c: Likewise.
14406         * config/crx/crx.c: Likewise.
14407         * config/darwin-c.c: Likewise.
14408         * config/darwin.c: Likewise.
14409         * config/fr30/fr30.c: Likewise.
14410         * config/frv/frv.c: Likewise.
14411         * config/h8300/h8300.c: Likewise.
14412         * config/host-darwin.c: Likewise.
14413         * config/i386/i386.c: Likewise.
14414         * config/i386/netware.c: Likewise.
14415         * config/i386/nwld.c: Likewise.
14416         * config/i386/winnt-cxx.c: Likewise.
14417         * config/i386/winnt-stubs.c: Likewise.
14418         * config/i386/winnt.c: Likewise.
14419         * config/ia64/ia64-c.c: Likewise.
14420         * config/ia64/ia64.c: Likewise.
14421         * config/iq2000/iq2000.c: Likewise.
14422         * config/lm32/lm32.c: Likewise.
14423         * config/m32c/m32c-pragma.c: Likewise.
14424         * config/m32c/m32c.c: Likewise.
14425         * config/m32r/m32r.c: Likewise.
14426         * config/m68hc11/m68hc11.c: Likewise.
14427         * config/m68k/m68k.c: Likewise.
14428         * config/mcore/mcore.c: Likewise.
14429         * config/mep/mep-pragma.c: Likewise.
14430         * config/mep/mep.c: Likewise.
14431         * config/mmix/mmix.c: Likewise.
14432         * config/mn10300/mn10300.c: Likewise.
14433         * config/moxie/moxie.c: Likewise.
14434         * config/pa/pa.c: Likewise.
14435         * config/pdp11/pdp11.c: Likewise.
14436         * config/picochip/picochip.c: Likewise.
14437         * config/rs6000/rs6000-c.c: Likewise.
14438         * config/rs6000/rs6000.c: Likewise.
14439         * config/rx/rx.c: Likewise.
14440         * config/s390/s390.c: Likewise.
14441         * config/score/score.c: Likewise.
14442         * config/score/score3.c: Likewise.
14443         * config/score/score7.c: Likewise.
14444         * config/sh/sh.c: Likewise.
14445         * config/sh/symbian-base.c: Likewise.
14446         * config/sh/symbian-c.c: Likewise.
14447         * config/sh/symbian-cxx.c: Likewise.
14448         * config/sol2-c.c: Likewise.
14449         * config/sol2.c: Likewise.
14450         * config/sparc/sparc.c: Likewise.
14451         * config/spu/spu.c: Likewise.
14452         * config/stormy16/stormy16.c: Likewise.
14453         * config/v850/v850-c.c: Likewise.
14454         * config/v850/v850.c: Likewise.
14455         * config/vax/vax.c: Likewise.
14456         * config/vxworks.c: Likewise.
14457         * config/xtensa/xtensa.c: Likewise.
14458         * convert.c: Likewise.
14459         * cse.c: Likewise.
14460         * cselib.c: Likewise.
14461         * dbgcnt.c: Likewise.
14462         * dbxout.c: Likewise.
14463         * ddg.c: Likewise.
14464         * dominance.c: Likewise.
14465         * emit-rtl.c: Likewise.
14466         * explow.c: Likewise.
14467         * expmed.c: Likewise.
14468         * fixed-value.c: Likewise.
14469         * fold-const.c: Likewise.
14470         * fwprop.c: Likewise.
14471         * gcse.c: Likewise.
14472         * ggc-common.c: Likewise.
14473         * ggc-page.c: Likewise.
14474         * ggc-zone.c: Likewise.
14475         * gimple-low.c: Likewise.
14476         * gimplify.c: Likewise.
14477         * graph.c: Likewise.
14478         * haifa-sched.c: Likewise.
14479         * ifcvt.c: Likewise.
14480         * implicit-zee.c: Likewise.
14481         * integrate.c: Likewise.
14482         * ira-build.c: Likewise.
14483         * ira-color.c: Likewise.
14484         * ira-conflicts.c: Likewise.
14485         * ira-costs.c: Likewise.
14486         * ira-lives.c: Likewise.
14487         * ira.c: Likewise.
14488         * lists.c: Likewise.
14489         * loop-doloop.c: Likewise.
14490         * loop-iv.c: Likewise.
14491         * lto-opts.c: Likewise.
14492         * lto-symtab.c: Likewise.
14493         * main.c: Likewise.
14494         * modulo-sched.c: Likewise.
14495         * optabs.c: Likewise.
14496         * params.c: Likewise.
14497         * plugin.c: Likewise.
14498         * postreload-gcse.c: Likewise.
14499         * postreload.c: Likewise.
14500         * predict.c: Likewise.
14501         * profile.c: Likewise.
14502         * real.c: Likewise.
14503         * regcprop.c: Likewise.
14504         * reginfo.c: Likewise.
14505         * regmove.c: Likewise.
14506         * reorg.c: Likewise.
14507         * resource.c: Likewise.
14508         * rtl.c: Likewise.
14509         * rtlanal.c: Likewise.
14510         * sched-deps.c: Likewise.
14511         * sched-ebb.c: Likewise.
14512         * sched-rgn.c: Likewise.
14513         * sdbout.c: Likewise.
14514         * sel-sched-dump.c: Likewise.
14515         * sel-sched-ir.c: Likewise.
14516         * simplify-rtx.c: Likewise.
14517         * stmt.c: Likewise.
14518         * stor-layout.c: Likewise.
14519         * store-motion.c: Likewise.
14520         * targhooks.c: Likewise.
14521         * tree-cfg.c: Likewise.
14522         * tree-cfgcleanup.c: Likewise.
14523         * tree-dump.c: Likewise.
14524         * tree-eh.c: Likewise.
14525         * tree-inline.c: Likewise.
14526         * tree-nomudflap.c: Likewise.
14527         * tree-object-size.c: Likewise.
14528         * tree-optimize.c: Likewise.
14529         * tree-outof-ssa.c: Likewise.
14530         * tree-phinodes.c: Likewise.
14531         * tree-profile.c: Likewise.
14532         * tree-ssa-ccp.c: Likewise.
14533         * tree-ssa-coalesce.c: Likewise.
14534         * tree-ssa-live.c: Likewise.
14535         * tree-ssa-loop-niter.c: Likewise.
14536         * tree-ssa-loop-prefetch.c: Likewise.
14537         * tree-ssa-loop.c: Likewise.
14538         * tree-ssa-structalias.c: Likewise.
14539         * tree-ssa-uninit.c: Likewise.
14540         * tree-ssa.c: Likewise.
14541         * tree-vect-data-refs.c: Likewise.
14542         * tree-vect-loop-manip.c: Likewise.
14543         * tree-vect-loop.c: Likewise.
14544         * tree-vect-patterns.c: Likewise.
14545         * tree-vect-stmts.c: Likewise.
14546         * tree-vrp.c: Likewise.
14547         * varasm.c: Likewise.
14548         * vec.c: Likewise.
14549         * web.c: Likewise.
14550         * xcoffout.c: Likewise.
14551
14552 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
14553
14554         * gengtype.c (write_field_root): New function.
14555         (write_root): Use it.
14556
14557 2010-07-07  Wei Guozhi  <carrot@google.com>
14558
14559         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
14560         of lowest bits to lshift/compare): Add a missing line.
14561
14562 2010-07-07  Wei Guozhi  <carrot@google.com>
14563
14564         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
14565         of lowest bits to lshift/compare): New.
14566
14567 2010-07-07  Tom Tromey  <tromey@redhat.com>
14568
14569         * doc/tm.texi: Update.
14570         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
14571         Add @hook.
14572         * target.def (want_debug_pub_sections): New hook.
14573         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
14574         * dwarf2out.c (add_pubname_string): Check
14575         targetm.want_debug_pub_sections.
14576         (add_pubname): Likewise.
14577         (add_pubtype): Likewise.
14578
14579 2010-07-07  Jie Zhang  <jie@codesourcery.com>
14580
14581         * genautomata.c (output_automata_list_min_issue_delay_code):
14582         Correctly decompress min_issue_delay.
14583
14584 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
14585
14586         PR rtl-optimization/44404
14587         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
14588         possible, use reg_overlap_mentioned_p instead.
14589
14590 2010-07-07  Duncan Sands  <baldrick@free.fr>
14591
14592         PR middle-end/41355
14593         * tree.c (build_function_type_skip_args): Copy the original type using
14594         build_distinct_type_copy rather than copy_node.
14595
14596 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
14597
14598         PR target/44850
14599         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
14600         revision 161876.
14601         (ix86_expand_prologue): Likewise.
14602         (ix86_handle_fndecl_attribute): Likewise.
14603         (ix86_asm_declare_function_name): Likewise.
14604         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14605         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14606         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
14607         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
14608         * doc/extend.texi: Likewise.
14609
14610 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
14611
14612         PR target/44844
14613         * config/i386/i386.md (rdrand<mode>): Changed to expand to
14614         retry if the carry flag isn't valid.
14615         (rdrand<mode>_1): New.
14616
14617 2010-07-07  Richard Guenther  <rguenther@suse.de>
14618
14619         PR middle-end/44790
14620         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
14621         for expanding the constant offset for MEM_REFs.
14622
14623 2010-07-07  Richard Guenther  <rguenther@suse.de>
14624
14625         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
14626         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
14627         * gimple.h (is_gimple_operand): Remove.
14628         * gimple.c (is_gimple_operand): Likewise.
14629         (walk_gimple_op): Fix wi->val_only setting for calls.
14630         * tree-cfg.c (verify_gimple_call): Fix argument validation.
14631         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
14632         invalid gimple calls.
14633
14634 2010-07-06  Jan Hubicka  <jh@suse.cz>
14635
14636         * lto-cgraph.c (output_cgraph): Add missing declaration.
14637
14638 2010-07-06  Jan Hubicka  <jh@suse.cz>
14639
14640         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
14641         partition.
14642
14643 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
14644
14645         * doc/gimple.texi (GIMPLE_DEBUG): Document.
14646         * doc/rtl.texi (Debug Information): New node.
14647         (NOTE_INSN_VAR_LOCATION): Document.
14648         (debug_insn): Likewise.
14649         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
14650
14651 2010-07-07  Jan Hubicka  <jh@suse.cz>
14652
14653         With parts by Richard Guenther.
14654
14655         PR middle-end/44813
14656         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
14657         for functions passed by reference.
14658         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
14659         in memory when passed by reference.
14660         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
14661         beggining.
14662         * ipa-split.c (split_function): Cleanup way return value is passed;
14663         handle SSA DECL_BY_REFERENCE retvals.
14664         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
14665         DECL_BY_REFERENCE is set.
14666         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
14667         find_what_p_points_to): Handle RESULT_DECL.
14668         * tree-inline.c (declare_return_variable): Get new entry_block argument;
14669         when passing by reference ensure that RESULT_DECL is gimple_val.
14670         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
14671         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
14672
14673 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
14674
14675         PR rtl-optimization/44787
14676         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
14677         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
14678
14679 2010-07-06  Jan Hubicka  <jh@suse.cz>
14680
14681         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
14682         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
14683         with body can prevail.
14684         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
14685         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
14686         * cgraph.c (cgraph_get_node_or_alias): New function.
14687         * cgraph.h (cgraph_get_node_or_alias): Declare.
14688
14689 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
14690
14691         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
14692         support.
14693         (ix86_expand_prologue): Likewise.
14694         (ix86_handle_fndecl_attribute): Likewise.
14695         (ix86_asm_declare_function_name): New function for
14696         ASM_DECLARE_FUNCTION_NAME.
14697         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
14698         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
14699         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
14700         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
14701         * doc/extend.texi: Adjust documentation about ms_hook_prologue
14702         attribute.
14703
14704 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
14705
14706         * config/i386/i386.md (immediate_operand): New mode attribute.
14707
14708         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
14709         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
14710         using P mode iterator.
14711         (pro_epilogue_adjust_stack_di_2): Rename from
14712         pro_epilogue_adjust_stack_rex64_2.
14713
14714         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
14715
14716 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
14717
14718         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
14719         through gen_mov_insv_1 function pointer.
14720         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
14721         gen_truncxf<mode>2 through gen_truncxf function pointer.
14722         (remainder<mode>3): Ditto.
14723         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
14724         (allocate_stack): Call gen_allocate_stack_worker_64 or
14725         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
14726         function pointer.
14727         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
14728         function pointer.
14729
14730 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
14731
14732         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
14733         operand constraint instead of <r><i>m.
14734
14735 2010-07-06  Richard Guenther  <rguenther@suse.de>
14736
14737         PR middle-end/44828
14738         * convert.c (convert_to_integer): Watch out for overflowing
14739         MULT_EXPR as well.
14740
14741 2010-07-05  Jan Hubicka  <jh@suse.cz>
14742
14743         * lto-streamer.c (write_symbol_vec): Rename to ...
14744         (write_symbol) ... this one; write only symbol given and when
14745         present in cache. Sanity check that what is defined is present
14746         in cgraph/varpool with body/finalized decl.
14747         (write_symbols_of_kind): Remove.
14748         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
14749         pairs to produce symtab.
14750         (produce_asm_for_decls): Update call of produce_symtab; don't do so
14751         when doing WPA streaming.
14752
14753 2010-07-05  Jan Hubicka  <jh@suse.cz>
14754
14755         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
14756         function is still available to fold into.
14757
14758 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
14759
14760         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
14761         * function.h (struct_function): Change type of local_decls field
14762         to a VEC.
14763         (add_local_decl): New function.
14764         (FOR_EACH_LOCAL_DECL): New macro.
14765         * cfgexpand.c (init_vars_expansion): Adjust for new type of
14766         cfun->local_decls.
14767         (estimated_stack_frame_size): Likewise.
14768         (expand_used_vars): Likewise.
14769         * cgraphbuild.c (build_cgraph_edges): Likewise.
14770         * function.c (instantiate_decls_1): Likewise.
14771         * ipa-struct-reorg.c (build_data_structure): Likewise.
14772         * ipa-type-escape.c (analyze_function): Likewise.
14773         * lto-streamer-in.c (input_function): Likewise.
14774         * lto-streamer-out.c (output_function): Likewise.
14775         * tree-ssa-live.c (remove_unused_locals): Likewise.
14776         * tree.c (free_lang_data_in_decl): Likewise.
14777         (find_decls_types_in_node): Likewise.
14778         * omp-low.c (remove_exit_barrier): Likewise.
14779         (expand_omp_taskreg): Likewise.
14780         (list2chain): Rename to...
14781         (vec2chain): ...this.  Adjust.
14782         * cgraphunit.c (assemble_thunk): Call add_local_decl.
14783         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
14784         * gimple-low.c (record_vars_into): Likewise.
14785         * tree-inline.c (remap_decls): Likewise.
14786         (declare_return_variable): Likewise.
14787         (declare_inline_vars): Likewise.
14788         (copy_forbidden): Adjust for new type of cfun->local_decls.
14789         (add_local_variables): New function.
14790         (expand_call_inline): Call it.
14791         (tree_function_versioning): Likewise.
14792
14793 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
14794
14795         AVX Programming Reference (June, 2010)
14796         * config/i386/cpuid.h (bit_F16C): New.
14797         (bit_RDRND): Likewise.
14798         (bit_FSGSBASE): Likewise.
14799
14800         * config/i386/i386-builtin-types.def: Add
14801         "DEF_FUNCTION_TYPE (UINT16)", function types for
14802         float16 <-> float conversions and
14803         "DEF_FUNCTION_TYPE (VOID, UINT64)".
14804
14805         * config/i386/i386-c.c (ix86_target_macros_internal): Support
14806         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
14807         OPTION_MASK_ISA_F16C.
14808
14809         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
14810         (OPTION_MASK_ISA_RDRND_SET): Likewise.
14811         (OPTION_MASK_ISA_F16C_SET): Likewise.
14812         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
14813         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
14814         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
14815         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
14816         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
14817         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
14818         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
14819         (override_options): Handle them.
14820         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
14821         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
14822         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
14823         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
14824         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
14825         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
14826         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
14827         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
14828         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
14829         (bdesc_args): Likewise.
14830         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
14831         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
14832         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
14833         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
14834         Handle non-memory store.
14835
14836         * config/i386/i386.h (TARGET_FSGSBASE): New.
14837         (TARGET_RDRND): Likewise.
14838         (TARGET_F12C): Likewise.
14839
14840         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
14841         (UNSPEC_VCVTPS2PH): Likewise.
14842         (UNSPECV_RDFSBASE): Likewise.
14843         (UNSPECV_RDGSBASE): Likewise.
14844         (UNSPECV_WRFSBASE): Likewise.
14845         (UNSPECV_WRGSBASE): Likewise.
14846         (UNSPECV_RDRAND): Likewise.
14847         (rdfsbase<mode>): Likewise.
14848         (rdgsbase<mode>): Likewise.
14849         (wrfsbase<mode>): Likewise.
14850         (wrgsbase<mode>): Likewise.
14851         (rdrand<mode>): Likewise.
14852
14853         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
14854
14855         * config/i386/immintrin.h (_rdrand_u16): New.
14856         (_rdrand_u32): Likewise.
14857         (_readfsbase_u32): Likewise.
14858         (_readfsbase_u64): Likewise.
14859         (_readgsbase_u32): Likewise.
14860         (_readgsbase_u64): Likewise.
14861         (_writefsbase_u32): Likewise.
14862         (_writefsbase_u64): Likewise.
14863         (_writegsbase_u32): Likewise.
14864         (_writegsbase_u64): Likewise.
14865         (_rdrand_u64): Likewise.
14866         (_cvtsh_ss): Likewise.
14867         (_mm_cvtph_ps): Likewise.
14868         (_mm256_cvtph_ps): Likewise.
14869         (_cvtss_sh): Likewise.
14870         (_mm_cvtps_ph): Likewise.
14871         (_mm256_cvtps_ph): Likewise.
14872
14873         * config/i386/sse.md (vcvtph2ps): New.
14874         (*vcvtph2ps_load): Likewise.
14875         (vcvtph2ps256): Likewise.
14876         (vcvtps2ph): Likewise.
14877         (*vcvtps2ph): Likewise.
14878         (*vcvtps2ph_store): Likewise.
14879         (vcvtps2ph256): Likewise.
14880
14881         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
14882
14883         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
14884
14885 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
14886
14887         PR bootstrap/44512
14888         * genenums.c (main): Output include of insn-constants.h
14889         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
14890
14891 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
14892
14893         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
14894         (override_options): Initialize it.
14895         (ix86_expand_prologue): Use it.
14896
14897 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
14898
14899         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
14900
14901 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
14902
14903         * double-int.h (fit_double_type): Remove declaration.
14904         * double-int.c (fit_double_type): Remove function.
14905         * tree.h (int_fits_type_p): Adjust prototype.
14906         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
14907         instead of fit_double_type.
14908         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
14909         instead of fit_double_type and build_int_cst_wide.
14910         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
14911         instead of fit_double_type and build_int_cst_wide.
14912         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
14913         of fit_double_type.
14914
14915 2010-07-05  Jan Hubicka  <jh@suse.cz>
14916
14917         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
14918         in_other_partition.
14919         * lto-cgraph.c (referenced_from_other_partition_p,
14920         reachable_from_other_partition_p): Use in_other_partition flags.
14921         (output_node, output_varpool_node): COMDAT nodes always have private
14922         copies and thus are never used from other partition.
14923
14924 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
14925
14926         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
14927         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
14928         * config/ia64/ia64.c Include reload.h.
14929         (ia64_memory_move_cost): New function.
14930         (TARGET_MEMORY_MOVE_COST): Define.
14931         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
14932         memory_move_cost.
14933
14934 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
14935
14936         PR middle-end/42505
14937         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
14938         comments about cost model.
14939         (try_add_cand_for):  Add second strategy for choosing initial set
14940         based on original IVs, controlled by ORIGINALP argument.
14941         (get_initial_solution): Add ORIGINALP argument.
14942         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
14943         (find_optimal_iv_set): Try two different strategies for choosing
14944         the IV set, and return the one with lower cost.
14945
14946 2010-07-05  Richard Guenther  <rguenther@suse.de>
14947
14948         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
14949
14950 2010-07-05  Richard Guenther  <rguenther@suse.de>
14951
14952         * tree.c (reference_alias_ptr_type): New function.
14953         * tree.h (reference_alias_ptr_type): Declare.
14954         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
14955         allow non-TARGET_MEM_REF new refs.
14956         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
14957         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
14958         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
14959         (create_mem_ref): Get alias pointer type.  Adjust calls to
14960         create_mem_ref_raw.
14961         (maybe_fold_tmr): Likewise.
14962         * tree-flow.h (create_mem_ref): Adjust prototype.
14963
14964 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
14965
14966         PR c++/44808
14967         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
14968         *from_p is VAR_DECL.
14969
14970 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
14971
14972         * tree.h (build_call_list): Remove.
14973         * tree.c (build_call_list): Remove.
14974
14975 2010-07-05  Richard Guenther  <rguenther@suse.de>
14976
14977         * double-int.h (double_int_sub): Declare.
14978         * double-int.c (double_int_sub): New function.
14979         * dwarf2out.c (field_byte_offset): Use it.
14980         * fixed-value.c (do_fixed_add): Likewise.
14981         (do_fixed_multiply): Likewise.
14982         (do_fixed_divide): Likewise.
14983         * tree-predcom.c (add_ref_to_chain): Likewise.
14984         (determine_roots_comp): Likewise.
14985         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
14986
14987 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
14988
14989         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
14990         implementations.
14991
14992 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
14993
14994         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
14995         * arm-modes.def (CC_NOTB): Don't define.
14996         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
14997         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
14998         (LTUGEU): New code_iterator.
14999         (cnb, optab): New corresponding code_attrs.
15000         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
15001         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
15002         using LTUGEU.
15003         (addsi3_carryin_shift_<optab>): Likewise.
15004         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
15005         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
15006         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
15007         (subsi3_compare): Renamed from subsi3_compare0_c.
15008         Change CC_NOTB to CC.
15009         (arm_subsi3_insn): Allow constants for operand 0.
15010         (compare_scc peephole for eq case): New.
15011         (compare_scc splitters): Change CC_NOTB to CC.
15012
15013 2010-07-05  Richard Guenther  <rguenther@suse.de>
15014
15015         * tree-ssa-loop-im.c (for_each_index): Do not handle
15016         ALIGN_INDIRECT_REF.
15017         (gen_lsm_tmp_name): Likewise.
15018         * tree-dump.c (dequeue_and_dump): Likewise.
15019         * tree-pretty-print.c (dump_generic_node): Likewise.
15020         (op_code_prio): Likewise.
15021         (op_symbol_code): Likewise.
15022         * tree.c (staticp): Likewise.
15023         (build1_stat): Likewise.
15024         * tree.h (INDIRECT_REF_P): Likewise.
15025         * fold-const.c (maybe_lvalue_p): Likewise.
15026         (operand_equal_p): Likewise.
15027         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15028         (ao_ref_init_from_vn_reference): Likewise.
15029         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
15030         (find_interesting_uses_address): Likewise.
15031         * dwarf2out.c (loc_list_from_tree): Likewise.
15032         * gimplify.c (gimplify_expr): Likewise.
15033         * tree-eh.c (tree_could_trap_p): Likewise.
15034         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
15035         * cfgexpand.c (expand_debug_expr): Likewise.
15036         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
15037         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
15038         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
15039         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
15040         * tree-ssa-operands.c (get_expr_operands): Likewise.
15041         * expr.c (safe_from_p): Likewise.
15042         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
15043         * tree-vect-data-refs.c (vect_setup_realignment): Build
15044         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
15045         * tree-vect-stmts.c (vectorizable_load): Likewise.
15046         * tree.def (ALIGN_INDIRECT_REF): Remove.
15047
15048 2010-07-05  Richard Guenther  <rguenther@suse.de>
15049
15050         PR tree-optimization/44784
15051         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
15052         for inserted stmts.
15053         (find_or_generate_expression): Fix SCCVN insertion check.
15054
15055 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
15056
15057         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
15058         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
15059         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
15060         directives.
15061
15062 2010-07-05  Ira Rosen  <irar@il.ibm.com>
15063
15064         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
15065         statements that are not vectorized.
15066         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
15067         in INSIDE_COST.
15068
15069 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
15070
15071         PR bootstrap/44820
15072         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
15073
15074 2010-07-05  Richard Guenther  <rguenther@suse.de>
15075
15076         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
15077         RESULT_DECLs properly.
15078
15079 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
15080
15081         PR rtl-optimization/44695
15082         * config/i386/i386.md (extract_code): Removed.
15083         (<u>divmodqi4): Likewise.
15084         (divmodqi4): New.
15085         (udivmodqi4): Likewise.
15086         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
15087         (udivmodhiqi3): Likewise.
15088
15089 2010-07-04  Jan Hubicka  <jh@suse.cz>
15090
15091         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
15092
15093 2010-07-04  Jan Hubicka  <jh@suse.cz>
15094
15095         * cgraphunit.c (init_cgraph): Only initialize dump file if it
15096         is not already initialized.
15097
15098 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
15099
15100         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
15101         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
15102         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
15103         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
15104         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
15105         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
15106         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
15107         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
15108         (sync_new_nand_optab): Redefine as macros.
15109         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
15110         Delete.
15111         (direct_optab_index): New enum.
15112         (direct_optab_d): New structure.
15113         (direct_optab): New typedef.
15114         (direct_optab_table): Declare.
15115         (direct_optab_handler, set_direct_optab_handler): New functions.
15116         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
15117         (sync_lock_release_optab): New macros.
15118         * optabs.c (direct_optab_table): New variable.
15119         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
15120         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
15121         cmpstr_optab and cmpstrn_optab.
15122         (emit_conditional_move): Likewise for movcc_optab.
15123         (can_conditionally_move_p): Likewise for movcc_gen_code.
15124         (init_insn_codes): Clear direct_optab_table.
15125         (init_optabs): Don't initialize the new "direct optabs" here.
15126         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
15127         vcond_gen_code.
15128         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
15129         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
15130         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
15131         (expand_sync_operation): Likewise other sync_*_optabs.
15132         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
15133         to sync_compare_and_swap_optab.
15134         (expand_sync_lock_test_and_set): Use direct_optab_handler for
15135         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
15136         to the names of both.
15137         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
15138         cmpstr_optab and cmpstrn_optab.
15139         (expand_builtin_lock_release): Likewise sync_lock_release.
15140         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
15141         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
15142         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
15143         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
15144         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
15145         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
15146         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
15147         (sync_lock_test_and_set, sync_lock_release): Delete.
15148         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
15149         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
15150         * genopinit.c (optabs): Use set_direct_optab_handler for the new
15151         macro optabs.
15152         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
15153         the "optab" local variable.  Use direct_optab_handler for optab and
15154         sync_compare_and_swap_optab.
15155         * reload1.c (reload_in_optab, reload_out_optab): Delete.
15156         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
15157         reload_in_optab and reload_out_optab.
15158         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
15159         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
15160         * config/pa/pa.c (pa_secondary_reload): Likewise.
15161         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
15162         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
15163         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
15164         (VMSupportsCS8_builtin): Likewise.
15165
15166 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
15167
15168         * optabs.h (optab_handlers): Change type of insn_code to int.
15169         (optab_handler, set_optab_handler, convert_optab_handler)
15170         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
15171         CODE_FOR_nothing".
15172         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
15173         (init_insn_codes): Zero both the above arrays.
15174         (init_optabs): Never call init_insn_codes first time around.
15175
15176 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
15177
15178         * optabs.h (optab_handler, convert_optab_handler): Turn into
15179         inline functions that return an insn code.
15180         (set_optab_handler, set_convert_optab_handler): New functions.
15181         * builtins.c: Replace optab_handler(X)->insn_code with
15182         optab_handler or set_optab_handler thoughout.  Likewise
15183         convert_optab_handler(X)->insn_code with convert_optab_handler
15184         and set_convert_optab_handler.
15185         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
15186         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
15187         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
15188         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
15189         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
15190         config/spu/spu.c: Likewise.
15191
15192 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
15193
15194         PR target/44531
15195         * config.gcc (sh*-*-*): Use regular expressions instead of
15196         the 'i' modifier for sed substitutions.
15197
15198 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
15199
15200         * gimple.c (gimple_body): Comments added.
15201
15202 2010-07-04  Richard Guenther  <rguenther@suse.de>
15203
15204         PR middle-end/44809
15205         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
15206         of an INDIRECT_REF.
15207
15208 2010-07-04  Richard Guenther  <rguenther@suse.de>
15209
15210         PR tree-optimization/44479
15211         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
15212         extra SSA name copy statements which preserves points-to
15213         information.
15214         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
15215         Copy points-to information for all pointers.  Properly handle
15216         MEM_REFs.
15217         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
15218         copy statements.
15219         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
15220         dependency.
15221
15222 2010-07-04  Richard Guenther  <rguenther@suse.de>
15223
15224         PR middle-end/44785
15225         * tree-inline.c (initialize_inlined_parameters): Do not
15226         re-use pointer-map slot over remap_type call.
15227
15228 2010-07-04  Richard Guenther  <rguenther@suse.de>
15229
15230         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
15231
15232 2010-07-04  Richard Guenther  <rguenther@suse.de>
15233
15234         PR tree-optimization/44656
15235         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
15236         again after value-replacing in the defintions lhs.
15237
15238 2010-07-04  Ira Rosen  <irar@il.ibm.com>
15239             Revital Eres  <eres@il.ibm.com>
15240
15241         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
15242         Document new arguments.
15243         * doc/tm.texi: Regenerate.
15244         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
15245         Handle unaligned store.
15246         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
15247         * target.def (builtin_vectorization_cost): Add new arguments.
15248         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
15249         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
15250         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
15251         (vect_vfa_segment_size): Fix indentation.
15252         * tree-vectorizer.h (struct _vect_peel_info): New.
15253         (struct _vect_peel_extended_info): New.
15254         (struct _loop_vec_info): Add new field for peeling hash table and a
15255         macro for its access.
15256         (VECT_MAX_COST): Define.
15257         (vect_get_load_cost): Declare.
15258         (vect_get_store_cost, vect_get_known_peeling_cost,
15259         vect_get_single_scalar_iteraion_cost): Likewise.
15260         (vect_supportable_dr_alignment): Add new argument.
15261         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
15262         field.
15263         (destroy_loop_vec_info): Free peeling hash table.
15264         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
15265         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
15266         vect_analyze_slp. Fix indentation.
15267         (vect_get_single_scalar_iteraion_cost): New function.
15268         (vect_get_known_peeling_cost): Likewise.
15269         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
15270         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
15271         statement. Move outside cost calculation inside unknown peeling case.
15272         Call vect_get_known_peeling_cost for known amount of peeling.
15273         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
15274         reference to the print message of forced alignment.
15275         (vect_verify_datarefs_alignment): Update call to
15276         vect_supportable_dr_alignment.
15277         (vect_get_data_access_cost): New function.
15278         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
15279         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
15280         vect_peeling_hash_choose_best_peeling): Likewise.
15281         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
15282         to store all the accesses in the loop and find best possible access to
15283         align using peeling for known alignment case. For unknown alignment
15284         check if stores are preferred or if peeling is worthy.
15285         (vect_find_same_alignment_drs): Analyze pairs of loads too.
15286         (vect_supportable_dr_alignment): Add new argument and check aligned
15287         accesses according to it.
15288         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
15289         (cost_for_stmt): Call vect_get_stmt_cost.
15290         (vect_model_simple_cost): Likewise.
15291         (vect_model_store_cost): Call vect_get_stmt_cost. Call
15292         vect_get_store_cost to calculate the cost of the statement.
15293         (vect_get_store_cost): New function.
15294         (vect_model_load_cost): Call vect_get_stmt_cost. Call
15295         vect_get_load_cost to calculate the cost of the statement.
15296         (vect_get_load_cost): New function.
15297         (vectorizable_store): Update call to vect_supportable_dr_alignment.
15298         (vectorizable_load): Likewise.
15299         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
15300         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
15301         arguments. Handle unaligned store.
15302         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
15303         (rs6000_builtin_support_vector_misalignment): Return true for word and
15304         double word alignments for VSX.
15305         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
15306         vect_supportable_dr_alignment and builtin_vectorization_cost.
15307
15308 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15309
15310         PR target/44597
15311         * config/pa/predicates.md (prefetch_cc_operand): Remove.
15312         (prefetch_nocc_operand): Likewise.
15313         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
15314         (prefetch_20): New insn.
15315         (prefetch_cc): Remove.
15316         (prefetch_nocc): Likewise.
15317
15318 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15319
15320         * expr.c (vector_mode_valid_p): Move to c-common.c.
15321         * expr.h (vector_mode_valid_p): Do not declare here.
15322         * system.h: Poison GCC_EXPR_H in front-ends.
15323         * Makefile.in: Update dependencies.
15324
15325 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15326
15327         PR target/44705
15328         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
15329
15330 2010-07-03  Jan Hubicka  <jh@suse.cz>
15331
15332         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
15333         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
15334         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
15335         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
15336         Likewise.
15337
15338         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
15339         Update timevars.V
15340         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
15341         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
15342         TV_IPA_LTO_DECL_OUT): New.
15343         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
15344
15345 2010-07-03  Jan Hubicka  <jh@suse.cz>
15346
15347         * ipa-inline.c (update_edge_key): Break out from ...
15348         update_callers_keys): ... here;
15349         (update_callee_keys): Update only the edges from caller to callee.
15350         (update_all_calle_keys): Do what update_calle_keys did.
15351         (decide_inlining_of_small_functions): Avoid recomputing of all
15352         callees when badness increase.
15353
15354 2010-07-03  Jie Zhang  <jie@codesourcery.com>
15355
15356         * config/arm/arm.c (arm_attr_length_move_neon): New.
15357         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
15358         * config/arm/neon.md (define_mode_attr V_slen): Remove.
15359         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
15360         to compute length attribute.
15361
15362 2010-07-03  Jie Zhang  <jie@codesourcery.com>
15363
15364         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
15365         as predicate for operand 1 and remove its constraint.
15366         * config/arm/predicates.md (vfp_register_operand): New.
15367         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
15368         (*push_fp_multi): Likewise.
15369
15370 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
15371
15372         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
15373
15374 2010-07-03  Jan Hubicka  <jh@suse.cz>
15375
15376         * config/i386/i386.c (override_options): Revert accidental commit.
15377
15378 2010-07-02  Le-Chun Wu  <lcwu@google.com>
15379
15380         PR c++/44128
15381         * doc/invoke.texi: Update documentation of -Wshadow.
15382
15383 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
15384             Julian Brown  <julian@codesourcery.com>
15385             Sandra Loosemore  <sandra@codesourcery.com>
15386
15387         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
15388         comparisons.  Adjust to take both operands.
15389         (arm_select_cc_mode): Handle DImode comparisons.
15390         (arm_gen_compare_reg): Generate a scratch register for DImode
15391         comparisons which require one.  Use xor for Thumb equality checks.
15392         (arm_const_double_by_immediates): New.
15393         (arm_print_operand): Allow 'Q' and 'R' for constants.
15394         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
15395         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
15396         arm_canonicalize_comparison.
15397         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
15398         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
15399         prototype.
15400         (arm_const_double_by_immediates): Declare.
15401         * config/arm/constraints.md (Di): New constraint.
15402         * config/arm/predicates.md (arm_immediate_di_operand)
15403         (arm_di_operand, cmpdi_operand): New.
15404         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
15405         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
15406         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
15407         (cstoredi4): Handle non-Cirrus also.
15408
15409 2010-07-02  Julian Brown  <julian@codesourcery.com>
15410             Sandra Loosemore  <sandra@codesourcery.com>
15411
15412         PR target/43703
15413         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
15414         (smax<mode>3): Disable for NEON float modes when
15415         flag_unsafe_math_optimizations is false.
15416         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
15417         (*mul<mode>3_neon)
15418         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
15419         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
15420         for NEON float modes when flag_unsafe_math_optimizations is false.
15421         (quad_halves_<code>v4sf): Only enable if
15422         flag_unsafe_math_optimizations is true.
15423         * doc/invoke.texi (ARM Options): Add note about floating point
15424         vectorization requiring -funsafe-math-optimizations.
15425
15426 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
15427             Julian Brown  <julian@codesourcery.com>
15428
15429         * config/arm/neon.md (UNSPEC_VABA): Delete.
15430         (UNSPEC_VABAL): Delete.
15431         (UNSPEC_VABS): Delete.
15432         (UNSPEC_VMUL_N): Delete.
15433         (adddi3_neon): New.
15434         (subdi3_neon): New.
15435         (mul<mode>3add<mode>_neon): Make the pattern named.
15436         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
15437         (neon_vadd<mode>): Replace with define_expand, and move the remaining
15438         unspec parts...
15439         (neon_vadd<mode>_unspec): ...to this.
15440         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
15441         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
15442         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
15443         (neon_vaba<mode>): Rewrite in terms of vabd.
15444         (neon_vabal<mode>): Rewrite in terms of vabdl.
15445         (neon_vabs<mode>): Rewrite without unspec.
15446         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
15447         (*arm_subdi3): Likewise.
15448         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
15449         No_op attribute to disable assembly output checks.
15450         * config/arm/arm_neon.h: Regenerated.
15451         * doc/arm-neon-intrinsics.texi: Regenerated.
15452
15453 2010-07-02  Jan Hubicka  <jh@suse.cz>
15454
15455         * ipa-split.c (split_function): For aggregate values, set the return
15456         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
15457         *<retval> = fncall.part ().
15458         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
15459
15460 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
15461
15462         * config/arm/neon.md (UNSPEC_VAND): Delete.
15463         (UNSPEC_VBIC): Delete.
15464         (UNSPEC_VCLZ): Delete.
15465         (UNSPEC_VCNT): Delete.
15466         (UNSPEC_VEOR): Delete.
15467         (UNSPEC_VORN): Delete.
15468         (UNSPEC_VORR): Delete.
15469         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
15470         core registers too.
15471         (anddi3_neon): Likewise.
15472         (orndi3_neon): Likewise.
15473         (bicdi3_neon): Likewise.
15474         (xordi3_neon): Likewise.
15475         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
15476         rid of unspec and handle unused operand.
15477         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
15478         * config/arm/predicates.md (imm_for_neon_logic_operand):
15479         Require TARGET_NEON.
15480         (imm_for_neon_inv_logic_operand): Likewise.
15481         * config/arm/arm.md (define_split for logical_binary_operator):
15482         Disable for NEON registers.
15483         (anddi3): Add new define_expand, and rename the insn.  Disable
15484         this insn for NEON, where anddi3_neon now applies.
15485         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
15486         (iordi3): As for anddi3.
15487         (xordi3): Likewise.
15488         * config/arm/neon.ml (Vand): Split DImode variants and mark them
15489         as No_op to disable testing for exact instruction match.
15490         (Vorr): Likewise.
15491         (Veor): Likewise.
15492         (Vbic): Likewise.
15493         (Vorn): Likewise.
15494         * config/arm/arm_neon.h: Regenerated.
15495         * doc/arm-neon-intrinsics.texi: Regenerated.
15496
15497 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
15498
15499         * expr.h (emit_stack_probe): Declare.
15500         * explow.c (emit_stack_probe): Make global.
15501         (anti_adjust_stack_and_probe): Fix comments.
15502         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
15503         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15504         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15505         * config/sparc/sparc.c: Include except.h.
15506         (sparc_emit_probe_stack_range): New function.
15507         (output_probe_stack_range): Likewise.
15508         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
15509         built-in stack checking is enabled.
15510         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
15511         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
15512         (probe_stack_range): New insn.
15513
15514 2010-07-02  Richard Guenther  <rguenther@suse.de>
15515
15516         PR target/43958
15517         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
15518         for argument alignment.
15519
15520 2010-07-02  Jan Hubicka  <jh@suse.cz>
15521
15522         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
15523         walk backwards from entry_bb to check only those basic block of header
15524         that might lead to execution of split part.
15525         (consider_split) ... here.
15526         (find_return_bb): Allow assignment in return BB.
15527         (find_retval): New.
15528         (split_function): Fix name of cloned function; take care of updating
15529         return value in return_bb containing move.
15530
15531 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
15532
15533         PR target/44771
15534         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
15535         used variable insn.
15536
15537 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
15538
15539         * implicit-zee.c (combine_reaching_defs): Fix long lines.
15540         (is_set_with_extension_DI): Delete.
15541         (struct zero_extend_info): New structure.
15542         (add_removable_zero_extend): New function.
15543         (find_removable_zero_extends): Use note_stores to find SETs.
15544         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
15545
15546 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
15547
15548         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
15549         is_miss_rate_acceptable. Pull total_positions computation
15550         out of the loops.  Early return if miss_positions exceeds
15551         the acceptable threshold.
15552         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
15553         is_miss_rate_acceptable after renaming of compute_miss_rate.
15554
15555 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
15556
15557         PR middle-end/44576
15558         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
15559         of 1000) for miss rate if the address diference is greater than or
15560         equal to the cache line size (the two reference will never hit the
15561         same cache line).
15562
15563 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
15564
15565         PR target/42835
15566         * config/arm/arm-modes.def (CC_NOTB): New mode.
15567         * config/arm/arm.c (get_arm_condition_code): Handle it.
15568         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
15569         * config/arm/arm.md (subsi3_compare0_c): New pattern.
15570         (compare_scc): Now a define_and_split.  Add a number of extra
15571         splitters before it.
15572
15573         PR target/42172
15574         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
15575         and ZERO_EXTEND.
15576         (arm_rtx_costs_1): Likewise.
15577         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
15578         * config/arm/arm.md (is_arch6): New attribute.
15579         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
15580         extendqisi2): Tighten the code somewhat, avoiding invalid
15581         RTL to occur in the expander patterns.
15582         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
15583         (thumb1_zero_extendhisi2_v6): Delete.
15584         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
15585         (thumb1_extendhisi2_v6): Delete.
15586         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
15587         (thumb1_extendqisi2_v6): Delete.
15588         (zero_extendhisi2 for register input splitter): New.
15589         (zero_extendqisi2 for register input splitter): New.
15590         (thumb1_extendhisi2 for register input splitter): New.
15591         (extendhisi2 for register input splitter): New.
15592         (extendqisi2 for register input splitter): New.
15593         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
15594         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
15595         and add support for a register alternative requiring a split.
15596         (thumb1_zero_extendqisi2): Likewise.
15597         (arm_zero_extendqisi2): Likewise.
15598         (arm_extendhisi2): Likewise.
15599         (arm_extendqisi2): Likewise.
15600
15601 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
15602
15603         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
15604         instead of an unspec.
15605         (neon_expand_vector_init): Likewise.
15606         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
15607         (UNSPEC_VDUP_LANE): Delete.
15608         (UNSPEC VDUP_N): Delete.
15609         (UNSPEC_VGET_HIGH): Delete.
15610         (UNSPEC_VGET_LANE): Delete.
15611         (UNSPEC_VGET_LOW): Delete.
15612         (UNSPEC_VMVN): Delete.
15613         (UNSPEC_VSET_LANE): Delete.
15614         (V_double_vector_mode): New.
15615         (vec_set<mode>_internal): Make code emitted match that for the
15616         corresponding intrinsics.
15617         (vec_setv2di_internal): Likewise.
15618         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
15619         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
15620         (neon_vset_lane<mode>): Combine double and quad patterns and
15621         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
15622         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
15623         (neon_vdup_n<mode>): Rewrite RTL without unspec.
15624         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
15625         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
15626         with neon_vdup_lanev2di, adjusting the pattern from the latter
15627         to be predicable for consistency.
15628         (neon_vdup_lane<mode>_internal): New.
15629         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
15630         to avoid using an unspec.
15631         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
15632         (neon_vdup_lanev2di): Turn into a define_expand.
15633         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
15634         (neon_vget_high<mode>): Replace with....
15635         (neon_vget_highv16qi): New pattern using canonical RTL.
15636         (neon_vget_highv8hi): Likewise.
15637         (neon_vget_highv4si): Likewise.
15638         (neon_vget_highv4sf): Likewise.
15639         (neon_vget_highv2di): Likewise.
15640         (neon_vget_low<mode>): Replace with....
15641         (neon_vget_lowv16qi): New pattern using canonical RTL.
15642         (neon_vget_lowv8hi): Likewise.
15643         (neon_vget_lowv4si): Likewise.
15644         (neon_vget_lowv4sf): Likewise.
15645         (neon_vget_lowv2di): Likewise.
15646
15647         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
15648         test for this emitting vmov.
15649         (Vset_lane): Likewise.
15650         (Vdup_n): Likewise.
15651         (Vmov_n): Likewise.
15652
15653         * doc/arm-neon-intrinsics.texi: Regenerated.
15654
15655 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
15656
15657         * config/arm/neon.md (vec_extractv2di): Correct error in register
15658         numbering to reconcile with neon_vget_lanev2di.
15659
15660 2010-07-02  Richard Guenther  <rguenther@suse.de>
15661
15662         * tree-ssa-structalias.c (pt_solution_set_var): New function.
15663         * tree-ssa-alias.h (pt_solution_set_var): Declare.
15664         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
15665         points-to information.
15666
15667 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
15668
15669         * config/s390/s390.c (override_options): Adopt prefetching
15670         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
15671
15672 2010-07-02  Jan Hubicka  <jh@suse.cz>
15673
15674         * df-problems.c (df_kill_notes): Do not collect dead  notes.
15675         (df_set_note): Just call add_reg_note.
15676         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
15677         df_create_unused_note): Do not deal with lists of old notes.
15678         (df_note_bb_compute): Likewise.
15679
15680 2010-07-02  Richard Guenther  <rguenther@suse.de>
15681
15682         * tree-ssa-structalias.c (find_func_aliases): Handle
15683         pointer alignment via BIT_AND_EXPR.
15684         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
15685
15686 2010-07-02  Richard Guenther  <rguenther@suse.de>
15687
15688         * tree-data-ref.c (initialize_data_dependence_relation): Handle
15689         mismatching number of dimensions properly.
15690
15691 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15692
15693         PR target/44707
15694         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
15695         (lo_sum (high ...) ...) patterns generated by earlier passes.
15696
15697 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15698
15699         * doc/install.texi (Prerequisites): Document Perl requirement on
15700         Solaris 2.
15701         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
15702
15703 2010-07-02  Richard Guenther  <rguenther@suse.de>
15704
15705         PR middle-end/44777
15706         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
15707
15708 2010-07-02  Jan Hubicka  <jh@suse.cz>
15709
15710         PR middle-end/44706
15711         * predict.c (predict_paths_for_bb): Handle case when control dependence
15712         BB has only abnormal edges.
15713
15714 2010-07-02  Richard Guenther  <rguenther@suse.de>
15715
15716         PR tree-optimization/44748
15717         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
15718         the embedded conversion in MEM_REFs.
15719
15720 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
15721
15722         * reload.c: Include toplev.h.
15723         * recog.c:  Likewise.
15724         * Makefile.in: Adjust dependencies.
15725
15726 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
15727
15728         PR debug/44694
15729         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
15730         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
15731
15732 2010-07-01  Richard Guenther  <rguenther@suse.de>
15733
15734         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
15735         types for offsets.
15736
15737 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
15738
15739         PR target/44732
15740         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
15741         Fix argument types.
15742
15743 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
15744
15745         PR target/44727
15746         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
15747         Make sure operand 0 dies.
15748
15749 2010-07-01  Richard Guenther  <rguenther@suse.de>
15750
15751         PR middle-end/42834
15752         PR middle-end/44468
15753         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
15754         * doc/generic.texi (References to storage): Document MEM_REF.
15755         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
15756         (print_call_name): Likewise.
15757         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
15758         (build_simple_mem_ref_loc): New function.
15759         (mem_ref_offset): Likewise.
15760         * tree.h (build_simple_mem_ref_loc): Declare.
15761         (build_simple_mem_ref): Define.
15762         (mem_ref_offset): Declare.
15763         * fold-const.c: Include tree-flow.h.
15764         (operand_equal_p): Handle MEM_REF.
15765         (build_fold_addr_expr_with_type_loc): Likewise.
15766         (fold_comparison): Likewise.
15767         (fold_unary_loc): Fold
15768         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
15769         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
15770         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
15771         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
15772         (ptr_deref_may_alias_ref_p_1): Likewise.
15773         (ao_ref_base_alias_set): Properly differentiate base object for
15774         offset and TBAA.
15775         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
15776         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
15777         (indirect_refs_may_alias_p): Likewise.
15778         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
15779         chasing code.
15780         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
15781         (call_may_clobber_ref_p_1): Likewise.
15782         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
15783         * expr.c (expand_assignment): Handle MEM_REF.
15784         (store_expr): Handle MEM_REFs from STRING_CSTs.
15785         (store_field): If expanding a MEM_REF of a non-addressable
15786         decl use bitfield operations.
15787         (get_inner_reference): Handle MEM_REF.
15788         (expand_expr_addr_expr_1): Likewise.
15789         (expand_expr_real_1): Likewise.
15790         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
15791         * alias.c (ao_ref_from_mem): Handle MEM_REF.
15792         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
15793         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
15794         (dr_analyze_indices): Likewise.
15795         (dr_analyze_alias): Likewise.
15796         (object_address_invariant_in_loop_p): Likewise.
15797         * gimplify.c (mark_addressable): Handle MEM_REF.
15798         (gimplify_cond_expr): Build MEM_REFs.
15799         (gimplify_modify_expr_to_memcpy): Likewise.
15800         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
15801         (gimple_fold_indirect_ref): Adjust.
15802         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
15803         * tree.def (MEM_REF): New tree code.
15804         * tree-dfa.c: Include toplev.h.
15805         (get_ref_base_and_extent): Handle MEM_REF.
15806         (get_addr_base_and_unit_offset): New function.
15807         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
15808         * gimple-fold.c (may_propagate_address_into_dereference): Handle
15809         MEM_REF.
15810         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
15811         accesses if the array has just one dimension.  Remove always true
15812         parameter.  Do not require type compatibility here.
15813         (maybe_fold_offset_to_component_ref): Remove.
15814         (maybe_fold_stmt_indirect): Remove.
15815         (maybe_fold_reference): Remove INDIRECT_REF handling.
15816         Fold back to non-MEM_REF.
15817         (maybe_fold_offset_to_address): Simplify.  Deal with type
15818         mismatches here.
15819         (maybe_fold_reference): Likewise.
15820         (maybe_fold_stmt_addition): Likewise.  Also handle
15821         &ARRAY + I in addition to &ARRAY[0] + I.
15822         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
15823         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
15824         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
15825         * tree-ssa.c (useless_type_conversion_p): Make most pointer
15826         conversions useless.
15827         (warn_uninitialized_var): Handle MEM_REF.
15828         (maybe_rewrite_mem_ref_base): New function.
15829         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
15830         to SSA form.
15831         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
15832         INDIRECT_REF handling.
15833         (copy_tree_body_r): Handle MEM_REF.
15834         * gimple.c (is_gimple_addressable): Adjust.
15835         (is_gimple_address): Likewise.
15836         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
15837         invariant base are invariant.
15838         (is_gimple_min_lval): Adjust.
15839         (is_gimple_mem_ref_addr): New function.
15840         (get_base_address): Handle MEM_REF.
15841         (count_ptr_derefs): Likewise.
15842         (get_base_loadstore): Likewise.
15843         * gimple.h (is_gimple_mem_ref_addr): Declare.
15844         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
15845         * tree-cfg.c (verify_address): New function, split out from ...
15846         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
15847         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
15848         INDIRECT_REFs.
15849         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
15850         INDIRECT_REF.  Allow conversions.
15851         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
15852         a register does not change its size.
15853         (verify_types_in_gimple_reference): Verify MEM_REF.
15854         (verify_gimple_assign_single): Disallow INDIRECT_REF.
15855         Handle MEM_REF.
15856         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
15857         New.
15858         (mark_address_taken): Handle MEM_REF.
15859         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
15860         (get_asm_expr_operands): Pass opf_not_non_addressable.
15861         (get_expr_operands): Handle opf_[not_]non_addressable.
15862         Handle MEM_REF.  Remove INDIRECT_REF handling.
15863         * tree-vrp.c (check_array_ref): Handle MEM_REF.
15864         (search_for_addr_array): Likewise.
15865         (check_array_bounds): Likewise.
15866         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
15867         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
15868         (ref_always_accessed_p): Likewise.
15869         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
15870         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
15871         Handle MEM_REF.
15872         * cgraphbuild.c (mark_load): Properly check for NULL result
15873         from get_base_address.
15874         (mark_store): Likewise.
15875         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
15876         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
15877         handling for MEM_REF.
15878         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
15879         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
15880         * builtins.c (stabilize_va_list_loc): Use the function ABI
15881         valist type if we couldn't canonicalize the argument type.
15882         Always dereference with the canonical va-list type.
15883         (maybe_emit_free_warning): Handle MEM_REF.
15884         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
15885         memmove to memcpy.
15886         * builtins.c (fold_builtin_memory_op): Use ref-all types
15887         for all memcpy foldings.
15888         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
15889         (build_outer_var_ref): Likewise.
15890         (scan_omp_1_op): Likewise.
15891         (lower_rec_input_clauses): Likewise.
15892         (lower_lastprivate_clauses): Likewise.
15893         (lower_reduction_clauses): Likewise.
15894         (lower_copyprivate_clauses): Likewise.
15895         (expand_omp_atomic_pipeline): Likewise.
15896         (expand_omp_atomic_mutex): Likewise.
15897         (create_task_copyfn): Likewise.
15898         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
15899         Remove old union trick.  Initialize constant offsets.
15900         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
15901         INDIRECT_REF.  Init base_alias_set properly.
15902         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
15903         (vn_reference_fold_indirect): Adjust for MEM_REFs.
15904         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
15905         for ARRAY_REFs.
15906         (may_insert): Remove.
15907         (visit_reference_op_load): Do not test may_insert.
15908         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
15909         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
15910         a field to store the constant offset this op applies.
15911         (run_scc_vn): Adjust prototype.
15912         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
15913         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
15914         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
15915         bother about volatile qualifiers on pointers.
15916         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
15917         * tree-ssa-loop-ivopts.c
15918         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
15919         (strip_offset_1): Likewise.
15920         (find_interesting_uses_address): Replace INDIRECT_REF handling with
15921         MEM_REF handling.
15922         (get_computation_cost_at): Likewise.
15923         * ipa-pure-const.c (check_op): Handle MEM_REF.
15924         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
15925         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
15926         and constants.
15927         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
15928         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
15929         (eliminate_local_variables_1): Likewise.
15930         (create_call_for_reduction_1): Likewise.
15931         (create_loads_for_reductions): Likewise.
15932         (create_loads_and_stores_for_name): Likewise.
15933         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
15934         (ssa_accessed_in_tree): Handle MEM_REF.
15935         (ssa_accessed_in_assign_rhs): Likewise.
15936         (update_type_size): Likewise.
15937         (analyze_accesses_for_call_stmt): Likewise.
15938         (analyze_accesses_for_assign_stmt): Likewise.
15939         (transform_access_sites): Likewise.
15940         (transform_allocation_sites): Likewise.
15941         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
15942         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
15943         not handle INDIRECT_REF.
15944         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
15945         (cond_store_replacement): Likewise.
15946         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
15947         MEM_REF, no not handle INDIRECT_REFs.
15948         (insert_into_preds_of_block): Properly initialize avail.
15949         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
15950         for ARRAY_REFs.  Properly handle reference lookups that
15951         require a bit re-interpretation.
15952         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
15953         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
15954         (build_ref_for_offset_1): Remove.
15955         (build_ref_for_offset): Build MEM_REFs.
15956         (gate_intra_sra): Disable for now.
15957         (sra_ipa_modify_expr): Handle MEM_REF.
15958         (ipa_early_sra_gate): Disable for now.
15959         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
15960         MEM_REF handling.
15961         (disqualify_base_of_expr): Likewise.
15962         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
15963         MEM_REF handling.
15964         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
15965         Use mem_ref_offset.  Remove bogus folding.
15966         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
15967         (make_fancy_name_1): Add support for MEM_REF.
15968         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
15969         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
15970         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
15971         (compute_complex_ancestor_jump_func): Likewise.
15972         (ipa_analyze_virtual_call_uses): Likewise.
15973         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
15974         INDIRECT_REF folding with more generalized MEM_REF folding.
15975         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
15976         (forward_propagate_addr_into_variable_array_index): Also handle
15977         &ARRAY + I in addition to &ARRAY[0] + I.
15978         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
15979         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
15980         creates assignments with overlap.
15981         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
15982         (get_frame_field): Likewise.
15983         (get_nonlocal_debug_decl): Likewise.
15984         (convert_nonlocal_reference_op): Likewise.
15985         (struct nesting_info): Add mem_refs pointer-set.
15986         (create_nesting_tree): Allocate it.
15987         (convert_local_reference_op): Insert to be folded mem-refs.
15988         (fold_mem_refs): New function.
15989         (finalize_nesting_tree_1): Perform defered folding of mem-refs
15990         (free_nesting_tree): Free the pointer-set.
15991         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
15992         (vectorizable_load): Likewise.
15993         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
15994         (propagate_with_phi): Likewise.
15995         * tree-object-size.c (addr_object_size): Handle MEM_REFs
15996         instead of INDIRECT_REFs.
15997         (compute_object_offset): Handle MEM_REF.
15998         (plus_stmt_object_size): Handle MEM_REF.
15999         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
16000         for &MEM_REF.
16001         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
16002         (symbol_marked_for_renaming): Likewise.
16003         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
16004         (fold-const.o): Add $(TREE_FLOW_H).
16005         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
16006         (find_func_clobbers): Likewise.
16007         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
16008         (decompose_access): Likewise.
16009         (replace_field_acc): Likewise.
16010         (replace_field_access_stmt): Likewise.
16011         (insert_new_var_in_stmt): Likewise.
16012         (get_stmt_accesses): Likewise.
16013         (reorg_structs_drive): Disable.
16014         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
16015         (ix86_canonical_va_list_type): Likewise.
16016
16017 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
16018
16019         PR other/44566
16020         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
16021         * target.def (struct gcc_target): Replace enum reg_class with
16022         reg_class_t in hook argument / return types.
16023         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
16024         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
16025         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
16026         * targhooks.h (default_branch_target_register_class): Likewise.
16027         (default_ira_cover_classes, default_secondary_reload): Likewise.
16028         (default_memory_move_cost, default_register_move_cost): Likewise.
16029         * targhooks.c (default_branch_target_register_class): Likewise.
16030         (default_ira_cover_classes, default_secondary_reload): Likewise.
16031         (default_memory_move_cost, default_register_move_cost): Likewise.
16032         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
16033         * bt-load.c (branch_target_load_optimize): Likewise.
16034         * ira.c (setup_cover_and_important_classes): Likewise.
16035         * ira-costs.c (copy_cost): Likewise.
16036         * reload1.c (emit_input_reload_insns): Likewise.
16037         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
16038         * config/frv/frv.c (frv_secondary_reload): Likewise.
16039         * config/s390/s390.c (s390_secondary_reload): Likewise.
16040         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
16041         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
16042         (ix86_register_move_cost): Likewise.
16043         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
16044         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
16045         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
16046         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
16047         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
16048         (rs6000_ira_cover_classes): Likewise.
16049         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
16050         * config/picochip/picochip-protos.h (picochip_secondary_reload):
16051         Likewise.
16052         * config/pa/pa.c (pa_secondary_reload): Likewise.
16053         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
16054         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
16055         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
16056         * doc/tm.texi: Regenerate.
16057
16058 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
16059
16060         PR bootstrrap/44726
16061         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
16062         use.
16063         (build_alias_set_optimal_p): Likewise.
16064         (build_base_obj_set_for_drs): Likewise.
16065
16066 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
16067
16068         * target.def: Remove comment about licensing problems of function
16069         declarations.
16070
16071         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
16072         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
16073         * doc/tm.texi: Regenerate.
16074
16075         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
16076         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
16077
16078         * target.def (enum_va_list_p): Use DEFHOOK.
16079         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
16080         Rename ptype to ptree.
16081         * doc/tm.texi: Regenerate.
16082
16083         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
16084         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
16085         * doc/tm.texi: Regenerate.
16086
16087         * target.def (memory_move_cost): Use DEFHOOK.
16088         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
16089         Rename regclass AKA class to rclass.
16090         * doc/tm.texi: Regenerate.
16091
16092         * target.def (pragma_parse): Use DEFHOOK.
16093         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
16094         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
16095         * doc/tm.texi: Regenerate.
16096
16097         * target.def (pass_by_reference): Use DEFHOOK.
16098         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
16099         * doc/tm.texi: Regenerate.
16100
16101         * target.def (resolve_overloaded_builtin): Rename params to arglist.
16102         Use DEFHOOK.
16103         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
16104         * doc/tm.texi: Regenerate.
16105
16106         * target.def (return_pops_args): Use DEFHOOK.
16107         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
16108         Rename stack-size to size.
16109         * doc/tm.texi: Regenerate.
16110
16111         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
16112         last-sched_cycle to last_clock, cur_cycle to clock.
16113         * doc/tm.texi.in: Use @hook.
16114         * doc/tm.texi: Regenerate.
16115
16116         * target.def (print_operand, print_operand_address): Update comment.
16117         (print_operand_punct_valid_p): Likewise.
16118
16119 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16120
16121         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
16122         to rtl.h.
16123         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
16124         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
16125         * rtl-error.h: New.
16126         * regrename.c: Do not include toplev.h. Include rtl-error.h.
16127         * rtl-error.c: Likewise.
16128         * reload.c: Likewise.
16129         * recog.c:  Likewise.
16130         * sel-sched.c: Likewise.
16131         * function.c: Likewise.
16132         * reg-stack.c: Likewise.
16133         * cfgrtl.c: Likewise.
16134         * reload1.c: Likewise.
16135         * final.c: Include rtl-error.
16136         * Makefile.in: Adjust dependencies.
16137
16138 2010-06-30  Jan Hubicka  <jh@suse.cz>
16139
16140         PR middle-end/PR44706
16141         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
16142         to return the value.
16143
16144 2010-06-30  Michael Matz  <matz@suse.de>
16145
16146         PR bootstrap/44699
16147         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
16148         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
16149         a gimple reg, attach the original VDEF to the last store in the
16150         sequence.
16151
16152 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
16153
16154         PR other/44034
16155         * config/darwin.c (darwin_override_options): Use renamed
16156         targetm.asm_out.emit_unwind_label.
16157
16158 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
16159
16160         PR tree-optimization/39799
16161         * tree-inline.c (remap_ssa_name): Initialize variable only if
16162         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
16163
16164 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
16165
16166         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
16167
16168 2010-06-30  Richard Guenther  <rguenther@suse.de>
16169
16170         PR target/44722
16171         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
16172         against oscillation with reverse peephole2.
16173
16174 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
16175
16176         PR target/44721
16177         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
16178         Fix last commit.
16179
16180 2010-06-30  Nick Clifton  <nickc@redhat.com>
16181
16182         * config/rx/rx-modes.def: New file.
16183         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
16184         (CC_REGNUM): Define.
16185         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
16186         register.
16187         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
16188         (SELECT_CC_MODE): Define.
16189         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
16190         (reg:CC CC_REG) instead of (cc0).
16191         (attr "cc"): Delete.
16192         (cbranchsi4): Do not split compare and branch here. Instead move
16193         it to...
16194         (cbranchsi4_<code>): ... here.  New patterns.
16195         (cmpsi): Call rx-compare_redundant to find out if it is necessary
16196         to emit the compare instruction.
16197         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
16198         cc_status flags.
16199         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
16200         FIRST_PSEUDO_REGNUM.
16201         (rx_expand_prologue, rx_expand_epilogue): Likewise.
16202         (rx_notice_update_cc): Delete.
16203         (rx_cc_modes_compatible): New function.
16204         (flags_needed_for_conditional): New function.
16205         (flags_from_mode): New function.
16206         (rx_compare_redundant): New function - scans backwards through
16207         insn list to find out if condition flags are already set correctly.
16208         (TARGET_CC_MODES_COMPATIBLE): Define.
16209         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
16210
16211         * config/rx/rx.h (BRANCH_COST): Define.
16212         (REGISTER_MOVE_COST): Define.
16213         * config/rx/predicates (rx_source_operand): Allow all constant types.
16214         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
16215         (tstsi4): New pattern.
16216         * config/rx/rx.c (rx_memory_move_cost): Define.
16217         (TARGET_MEMORY_MOVE_COST): Define.
16218
16219 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16220
16221         * tree.h (block_may_fallthru): Declare here.
16222         * tree-flow.h (block_may_fallthru): Do not declare here.
16223         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
16224         bitmap.h
16225         * Makefile.in (c-typeck.o): Update dependencies.
16226
16227 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
16228
16229         PR debug/44694
16230         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
16231         * cselib.c (cfa_base_preserved_regno): New static variable.
16232         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
16233         of REGNO (cfa_base_preserved_val->locs->loc).
16234         (cselib_preserve_cfa_base_value): Add regno argument, set
16235         cfa_base_preserved_regno to it.
16236         (cselib_invalidate_regno): Allow removal of registers other than
16237         cfa_base_preserved_regno from cfa_base_preserved_val.
16238         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
16239         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
16240         of MEM addresses, if not on LHS.
16241         (reverse_op): Don't add reverse ops for cfa_base_rtx.
16242         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
16243
16244 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
16245
16246         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
16247         static variables.
16248         (peep2_buf_position): New static function.
16249         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
16250         peephole2_optimize): Use it.
16251         (peep2_attempt, peep2_update_life): New static functions, broken out
16252         of peephole2_optimize.
16253         (peep2_fill_buffer): New static function.
16254         (peephole2_optimize): Change the main loop to try to fill the buffer
16255         with the maximum number of insns before matching them against
16256         peepholes.  Use a forward scan.  Remove special case for targets with
16257         conditional execution.
16258         * genrecog.c (change_state): Delete dead code.
16259         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
16260         Rewrite so as not to expect the second insn to have had a peephole
16261         applied yet.
16262
16263 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
16264
16265         * genhooks.c (emit_findices): Cast field precision to int.
16266         (emit_documentation): Likewise.
16267
16268 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
16269
16270         PR tree-optimization/43801
16271         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
16272         if old_decl was DECL_ONE_ONLY.
16273
16274         PR debug/44668
16275         * dwarf2out.c (add_accessibility_attribute): New function.
16276         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
16277         instead of adding DW_AT_accessibility manually.
16278         (gen_enumeration_type_die, gen_struct_or_union_type_die,
16279         gen_typedef_die): Use it.
16280
16281 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16282
16283         * vmsdbgout.c (full_name): Just output the file name if not native.
16284
16285 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16286
16287         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
16288         (funcnam_table): New static table.
16289         (funcnum_table): New static table.
16290         (write_rtnbeg): Write value saved in funcnum_table.
16291         (write_rtnend): Write value saved in funcnum_table.
16292         (vmsdbgout_begin_function): Save current function info in
16293         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
16294         (vmsdbgout_finish): Iterate over funcnum_table.
16295
16296 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16297
16298         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
16299         (vmsdbgout_type_decl): Declare
16300         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
16301         (FUNC_EPILOGUE_LABEL): New macro
16302         (vmsdbgout_begin_epilogue): New function.
16303         (vmsdbgout_type_decl): New function.
16304
16305 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16306
16307         * vmsdbg.h: Update copyright.
16308
16309 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16310
16311         * vmsdbg.h (DST_K_TBG): New DST constant.
16312         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
16313         (write_modbeg): Cast module_language to avoid warning.
16314         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
16315
16316 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
16317
16318         PR other/44034
16319         * target.def, doc/tm.texi.in, genhooks.c: New files.
16320         * target.h: Instead of defining individual hook members,
16321         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
16322         include target.def.
16323         * target-def.h: Instead of defining individual hook initializers,
16324         include target-hooks-def.h.
16325         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
16326         targetm.live_on_entry -> targetm.extra_live_on_entry
16327         targetm.sched.md_finish ->targetm.sched.finish
16328         targetm.sched.md_init -> targetm.sched.init
16329         targetm.sched.md_init_global -> targetm.sched.init_global
16330         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
16331         targetm.asm_out.except_table_label ->
16332           targetm.asm_out.emit_except_table_label
16333         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
16334         targetm.target_help -> targetm.help
16335         targetm.vectorize.builtin_support_vector_misalignment ->
16336           targetm.vectorize.support_vector_misalignment
16337         targetm.file_start_app_off -> targetm.asm_file_start_app_off
16338         targetm.file_start_file_directive ->
16339          targetm.asm_file_start_file_directive
16340         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
16341         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
16342         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
16343         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
16344           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
16345         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
16346           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
16347         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
16348         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
16349         * Makefile.in (TARGET_H): Depend on target.def.
16350         (TARGET_DEF_H): Depend on target-hooks-def.h.
16351         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
16352         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
16353         * doc/tm.texi: Regenerate.
16354
16355         * Makefile.in (s-tm-texi): Remove stray tab / rule.
16356
16357         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
16358         (targetm.sched.init): Likewise.
16359
16360 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
16361
16362         PR bootstrap/44713
16363         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
16364         (function_arg_advance_32): Const-ify TYPE parameter.
16365         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
16366         (ix86_function_arg_advance): Change type of NAMED to bool.
16367         (function_arg_32): Const-ify CUM and TYPE parameters.
16368         (function_arg_64): Likewise.  Change type of NAMED to bool.
16369         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
16370         to bool.
16371         (ix86_function_arg): Change type of NAMED to bool.
16372         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
16373         last argument as a bool.
16374
16375 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
16376
16377         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
16378         (OVERRIDE_OPTIONS): Add note of obsolescence.
16379         Replace references with references to TARGET_OPTION_OVERRIDE.
16380         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
16381          the macro).
16382         * targhooks.c (default_target_option_override): New function.
16383         * targhooks.h (default_target_option_override): Declare.
16384         * target.h (struct gcc_target): Add override member to
16385         target_option member.
16386         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
16387         targetm.target_option.override call.
16388         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
16389         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
16390
16391 2010-06-29  Jan Hubicka  <jh@suse.cz>
16392
16393         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
16394
16395 2010-06-29  Jan Hubicka  <jh@suse.cz>
16396
16397         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
16398         unreachable.
16399         (rebuild_frequencies): New function.
16400         * predict.h (rebuild_frequencies): Declare.
16401         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
16402         entry block and edge reaching new_entry.
16403         (tree_function_versioning): When doing partial cloning, rebuild
16404         frequencies when done.
16405         * passes.c (execute_function_todo): Use rebild_frequencies.
16406
16407 2010-06-29  Richard Guenther  <rguenther@suse.de>
16408
16409         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
16410         * tree-flow.h (enum noalias_state): Remove.
16411         (struct var_ann_d): Remove noalias_state member.
16412
16413 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
16414
16415         PR target/43902
16416         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
16417         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
16418         (maddhidi4): Likewise.
16419
16420         Revert parts of the change for PR25130.
16421         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
16422         MEM_ALIAS_SET.
16423
16424 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
16425
16426         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
16427         targetm.calls.function_incoming_arg, and
16428         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
16429         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
16430         * target.h (struct gcc_target): Add function_arg_advance,
16431         function_arg, and function_incoming_arg fields.
16432         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
16433         (TARGET_FUNCTION_INCOMING_ARG): Define.
16434         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
16435         and TARGET_FUNCTION_INCOMING_ARG.
16436         * targhooks.h (default_function_arg_advance): Declare.
16437         (default_function_arg, default_function_incoming_arg): Declare.
16438         * targhooks.c (default_function_arg_advance): New function.
16439         (default_function_arg, default_function_incoming_arg): New function.
16440         * config/i386/i386.c (function_arg_advance): Rename to...
16441         (ix86_function_arg_advance): ...this.  Make static.
16442         (function_arg): Rename to...
16443         (ix86_function_arg): ...this.  Make static.
16444         (TARGET_FUNCTION_ARG_ADVANCE): Define.
16445         (TARGET_FUNCTION_ARG): Define.
16446         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
16447         (FUNCTION_ARG): Delete.
16448         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
16449         (function_arg): Delete prototype.
16450
16451 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
16452
16453         * reginfo.c (init_reg_sets_1): Adjust comments.
16454         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
16455         * calls.c (prepare_call_address): Likewise.
16456         (emit_call_1): Use targetm.calls.return_pops_args.
16457         (expand_call): Likewise.
16458         * function.c (assign_parms): Likewise.
16459         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
16460         * target.h (struct gcc_target) [struct calls]: Add
16461         return_pops_args field.
16462         * targhooks.h (default_return_pops_args): Declare.
16463         * targhooks.c (default_return_pops_args): Define.
16464         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
16465         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
16466         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
16467         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
16468         documentation.
16469         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
16470         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
16471         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
16472         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
16473         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
16474         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
16475         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
16476         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
16477         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
16478         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
16479         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
16480         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
16481         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
16482         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
16483         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
16484         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
16485         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
16486         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
16487         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
16488         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
16489         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
16490         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
16491         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
16492         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
16493         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
16494         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
16495         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
16496         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
16497         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
16498         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
16499         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
16500         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
16501         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
16502         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
16503         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
16504         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
16505         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
16506         * config/i386/i386.c (ix86_return_pops_args): Make static.
16507         Constify arguments.
16508         (TARGET_RETURN_POPS_ARGS): Define.
16509         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
16510         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
16511         (TARGET_RETURN_POPS_ARGS): Define.
16512         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
16513         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
16514         (TARGET_RETURN_POPS_ARGS): Define.
16515
16516 2010-06-29  Richard Guenther  <rguenther@suse.de>
16517
16518         PR middle-end/44667
16519         * tree-inline.c (initialize_inlined_parameters): Make sure
16520         to remap the inlined parameter variable substitutions types.
16521
16522 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
16523
16524         PR rtl-optimization/44659
16525         * combine.c (make_compound_operation) <SUBREG>: Do not return the
16526         result of force_to_mode if it partially re-expanded the compound.
16527
16528 2010-06-28  Jan Hubicka  <jh@suse.cz>
16529
16530         PR middle-end/44671
16531         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
16532         RESULT_DECL.
16533
16534 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
16535
16536         * double-int.h (force_fit_type_double): Remove declaration.
16537         * double-int.c (force_fit_type_double): Move to tree.c.
16538         * tree.h (force_fit_type_double): Declare.
16539         * tree.h (force_fit_type_double): Moved from double-int.c. Use
16540         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
16541         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
16542         * convert.c (convert_to_pointer): Adjust call to
16543         force_fit_type_double.
16544         * tree-vrp.c (extract_range_from_assert,
16545         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
16546         * fold-const.c: Update comment.
16547         (int_const_binop, fold_convert_const_int_from_int,
16548         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
16549         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
16550         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
16551         round_up_loc): Adjust call to force_fit_type_double.
16552
16553 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
16554
16555         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
16556
16557 2010-06-28  Martin Jambor  <mjambor@suse.cz>
16558
16559         * tree-sra.c (convert_callers): New parameter, change fndecls of
16560         recursive calls.
16561         (modify_function): Pass the old decl to convert_callers.
16562
16563 2010-06-28  Martin Jambor  <mjambor@suse.cz>
16564
16565         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
16566         ipa_check_create_node_params and ipa_initialize_node_params with
16567         checking asserts they are not necessary.
16568
16569 2010-06-28  Jan Hubicka  <jh@suse.cz>
16570
16571         PR tree-optimization/44687
16572         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
16573
16574 2010-06-28  Martin Jambor  <mjambor@suse.cz>
16575
16576         PR c++/44535
16577         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
16578         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
16579         instead of BINFO_BASE_BINFO.
16580
16581 2010-06-28  Michael Matz  <matz@suse.de>
16582
16583         PR middle-end/44592
16584         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
16585         proper VDEF chain for intermediate stores in the sequence.
16586
16587 2010-06-28  Jan Hubicka  <jh@suse.cz>
16588
16589         PR tree-optimization/44357
16590         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
16591         uninlinable functions.
16592
16593 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
16594
16595         * config.gcc (powerpc*-*-*): Handle titan.
16596         * config/rs6000/rs6000.c (titan_cost): New costs.
16597         (rs6000_override_options): Add "titan" to processor_target_table.
16598         Add Titan to branch alignment logic.
16599         Correctly set rs6000_cost for titan.
16600         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
16601         * config/rs6000/titan.md: New file.
16602         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
16603
16604 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
16605
16606         * tree-browser.c (TB_history_stack): Convert to a VEC.
16607         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
16608         (TB_history_prev): Likewise.
16609
16610 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
16611
16612         * vec.h (vec_heap_free): Add parentheses around free.
16613
16614 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
16615
16616         * system.h: Poison GCC_EXCEPT_H for front-end files.
16617
16618         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
16619         langhook.
16620         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
16621         Define to NULL by default.
16622         * except.h: Define GCC_EXCEPT_H.
16623         (doing_eh): Remove prototype.
16624         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
16625         (lang_protect_cleanup_actions): Remove.
16626         * except.c (lang_protect_cleanup_actions): Remove.
16627         (doing_eh): Remove.
16628         (gen_eh_region): Don't check doing_eh here.
16629         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
16630         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
16631         instead of lang_protect_cleanup_actions.
16632         * omp-low.c (maybe_catch_exception): Likewise.
16633         * Makefile.in: Update dependencies.
16634
16635 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
16636
16637         * cgraph.h (struct varpool_node): new used_from_object_file flag.
16638         (struct cgraph_local_info): new used_from_object_file flag.
16639         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
16640         (cgraph_clone_node): initialize used_from_object_file.
16641         (cgraph_create_virtual_clone): initialize used_from_object_file.
16642         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
16643         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
16644         when compiling with -fwhole-program.
16645         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
16646         internal resolver.
16647         * ipa.c (function_and_variable_visibility): Set externally_visible
16648         flag of varpool_node if used_from_object_file flag is set.
16649         (cgraph_externally_visible_p): check used_from_object_file flag.
16650         * doc/invoke.texi (-fwhole-program option): Change description of
16651         externally_visible attribute accordingly.
16652         * doc/extend.texi (externally_visible): Ditto.
16653
16654 2010-06-27  Jan Hubicka  <jh@suse.cz>
16655
16656         * params.def (max-inline-insns-auto): Default to 40.
16657         * doc/invoke.texi (max-inline-insns-auto): Document the change.
16658
16659 2010-06-27  Jan Hubicka  <jh@suse.cz>
16660
16661         PR middle-end/44671
16662         PR middle-end/44686
16663         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
16664         signature change.
16665         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
16666         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
16667
16668 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
16669
16670         * target.h (struct gcc_target): Add register_move_cost field.
16671         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
16672         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
16673         * targhooks.c (default_register_move_cost): New function.
16674         * targhooks.h (default_register_move_cost): Declare function.
16675         * defaults.h (REGISTER_MOVE_COST): Delete.
16676         * ira-int.h (ira_register_move_cost): Update comment.
16677         * ira.c (ira_register_move_cost): Update comment.
16678         * reload.h (register_move_cost): Declare.
16679         * reginfo.c (register_move_cost): New function.
16680         (move_cost): Update comment.
16681         (init_move_cost, memory_move_secondary_cost): Replace
16682         REGISTER_MOVE_COST with register_move_cost.
16683         * postreload.c (reload_cse_simplify_set): (Ditto.).
16684         * reload.c (find_valid_class, find_reloads): (Ditto.).
16685         * reload1.c (choose_reload_regs): (Ditto.).
16686         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
16687         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
16688         * doc/md.texi (can_create_pseudo_p): Update documentation.
16689
16690         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
16691         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
16692         * config/i386/i386.h (ix86_memory_move_cost): Make static.
16693         (TARGET_MEMORY_MOVE_COST): Define.
16694
16695         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
16696         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
16697         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
16698         (TARGET_MEMORY_MOVE_COST): Define.
16699
16700 2010-06-27  Richard Guenther  <rguenther@suse.de>
16701
16702         PR tree-optimization/44683
16703         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
16704         false edge from the inverted condition.
16705
16706 2010-06-27  Richard Guenther  <rguenther@suse.de>
16707
16708         PR middle-end/44684
16709         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
16710         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
16711         for register LHS.  Or non-store assignments.
16712
16713 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
16714
16715         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
16716         (sparc_emit_set_const64): Likewise.  Remove disabled code.
16717         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
16718         (sparc_emit_set_const64): Likewise.
16719
16720 2010-06-26  Catherine Moore  <clm@codesourcery.com>
16721
16722         * config/mips/mips.md (alu_type): New attribute.
16723         (type): Infer type from alu_type.
16724         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
16725         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
16726         *subsi3_extended, negsi2, negdi2, *low<mode>,
16727         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
16728         xor<mode>3, *nor<mode>3,
16729         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
16730         *zero_extendhi_truncqi):  Set alu_type instead of type.
16731
16732 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
16733
16734         * config/alpha/alpha.c (alpha_need_linkage): Adjust
16735         splay_tree_new_ggc call.
16736         (alpha_use_linkage): Likewise.
16737
16738 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
16739
16740         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
16741         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
16742         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
16743         (static_specs): Remove switches_need_spaces.
16744         (process_command, do_self_spec): Hardcode handling "-o" instead of
16745         checking switches_need_spaces.
16746         * system.h (SWITCHES_NEED_SPACES): Poison.
16747
16748 2010-06-26  Richard Guenther  <rguenther@suse.de>
16749
16750         PR tree-optimization/44393
16751         * tree-loop-distribution.c (generate_loops_for_partition): Fix
16752         stmt removal and VOP renaming.
16753         (generate_memset_zero): Remove redundant stmt updating.
16754         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
16755         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
16756
16757 2010-06-26  Jan Hubicka  <jh@suse.cz>
16758
16759         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
16760         edges comming from header are equivalent.
16761         (visit_bb): Handle PHIs correctly.
16762         * tree-inline.c (copy_phis_for_bb): Be able to copy
16763         PHI from entry edge.
16764         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
16765
16766 2010-06-26  Richard Guenther  <rguenther@suse.de>
16767
16768         PR middle-end/44674
16769         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
16770         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
16771
16772 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
16773
16774         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
16775         add_infile, alloc_switch): New.
16776         (process_command): Remove variable lang_n_infiles.  Process
16777         options in a single pass.  Use new functions for allocating
16778         infiles and switches arrays.  Properly skip operands of
16779         -Xpreprocessor and -Xassembler.
16780
16781 2010-06-26  Jan Hubicka  <jh@suse.cz>
16782
16783         PR middle-end/44671
16784         * cgraphunit.c (cgraph_function_versioning): Remove wrong
16785         cgraph_make_decl_local call; fix typo copying RTL data.
16786
16787 2010-06-25  DJ Delorie  <dj@redhat.com>
16788
16789         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
16790         (m32c_output_aligned_common): Likewise.
16791         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
16792         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
16793         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
16794         (m32c_register_pragmas): Register it.
16795         * config/m32c/m32c.c (m32c_get_pragma_address): New.
16796         (m32c_insert_attributes): Set #pragma address decls volatile.
16797         (pragma_entry_eq): New.
16798         (pragma_entry_hash): New.
16799         (m32c_note_pragma_address): New.
16800         (m32c_get_pragma_address): New.
16801         (m32c_output_aligned_common): New.
16802         * doc/extend.texi: Document the new pragma.
16803
16804         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
16805         also.
16806         * config/m32c/predicates.md (m32c_any_operand): Check the code
16807         instead of memory_operand so as to allow matching volatile MEMs.
16808         (m32c_nonimmediate_operand): Likewise.
16809         (mra_operand): Allow volatiles.
16810
16811 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
16812
16813         PR debug/44610
16814         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
16815         address if the offset is unknown.
16816
16817 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
16818
16819         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
16820         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
16821         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
16822         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
16823         to ia64_start_function. Invoke it.
16824         * config/ia64/ia64.c (ia64_start_function): Call new function
16825         dwarf2out_vms_debug_main_pointer.
16826
16827 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
16828
16829         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
16830         statements computing the true predicate.
16831
16832 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
16833
16834         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
16835         to boolean_true_node.
16836         (reset_bb_predicate): New.
16837         (predicate_bbs): Call reset_bb_predicate.
16838
16839 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
16840
16841         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
16842         (tree_if_conversion): Returns true when something has been changed.
16843         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
16844         changed something.
16845
16846 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
16847
16848         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
16849         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
16850         * tree-if-conv.c: Include dbgcnt.h.
16851         (tree_if_conversion): Use if_conversion_tree to count the number of
16852         if-convertible loops.
16853
16854 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
16855
16856         * common.opt (fprefetch-loop-arrays): Re-define
16857         -fprefetch-loop-arrays as a tri-state option with the initial
16858         value of -1.
16859         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
16860         pass only when flag_prefetch_loop_arrays > 0.
16861         * toplev.c (process_options): Note that, with tri-states,
16862         flag_prefetch_loop_arrays>0 means prefetching is enabled.
16863         * config/i386/i386.c (override_options): Enable prefetching at -O3
16864         for a set of CPUs that sw prefetching is helpful.
16865         (software_prefetching_beneficial_p): New.  Return TRUE if software
16866         prefetching is beneficial for the given CPU.
16867
16868 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
16869
16870         PR rtl-optimization/44326
16871         * implicit-zee.c (find_removable_zero_extends): Replace
16872         INSN_P with NONDEBUG_INSN_P.
16873
16874 2010-06-25  Martin Jambor  <mjambor@suse.cz>
16875
16876         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
16877         (struct ipa_node_params): Removed the modification_analysis_done flag.
16878         (ipa_is_param_modified): Removed.
16879         (ipa_analyze_node): Declare.
16880         (ipa_compute_jump_functions): Remove declaration.
16881         (ipa_count_arguments): Likewise.
16882         (ipa_detect_param_modifications): Likewise.
16883         (ipa_analyze_params_uses): Likewise.
16884         * ipa-prop.c (struct param_analysis_info): New type.
16885         (visit_store_addr_for_mod_analysis): Removed.
16886         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
16887         moved down in the file.
16888         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
16889         (ipa_count_arguments): Made static.
16890         (mark_modified): New function.
16891         (is_parm_modified_before_call): New function.
16892         (compute_pass_through_member_ptrs): New parameter parms_info, call
16893         is_parm_modified_before_call instead of ipa_is_param_modified.
16894         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
16895         it to compute_pass_through_member_ptrs.
16896         (ipa_compute_jump_functions): New parameter parms_info, pass it to
16897         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
16898         on the callee if it is analyzed.  Made static.
16899         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
16900         is_parm_modified_before_call instead of ipa_is_param_modified.
16901         (ipa_analyze_call_uses): New parameter parms_info, pass it to
16902         ipa_analyze_indirect_call_uses.
16903         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
16904         ipa_analyze_call_uses.
16905         (ipa_analyze_params_uses): New parameter parms_info, pass it to
16906         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
16907         (ipa_analyze_node): New function.
16908         (ipa_print_node_params): Do not dump the modified flag.
16909         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
16910         it.  Do not stream the modified parameter flag.
16911         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
16912         it.  Do not stream the modified parameter flag.
16913         * ipa-cp.c (ipcp_analyze_node): Removed.
16914         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
16915         with only a call to ipa_analyze_node.
16916         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
16917         node with only a call to ipa_analyze_node.
16918
16919 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16920
16921         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
16922
16923 2010-06-25  Jan Hubicka  <jh@suse.cz>
16924
16925         * tree-pass.h (pass_split_functions): Declare.
16926         * opts.c (decode_options): Enable function splitting at -O2
16927         * timevar.def (TV_IPA_FNSPLIT): New macro.
16928         * ipa-split.c: New file.
16929         * common.opt (-fpartial-inlining): New flag.
16930         * Makefile.in (ipa-split.o): New object file.
16931         * passes.c (init_optimization_passes): Add ipa-split.
16932         * params.def (partial-inlining-entry-probability): New parameters.
16933         * doc/invoke.texi (-fpartial-inlining): New.
16934
16935 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16936
16937         PR 44665
16938         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
16939         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
16940         (gimplify_expr): Likewise.
16941
16942 2010-06-25  Martin Jambor  <mjambor@suse.cz>
16943
16944         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
16945         statements instead of bailing out on them.
16946         (ipa_analyze_indirect_call_uses): Do not require that loads from the
16947         parameter are in the same BB as the condition.  Update comments.
16948
16949 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
16950
16951         PR middle-end/43866
16952         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
16953         true or always false, return NULL_TREE.
16954         (tree_unswitch_single_loop): Optimize conditions even when reaching
16955         max-unswitch-level parameter.  If num > 0, optimize first all conditions
16956         using entry checks, then do still reachable block discovery and consider
16957         only conditions in still reachable basic blocks in the loop.
16958
16959         PR tree-optimization/44539
16960         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
16961         the call doesn't have LHS, but has VDEF.
16962
16963 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
16964
16965         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
16966         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
16967         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
16968         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
16969         * system.h (MODIFY_TARGET_NAME): Poison.
16970
16971 2010-06-25  Alan Modra  <amodra@gmail.com>
16972
16973         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
16974         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
16975         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
16976         CMODEL_LARGE as default.
16977         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
16978         (offsettable_ok_by_alignment): Delete.
16979         (rs6000_emit_move): Remove mcmodel=medium optimization.
16980
16981 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
16982
16983         With large parts from Jim Wilson:
16984         PR target/43902
16985         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
16986         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
16987         * optabs.c (optab_for_tree_code): Likewise.
16988         (expand_widen_pattern_expr): Likewise.
16989         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
16990         out of execute_optimize_widening_mul.
16991         (convert_plusminus_to_widen): New function.
16992         (execute_optimize_widening_mul): Use the two new functions.
16993         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
16994         Remove code to generate widening multiply-accumulate.  Add support
16995         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
16996         * gimple-pretty-print.c (dump_ternary_rhs): New function.
16997         (dump_gimple_assign): Call it when appropriate.
16998         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
16999         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
17000         (expand_gimple_stmt_1): Likewise.
17001         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
17002         WIDEN_MULT_MINUS_EXPR.
17003         * tree-ssa-operands.c (get_expr_operands): Likewise.
17004         * tree-inline.c (estimate_operator_cost): Likewise.
17005         * gimple.c (extract_ops_from_tree_1): Renamed from
17006         extract_ops_from_tree.  Add new arg for a third operand; fill it.
17007         (gimple_build_assign_stat): Support operations with three operands.
17008         (gimple_build_assign_with_ops_stat): Likewise.
17009         (gimple_assign_set_rhs_from_tree): Likewise.
17010         (gimple_assign_set_rhs_with_ops_1): Renamed from
17011         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
17012         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
17013         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
17014         WIDEN_MULT_MINUS_EXPR.
17015         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
17016         (extract_ops_from_tree_1): Adjust declaration.
17017         (gimple_assign_set_rhs_with_ops_1): Likewise.
17018         (gimple_build_assign_with_ops): Pass NULL for last operand.
17019         (gimple_build_assign_with_ops3): New macro.
17020         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
17021         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
17022         functions.
17023         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
17024         (verify_gimple_assign): Call it.
17025         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
17026         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
17027         functions for dealing with three-operand statements.
17028         * tree.c (commutative_ternary_tree_code): New function.
17029         * tree.h (commutative_ternary_tree_code): Declare it.
17030         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
17031         ternary statements.
17032         (gimple_assign_nonzero_warnv_p): Likewise.
17033         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
17034         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
17035         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
17036         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
17037         (struct hashtable_expr): New member ternary in the union.
17038         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
17039         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
17040         (iterative_hash_hashable_expr): Likewise.
17041         (print_expr_hash_elt): Handle EXPR_TERNARY.
17042         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
17043         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
17044         statements.  Handle GIMPLE_TERNARY_RHS.
17045
17046 2010-06-25  Jan Hubicka  <jh@suse.cz>
17047
17048         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
17049
17050 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
17051
17052         PR c/44517
17053         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
17054         parameters are not good.
17055         (c_parser_parameter_declaration): Error unknown type name if the type
17056         name can't start declaration specifiers.
17057
17058 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
17059
17060         * gcc.c (translate_options): Don't mention +e in comment.
17061         (process_command): Don't handle +e specially.
17062
17063 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
17064
17065         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
17066
17067         * ira-build.c (merge_hard_reg_conflicts): New function.
17068         (create_cap_allocno, copy_info_to_removed_store_destinations,
17069         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
17070         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
17071         (remove_unnecessary_allocnos, remove_low_level_allocnos)
17072         copy_nifo_to_removed_store_destination): Use them.
17073         * ira-lives.c (make_hard_regno_born): New function, split out of
17074         make_regno_born.
17075         (make_allocno_born): Likewise.
17076         (make_hard_regno_dead): New function, split out of make_regno_dead.
17077         (make_allocno_dead): Likewise.
17078         (inc_register_pressure): New function, split out of set_allocno_live.
17079         (dec_register_pressure): New function, split out of clear_allocno_live.
17080         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
17081         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
17082         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
17083         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
17084         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
17085         mark_pseudo_regno_live.
17086         (process_bb_node_lives): Use mark_pseudo_regno_live,
17087         make_hard_regno_born and make_allocno_dead.
17088         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
17089         set_allocno_live, clear_allocno_live): Delete functions.
17090
17091         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
17092         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
17093         functions.
17094         (ira_flattening): Use ira_parent_allocno.
17095         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
17096         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
17097
17098         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
17099         statement.
17100
17101         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
17102         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
17103         minmax_set_iter_cond, minmax_set_iter_next,
17104         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
17105         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
17106         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
17107         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
17108         uses changed.
17109
17110         * ira-int.h (struct live_range, live_range_t): Renamed from struct
17111         ira_allocno_live_range and allocno_live_range_t; all uses changed.
17112         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
17113         All uses changed.
17114
17115 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
17116
17117         * thumb2.md (thumb2_tlobits_cbranch): Delete.
17118         (peephole2 to convert zero_extract/compare of single bit to
17119          lshift/compare): New.
17120
17121 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
17122
17123         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
17124         recursive call and call to 'int_const_binop'.
17125         (build_range_check, fold_cond_expr_with_comparison, unextend,
17126         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
17127         multiple_of_p): Adjust call to const_binop.
17128
17129 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
17130
17131         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
17132         determine size of XFmode operand.
17133         (XFmode extended DFmode push splitter): Ditto.
17134         (XFmode extended SFmode push splitter): Ditto.
17135
17136 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
17137
17138         PR target/44588
17139         * config/i386/i386.md (extract_code): New.
17140         (<u>divmodqi4): Likewise.
17141         (divmodhiqi3): Likewise.
17142         (udivmodhiqi3): Likewise.
17143         (<u>divqi3): Remvoved.
17144
17145 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
17146
17147         PR middle-end/44492
17148         * recog.h (struct recog_data): Add is_asm field.
17149         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
17150         present in constraints of inline-asm operand and memory operand
17151         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
17152         (extract_insn): Initialize recog_data.is_asm.
17153         * doc/md.texi (Constraints): Document operand side-effect rules.
17154
17155 2010-06-24  Andi Kleen  <ak@linux.intel.com>
17156
17157         * c-parser.c (c_parser_conditional_expression): Call
17158         warn_for_omitted_condop.
17159         * doc/invoke.texi: Document omitted condop warning.
17160
17161 2010-06-24  Nick Clifton<nickc@redhat.com>
17162
17163         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
17164         insn in the sequence is a jump insn before setting its label.
17165
17166 2010-06-24  Alan Modra  <amodra@gmail.com>
17167
17168         * collect2.c (main): Match exactly --version and --help.
17169
17170 2010-06-24  DJ Delorie  <dj@redhat.com>
17171
17172         * config/m32c/m32c-pragma.c: Don't include rtl.h.
17173
17174 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
17175
17176         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
17177         using X87MODEF mode iterator.
17178         (pushsf splitter): Macroize splitter using P mode iterator.
17179         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
17180         mode iterator.
17181
17182         (*movxf_internal): Rename from *movxf_integer.
17183         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
17184         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
17185         (*movdf_internal): Rename from *movdf_integer.
17186         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
17187         (*movsf_internal): Rename from *movdf_1.
17188
17189 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
17190
17191         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
17192         (const_gimple_seq_node): Removed typedefs.
17193
17194         * gimple.h (gimple_seq_node_d, gimple_seq_node)
17195         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
17196
17197 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
17198
17199         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
17200         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
17201         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
17202         and CODE_FOR_vec_extract_lo_v4df.
17203
17204         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
17205         Changed to define_insn_and_split.
17206         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
17207         (vec_extract_lo_v16hi): Likewise.
17208         (vec_extract_lo_v32qi): Likewise.
17209         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
17210         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
17211
17212 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
17213
17214         PR target/44640
17215         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
17216         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
17217         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
17218         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
17219         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
17220
17221         PR target/44640
17222         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
17223
17224         PR other/44644
17225         * df-core.c (struct df): Rename to df_d.
17226         * df.h (struct df): Likewise.
17227         * dse.h (struct df): Remove forward declaration.
17228         * recog.h (struct insn_data): Rename to:
17229         (struct_insn_data_d).  Adjusted all users.
17230
17231 2010-06-23  Arnaud Charlet  <charlet@adacore.com
17232
17233         PR ada/22220
17234         * doc/install.texi: Update requirements to build GNAT.
17235
17236 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
17237
17238         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
17239         enum type.
17240         (m68k_sched_attr_opx_type): Remove unreachable return.
17241         (m68k_sched_attr_opy_type): Likewise.
17242         (m68k_sched_attr_size): Likewise.
17243         (sched_get_opxy_mem_type): Likewise.
17244         (m68k_sched_attr_op_mem): Likewise.
17245
17246 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
17247
17248         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
17249         new statement and adjust VDEF only if necessary.  Remove superfluous
17250         call to maybe_clean_or_replace_eh_stmt.
17251         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
17252         copy the flags.
17253         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
17254         * tree-inline.c (copy_bb): ...and not there.
17255
17256 2010-06-22  Cary Coutant  <ccoutant@google.com>
17257
17258         * dwarf2out.c (is_nested_in_subprogram): New function.
17259         (should_move_die_to_comdat): Use it.
17260         (copy_ancestor_tree): Don't mark DIEs here.
17261         (copy_decls_walk): Start walk from root of newly-added tree;
17262         mark DIEs here instead.
17263
17264 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
17265
17266         * config/i386/i386.md (unit): Also check sseishft1.
17267
17268 2010-06-22  Jan Hubicka  <jh@suse.cz>
17269
17270         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
17271         enabled.
17272
17273 2010-06-22  Jan Hubicka  <jh@suse.cz>
17274
17275         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
17276         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
17277         Return true if something changed.
17278         * df.h (df_confluence_function_n): Return bool.
17279         * df-core.c (df_worklist_propagate_forward,
17280         df_worklist_propagate_backward): Track changes and ages.
17281         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
17282         track ages.
17283         * dse.c (dse_confluence_n): Return always true.
17284
17285 2010-06-22  Jan Hubicka  <jh@suse.cz>
17286
17287         * bitmap.c (bitmap_clear_bit): Micro optimize.
17288
17289 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
17290
17291         * config/i386/i386.md (SWI1248x): New mode iterator.
17292         (SWI48x): Ditto.
17293         (SWI12): Ditto.
17294         (SWI24): Ditto.
17295
17296         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
17297         SWI1248x mode iterator.
17298         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
17299         using SWI124 mode iterator.
17300         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
17301         mode iterator.
17302         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
17303         *pushdi2_prologue_rex64 using P mode iterator.
17304         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
17305         using SWI48 mode iterator.
17306         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
17307         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
17308         using SWI1248x mode iterator.
17309         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
17310         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
17311         SWI48 mode iterator.
17312         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
17313         iterator.
17314         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
17315         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
17316         SWI12 mode iterator.
17317         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
17318         SWI12 mode iterator.
17319         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
17320         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
17321         SWI24 mode iterator.
17322         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
17323         SWI48 mode iterator.
17324         (mov<mode>_insn_1): New expander.
17325         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
17326         using SWI48x mode iterator.
17327
17328         (*movoi_internal_avx): Rename from *movoi_internal.
17329         (*movti_internal_rex64): Rename from *movti_rex64.
17330         (*movti_internal_sse): Rename from *movti_sse.
17331         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
17332         (*movdi_internal): Rename from *movdi_2.
17333         (*movsi_internal): Rename from *movsi_1.
17334         (*movhi_internal): Rename from *movhi_1.
17335         (*movqi_internal): Rename from *movqi_1.
17336
17337         (insv): Update the call to gen_movsi_insv_1 for rename.
17338         * config/i386/i386.c (promote_duplicated_reg): Ditto.
17339
17340 2010-06-22  Jan Hubicka  <jh@suse.cz>
17341
17342         * passes.c (execute_function_todo): Move call of statistics_fini_pass
17343         to ...
17344         (execute_todo) ... this one.
17345
17346 2010-06-22  Alan Modra  <amodra@gmail.com>
17347
17348         PR target/44364
17349         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
17350         * caller-save.c (insert_restore, insert_save): Use non-validate
17351         form of adjust_address.
17352
17353 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17354
17355         PR target/39690
17356         * config/pa/pa.c (override_options): Disable
17357         -freorder-blocks-and-partition.
17358
17359 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
17360
17361         PR target/44615
17362         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
17363
17364         * config/i386/i386.md (type): Add sseishft1
17365
17366         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
17367         (ppro_insn_load): Likewise.
17368         (ppro_insn_store): Likewise.
17369         (ppro_insn_both): Likewise.
17370
17371         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
17372         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
17373         for type.
17374         (*vec_extractv2di_1_avx): Likewise.
17375         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
17376         type.  Remove atom_unit.
17377         (*vec_extractv2di_1_sse2): Likewise.
17378
17379 2010-06-21  DJ Delorie  <dj@redhat.com>
17380
17381         * diagnostic.h (diagnostic_classification_change_t): New.
17382         (diagnostic_context): Add history and push/pop list.
17383         (diagnostic_push_diagnostics): Declare.
17384         (diagnostic_pop_diagnostics): Declare.
17385         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
17386         from pragmas in a history chain instead of the global table.
17387         (diagnostic_push_diagnostics): New.
17388         (diagnostic_pop_diagnostics): New.
17389         (diagnostic_report_diagnostic): Scan history chain to find state
17390         of diagnostics as of the diagnostic location.
17391         * opts.c (set_option): Pass UNKNOWN_LOCATION to
17392         diagnostic_classify_diagnostic.
17393         (enable_warning_as_error): Likewise.
17394         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
17395         use in the history chain.
17396         * doc/extend.texi: Document pragma GCC diagnostic changes.
17397
17398 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
17399
17400         * dwarf2out.c (add_linkage_name): New function.  Don't add
17401         anything to DW_TAG_member DIEs.
17402         (add_name_and_src_coords_attributes): Use it.
17403         (gen_variable_die): Call it for C++ static data members if
17404         specification is DW_TAG_member.
17405
17406         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
17407         C++ char16_t and char32_t.
17408
17409         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
17410         * genattrtab.c: Include vecprim.h.
17411         (cached_attrs, cached_attr_count, attrs_seen_once,
17412         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
17413         attrs_cached_after): New variables.
17414         (find_attrs_to_cache): New function.
17415         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
17416         (write_test_expr): Add attrs_cached argument, return it too,
17417         attempt to cache non-const attributes used more than once in
17418         a single case handling.
17419         (write_attr_get): Use find_attrs_to_cache, for caching candidates
17420         emit cached_* variables.  Adjust write_attr_set callers.
17421         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
17422         to find attributes that should be cached in this block.  Adjust
17423         write_test_expr callers.
17424         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
17425         callers.
17426         (make_automaton_attrs): Adjust write_test_expr caller.
17427
17428         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
17429         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
17430         (make_automaton_attrs): If find_tune_attr returns non-NULL,
17431         write separate internal_dfa_insn_code_* and insn_default_latency_*
17432         functions for each attribute's value and emit init_sched_attrs
17433         function and function pointers.
17434         * genattr.c (const_attrs, reservations): New variables.
17435         (gen_attr): Add const attributes to const_attrs vector.
17436         (check_tune_attr, find_tune_attr): New functions.
17437         (main): Add reservations to reservations vector.  If find_tune_attr
17438         returns true, add prototype for init_sched_attrs and make
17439         internal_dfa_insn_code and insn_default_latency function pointers,
17440         otherwise define init_sched_attrs as dummy macro.
17441         * cfgexpand.c: Include insn-attr.h.
17442         (gimple_expand_cfg): Call init_sched_attrs.
17443
17444         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
17445
17446         PR target/44575
17447         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
17448         va_arg from a set of register save slots into a temporary,
17449         if the container is bigger than type size, do the copying
17450         using smaller mode or using memcpy.
17451
17452         PR bootstrap/44426
17453         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
17454         prototype.
17455         (sel_print_to_dot): Remove macro.
17456         (sel_print): Likewise.  New prototype.
17457         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
17458         (sel_print): New function.
17459
17460 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17461
17462         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
17463         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
17464
17465 2010-06-21  Nick Clifton  <nickc@redhat.com>
17466
17467         * config/rx/rx.h (PTRDIFF_TYPE): Define.
17468         (SMALL_REGISTER_CLASS): Define (to zero).
17469         (PRINT_OPERAND): Delete.
17470         (PRINT_OPERAND_ADDRESS): Delete.
17471         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
17472         (rx_print_operand_address): Delete prototype.
17473         * config/rx/rx.c (rx_print_operand): Make static.
17474         Allow %H and %L to handle CONST_DOUBLEs.
17475         (rx_print_operand_address): Make static.
17476         (rx_gen_move_template): Rename local variable 'template' to
17477         out_template.
17478         (rx_function_arg): Do not pass unknown sized objects in registers.
17479         (TARGET_PRINT_OPERAND): Define.
17480         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17481
17482 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
17483
17484         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
17485
17486 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
17487
17488         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
17489         stack-alignment for simple leaf-functions.
17490
17491 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
17492
17493         * doc/install.texi: Document bootstrap-lto.
17494
17495 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
17496
17497         PR debug/44248
17498         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
17499         (input_function): Drop them here, if VTA is disabled.
17500
17501 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
17502
17503         PR target/44546
17504         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
17505         New predicate.
17506         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
17507         ix86_swapped_fp_comparsion_operator instead of
17508         ix86_fp_comparison_operator.
17509
17510         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
17511         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
17512         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
17513         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
17514         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
17515         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
17516
17517 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
17518
17519         PR other/32998
17520         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
17521         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
17522         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
17523         (decode_cmdline_option): Update for this return value.  Set
17524         orig_option_with_args_text field.  Set arg field for unknown
17525         options.  Make static.
17526         (decode_cmdline_options_to_array): New.
17527         (prune_options): Update handling of find_opt return value.
17528         * opts.c (read_cmdline_option): Take decoded option.  Return void.
17529         (read_cmdline_options): Take decoded options.
17530         (decode_options): Add parameters for decoded options.  Use
17531         decode_cmdline_options_to_array.  Use decoded options for -O
17532         scan.  Use integral_argument for -O parameters.  Update call to
17533         read_cmdline_options.
17534         (enable_warning_as_error): Update handling of find_opt return value.
17535         * opts.h: Update comment on unknown options.
17536         (struct cl_decoded_option): Update comments on opt_index and arg.
17537         Add orig_option_with_args_text.
17538         (decode_cmdline_option): Remove.
17539         (decode_cmdline_options_to_array): Declare.
17540         (decode_options): Update prototype.
17541         * toplev.c (save_argv): Remove.
17542         (save_decoded_options, save_decoded_options_count): New.
17543         (read_integral_parameter): Remove.
17544         (print_switch_values): Use decoded options.
17545         (toplev_main): Don't set save_argv.  Update call to decode_options.
17546         * toplev.h (read_integral_parameter): Remove.
17547         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
17548
17549 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
17550
17551         PR target/44072
17552         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
17553         immediate.
17554         * constraints.md (Pw, Px): New constraints.
17555         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
17556
17557 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
17558
17559         * config/i386/sse.md (fma4modesuffixf4): Removed.
17560         (ssemodesuffixf2s): Likewise.
17561         (ssemodesuffixf4): Likewise.
17562         (ssemodesuffixf2c): Likewise.
17563         (ssescalarmodesuffix2s): Likewise.
17564         (avxmodesuffixf2c): Likewise.
17565         (ssemodesuffix): New.
17566         (ssescalarmodesuffix): Likewise.
17567         Update patterns with ssemodesuffix and ssescalarmodesuffix.
17568
17569 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
17570
17571         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
17572
17573 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
17574
17575         * stor-layout.c (debug_rli): Remove unused local variables.
17576
17577 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
17578
17579         PR rtl-optimization/40900
17580         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
17581         original expression for later reuse.
17582         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
17583         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
17584
17585 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
17586
17587         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
17588         double_int_fits_in_uhwi_p): Implement as static inline.
17589         (double_int_xor): New inline function.
17590         (double_int_lrotate, double_int_rrotate, double_int_max,
17591         double_int_umax, double_int_smax, double_int_min, double_int_umin,
17592         double_int_smin): Declare.
17593         (lrotate_double, rrotate_double): Remove declaration.
17594         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
17595         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
17596         (double_int_lrotate, double_int_rrotate, double_int_max,
17597         double_int_umax, double_int_smax, double_int_min, double_int_umin,
17598         double_int_smin): New function.
17599         * fold-const.c (int_const_binop): Clean up, use double_int_*
17600         functions.
17601         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
17602         double_int_* and immed_double_int_const functions.
17603
17604 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
17605
17606         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
17607         * function.c (types_used_by_cur_var_decl): Likewise.
17608         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
17609
17610 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
17611
17612         * tree.h (record_layout_info): Change type of pending_statics field
17613         to a VEC.
17614         * stor-layout.c (start_record_layout): Store NULL into
17615         pending_statics.
17616         (debug_rli): Call debug_vec_tree instead of debug_tree.
17617         (place_field): Likewise.
17618         (finish_record_layout): Likewise.
17619
17620 2010-06-18  Alan Modra  <amodra@gmail.com>
17621
17622         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
17623
17624 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17625
17626         PR target/43740
17627         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
17628         for SET source operand from SET destination operand.
17629
17630 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
17631
17632         PR rtl-optimization/39871
17633         * reload1.c (init_eliminable_invariants): For flag_pic, disable
17634         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
17635         (function_invariant_p): Rule out a plus of frame or arg pointer with
17636         a SYMBOL_REF.
17637         * ira.c (find_reg_equiv_invariant_const): Likewise.
17638
17639 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
17640
17641         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
17642         print_operand_address and puts to output the operand for CONST.
17643
17644 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
17645
17646         PR debug/44572
17647         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
17648         hook.
17649
17650 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17651
17652         * v850-protos.h (print_operand): Delete.
17653         (print_operand_address): Delete.
17654         * v850.h (PRINT_OPERAND): Delete.
17655         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17656         (PRINT_OPERAND_ADDRESS): Delete.
17657         * v850.c (print_operand_address): Rename to...
17658         (v850_print_operand_address): ...this.  Make static. Call
17659         v850_print_operand.
17660         (print_operand): Rename to...
17661         (v850_print_operand): ...this.  Make static.  Call
17662         v850_print_operand_address.
17663         (v850_print_operand_punct_valid_p): New function.
17664         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17665         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17666
17667 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17668
17669         * config/sh/sh-protos.h (print_operand): Delete.
17670         (print_operand_address): Delete.
17671         * config/sh/sh.h (PRINT_OPERAND): Delete.
17672         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17673         (PRINT_OPERAND_ADDRESS): Delete.
17674         * config/sh/sh.c (sh_print_operand_address): Make static.
17675         (sh_print_operand): Make static.  Call sh_print_operand_address
17676         and sh_print_operand.
17677         (sh_print_operand_punct_valid_p): New function.
17678         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17679         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17680
17681 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17682
17683         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
17684         (mcore_print_operand_address): Delete.
17685         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
17686         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17687         (PRINT_OPERAND_ADDRESS): Delete.
17688         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
17689         (mcore_print_operand): Make static.
17690         (mcore_print_operand_punct_valid_p): New function.
17691         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
17692         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17693
17694 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17695
17696         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
17697         (print_operand_address): Delete.
17698         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
17699         (PRINT_OPERAND_ADDRESS): Delete.
17700         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
17701         static.
17702         (m68hc11_print_operand): Make static.
17703         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17704
17705 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17706
17707         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
17708         (m32r_print_operand_address): Delete.
17709         * config/m32r/m32r.h (m32r_punct_chars): Delete.
17710         (PRINT_OPERAND): Delete.
17711         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17712         (PRINT_OPERAND_ADDRESS): Delete.
17713         * config/m32r/m32r.c (m32r_punct_chars): Make static.
17714         (m32r_print_operand_address): Make static.
17715         (m32r_print_operand): Make static.
17716         (m32r_print_operand_punct_valid_p): New function.
17717         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17718         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17719
17720 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17721
17722         * config/iq2000/iq2000-protos.h (print_operand): Delete.
17723         (print_operand_address): Delete.
17724         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
17725         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17726         (PRINT_OPERAND_ADDRESS): Delete.
17727         (iq2000_print_operand_punct): Delete.
17728         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
17729         (iq2000_print_operand_address): Make static.
17730         (iq2000_print_operand): Make static.
17731         (iq2000_print_operand_punct_valid_p): New function.
17732         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17733         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17734
17735 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17736
17737         * config/frv/frv-protos.h (frv_print_operand): Delete.
17738         (frv_print_operand_address): Delete.
17739         * config/frv/frv.h (PRINT_OPERAND): Delete.
17740         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17741         (PRINT_OPERAND_ADDRESS): Delete.
17742         * config/frv/frv.c (frv_print_operand_address): Make static.
17743         (frv_print_operand): Make static.
17744         (frv_print_operand_punct_valid_p): New function.
17745         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17746         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17747
17748 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17749
17750         * tree.h (vec_member): Declare.
17751         * tree.c (vec_member): Define.
17752
17753 2010-06-17  Richard Guenther  <rguenther@suse.de>
17754
17755         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
17756         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
17757
17758 2010-06-17  Richard Guenther  <rguenther@suse.de>
17759
17760         * tree-inline.c (declare_return_variable): Remove bogus code.
17761
17762 2010-06-17  Richard Guenther  <rguenther@suse.de>
17763
17764         * gimplify.c (gimplify_bind_expr): Always promote complex
17765         and vector variables to registers if possible.
17766
17767 2010-06-17  Richard Guenther  <rguenther@suse.de>
17768
17769         * expr.c (get_inner_reference): Use double_int for bit_offset
17770         calculation.
17771
17772 2010-06-16  DJ Delorie  <dj@redhat.com>
17773
17774         * common.opt (-fstrict-volatile-bitfields): new.
17775         * doc/invoke.texi: Document it.
17776         * fold-const.c (optimize_bit_field_compare): For volatile
17777         bitfields, use the field's type to determine the mode, not the
17778         field's size.
17779         * expr.c (expand_assignment): Likewise.
17780         (get_inner_reference): Likewise.
17781         (expand_expr_real_1): Likewise.
17782         * expmed.c (store_fixed_bit_field): Likewise.
17783         (extract_bit_field_1): Likewise.
17784         (extract_fixed_bit_field): Likewise.
17785
17786 2010-06-16  Richard Guenther  <rguenther@suse.de>
17787
17788         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
17789
17790 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
17791
17792         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
17793         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
17794         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
17795         * debug.c: Likewise.
17796         * sdbout.c: Likewise.
17797         * vmsdbgout.c: Likewise.
17798         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
17799         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
17800         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
17801         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
17802         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
17803         * dwarf2out.c (dw_fde_struct): New fields
17804         dw_fde_vms_{end,begin}_prologue.
17805         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
17806         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
17807         (dwarf2out_vms_end_prologue): New function.
17808         (dwarf2out_vms_begin_epilogue): New function.
17809         (dw_val_struct): New value dw_val_class_vms_delta.
17810         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
17811         begin_epilogue for VMS.
17812         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
17813         new static functions.
17814         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
17815         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
17816         static functions.
17817         (print_die): New case dw_val_class_vms_delta.
17818         (attr_checksum): Likewise.
17819         (same_dw_val_p: Likewise.
17820         (size_of_die): Likewise.
17821         (value_format): Likewise.
17822         (output_die): Likewise.
17823         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
17824         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
17825         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
17826         dwarf2out_cfi_begin_epilogue
17827         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
17828
17829 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
17830
17831         * config/cris/cris-protos.h (cris_print_operand): Delete.
17832         (cris_print_operand_address): Delete.
17833         * config/cris/cris.h (PRINT_OPERAND): Delete.
17834         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17835         (PRINT_OPERAND_ADDRESS): Delete.
17836         * config/cris/cris.c (cris_print_operand_address): Make static.
17837         (cris_print_operand): Make static.
17838         (cris_print_operand_punct_valid_p): New function.
17839         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17840         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17841
17842 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
17843
17844         * config/arm/arm-protos.h (arm_print_operand): Delete.
17845         (arm_print_operand_address): Delete.
17846         * config/arm/arm.h (PRINT_OPERAND): Delete.
17847         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17848         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
17849         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
17850         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
17851         (arm_print_operand): Make static.
17852         (arm_print_operand_punct_valid_p): New function.
17853         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17854         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17855
17856 2010-06-16  Nick Clifton  <nickc@redhat.com>
17857
17858         * config/rx/constraints.md (NEGint4): New constraint.
17859         * config/rx/rx.md (attr cc): Add set_zsc.
17860         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
17861         initialised.
17862         (cmpsf): Likewise.
17863         (call_internal): Clobber the cc0 register.
17864         (call_value_internal): Likewise.
17865         (cstoresi4): Likewise.
17866         (movsieq): Likewise.
17867         (movsine): Likewise.
17868         (addsi3): Add alternative to handle small negative constants.
17869         (sunsi3): Likewise.
17870         (addsi3): Do not set the O bit in the cc0 register.
17871         (adddi3): Likewise.
17872         (subsi3): Likewise.
17873         (subdi3): Likewise.
17874         (andsi3): Reorder alternatives to prefer shorter forms.
17875         (mulsi3): Likewise.
17876         (iorsi3): Likewise.
17877         (negsi2): Note that the cc0 flags are set.
17878         (rotlsi3): Note that only the Z and S bits are set in cc0.
17879         (lshrsi3): Likewise.
17880         (ashlsi3): Likewise.
17881         (subsf3): Use %Q for the MEM operand.
17882         (fix_truncsfsi2): Likewise.
17883         (floatsisf2): Likewise.
17884         (bitset): Remove early clobber from destination.
17885         (bitset_in_memory): Likewise.
17886         (lrintsf2): Clobber the cc0 register.
17887         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
17888         (rx_print_operand): Handle %N.
17889
17890 2010-06-16  Jan Hubicka  <jh@suse.cz>
17891
17892         * df-core.c (df_compact_blocks): Free problem_temps vector.
17893
17894 2010-06-16  Martin Jambor  <mjambor@suse.cz>
17895
17896         PR tree-optimization/43905
17897         * tree-sra.c: Include tree-inline.h.
17898         (create_abstract_origin): Removed.
17899         (modify_function): Version the call graph node instead of creating
17900         abstract origins and dealing with same_body aliases.
17901         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
17902         function is versionable.
17903         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
17904
17905 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
17906
17907         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
17908         (CHOOSE_DYNAMIC_LINKER): Update.
17909
17910 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
17911
17912         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
17913         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
17914         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
17915         *prefetch_3dnow_rex.
17916
17917 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
17918
17919         * target.h (struct asm_out):Add declare_constant_name field.
17920         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
17921         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
17922         * output.h (default_asm_declare_constant_name): Declare.
17923         (assemble_label): Update prototype.
17924         * varasm.c (assemble_constant_contents): Use
17925         targetm.asm_out.declare_constant_name target hook.
17926         (assemble_label): Add 'file' argument.
17927         (default_asm_declare_constant_name): New function.
17928         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
17929         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
17930         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
17931
17932         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
17933         * config/darwin.c (darwin_asm_declare_constant_name): New function.
17934         (machopic_output_indirection): Update assemble_label argument list.
17935         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
17936         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
17937
17938 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
17939
17940         PR middle-end/44391
17941         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
17942         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
17943
17944 2010-06-15  Richard Guenther  <rguenther@suse.de>
17945
17946         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
17947
17948 2010-06-15  Paul Brook  <paul@codesourcery.com>
17949
17950         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
17951         hard-float ABI.
17952
17953 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
17954
17955         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
17956         don't get a vector type for output.
17957
17958 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
17959
17960         PR fortran/44536
17961         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
17962         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
17963         (LANG_HOOKS_DECLS): Add it.
17964         * gimplify.c (omp_notice_variable): Call
17965         lang_hooks.decls.omp_report_decl.
17966
17967 2010-06-15  Martin Jambor  <mjambor@suse.cz>
17968
17969         PR lto/44464
17970         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
17971         on the newly dead SSA name.
17972
17973 2010-06-15  Alan Modra  <amodra@gmail.com>
17974
17975         * doc/invoke.texi: Add mcmodel to powerpc options.
17976         * configure.ac: Add HAVE_LD_LARGE_TOC test.
17977         * configure: Regenerate.
17978         * config.in: Regenerate.
17979         * config/rs6000/linux64.opt (mcmodel): New.
17980         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
17981         (TARGET_CMODEL, SET_CMODEL): Define.
17982         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
17983         select CMODEL_MEDIUM default.
17984         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
17985         (TARGET_CMODEL): Define default.
17986         * config/rs6000/rs6000.c (cmodel): New variable.
17987         (rs6000_explicit_options): Add cmodel field.
17988         (rs6000_handle_option): Handle -mcmodel.
17989         (create_TOC_reference): Add largetoc_reg param.  Generate high,
17990         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
17991         (rs6000_delegitimize_address): Recognise new toc reference rtl
17992         and minimal-toc rtl.
17993         (rs6000_legitimize_reload_address): Handle new toc references.
17994         (print_operand_address): Handle legitimate_constant_pool_address_p
17995         match before lo_sum.
17996         (rs6000_eliminate_indexed_memrefs): Tidy.
17997         (rs6000_emit_move): Tweak threshold for inlining constants.
17998         Keep rs6000_emit_allocate_stack large stack frame offsets
17999         loaded into r0 inline.
18000         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
18001         (tocrel_base, tocrel_offset): New variables.
18002         (toc_relative_expr_p): Set them here.
18003         (print_operand_address): Skip over any offset on constant pool address.
18004         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
18005         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
18006         (offsettable_ok_by_alignment): New function.
18007         (rs6000_emit_move): Address suitably aligned local symbol_refs
18008         relative to the toc pointer for -mcmodel=medium.
18009         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
18010         strict param.  Allow lo_sum version of addressing.  Verify reg
18011         used for -mminimal-toc and -mcmodel != small.  Update all callers.
18012         * config/rs6000/constraints.md: Update for above change.
18013         * config/rs6000/predicates.md: Likewise.
18014         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
18015         code.
18016         (tls_gd): Split for -mcmodel=medium/large.
18017         (tls_gd_high, tls_gd_low): New.
18018         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
18019         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
18020         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
18021         (largetoc_high, largetoc_low): New.
18022         (cmptf_internal2): Add clobber.
18023         * config/rs6000/rs6000-protos.h: Update.
18024
18025 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
18026
18027         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
18028         true if no prefetch is going to be generated for a given group.
18029         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
18030         estimate the prefetch_count.
18031         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
18032         prefetch count by considering the unroll_factor and prefetch_mod
18033         for is_loop_prefetching_profitable.
18034
18035 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
18036
18037         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
18038         anything if the argument is not a MEM.
18039
18040 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
18041
18042         PR debug/43650
18043         PR debug/44181
18044         PR debug/44247
18045         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
18046         debug stmts.
18047         (canonicalize_loop_ivs): Likewise.
18048
18049 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
18050
18051         PR debug/43656
18052         * haifa-sched.c (setup_insn_reg_pressure_info,
18053         update_register_pressure): Reject debug insns.
18054         (ready_sort): Don't setup reg pressure for debug insns.
18055         (schedule_insn): Don't update reg pressure for debug insns.
18056
18057 2010-06-14  Richard Guenther  <rguenther@suse.de>
18058
18059         * lto-streamer.c (cached_bp): Remove.
18060         (bitpack_delete): Likewise.
18061         (bitpack_create): Likewise.
18062         (bp_get_next_word): Likewise.
18063         (bp_pack_value, bp_unpack_value): Move ...
18064         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
18065         Re-implement.
18066         (struct bitpack_d): Likewise.
18067         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
18068         New inline functions.
18069         * lto-streamer-out.c (lto_output_bitpack): Remove.
18070         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
18071         (pack_value_fields): Adjust.
18072         (lto_write_tree): Likewise.
18073         (output_gimple_stmt): Likewise.
18074         (output_function): Likewise.
18075         * lto-streamer-in.c (input_gimple_stmt): Adjust.
18076         (input_function): Likewise.
18077         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
18078         (lto_input_bitpack): Remove.
18079         (lto_materialize_tree): Adjust.
18080         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
18081         * lto-cgraph.c (lto_output_edge): Adjust.
18082         (lto_output_node): Likewise.
18083         (lto_output_varpool_node): Likewise.
18084         (lto_output_ref): Likewise.
18085         (input_node): Likewise.
18086         (input_varpool_node): Likewise.
18087         (input_ref): Likewise.
18088         (input_edge): Likewise.
18089         (output_node_opt_summary): Likewise.
18090         (input_node_opt_summary): Likewise.
18091         * ipa-pure-const.c (pure_const_write_summary): Likewise.
18092         (pure_const_read_summary): Likewise.
18093         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
18094         (ipa_read_indirect_edge_info): Likewise.
18095         (ipa_write_node_info): Likewise.
18096         (ipa_read_node_info): Likewise.
18097
18098 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
18099
18100         PR target/44534
18101         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
18102         (vec_extract_lo_v16hi): Likewise.
18103         (vec_extract_lo_v32qi): Likewise.
18104
18105 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
18106
18107         PR bootstrap/44426
18108         * tree.h (build_call_expr): Don't define as vararg macro, instead
18109         add a prototype.
18110         * builtins.c (build_call_nofold): Remove.
18111         (expand_builtin_int_roundingfn, expand_builtin_pow,
18112         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
18113         expand_builtin_memset_args, expand_builtin_strcmp,
18114         expand_builtin_strncmp, expand_builtin_memory_chk): Use
18115         build_call_nofold_loc instead of build_call_nofold.
18116         (build_call_expr): New function.
18117
18118         PR tree-optimization/44508
18119         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
18120         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
18121         don't eliminate trivially dead stmts.
18122         * tree-vrp.c (vrp_finalize): Pass false as last argument
18123         to substitute_and_fold.
18124         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
18125         to substitute_and_fold.
18126         * tree-ssa-ccp.c (ccp_finalize): Likewise.
18127
18128         PR bootstrap/44509
18129         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
18130
18131 2010-06-14  Ira Rosen  <irar@il.ibm.com>
18132
18133         PR tree-optimization/44507
18134         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
18135         to build initial vector for BIT_AND_EXPR.
18136         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
18137
18138 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
18139
18140         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
18141         adjust z10prop set_attr.
18142
18143 2010-06-13  Jan Hubicka  <jh@suse.cz>
18144
18145         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
18146         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
18147         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
18148         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
18149         datastructure checks into checking asserts.
18150         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
18151         * tree-ssa-sccvn.c (VN_INFO): Likewise.
18152         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
18153         df_ref_create_structure): Likewise.
18154         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
18155         pool_free): Use gcc_checking_assert.
18156         * alias.c (get_alias_set): Likewise.
18157         * var-tracking.c (variable_htab_free, shared_hash_copy,
18158         canonicalize_values_mark, variable_merge_over_cur): Likewise.
18159         * lto-streamer.c (bp_unpack_value): Likewise.
18160
18161 2010-06-13  Richard Guenther  <rguenther@suse.de>
18162
18163         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
18164         Do not stream but initialize TYPE_CANONICAL to NULL.
18165         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
18166         * gimple.c (gimple_types_compatible_p): Disregard
18167         TYPE_STRUCTURAL_EQUALITY_P.
18168         (gimple_register_type): Use TYPE_CANONICAL as cache.
18169         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
18170         before registering common types.
18171         * config/i386/i386.c (ix86_function_arg_boundary): Do not
18172         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
18173         * tree.h (TYPE_CANONICAL): Clarify documentation.
18174
18175 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
18176
18177         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
18178         LIBCALL_VALUE): Remove macros.
18179         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
18180         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18181         TARGET_FUNCTION_VALUE_REGNO_P): Define.
18182         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
18183         (ia64_function_value): Make static. Handle receiving the function
18184         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
18185
18186 2010-06-12  Jan Hubicka  <jh@suse.cz>
18187
18188         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
18189         at correct place.
18190
18191 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
18192
18193         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
18194
18195 2010-06-12  Jan Hubicka  <jh@suse.cz>
18196
18197         * df-core.c (df_clear_bb_info): New function.
18198         (df_set_blocks): bb_info is always allocated.
18199         (df_get_bb_info): Use block_info_elt_size.
18200         (df_set_bb_info): Likewise.
18201         (df_compact_blocks): Update for new block_info.
18202         (grow_bb_info): New function.
18203         * df-problems.c (df_grow_bb_info): Move to df-core.c
18204         (df_rd_set_bb_info): Remove.
18205         (df_rd_free_bb_info): Do not free block pool.
18206         (df_rd_alloc): Do not create pool, use check for
18207         obstack presence instead of NULL pointer for new blocks.
18208         (df_rd_free): DO not free alloc pool; clear block_info.
18209         (problem_RD): Add size of block info structure.
18210         (df_lr_set_bb_info): Remove.
18211         (df_lr_free_bb_info): Do not free block pool.
18212         (df_lr_alloc): Do not create pool, use check for
18213         obstack presence instead of NULL pointer for new blocks.
18214         (df_lr_free): DO not free alloc pool; clear block_info.
18215         (problem_LR): Add size of block info structure.
18216         (df_live_set_bb_info): Remove.
18217         (df_live_free_bb_info): Do not free block pool.
18218         (df_live_alloc): Do not create pool, use check for
18219         obstack presence instead of NULL pointer for new blocks.
18220         (df_live_free): DO not free alloc pool; clear block_info.
18221         (problem_LIVE): Add size of block info structure.
18222         (problem_CHAIN): Add size of block info structure.
18223         (df_byte_lr_set_bb_info): Remove.
18224         (df_byte_lr_free_bb_info): Do not free block pool.
18225         (df_byte_lr_alloc): Do not create pool, use check for
18226         obstack presence instead of NULL pointer for new blocks.
18227         (df_byte_lr_free): DO not free alloc pool; clear block_info.
18228         (problem_BYTE_LR): Add size of block info structure.
18229         (problem_NOTE): Add size of block info structure.
18230         (df_byte_MD_set_bb_info): Remove.
18231         (df_byte_MD_free_bb_info): Do not free block pool.
18232         (df_byte_MD_alloc): Do not create pool, use check for
18233         obstack presence instead of NULL pointer for new blocks.
18234         (df_byte_MD_free): DO not free alloc pool; clear block_info.
18235         (problem_BD): Add size of block info structure.
18236         * df-scan.c (df_scan_free_internal): Free block pool.
18237         (df_scan_set_bb_info): Remove.
18238         (df_scan_free_bb_info): Check for artificial_defs instead
18239         of bb_info being non-NULL.
18240         (df_scan_alloc): DO not create df_scan_block pool.
18241         (problem_SCAN): Set size of block info.
18242         (df_bb_refs_record): Do not allocate bb_info.
18243         * df.h (df_problem): Add block_info_elt_size.
18244         (struct dataflow): Change block_info to void *.
18245         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
18246         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
18247         in-line structures.
18248
18249 2010-06-12  Jan Hubicka  <jh@suse.cz>
18250
18251         PR tree-optimize/44485
18252         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
18253         containing use of return value of noreturn function.
18254
18255 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
18256
18257         * targhooks.c (default_function_value): Don't use
18258         FUNCTION_OUTGOING_VALUE.
18259         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
18260         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
18261
18262 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
18263
18264         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
18265         Add crtfastmath.o to extra_parts.
18266         * config/mips/crtfastmath.c: New.
18267         * config/mips/linux.h (ENDFILE_SPEC): New.
18268
18269 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
18270
18271         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
18272         old_type in parameter.
18273         (gcc_type_for_value): Update call to gcc_type_for_interval.
18274         (compute_type_for_level_1): Renamed compute_type_for_level.
18275         Update call to gcc_type_for_interval.
18276
18277 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
18278
18279         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
18280         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
18281
18282 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
18283
18284         * opts-common.c: Include options.h.
18285         (integral_argument): Move from opts.c.
18286         (decode_cmdline_option): New.  Based on read_cmdline_option.
18287         * opts.c (integral_argument): Move to opts-common.c.
18288         (read_cmdline_option): Move most contents to
18289         decode_cmdline_option.  Use %qs in diagnostics.
18290         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
18291         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
18292         decode_cmdline_option): New.
18293
18294 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
18295
18296         PR target/44481
18297         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
18298         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
18299         (partiysi2_cmp): Ditto.
18300         (*partiyhi2_cmp): Ditto.
18301         (*parityqi2_cmp): Remove.
18302
18303 2010-06-11  Jan Hubicka  <jh@suse.cz>
18304
18305         * bitmap.h (bmp_iter_next_bit): New.
18306         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
18307
18308 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
18309             Eric Botcazou  <ebotcazou@adacore.com>
18310
18311         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
18312         computed cost.
18313
18314 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
18315
18316         * config/i386/i386.md (unspec): New define_c_enum.
18317         (unspecv): Ditto.
18318
18319 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
18320
18321         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
18322
18323 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
18324
18325         PR middle-end/44483
18326         * tree-if-conv.c (bb_predicate_s): New struct.
18327         (bb_predicate_p): New.
18328         (bb_has_predicate): New.
18329         (bb_predicate): New.
18330         (set_bb_predicate): New.
18331         (bb_predicate_gimplified_stmts): New.
18332         (set_bb_predicate_gimplified_stmts): New.
18333         (add_bb_predicate_gimplified_stmts): New.
18334         (init_bb_predicate): New.
18335         (free_bb_predicate): New.
18336         (is_predicated): Use bb_predicate.
18337         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
18338         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
18339         before processing their successors.
18340         (clean_predicate_lists): Removed.
18341         (find_phi_replacement_condition): Use bb_predicate.
18342         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
18343         computations.
18344         (insert_gimplified_predicates): New.
18345         (combine_blocks): Call insert_gimplified_predicates.
18346         (tree_if_conversion): Call free_bb_predicate instead of
18347         clean_predicate_lists.
18348
18349 2010-10-11  Paul Brook  <paul@codesourcery.com>
18350
18351         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
18352         * config/arm/arm.c (all_architectures): Change v7e-m default to
18353         cortexm4.
18354         * config/arm/arm-cores.def: Add cortex-m4.
18355         * config/arm/arm-tune.md: Regenerate.
18356
18357 2010-06-11  Jan Hubicka  <jh@suse.cz>
18358
18359         * ipa-pure-const.c (special_builtlin_state): New function.
18360         (check_call): Use it instead of special casign BUILT_IN_RETURN.
18361         (propagate_pure_const): Use it.
18362
18363 2010-06-11  Jan Hubicka  <jh@suse.cz>
18364
18365         * df-problems.c (df_live_scratch): Convert to bitmap_head.
18366         (df_live_alloc): Initialize df_live_scratch when initializing
18367         problem_data.
18368         (df_live_transfer_function): Update uses of df_live_scratch.
18369         (df_live_free): Free problem_data; clear df_live_scratch before
18370         releasing the obstack.
18371         (df_md_free): Free problem data.
18372
18373 2010-06-11  Jan Hubicka  <jh@suse.cz>
18374
18375         * doc/invoke.texi (Wsuggest-attribute): Document.
18376         (Wmissing-noreturn): Remove.
18377         * ipa-pure-const.c (warn_function_noreturn): New function.
18378         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
18379         warn_missing_noreturn.
18380         * common.opt (Wsuggest-attribute=noreturn): New.
18381         * tree-flow.h (warn_function_noreturn): Declare.
18382         * tree-cfg.c (execute_warn_function_noreturn): Use
18383         warn_function_noreturn.
18384         (gate_warn_function_noreturn): New.
18385         (pass_warn_function_noreturn): Update.
18386
18387 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18388
18389         * c-typeck.c (handle_warn_cast_qual): Add loc
18390         parameter. Improve warning message.
18391         (build_c_cast): Pass location to handle_warn_cast_qual.
18392
18393 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
18394
18395         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
18396         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
18397         insn mnemonic.
18398         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
18399
18400 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
18401
18402         Fix bootstap on mips
18403         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
18404         be naming typedefs.
18405
18406 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
18407
18408         * system.h (helper_const_non_const_cast): New inline for
18409         gcc version <= 4.0.
18410         (CONST_CAST2): For gcc version <= 4.0 use
18411         new helper to do const/non-const casting.
18412
18413 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18414
18415         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
18416         * Makefile.in (OBJS-common): Include insn-enums.o.
18417         (insn-enums.o): New rule.
18418         (simple_generated_c): Add insn-enums.c.
18419         (build/genenums.o): New rule.
18420         (genprogmd): Add "enums".
18421         * genconstants.c (print_enum_type): Declare a C string array
18422         for each enum.
18423         * genenums.c: New file.
18424         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
18425         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
18426         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
18427
18428 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18429
18430         * doc/md.texi (define_enum_attr): Document.
18431         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
18432         * read-md.h (lookup_enum_type): Declare.
18433         * read-md.c (lookup_enum_type): New function.
18434         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
18435         * genattrtab.c (attr_desc): Add an enum_name field.
18436         (evaluate_eq_attr): Take the associated attribute as argument.
18437         Get the enum prefix from the enum_name field, if defined.
18438         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
18439         (simplify_test_exp): Pass attr to evaluate_eq_attr.
18440         (add_attr_value): New function, split out from...
18441         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
18442         (write_test_expr): Pass attr to evaluate_eq_attr.
18443         (write_attr_get): Use the enum_name as the enum tag, if defined.
18444         (write_attr_valueq): Use the enum_name as a prefix, if defined.
18445         (find_attr): Initialize enum_name.
18446         (main): Handle DEFINE_ENUM_ATTR.
18447         * gensupport.c (process_rtx): Likewise.
18448         * config/mips/mips.h (mips_tune_attr): Delete.
18449         * config/mips/mips.md (cpu): Use define_attr_enum.
18450
18451 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18452
18453         * doc/md.texi (define_c_enum, define_enum): Document.
18454         * read-md.h (md_constant): Add a parent_enum field.
18455         (enum_value, enum_type): New structures.
18456         (upcase_string, traverse_enum_types): Declare.
18457         * read-md.c (enum_types): New variable.
18458         (upcase_string, add_constant): New functions.
18459         (handle_constants): Don't create the hash table here.
18460         Use add_constant.
18461         (traverse_md_constants): Don't check for a null md_constants.
18462         (decimal_string, handle_enum, traverse_enum_types): New functions.
18463         (read_md_files): Initialize md_constants and md_enums.
18464         * genconstants.c (print_md_constant): Ignore info argument.
18465         Only print constants that belong to no enum.
18466         (print_enum_type): New function.
18467         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
18468         for each defined enum type.
18469         * config/mips/mips.md (processor): New define_enum.
18470         (unspec): New define_c_enum.
18471         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
18472         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
18473         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
18474         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
18475         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
18476         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
18477         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
18478         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
18479         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
18480         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
18481         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
18482         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
18483         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
18484         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
18485         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
18486         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
18487         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
18488         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
18489         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
18490         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
18491         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
18492         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
18493         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
18494         (UNSPEC_RDDSP): Move to mips-dsp.md.
18495         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
18496         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
18497         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
18498         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
18499         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
18500         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
18501         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
18502         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
18503         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
18504         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
18505         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
18506         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
18507         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
18508         Moved to mips-dspr2.md.
18509         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
18510         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
18511         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
18512         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
18513         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
18514         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
18515         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
18516         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
18517         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
18518         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
18519         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
18520         UNSPEC_LOONGSON_PSADBH)
18521         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
18522         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
18523         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
18524         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
18525         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
18526         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
18527         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
18528         (cpu): Update comment.
18529         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
18530         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
18531         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
18532         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
18533         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
18534         UNSPEC_LOONGSON_PCMPEQ)
18535         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
18536         UNSPEC_LOONGSON_PINSR_0)
18537         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
18538         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
18539         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
18540         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
18541         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
18542         UNSPEC_LOONGSON_PSADBH)
18543         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
18544         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
18545         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
18546         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
18547         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
18548         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
18549         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
18550         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
18551         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
18552         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
18553         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
18554         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
18555         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
18556         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
18557         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
18558         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
18559         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
18560         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
18561         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
18562         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
18563         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
18564         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
18565         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
18566         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
18567         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
18568         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
18569         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
18570         (UNSPEC_RDDSP): Moved from mips.md.
18571         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
18572         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
18573         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
18574         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
18575         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
18576         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
18577         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
18578         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
18579         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
18580         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
18581         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
18582         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
18583         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
18584         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
18585         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
18586         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
18587         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
18588         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
18589         (UNSPEC_SCC): Moved from mips.md.
18590         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
18591         "processor_type" to "processor".
18592         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
18593         * config/mips/mips.h (processor_type): Delete.
18594         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
18595         "processor_type" to "processor".
18596
18597 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18598
18599         * configure.ac (tm_include_list): Add insn-constants.h.
18600         * configure: Regenerate.
18601         * Makefile.in (GTM_H): Move insn-constants.h here from...
18602         (TM_H): ...here.
18603         * mkconfig.sh: Remove special handling for insn-constants.h.
18604
18605 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18606
18607         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
18608         (BUILD_MD): ...this new variable.
18609         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
18610         that include the old contents of simple_generated_h and
18611         simple_generated_c.
18612         (simple_generated_h, simple_generated_c): Include them.  Add
18613         insn-constants.h.
18614         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
18615         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
18616         Remove these dependencies from the main rule and include
18617         insn-conditions.md in the command line only if it appears
18618         in the dependency list.
18619         (insn-constants.h, s-constants): Delete.
18620         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
18621         or gensupport.h.
18622         (build/genmddeps.o): Likewise.
18623         (genprogrtl): New variable that contains everything from genprogmd
18624         except mddeps and constants.
18625         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
18626         depend on $(BUILD_MD)
18627         (genprog): New variable.  Make these programs depend on
18628         $(BUILD_ERRORS).
18629         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
18630         (main): Use read_md_files instead of init_rtx_reader_args.
18631         * genconstants.c: As for genmddeps.c.
18632         * read-md.h (read_skip_construct): Declare.
18633         * read-md.c (read_skip_construct): New function.
18634         (handle_file): Allow a null handle_directive, skipping the
18635         construct if so.
18636         (parse_include): Update the comment accordingly.
18637
18638 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18639
18640         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
18641         * genmddeps.c: Include read-md.h.
18642         (main): Call init_rtx_reader_args instead of init_md_reader_args.
18643         * genattr.c (main): Likewise.
18644         * genattrtab.c (main): Likewise.
18645         * genautomata.c (main): Likewise.
18646         * gencodes.c (main): Likewise.
18647         * genconditions.c (main): Likewise.
18648         * genconfig.c (main): Likewise.
18649         * genconstants.c (main): Likewise.
18650         * genemit.c (main): Likewise.
18651         * genextract.c (main): Likewise.
18652         * genflags.c (main): Likewise.
18653         * genopinit.c (main): Likewise.
18654         * genoutput.c (main): Likewise.
18655         * genpeep.c (main): Likewise.
18656         * genrecog.c (main): Likewise.
18657         * genpreds.c (main): Likewise.
18658         * gensupport.h (in_fname): Move to read-md.h.
18659         (init_md_reader_args_cb): Rename to...
18660         (init_rtx_reader_args_cb): ...this and return a bool.
18661         (init_md_reader_args): Rename to...
18662         (init_rtx_reader_args): ...this and return a bool.
18663         (include_callback): Move to read-md.h.
18664         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
18665         (file_name_list, first_dir_md_include): Move to read-md.c
18666         (first_bracket_include): Delete unused variable.
18667         (last_dir_md_include): Move to read-md.c.
18668         (process_include): Delete, moving code to read-md.c:handle_include.
18669         (process_rtx): Don't handle INCLUDE.
18670         (save_string): Delete.
18671         (rtx_handle_directive): New function.
18672         (init_md_reader_args_cb): Rename to...
18673         (init_rtx_reader_args_cb): ...this and return a boolean success value.
18674         Use read_md_args.
18675         (init_md_reader_args): Rename to...
18676         (init_rtx_reader_args): ...this and return a boolean success value.
18677         * rtl.def (INCLUDE): Delete.
18678         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
18679         argument.
18680         * read-rtl.c (read_conditions): Don't gobble ')' here.
18681         (read_mapping): Likewise.
18682         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
18683         Handle top-level non-rtx constructs here rather than in read_rtx_1.
18684         Store the whole queue in *X.  Remove call to init_md_reader.
18685         (read_rtx_1): Rename to...
18686         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
18687         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
18688         here.
18689         (read_nested_rtx): New function.  Handle (nil) here rather than
18690         in read_rtx_code.
18691         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
18692         gobble ')' here.
18693         * read-md.h (directive_handler_t): New type.
18694         (in_fname, include_callback): Moved from read-md.h.
18695         (read_constants, init_md_reader): Delete.
18696         (read_md_files): Declare.
18697         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
18698         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
18699         from gensupport.c.
18700         (read_constants): Rename to...
18701         (handle_constants): ...this.  Don't gobble ')' here.
18702         (handle_include, handle_file, handle_toplevel_file)
18703         (parse_include): New functions, mostly taken from gensupport.c.
18704         (init_md_reader): Subsume into...
18705         (read_md_files): ...this new function.
18706
18707 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18708
18709         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
18710         (unread_char): Decrement read_md_lineno after putting back '\n'.
18711         * read-md.c (fatal_with_file_and_line): Push back any characters
18712         that we decide not to add to the context.
18713         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
18714         fatal_expected_char in cases where '/' ends a line (for example).
18715         (read_name): Don't increment read_md_lineno here.
18716         (read_escape): Likewise.
18717         (read_quoted_string): Likewise.
18718         (read_braced_string): Likewise.
18719
18720 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18721
18722         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
18723         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
18724         * genconstants.c: Include read-md.h.
18725         * read-rtl.c (md_constants): Move to read-md.c.
18726         (md_name): Move to read-md.h.
18727         (initialize_iterators): Use leading_string_hash instead of def_hash
18728         and leading_string_eq_p instead of def_name_eq_p.
18729         (read_name): Move to read-md.c.
18730         (def_hash, def_name_eq_p): Delete.
18731         (read_constants, traverse_md_constants): Move to read-md.c.
18732         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
18733         * read-md.h: Include hashtab.h.
18734         (md_name): Moved from read-rtl.c.
18735         (md_constant): Moved from read-md.h.
18736         (leading_string_hash, leading_string_eq_p, read_name)
18737         (read_constants, traverse_md_constants): Declare.
18738         * read-md.c (md_constants): Moved from read-rtl.c.
18739         (leading_string_hash, leading_string_eq_p): New functions.
18740         (read_name, read_constants, traverse_md_constants): Moved from
18741         read-rtl.c.
18742
18743 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18744
18745         * read-rtl.c (md_name): New structure.
18746         (read_name): Take an md_name instead of a buffer pointer.
18747         Use the "string" field instead of strcpy when expanding constants.
18748         (read_constants): Remove the tmp_char argument.  Update the calls
18749         to read_name, using two local name buffers instead of the tmp_char
18750         argument.  Merge the constant-creation code.
18751         (read_conditions): Remove the tmp_char argument.  Update the calls
18752         to read_name, using a local name buffer instead of the tmp_char
18753         argument.
18754         (read_mapping): Replace tmp_char variable with a local name buffer.
18755         Update the calls to read_name.
18756         (read_rtx_1): Likewise.  Update the calls to read_constants and
18757         read_conditions.
18758
18759 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18760
18761         * Makefile.in (build/read-md.o): Depend on errors.h.
18762         * read-md.h (error_with_line): Declare.
18763         * read-md.c: Include errors.h.
18764         (message_with_line_1): New function, extracted from...
18765         (message_with_line): ...here.
18766         (error_with_line): New function.
18767         * genattrtab.c: If a call to message_with_line is followed by
18768         "have_error = 1;", replace both statements with a call to
18769         error_with_line.
18770         * genoutput.c: Likewise.
18771         * genpreds.c: Likewise.
18772         * genrecog.c: If a call to message_with_line is followed by
18773         "error_count++;", replace both statements with a call to
18774         error_with_line.
18775         (errorcount): Delete.
18776         (main): Don't check it.
18777         * gensupport.c: If a call to message_with_line is followed by
18778         "errors = 1;", replace both statements with a call to error_with_line.
18779         (errors): Delete.
18780         (process_define_cond_exec): Check have_error instead of errors.
18781         (init_md_reader_args_cb): Likewise.  Don't set errors.
18782
18783 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18784
18785         * read-md.h (read_md_file): Declare.
18786         (read_char, unread_char): New functions.
18787         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
18788         (read_quoted_string, read_string): Remove FILE * argument.
18789         * read-md.c (read_md_file): New variable.
18790         (read_md_filename, read_md_lineno): Update comments and remove
18791         unnecessary initialization.
18792         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
18793         (read_escape, read_quoted_string, read_braced_string, read_string):
18794         Remove FILE * argument.  Update calls accordingly, using read_char
18795         and unread_char instead of getc and ungetc.
18796         * rtl.h (read_rtx): Remove FILE * argument.
18797         * read-rtl.c (iterator_group): Remove FILE * argument from
18798         "find_builtin".
18799         (iterator_traverse_data): Remove "infile" field.
18800         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
18801         (add_mapping, read_name, read_constants, read_conditions)
18802         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
18803         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
18804         Remove file arguments from all calls, using read_char and unread_char
18805         instead of getc and ungetc.
18806         * gensupport.c (process_include): Preserve read_md_file around
18807         the include.  Set read_md_file to the handle of the included file.
18808         Update call to read_rtx.
18809         (init_md_reader_args_cb): Set read_md_file to the handle of the file
18810         and remove local FILE *.  Update calls to read_rtx.
18811
18812 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18813
18814         * read-md.h (read_rtx_lineno): Rename to...
18815         (read_md_lineno): ...this.
18816         (read_rtx_filename): Rename to...
18817         (read_md_filename): ...this.
18818         (copy_rtx_ptr_loc): Rename to...
18819         (copy_md_ptr_loc): ...this.
18820         (print_rtx_ptr_loc): Rename to...
18821         (print_md_ptr_loc): ...this.
18822         * read-md.c: Likewise.  Update references after renaming.
18823         (string_obstack): Replace RTL with MD in comment.
18824         (set_rtx_ptr_loc): Rename to...
18825         (set_md_ptr_loc): ...this.
18826         (get_rtx_ptr_loc): Rename to...
18827         (get_md_ptr_loc): ...this.
18828         * genconditions.c: Update references after renaming.
18829         * genemit.c: Likewise.
18830         * genoutput.c: Likewise.
18831         * genpreds.c: Likewise.
18832         * gensupport.c: Likewise.
18833         * read-rtl.c: Likewise.
18834
18835 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18836
18837         * Makefile.in (READ_MD_H): New variable.
18838         (BUILD_RTL): Add build/read-md.o.
18839         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
18840         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
18841         (build/genattrtab.o, build/genconditions.o build/genemit.o)
18842         (build/genextract.o, build/genflags.o, build/genoutput.o)
18843         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
18844         (build/read-md.o): New rule.
18845         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
18846         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
18847         * coretypes.h: ...here.
18848         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
18849         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
18850         * genattr.c: Include read-md.h.
18851         * genattrtab.c: Likewise.
18852         * genconditions.c: Likewise.
18853         * genemit.c: Likewise.
18854         * genextract.c: Likewise.
18855         * genflags.c: Likewise.
18856         * genoutput.c: Likewise.
18857         * genpreds.c: Likewise.
18858         * genrecog.c: Likewise.
18859         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
18860         (join_c_conditions, print_c_condition, read_rtx_filename)
18861         (read_rtx_lineno): Move to read-md.h.
18862         * read-rtl.c: Include read-md.h.
18863         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
18864         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
18865         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
18866         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
18867         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
18868         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
18869         (read_braced_string, read_string): Move to read-md.c.
18870         (read_rtx): Move some initialization to init_md_reader and call
18871         init_md_reader here.
18872         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
18873         Move to read-md.h.
18874         * gensupport.c: Include read-md.h.
18875         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
18876         * read-md.h, read-md.c: New files.
18877
18878 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
18879
18880         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
18881         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18882         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
18883         * config/moxie/moxie.c (moxie_function_value): Make static.
18884         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
18885         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
18886
18887 2010-06-10  Martin Jambor  <mjambor@suse.cz>
18888
18889         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
18890         * dbgcnt.def (tree_sra): New counter.
18891         * tree-sra.c: Include dbgcnt.h.
18892         (gate_intra_sra): Check tree_sra debug counter.
18893
18894 2010-06-10  Martin Jambor  <mjambor@suse.cz>
18895
18896         PR tree-optimization/44258
18897         * tree-sra.c (build_access_subtree): Return false iff there is a
18898         partial overlap.
18899         (build_access_trees): Likewise.
18900         (analyze_all_variable_accesses): Disqualify candidates if
18901         build_access_trees returns true for them.
18902
18903 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
18904
18905         PR debug/41371
18906         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
18907         tail-recurse into canonical node.  Fast-forward over
18908         non-canonical VALUEs.
18909
18910 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
18911
18912         PR boostrap/44470
18913         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
18914         (*addsi_1_zext) <TYPE_LEA>: Likewise.
18915         (add lea splitter): Likewise.
18916         (add_zext lea splitter): Likewise.
18917
18918 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
18919
18920         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
18921
18922 2010-06-10  Jan Hubicka  <jh@suse.cz>
18923
18924         * df-problems.c (df_live_problem_data): Add live_bitmaps.
18925         (df_live_alloc): Initialize problem data and live_osbtacks.
18926         (df_live_finalize): Remove obstack, problem data; do not
18927         clear all bitmaps.
18928         (df_live_top_dump, df_live_bottom_dump): Do not dump old
18929         data when not allocated.
18930         (df_live_verify_solution_start): Do not allocate problem data.
18931         (df_live_verify_solution_end): Check if out is allocated.
18932         (struct df_md_problem_data): New structure.
18933         (df_md_alloc): Allocate problem data.
18934         (df_md_free): Free problem data; do not clear bitmaps.
18935
18936 2010-06-10  Jan Beulich  <jbeulich@novell.com>
18937
18938         PR bootstrap/37304
18939         * configure.ac: Replace $() with ${} when intending to expand
18940         variables rather than invoking commands.
18941         * configure: Re-generate.
18942
18943 2010-06-10  Jan Hubicka  <jh@suse.cz>
18944
18945         PR rtl-optimization/44460
18946         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
18947         TYPE_NEEDS_CONSTRUCTING sanity check.
18948
18949 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
18950
18951         * doc/include/fdl.texi: Move to GFDL version 1.3.
18952
18953         * doc/cpp.texi: Move to GFDL version 1.3.
18954         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
18955         * doc/gccint.texi: Move to GFDL version 1.3.
18956         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
18957         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
18958         * doc/invoke.texi: Move to GFDL version 1.3.
18959
18960 2010-06-09  Jan Hubicka  <jh@suse.cz>
18961
18962         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
18963         Break out from ...
18964         (propagate) ... here; swap the order.
18965
18966 2010-06-09  Jan Hubicka  <jh@suse.cz>
18967
18968         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
18969         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
18970         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
18971         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
18972
18973 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
18974
18975         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
18976         Do not the gather memory reference in the outer loop if the step
18977         is not a constant.
18978
18979 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
18980
18981         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
18982         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
18983         8 to 4.  Minor change of the related comments.
18984
18985 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
18986
18987         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
18988         the scev analysis when the variable is not used outside the loop
18989         in a close phi node: call compute_overall_effect_of_inner_loop.
18990
18991 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
18992
18993         * graphite-sese-to-poly.c (single_pred_cond): Renamed
18994         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
18995         (build_sese_conditions_before): Renamed call to single_pred_cond.
18996         (build_sese_conditions_after): Same.
18997
18998 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
18999
19000         * graphite-poly.h: Fix comments and indentation.
19001         * graphite-sese-to-poly.c: Same.
19002         (build_sese_conditions_before): Compute stmt and gbb only when needed.
19003         * tree-chrec.c: Fix comments and indentation.
19004         (tree-ssa-loop-niter.c): Same.
19005
19006 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
19007
19008         PR rtl-optimization/42461
19009         * dce.c (deletable_insn_p): Return true for const or pure calls again.
19010         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
19011
19012 2010-06-09  Jan Hubicka  <jh@suse.cz>
19013
19014         * bitmap.c (bitmap_and): Walk array forward.
19015         (bitmap_and_compl_into): Likewise.
19016         (bitmap_xor): Likewise.
19017         (bitmap_xor_into):  Likewise.
19018         (bitmap_equal_p): Likewise.
19019         (bitmap_intersect_p): Likewise.
19020         (bitmap_intersect_compl_p): Likewise.
19021         (bitmap_ior_and_into): Likewise.
19022         (bitmap_elt_copy): Likewise.
19023         (bitmap_and_compl): Likewise.
19024         (bitmap_elt_ior): Likewise.
19025
19026 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
19027
19028         * opts-common.c (prune_options): Ensure replacement argv array
19029         is correctly terminated by a NULL entry.
19030
19031 2010-06-09  Jan Hubicka  <jh@suse.cz>
19032
19033         * cgraph.h (varpool_first_static_initializer,
19034         varpool_next_static_initializer): Make checking only when
19035         checking enabled.
19036         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
19037         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
19038         gcc_assert to gcc_checking_assert.
19039         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
19040         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
19041         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
19042         op_iter_init_phiuse, op_iter_init_phidef,
19043         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
19044         gcc_checking_assert.
19045         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
19046         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
19047         partition_is_global, live_on_entry, live_on_exit,
19048         live_merge_and_clear): Likewise.
19049         * system.h (gcc_checking_assert): New macro.
19050         * gimple.h (set_bb_seq): Use gcc_checking_assert.
19051
19052 2010-06-09  Jason Merrill  <jason@redhat.com>
19053
19054         * Makefile.in (TAGS): Collect tags info from c-family.
19055
19056 2010-06-09  Jan Hubicka  <jh@suse.cz>
19057
19058         * gimple.h (gcc_gimple_checking_assert): New macro.
19059         (gimple_set_def_ops, gimple_set_use_ops,
19060         gimple_set_vuse, gimple_set_vdef,
19061         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
19062         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
19063         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
19064         gimple_asm_output_op, gimple_asm_output_op_ptr,
19065         gimple_asm_set_output_op, gimple_asm_clobber_op,
19066         gimple_asm_set_clobber_op, gimple_asm_label_op,
19067         gimple_asm_set_label_op, gimple_try_set_kind,
19068         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
19069         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
19070         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
19071         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
19072         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
19073         gimple_omp_for_set_initial, gimple_omp_for_final,
19074         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
19075         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
19076         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
19077         conditional with ENABLE_GIMPLE_CHECKING.
19078         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
19079
19080 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
19081
19082         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
19083         (get_computation_cost_at): Use it.
19084         (determine_use_iv_cost_condition): Likewise.
19085         (determine_iv_cost): Likewise.
19086
19087 2010-06-09  Richard Guenther  <rguenther@suse.de>
19088
19089         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
19090         replace constants.
19091
19092 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
19093
19094         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
19095
19096 2010-06-09  Martin Jambor  <mjambor@suse.cz>
19097
19098         PR tree-optimization/44423
19099         * tree-sra.c (dump_access): Dump also grp_assignment_read.
19100         (analyze_access_subtree): Pass negative allow_replacements to children
19101         if the current type is scalar.
19102
19103 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
19104
19105         PR testsuite/42843
19106         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
19107         * doc/plugins.texi (Plugin license check): Update information
19108         on type of plugin_is_GPL_compatible.
19109         * Makefile.in (PLUGINCC): Define as $(COMPILER).
19110         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
19111
19112 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
19113
19114         * config/arm/arm.c (thumb2_reorg): New function.
19115         (arm_reorg): Call it.
19116         * config/arm/thumb2.md (define_peephole2 for flag clobbering
19117         arithmetic operations): Delete.
19118
19119 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
19120
19121         PR target/44067
19122         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
19123         e500v2 target.
19124
19125 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
19126
19127         PR plugins/44459
19128         * gcc-plugin.h: Encapsulate all declarations in extern "C".
19129
19130 2010-06-08  Jan Hubicka  <jh@suse.cz>
19131
19132         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
19133         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
19134
19135 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
19136
19137         PR tree-optimization/39874
19138         PR middle-end/28685
19139         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
19140         Declare.
19141         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
19142         same_bool_result_p): New.
19143         (and_var_with_comparison, and_var_with_comparison_1,
19144         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
19145         (or_var_with_comparison, or_var_with_comparison_1,
19146         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
19147         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
19148         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
19149         of combine_comparisons.
19150         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
19151
19152 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
19153
19154         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
19155         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
19156         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
19157         pdp11_function_value_regno_p): New functions.
19158         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19159         TARGET_FUNCTION_VALUE_REGNO_P): Define.
19160
19161 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
19162
19163         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
19164         Thumb-2 in the MINUS case.
19165
19166 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19167
19168         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
19169
19170         * doc/gty.texi (GTY Options): Document typed GC allocation and
19171         variable_size GTY option.
19172
19173         * ggc-internal.h: New.
19174
19175         * ggc.h: Update copyright year.
19176         (digit_string): Move to stringpool.c.
19177         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
19178         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
19179         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
19180         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
19181         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
19182         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
19183         (ggc_force_collect, ggc_get_size, ggc_statistics)
19184         (ggc_print_common_statistics): Move to ggc-internal.h.
19185         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
19186         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
19187         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
19188         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
19189         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
19190         (ggc_alloc_zone_pass_stat): Remove.
19191         (ggc_internal_alloc_stat, ggc_internal_alloc)
19192         (ggc_internal_cleared_alloc_stat): New.
19193         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
19194         (ggc_internal_vec_alloc_stat)
19195         (ggc_internal_cleared_vec_alloc_stat)
19196         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
19197         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
19198         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
19199         (ggc_cleared_alloc_ptr_array_two_args): New.
19200         (htab_create_ggc, splay_tree_new_ggc): Redefine.
19201         (ggc_splay_alloc): Change the type of the first argument to
19202         enum gt_types_enum.
19203         (ggc_alloc_string): Make macro.
19204         (ggc_alloc_string_stat): New.
19205         (ggc_strdup): Redefine.
19206         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
19207         (ggc_alloc_rtvec_sized): New.
19208         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
19209         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
19210         (ggc_internal_cleared_alloc_zone_stat)
19211         (ggc_internal_zone_alloc_stat)
19212         (ggc_internal_zone_cleared_alloc_stat)
19213         (ggc_internal_zone_vec_alloc_stat)
19214         (ggc_alloc_zone_rtx_def_stat)
19215         (ggc_alloc_zone_tree_node_stat)
19216         (ggc_alloc_zone_cleared_tree_node_stat)
19217         (ggc_alloc_cleared_gimple_statement_d_stat): New.
19218
19219         * ggc-common.c: Include ggc-internal.h.
19220         (ggc_internal_cleared_alloc_stat): Rename from
19221         ggc_alloc_cleared_stat.
19222         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
19223         (ggc_calloc): Remove.
19224         (ggc_cleared_alloc_htab_ignore_args): New.
19225         (ggc_cleared_alloc_ptr_array_two_args): New.
19226         (ggc_splay_alloc): Add obj_type parameter.
19227         (init_ggc_heuristics): Formatting fixes.
19228
19229         * ggc-none.c: Update copyright year.
19230         (ggc_alloc_stat): Rename to ggc_alloc_stat.
19231         (ggc_alloc_cleared_stat): Rename to
19232         ggc_internal_cleared_alloc_stat.
19233         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
19234
19235         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
19236         Remove references to ggc_alloc in comments.
19237         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
19238         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
19239         (new_ggc_zone, destroy_ggc_zone): Remove.
19240         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
19241
19242         * ggc-zone.c: Include ggc-internal.h.  Remove references to
19243         ggc_alloc in comments.
19244         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
19245         (ggc_internal_alloc_zone_pass_stat): New.
19246         (ggc_internal_cleared_alloc_zone_stat): New.
19247         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
19248         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
19249         (new_ggc_zone, destroy_ggc_zone): Remove.
19250
19251         * stringpool.c: Update copyright year.  Include ggc-internal.h
19252         (digit_vector): Make static.
19253         (digit_string): Moved from ggc.h.
19254         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
19255         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
19256
19257         * Makefile.in (GGC_INTERNAL_H): New.
19258         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
19259         $(GGC_INTERNAL_H) to dependencies.
19260
19261         * gentype.c: Update copyright year.
19262         (walk_type): Accept variable_size GTY option.
19263         (USED_BY_TYPED_GC_P): New macro.
19264         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
19265         whitespace at the end of strings.
19266         (get_type_specifier, variable_size_p): New functions.
19267         (alloc_quantity, alloc_zone): New enums.
19268         (write_typed_alloc_def): New function.
19269         (write_typed_struct_alloc_def): Likewise.
19270         (write_typed_typed_typedef_alloc_def): Likewise.
19271         (write_typed_alloc_defns): Likewise.
19272         (output_typename, write_splay_tree_allocator_def): Likewise.
19273         (write_splay_tree_allocators): Likewise.
19274         (main): Call write_typed_alloc_defns and
19275         write_splay_tree_allocators.
19276
19277         * lto-streamer.h (lto_file_decl_data_ptr): New.
19278
19279         * passes.c (order): Define using cgraph_node_ptr.
19280
19281         * strinpool.c (struct string_pool_data): Declare nested_ptr using
19282         ht_identifier_ptr.
19283
19284         * gimple.h (union gimple_statement_d): Likewise.
19285
19286         * rtl.h (struct rtx_def): Likewise.
19287         (struct rtvec_def): Likewise.
19288
19289         * tree.h (union tree_node): Likewise.
19290
19291         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
19292
19293         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
19294
19295         * tree-scalar-evolution.c (scev_initialize): Likewise.
19296
19297         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
19298
19299         * dwarf2asm.c (dw2_force_const_mem): Likewise.
19300
19301         * omp-low.c (lower_omp_critical): Likewise.
19302
19303         * bitmap.h (struct bitmap_head_def): Update comment to not
19304         reference ggc_alloc.
19305
19306         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
19307
19308         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
19309
19310         * ipa-prop.c (duplicate_ggc_array): Rename to
19311         duplicate_ipa_jump_func_array.  Use typed GC allocation.
19312         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
19313
19314         * gimple.c (gimple_alloc_stat): Use
19315         ggc_alloc_cleared_gimple_statement_d_stat.
19316
19317         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
19318
19319         * tree.c (make_node_stat): Use
19320         ggc_alloc_zone_cleared_tree_node_stat.
19321         (make_tree_vec_stat): Likewise.
19322         (build_vl_exp_stat): Likewise.
19323         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
19324         (make_tree_binfo_stat): Likewise.
19325         (tree_cons_stat): Likewise.
19326
19327         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
19328         (shallow_copy_rtx_stat): Likewise.
19329         (make_node_stat): Likewise.
19330
19331         * lto-symtab.c: Fix comment.
19332
19333         * tree-cfg.c (create_bb): Update comment to not reference
19334         ggc_alloc_cleared.
19335         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
19336
19337         * varpool.c (varpool_node): Use typed GC allocation.
19338         (varpool_extra_name_alias): Likewise.
19339
19340         * varasm.c (emutls_decl): Likewise.
19341         (get_unnamed_section): Likewise.
19342         (get_noswitch_section): Likewise.
19343         (get_section): Likewise.
19344         (get_block_for_section): Likewise.
19345         (build_constant_desc): Likewise.
19346         (create_constant_pool): Likewise.
19347         (force_const_mem): Likewise.
19348
19349         * tree.c (build_vl_exp_stat): Likewise.
19350         (build_real): Likewise.
19351         (build_string): Likewise.
19352         (decl_debug_expr_insert): Likewise.
19353         (decl_value_expr_insert): Likewise.
19354         (type_hash_add): Likewise.
19355         (build_omp_clause): Likewise.
19356
19357         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
19358
19359         * tree-ssa.c (init_tree_ssa): Likewise.
19360
19361         * tree-ssa-structalias.c (heapvar_insert): Likewise.
19362
19363         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
19364
19365         * tree-ssa-loop-niter.c (record_estimate): Likewise.
19366
19367         * tree-ssa-alias.c (get_ptr_info): Likewise.
19368
19369         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
19370
19371         * tree-phinodes.c (allocate_phi_node): Likewise.
19372
19373         * tree-iterator.c (tsi_link_before): Likewise.
19374         (tsi_link_after): Likewise.
19375
19376         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
19377
19378         * tree-dfa.c (create_var_ann): Likewise.
19379
19380         * tree-cfg.c (create_bb): Likewise.
19381
19382         * toplev.c (alloc_for_identifier_to_locale): Likewise.
19383         (general_init): Likewise.
19384
19385         * stringpool.c (stringpool_ggc_alloc): Likewise.
19386         (gt_pch_save_stringpool): Likewise.
19387
19388         * sese.c (if_region_set_false_region): Likewise.
19389
19390         * passes.c (do_per_function_toporder): Likewise.
19391
19392         * optabs.c (set_optab_libfunc): Likewise.
19393         (set_conv_libfunc): Likewise.
19394
19395         * lto-symtab.c (lto_symtab_register_decl): Likewise.
19396
19397         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
19398         (input_eh_region): Likewise.
19399         (input_eh_lp): Likewise.
19400         (make_new_block): Likewise.
19401         (unpack_ts_real_cst_value_fields): Likewise.
19402
19403         * lto-section-in.c (lto_new_in_decl_state): Likewise.
19404
19405         * lto-cgraph.c (input_node_opt_summary): Likewise.
19406
19407         * loop-init.c (loop_optimizer_init): Likewise.
19408
19409         * lambda.h (lambda_vector_new): Likewise.
19410
19411         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
19412
19413         * ira.c (update_equiv_regs): Likewise.
19414
19415         * ipa.c (cgraph_node_set_new): Likewise.
19416         (cgraph_node_set_add): Likewise.
19417         (varpool_node_set_new): Likewise.
19418         (varpool_node_set_add): Likewise.
19419
19420         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
19421         (duplicate_ipa_jump_func_array): Likewise.
19422         (ipa_read_node_info): Likewise.
19423
19424         * ipa-cp.c (ipcp_create_replace_map): Likewise.
19425
19426         * integrate.c (get_hard_reg_initial_val): Likewise.
19427
19428         * gimple.c (gimple_alloc_stat): Likewise.
19429         (gimple_build_omp_for): Likewise.
19430         (gimple_seq_alloc): Likewise.
19431         (gimple_copy): Likewise.
19432
19433         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
19434         (gsi_insert_after_without_update): Likewise.
19435
19436         * function.c (add_frame_space): Likewise.
19437         (insert_temp_slot_address): Likewise.
19438         (assign_stack_temp_for_type): Likewise.
19439         (allocate_struct_function): Likewise.
19440         (types_used_by_var_decl_insert): Likewise.
19441
19442         * except.c (init_eh_for_function): Likewise.
19443         (gen_eh_region): Likewise.
19444         (gen_eh_region_catch): Likewise.
19445         (gen_eh_landing_pad): Likewise.
19446         (add_call_site): Likewise.
19447
19448         * emit-rtl.c (get_mem_attrs): Likewise.
19449         (get_reg_attrs): Likewise.
19450         (start_sequence): Likewise.
19451         (init_emit): Likewise.
19452
19453         * dwarf2out.c (new_cfi): Likewise.
19454         (queue_reg_save): Likewise.
19455         (dwarf2out_frame_init): Likewise.
19456         (new_loc_descr): Likewise.
19457         (find_AT_string): Likewise.
19458         (new_die): Likewise.
19459         (add_var_loc_to_decl): Likewise.
19460         (clone_die): Likewise.
19461         (clone_as_declaration): Likewise.
19462         (break_out_comdat_types): Likewise.
19463         (new_loc_list): Likewise.
19464         (loc_descriptor): Likewise.
19465         (add_loc_descr_to_each): Likewise.
19466         (add_const_value_attribute): Likewise.
19467         (tree_add_const_value_attribute): Likewise.
19468         (add_comp_dir_attribute): Likewise.
19469         (add_name_and_src_coords_attributes): Likewise.
19470         (lookup_filename): Likewise.
19471         (store_vcall_insn): Likewise.
19472         (dwarf2out_init): Likewise.
19473
19474         * dbxout.c (dbxout_init): Likewise.
19475
19476         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
19477
19478         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
19479
19480         * config/score/score7.c (score7_output_external): Likewise.
19481
19482         * config/score/score3.c (score3_output_external): Likewise.
19483
19484         * config/s390/s390.c (s390_init_machine_status): Likewise.
19485
19486         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
19487         (rs6000_init_machine_status): Likewise.
19488         (output_toc): Likewise.
19489
19490         * config/pa/pa.c (pa_init_machine_status): Likewise.
19491         (get_deferred_plabel): Likewise.
19492
19493         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
19494
19495         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
19496
19497         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
19498
19499         * config/mep/mep.c (mep_init_machine_status): Likewise.
19500         (mep_note_pragma_flag): Likewise.
19501
19502         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
19503
19504         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
19505
19506         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
19507
19508         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
19509         (i386_pe_maybe_record_exported_symbol): Likewise.
19510
19511         * config/i386/i386.c (get_dllimport_decl): Likewise.
19512         (ix86_init_machine_status): Likewise.
19513         (assign_386_stack_local): Likewise.
19514
19515         * config/frv/frv.c (frv_init_machine_status): Likewise.
19516
19517         * config/darwin.c (machopic_indirection_name): Likewise.
19518
19519         * config/cris/cris.c (cris_init_machine_status): Likewise.
19520
19521         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
19522
19523         * config/avr/avr.c (avr_init_machine_status): Likewise.
19524
19525         * config/arm/arm.c (arm_init_machine_status): Likewise.
19526
19527         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
19528         (alpha_need_linkage): Likewise.
19529         (alpha_use_linkage): Likewise.
19530
19531         * cgraph.c (cgraph_allocate_node): Likewise.
19532         (cgraph_create_edge_1): Likewise.
19533         (cgraph_create_indirect_edge): Likewise.
19534         (cgraph_add_asm_node): Likewise.
19535
19536         * cfgrtl.c (init_rtl_bb_info): Likewise.
19537
19538         * cfgloop.c (alloc_loop): Likewise.
19539         (rescan_loop_exit): Likewise.
19540
19541         * cfg.c (init_flow): Likewise.
19542         (alloc_block): Likewise.
19543         (unchecked_make_edge): Likewise.
19544
19545         * c-parser.c (c_parse_init): Likewise.
19546         (c_parse_file): Likewise.
19547
19548         * c-decl.c (bind): Likewise.
19549         (record_inline_static): Likewise.
19550         (push_scope): Likewise.
19551         (make_label): Likewise.
19552         (lookup_label_for_goto): Likewise.
19553         (finish_struct): Likewise.
19554         (finish_enum): Likewise.
19555         (c_push_function_context): Likewise.
19556
19557         * bitmap.c (bitmap_element_allocate): Likewise.
19558         (bitmap_gc_alloc_stat): Likewise.
19559
19560         * alias.c (record_alias_subset): Likewise.
19561         (init_alias_analysis): Likewise.
19562
19563 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
19564
19565         * fold-const.c (fold_comparison): Remove redundant parenthesis.
19566         * tree-inline.c (expand_call_inline): Pass translated return value of
19567         cgraph_inline_failed_string to diagnostic function.
19568
19569 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
19570             Shujing Zhao  <pearly.zhao@oracle.com>
19571
19572         PR c/37724
19573         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
19574         implicit bad conversions is initialization.
19575         (error_init): Use gmsgid instead of msgid for argument name and change
19576         the call for error.
19577         (pedwarn_init): Use gmsgid instead of msgid for argument name and
19578         change the call for pedwarn.
19579         (warning_init): Use gmsgid instead of msgid for argument name and
19580         change the call for warning.
19581
19582 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
19583
19584         * config/mips/mips-protos.h (mips_print_operand): Delete.
19585         (mips_print_operand_address): Delete.
19586         * config/mips/mips.h (mips_print_operand_punct): Delete.
19587         (PRINT_OPERAND): Delete.
19588         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
19589         (PRINT_OPERAND_ADDRESS): Delete.
19590         * config/mips/mips.c (mips_print_operand_punct): Make static.
19591         (mips_print_operand_address): Make static.
19592         (mips_print_operand): Make static.  Call
19593         mips_print_operand_punct_valid_p.
19594         (mips_print_operand_punct_valid_p): New function.
19595         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19596         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
19597
19598 2010-06-07  Jan Hubicka  <jh@suse.cz>
19599
19600         PR middle-end/44454
19601         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
19602         are allocated.
19603
19604 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
19605
19606         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
19607         name of RECORD.
19608
19609 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19610
19611         * doc/sourcebuild.texi (Effective-Target Keywords, Other
19612         attributes): Document gas.
19613
19614 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
19615
19616         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
19617         <TYPE_LEA>: Split instruction.
19618         <default>: Remove alternative 2 handling.
19619         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
19620         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
19621         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
19622
19623         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
19624         (ashift_zext lea splitter): Use DImode for multiplication.
19625
19626         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
19627         to generate addition.
19628
19629 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
19630
19631         * common.opt (fira-verbose): Use Var.
19632         (fpcc-struct-return): Use Init instead of VarExists.
19633         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
19634         toplev.c.
19635         * flags.h (flag_signed_char, flag_short_enums,
19636         flag_pcc_struct_return, flag_ira_verbose,
19637         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
19638         * toplev.c (flag_detailed_statistics, flag_signed_char,
19639         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
19640         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
19641         * toplev.h (flag_crossjumping, flag_if_conversion,
19642         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
19643         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
19644         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
19645         flag_cprop_registers, time_report, flag_ira_loop_pressure,
19646         flag_ira_coalesce, flag_ira_move_spills,
19647         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
19648
19649 2010-06-07  Jan Hubicka  <jh@suse.cz>
19650
19651         * df-core.c (df_analyze_problem): Do verification after allocation.
19652
19653         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
19654         (df_lr_alloc): Initialize problem data; move bitmaps to
19655         lr_bitmaps obstack.
19656         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
19657         (df_lr_verify_solution_start): Do not initialize problem data;
19658         allocate bitmaps in lr_bitmaps.
19659         (df_lr_verify_solution_end): Do not free problem data.
19660
19661 2010-06-07  Jan Hubicka  <jh@suse.cz>
19662
19663         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
19664         if caller is noreturn.
19665         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
19666         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
19667         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
19668         * ipa-pure-const.c (check_decl): Add IPA parameter.
19669         (state_from_flags): New function.
19670         (better_state, worse_state): New functions.
19671         (check_call): When in IPA mode, do not care about callees.
19672         (check_load, check_store): Update.
19673         (check_ipa_load, check_ipa_store): New.
19674         (check_stmt): When in IPA mode, use IPA checkers.
19675         (analyze_function): Use state_from_flags.
19676         (propagate): Check indirect edges and references.
19677
19678 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
19679
19680         PR rtl-optimization/44404
19681         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
19682         of count_occurrences to see if it's safe to modify mem_insn.
19683
19684 2010-06-07  Richard Guenther  <rguenther@suse.de>
19685
19686         * gimplify.c (gimplify_cleanup_point_expr): For empty body
19687         and EH-only cleanup drop the cleanup instead of inserting it
19688         unconditionally.
19689
19690 2010-06-07  Ira Rosen  <irar@il.ibm.com>
19691
19692         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
19693         documentation.
19694         * targhooks.c (default_builtin_vectorization_cost): New function.
19695         * targhooks.h (default_builtin_vectorization_cost): Declare.
19696         * target.h (enum vect_cost_for_stmt): Define.
19697         (builtin_vectorization_cost): Change argument and comment.
19698         * tree-vectorizer.h: Remove cost model macros.
19699         * tree-vect-loop.c: Include target.h.
19700         (vect_get_cost): New function.
19701         (vect_estimate_min_profitable_iters): Replace cost model macros with
19702         calls to vect_get_cost.
19703         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
19704         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
19705         default implementation.
19706         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
19707         calls to target hook builtin_vectorization_cost.
19708         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
19709         Likewise.
19710         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
19711         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
19712         implementation to return costs.
19713         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
19714         * config/spu/spu.h: Remove vectorizer cost model macros.
19715         * config/i386/i386.h: Likewise.
19716         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
19717         a call to target hook builtin_vectorization_cost.
19718
19719 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
19720
19721         PR target/44319
19722         * config/i386/i386.c (override_options): Turn zee pass on for level 2
19723         and above and defer till target is known.
19724         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
19725         turn off otherwise.
19726
19727 2010-05-25  Jan Hubicka  <jh@suse.cz>
19728
19729         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
19730         (df_compact_blocks): Likewise.
19731         * df.h (struct df): Turn hardware_regs_used,
19732         regular_block_artificial_uses, eh_block_artificial_uses,
19733         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
19734         bitmap_head.
19735         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
19736         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
19737         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
19738         df_scan_blocks, df_insn_delete, df_insn_rescan,
19739         df_insn_rescan_debug_internal, df_insn_rescan_all,
19740         df_process_deferred_rescans, df_process_deferred_rescans,
19741         df_notes_rescan, df_get_call_refs, df_get_call_refs,
19742         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
19743         df_record_entry_block_defs, df_record_exit_block_uses,
19744         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
19745         df_scan_verify): Update.
19746
19747 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
19748
19749         PR c++/44188
19750         * c-common.c (is_typedef_decl): Move this definition ...
19751         * tree.c (is_typedef_decl): ... here.
19752         (typdef_variant_p): Move definition here from cp/tree.c.
19753         * c-common.h (is_typedef_decl): Move this declaration ...
19754         * tree.h (is_typedef_decl): ... here.
19755         (typedef_variant_p): Move declaration here from cp/cp-tree.h
19756         * dwarf2out.c (is_naming_typedef_decl): New function.
19757         (gen_tagged_type_die): Split out of ...
19758         (gen_type_die_with_usage): ... this function. When an anonymous
19759         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
19760         is emitted for the typedef.
19761         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
19762         anonymous tagged types.
19763
19764 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19765
19766         PR c/20000
19767         * c-decl.c (grokdeclarator): Delete warning.
19768
19769 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
19770
19771         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
19772         newly built CALL_EXPR.
19773         * tree-profile.c (tree_profiling): Don't profile functions produced
19774         for built-in stuff.
19775
19776 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
19777
19778         PR bootstrap/44427
19779         PR bootstrap/44428
19780         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
19781         endianness-independent.
19782
19783 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
19784
19785         * c-common.c: Move to c-family/.
19786         * c-common.def: Likewise.
19787         * c-common.h: Likewise.
19788         * c-cppbuiltin.c: Likewise.
19789         * c-dump.c: Likewise.
19790         * c-format.c: Likewise.
19791         * c-format.h : Likewise.
19792         * c-gimplify.c: Likewise.
19793         * c-lex.c: Likewise.
19794         * c-omp.c: Likewise.
19795         * c.opt: Likewise.
19796         * c-opts.c: Likewise.
19797         * c-pch.c: Likewise.
19798         * c-ppoutput.c: Likewise.
19799         * c-pragma.c: Likewise.
19800         * c-pragma.h: Likewise.
19801         * c-pretty-print.c: Likewise.
19802         * c-pretty-print.h: Likewise.
19803         * c-semantics.c: Likewise.
19804         * stub-objc.c: Likewise.
19805
19806         * gengtype.c (get_file_langdir): Special-case files in c-family/.
19807         (get_output_file_with_visibility): Fix name for c-common.h.
19808         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
19809
19810         * c-tree.h: Update include path for moved files.
19811         * c-lang.c: Likewise.
19812         * c-lang.h: Likewise.
19813         * c-parser.c: Likewise.
19814         * c-convert.c: Likewise.
19815         * c-decl.c: Likewise.
19816         * c-objc-common.c: Likewise.
19817         * configure.ac: Make sure c-family/ exists in the build directory.
19818         * configure: Regenerate.
19819         * Makefile.in: Update paths for moved files.  Regroup files per
19820         location and update dependencies.  Move generated_files down after
19821         ALL_GTFILES_H.
19822
19823         * config/spu/spu-c.c: Update paths for moved files.
19824         * config/mep/mep-pragma.c: Likewise.
19825         * config/darwin-c.c: Likewise.
19826         * config/i386/msformat-c.c: Likewise.
19827         * config/i386/i386-c.c: Likewise.
19828         * config/avr/avr-c.c: Likewise.
19829         * config/sol2-c.c: Likewise.
19830         * config/ia64/ia64-c.c: Likewise.
19831         * config/rs6000/rs6000-c.c: Likewise.
19832         * config/arm/arm.c: Likewise.
19833         * config/arm/arm-c.c: Likewise.
19834         * config/h8300/h8300.c: Likewise.
19835         * config/v850/v850-c.c: Likewise.
19836
19837         * config/t-darwin: Fix dependencies for moved files.
19838         * config/t-sol2: Fix dependencies for moved files.
19839         * config/mep/t-mep: Fix dependencies for moved files.
19840         * config/ia64/t-ia64: Fix dependencies for moved files.
19841         * config/rs6000/t-rs6000: Fix dependencies for moved files.
19842         * config/v850/t-v850: Fix dependencies for moved files.
19843         * config/v850/t-v850e: Fix dependencies for moved files.
19844
19845         * config/m32c/m32c-pragma.c
19846
19847         * po/exgettext: Look in c-family/ also.
19848
19849 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
19850
19851         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
19852         (mark_control_dependent_edges_necessary): Call it instead of marking
19853         the last statement manually.
19854         (propagate_necessity): Likewise.
19855
19856 2010-06-05  Jan Hubicka  <jh@suse.cz>
19857
19858         * basic-block.h (compute_dominance_frontiers): Updated.
19859         (compute_idf): Likewise.
19860
19861         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
19862         for dominance frontiers.
19863         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
19864         (insert_updated_phi_nodes_for): Likewise.
19865         (update_ssa): Likewise.
19866         * cfganal.c (compute_dominance_frontiers_1): Likewise.
19867         (compute_dominance_frontiers): Likewise.
19868         (compute_idf): Likewise.
19869         * df-problems.c (df_md_local_compute): Likewise.
19870
19871 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
19872
19873         * target.h (struct gcc_target): Add memory_move_cost field.
19874         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
19875         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
19876         * targhooks.c (default_memory_move_cost): New function.
19877         * targhooks.h (default_memory_move_cost): Declare function.
19878         * reload.h (memory_move_cost): Declare.
19879         (memory_move_secondary_cost): Change type of 'in' argument to bool.
19880         * reginfo.c (memory_move_cost): New function.
19881         (memory_move_secondary_cost): Change type of 'in' argument to bool.
19882         * ira.h (ira_memory_move_cost): Update comment.
19883         * ira.c (ira_memory_move_cost): Update comment.
19884         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
19885         with memory_move_cost.
19886         * postreload.c (reload_cse_simplify_set): (Ditto.).
19887         * reload1.c (choose_reload_regs): (Ditto.).
19888         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
19889         (MEMORY_MOVE_COST):  Revise documentation.
19890
19891         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
19892         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
19893         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
19894         type of 'in' argument to bool.
19895         (TARGET_MEMORY_MOVE_COST): Define.
19896
19897 2010-06-05  Jan Hubicka  <jh@suse.cz>
19898
19899         * ipa-pure-const.c (propagate): Fix typo in handling of functions
19900         that cannot return.  Be more careful when merging the results with
19901         previously known ones.
19902
19903 2010-06-05  Matthias Klose  <doko@ubuntu.com>
19904
19905         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
19906         function to add the -iplugindir option.
19907         (find_plugindir_spec_function): Add new declaration and function.
19908         (static_spec_func): Use it for "find-plugindir".
19909
19910 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
19911
19912         PR c++/44361
19913         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
19914         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
19915         statement expression.
19916
19917 2010-06-05  Jan Hubicka  <jh@suse.cz>
19918
19919         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
19920         (df_rd_problem_data): Convert sparse_invalidated_by_call,
19921         dense_invalidated_by_call to bitmap head.
19922         (df_rd_alloc, df_rd_bb_local_compute_process_def,
19923         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
19924         df_rd_start_dump, df_lr_verify_transfer_functions,
19925         df_live_verify_transfer_functions, df_chain_create_bb,
19926         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
19927         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
19928         df_simulate_one_insn_forwards, df_md_alloc,
19929         df_md_bb_local_compute_process_def,
19930         df_md_bb_local_compute_process_def, df_md_local_compute,
19931         df_md_transfer_function df_md_free): Update.
19932
19933 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
19934
19935         PR c/44322
19936         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
19937         target type for ADDR_EXPR; require no changes to qualifiers except
19938         for function types.
19939         * c-tree.h (c_build_type_variant): Remove.
19940
19941 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
19942
19943         * genautomata.c (get_excl_set): Do work per element, not per char.
19944         (check_presence_pattern_sets): Similar.
19945         (check_absence_pattern_sets): Similar.
19946
19947 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
19948
19949         * genautomata.c (curr_state_pass_num): Delete.
19950         (min_issue_delay_pass_states): Delete.
19951         (min_issue_delay): Delete.
19952         (initiate_min_issue_delay_pass_states): Delete.
19953         (output_min_issue_delay_table): Compute min_issue_delay_vect
19954         using a breadth-first search variant.
19955         (output_tables): Don't call initiate_min_issue_delay_pass_states.
19956
19957 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
19958
19959         PR boostrap/44421
19960         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
19961         (df_byte_lr_bb_local_compute): Likewise.
19962
19963 2010-06-03  Jason Merrill  <jason@redhat.com>
19964
19965         Implement noexcept operator (5.3.7)
19966         * c-common.c (c_common_reswords): Add noexcept.
19967         * c-common.h (enum rid): Add RID_NOEXCEPT.
19968
19969 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
19970
19971         * config/darwin-driver.c (darwin_default_min_version): Use
19972         GCC-specific formats in diagnostics.
19973         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
19974         diagnostics.
19975         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
19976         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
19977         eval_spec_function, handle_braces, process_brace_body, main,
19978         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
19979         getenv_spec_function, compare_version_strings,
19980         version_compare_spec_function): Use GCC-specific formats in
19981         diagnostics.
19982
19983 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
19984
19985         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
19986         that operand 0 and operand 1 are equal.
19987         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
19988         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
19989         and operand 1 are equal.
19990         <default>: Ditto.  Remove ??? comment.
19991         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
19992         and operand 1 are equal.
19993         <default>: Ditto.  Remove ??? comment.
19994         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
19995         are equal.
19996         (*add<mode>_4) <default>: Ditto.
19997         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
19998
19999 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
20000
20001         * config/i386/i386-protos.h (ix86_print_operand): Declare.
20002         * config/i386/i386.c (ix86_print_operand): Make non-static.
20003         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
20004         * output.h (output_operand): Declare.
20005         * final.c (output_operand): Make non-static.
20006
20007 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
20008
20009         PR rtl-optimization/44013
20010         * sched-deps.c (add_dependence_list_and_free): Don't free lists
20011         when processing debug insns.
20012
20013         PR debug/41371
20014         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
20015         recursing.  Check that recursion is bounded.  Rename inner var
20016         to avoid hiding incoming argument.
20017
20018 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
20019
20020         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
20021         operands[2] == 255.
20022         (*addqi_3): Ditto.
20023         (*addqi_4): Ditto.
20024         (*addqi_5): Ditto.
20025         (*addqi_ext_1_rex64): Ditto.
20026         (*addqi_ext_1): Ditto.
20027
20028         (*addqi_4): Check for incdec_operand in QImode.
20029
20030         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
20031         using SWI mode iterator.
20032         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
20033         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
20034         mode iterator.
20035         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
20036         using SWI mode iterator.
20037
20038 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20039
20040         PR c/25880
20041         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
20042         * c-format.c (gcc_diag_flag_specs): Add hash.
20043         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
20044         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
20045         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
20046         pp_c_cv_qualifiers. Handle qualifiers spelling here.
20047         (pp_c_type_qualifier_list): Call the function above.
20048         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
20049         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
20050         (WARN_FOR_QUALIFIERS): New macro.
20051         (convert_for_assignment): Use it.
20052
20053 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
20054
20055         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
20056
20057 2010-06-04  Jan Hubicka  <jh@suse.cz>
20058
20059         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
20060         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
20061         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
20062         DF_BYTE_LR_OUT): Update for embedded bitmaps.
20063         * fwprop.c (single_def_use_enter_block): Likewise.
20064         * ddg.c (create_ddg_dep_from_intra_loop_link,
20065         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
20066         * loop-iv.c (latch_dominating_def): Likewise.
20067         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
20068         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
20069         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
20070         df_rd_transfer_function, df_rd_top_dump,
20071         df_rd_bottom_dump): Update.
20072         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
20073         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
20074         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
20075         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
20076         df_lr_verify_solution_start, df_lr_verify_solution_end,
20077         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
20078         df_live_free_bb_info, df_live_alloc, df_live_reset,
20079         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
20080         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
20081         df_live_verify_solution_start, df_live_verify_solution_end,
20082         df_live_verify_transfer_functions, df_chain_create_bb,
20083         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
20084         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
20085         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
20086         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
20087         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
20088         df_byte_lr_transfer_function, df_byte_lr_top_dump,
20089         df_byte_lr_bottom_dump, df_create_unused_note,
20090         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
20091         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
20092         df_md_transfer_function, df_md_init, df_md_confluence_0,
20093         df_md_confluence_n,
20094         df_md_top_dump, df_md_bottom_dump): Update.
20095         (struct df_lr_problem_data): Embedd bitmap headers.
20096
20097 2010-06-04  Jan Hubicka  <jh@suse.cz>
20098
20099         * dce.c (dce_process_block): Do not re-scan already marked
20100         instructions.
20101
20102 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
20103
20104         PR rtl-optimization/39871
20105         PR rtl-optimization/40615
20106         PR rtl-optimization/42500
20107         PR rtl-optimization/42502
20108         * ira.c (init_reg_equiv_memory_loc: New function.
20109         (ira): Call it twice.
20110         * reload.h (calculate_elim_costs_all_insns): Declare.
20111         * ira-costs.c: Include "reload.h".
20112         (regno_equiv_gains): New static variable.
20113         (init_costs): Allocate it.
20114         (finish_costs): Free it.
20115         (ira_costs): Call calculate_elim_costs_all_insns.
20116         (find_costs_and_classes): Take estimated elimination costs
20117         into account.
20118         (ira_adjust_equiv_reg_cost): New function.
20119         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
20120         * reload1.c (init_eliminable_invariants, free_reg_equiv,
20121         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
20122         (elim_bb): New static variable.
20123         (reload): Move code out of here into init_eliminable_invariants and
20124         free_reg_equiv.  Call them.
20125         (calculate_elim_costs_all_insns): New function.
20126         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
20127         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
20128         but call note_reg_elim_costly if we turned a valid memory address
20129         into an invalid one.
20130         * Makefile.in (ira-costs.o): Depend on reload.h.
20131
20132 2010-06-04  Julian Brown  <julian@codesourcery.com>
20133
20134         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
20135         for pool ranges.
20136
20137 2010-06-04  Richard Guenther  <rguenther@suse.de>
20138
20139         PR lto/41584
20140         * cgraph.h (struct varpool_node): Add lto_file_data field.
20141         * lto-cgraph.c (input_varpool_node): Initialize it.
20142
20143 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
20144
20145         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
20146         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
20147         predicate in "type" attribute calculation.
20148         (*addsi_1_zext): Ditto.
20149         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
20150         (*addsi_2_zext): Ditto.
20151         (*add<mode>_3): Ditto.
20152         (*addsi_3_zext): Ditto.
20153         (*add<mode>_5): Ditto.
20154
20155 2010-06-03  Jan Hubicka  <jh@suse.cz>
20156
20157         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
20158         of bitmap_bit_p.
20159         * cfganal.c (compute_dominance_frontiers_1): Likewise.
20160
20161 2010-06-03  Jan Hubicka  <jh@suse.cz>
20162
20163         * df-problems.c (df_create_unused_note, df_note_bb_compute):
20164         micro-optimize the checks when to add new note.
20165
20166 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
20167
20168         * final.c (output_asm_insn): Call
20169         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
20170         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
20171         (output_address): Call targetm.asm_out.print_operand_address.
20172         Update comments.
20173         * target.h (struct gcc_target): Add print_operand,
20174         print_operand_address, and print_operand_punct_valid_p fields.
20175         * targhooks.h (default_print_operand): Declare.
20176         (default_print_operand_address): Declare.
20177         (default_print_operand_punct_valid_p): Declare.
20178         * targhooks.c (default_print_operand): Define.
20179         (default_print_operand_address): Define.
20180         (default_print_operand_punct_valid_p): Define.
20181         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
20182         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
20183         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
20184         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
20185         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
20186         * vmsdbgout.c (addr_const_to_string): Update comment.
20187         * config/i386/i386.c (print_operand): Rename to...
20188         (ix86_print_operand): ...this.  Make static.
20189         (print_operand_address): Rename to...
20190         (ix86_print_operand_address): ...this.  Make static.  Call
20191         ix86_print_operand instead of PRINT_OPERAND.
20192         (ix86_print_operand_punct_valid_p): New function.
20193         (TARGET_PRINT_OPERAND): Define.
20194         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20195         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20196         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
20197         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20198         (PRINT_OPERAND): Delete.
20199         (PRINT_OPERAND_ADDRESS): Delete.
20200         * config/i386/i386-protos.h (print_operand): Delete prototype.
20201         (print_operand_address): Delete prototype.
20202
20203 2010-06-03  Richard Guenther  <rguenther@suse.de>
20204
20205         PR tree-optimization/44403
20206         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20207         Preserve pointer qualifiers.
20208         (vect_create_data_ref_ptr): Likewise.
20209
20210 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
20211
20212         PR c++/44294
20213         * defaults.h (MAX_FIXED_MODE_SIZE): New.
20214
20215         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
20216
20217 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
20218
20219         PR debug/44375
20220         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
20221         return false if merging the bbs would lead to goto_locus
20222         location being lost from the IL.
20223
20224 2010-06-03  Jan Hubicka  <jh@suse.cz>
20225             Jakub Jelinek  <jakub@redhat.com>
20226
20227         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
20228         set->regs[i] is NULL or has just one entry.
20229
20230 2010-06-03  Jan Hubicka  <jh@suse.cz>
20231
20232         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
20233         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
20234
20235 2010-06-03  Paul Brook  <paul@codesourcery.com>
20236
20237         * config/arm/arm.c (FL_TUNE): Define.
20238         (arm_default_cpu, arm_cpu_select): Remove.
20239         (all_cores): Populate core field.
20240         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
20241         (arm_find_cpu): New function.
20242         (arm_handle_option): Lookup cpu/architecture names.
20243         (arm_override_options): Cleanup mcpu/march/mtune handling.
20244         (arm_file_start): Ditto.
20245
20246 2010-06-03  Alan Modra  <amodra@gmail.com>
20247
20248         PR target/44169
20249         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
20250         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
20251         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
20252         (rs6000_emit_load_toc_table): Likewise.
20253
20254 2010-06-02  Jan Hubicka  <jh@suse.cz>
20255
20256         * passes.c (init_optimization_passes): Put ipa reference
20257         after ipa pure-const.
20258
20259 2010-06-02  Jan Hubicka  <jh@suse.cz>
20260
20261         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
20262         calls_read_all and calls_write_all.
20263         (get_reference_optimization_summary): Fix formatting.
20264         (is_proper_for_analysis): Check that decl is not readonly.
20265         (propagate_bits): Check CONST/PURE/noreturn flags.
20266         (ipa_init): Move all_module_statics to optimization_summary_obstack.
20267         (analyze_function): Ignore indirect edges.
20268         (copy_global_bitmap): For all module statics, do nothing.
20269         (generate_summary): Do not print calls_read_all/calls_write_all.
20270         (read_write_all_from_decl): Take node as argument; check
20271         cgraph_node_cannot_return.
20272         (propagate): Reorganize read_all/write_all computation;
20273         check indirect edges; check ecf flags; use all_module_statics
20274         in the results; do not free all_module_statics.
20275         (stream_out_bitmap): Handle all_module_statics.
20276         (ipa_reference_write_optimization_summary): Likewise; use
20277         varpool/cgraph encoders to get boundaries.
20278         (ipa_reference_read_optimization_summary): Read in all_module_statics;
20279         use it when possible.
20280
20281 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
20282
20283         PR target/44218
20284         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
20285         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
20286
20287         * doc/extend.texi (powerpc builtins): Document vec_recip,
20288         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
20289
20290         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
20291         (rs6000_emit_swrsqrt): Ditto.
20292         (rs6000_emit_swdivsf): Delete.
20293         (rs6000_emit_swdivdf): Ditto.
20294         (rs6000_emit_swrsqrtsf): Ditto.
20295
20296         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
20297         describe the reciprocal estimate support for each type.
20298         (recip_options): Map -mrecip=<opt> into option bits.
20299         (gen_2arg_fn_t): New typedef for binary rtx gen function.
20300         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
20301         reciprocal estimate instructions.
20302         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
20303         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
20304         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
20305         cost information if -mdebug=cost or -mdebug=reg.
20306         (rs6000_override_options): Set -mrecip-precision for power6, and
20307         power7 machines.  If -mvsx or -mdfp, enable various options that
20308         came in previous instruction set ISAs, unless the option was
20309         explicitly disabled by the command line option.  Parse
20310         -mrecip=<opt> options.
20311         (rs6000_builtin_vectorized_function): Add support for vectorizing
20312         the reciprocal estimate builtins and expansions.
20313         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
20314         (bdesc_2arg): Add reciprocal estimate builtins.
20315         (bdesc_1arg): Add reciprocal square root estimate builtins.
20316         (rs6000_expand_builtin): Rewrite to use a switch statement,
20317         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
20318         (rs6000_init_builtins): Create declarations for reciprocal
20319         estimate builtins.
20320         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
20321         sized, prefer traditional floating point registers, if integer
20322         vector types, prefer altivec registers.  Don't actually look at
20323         the memory address any more.
20324         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
20325         builtins.
20326         (rs6000_load_constant_and_splat): New helper function to load up
20327         the constant for reciprocal estimate instructions.
20328         (rs6000_emit_madd): New helper function for generating
20329         multiply/add type instructions, based on the current switches.
20330         (rs6000_emit_msub): Ditto.
20331         (rs6000_emit_mnsub): Ditto.
20332         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
20333         replace a divide with a reciprocal estimate and fixup, adding
20334         support for machines with high precision and vectors.
20335         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
20336         low precision machines.
20337         (rs6000_emit_swdiv): New common function to be called to replace a
20338         division with reciprocal estimate and fixup.
20339         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
20340         for double and vector types.  Add support for high precision machines.
20341
20342         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
20343         the reciprocal estimate instructions can be generated.
20344         (TARGET_FRE): Ditto.
20345         (TARGET_FRSQRTES): Ditto.
20346         (TARGET_FRSQRTE): Ditto.
20347         (RS6000_RECIP_*): New macros for reciprocal estimate support.
20348
20349         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
20350         square root estimate on vectors.
20351         (re<mode>2): New insn for reciprocal division estimate on vectors.
20352
20353         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
20354         New builtin.
20355         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
20356         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
20357         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
20358         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
20359         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
20360         (RS6000_BUILTIN_RSQRT): Ditto.
20361         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
20362         floating point builtin.
20363
20364         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
20365         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
20366         __RECIP_PRECISION__ based on the command line switches.
20367         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
20368
20369         * config/rs6000/rs6000.opt (-mrecip): Document add support for
20370         replacing division instructions with reciprocal estimate and fixup.
20371         (-mrecip=<opt>): New option.
20372         (-mrecip-precision): Ditto.
20373
20374         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
20375         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
20376         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
20377         precision scalar.
20378
20379         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
20380         (UNSPEC_VREFP): Ditto.
20381         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
20382         conterparts with regard to support of -mno-fused-madd and -ffast-math.
20383         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
20384         reciprocal estimate instructions to be generated.
20385         (altivec_vrefp): Ditto.
20386
20387         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
20388         estimate support.
20389         (rreg): New mode attribute for reciprocal estimate support.
20390         (recip<mode>3): New insn for division using reciprocal estimate
20391         and fixup builtins.
20392         (divide define_split): New define_split to convert floating point
20393         division to use reciprocal estimate if the user used the
20394         appropriate options and the split is run when we can add new
20395         pseudo registers for the fixup.
20396         (rsqrt<mode>2): New insn for reciprocal square root support.
20397         (recipsf3): Move into recip<mode>3.
20398         (recipdf3): Ditto.
20399         (fres): Use TARGET_FRES.
20400         (rsqrtsf2): Move into rsqrt<mode>2.
20401         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
20402         (copysignsf3): Add support for VSX.
20403         (fred): Use TARGET_FRE.
20404         (fred_fpr): Ditto.
20405         (rsqrtdf_internal1): New function for frsqrte instruciton.
20406
20407         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
20408         (vec_rsqrt): Ditto.
20409
20410 2010-06-03  Richard Guenther  <rguenther@suse.de>
20411
20412         PR middle-end/44291
20413         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
20414         (set_user_assembler_libfunc): Likewise.
20415
20416 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
20417
20418         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
20419         defaults.h.
20420         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
20421         to defaults.h
20422         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
20423         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
20424         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
20425         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
20426         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
20427         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
20428         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
20429         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
20430         * defaults.h: Updated for above mentioned changes.
20431
20432 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
20433
20434         * c-common.c: Remove header include of tm_p.h.
20435         * Makefile.in (c-common.o): Remove TM_P_H dependency.
20436
20437 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
20438
20439         * tree.h (struct tree_decl_map): New type.
20440         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
20441         (tree_decl_map_hash): New prototype.
20442         (debug_expr_for_decl, value_expr_for_decl): Change into
20443         tree_decl_map hashtab from tree_map.
20444         (init_ttree): Adjust initialization.
20445         (tree_decl_map_hash): New function.
20446         (decl_debug_expr_lookup, decl_debug_expr_insert,
20447         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
20448
20449 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20450
20451         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
20452         linker emulations.
20453         * configure: Regenerate.
20454         * config.in: Regenerate.
20455
20456         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
20457         (X86_64_EMULATION): Define.
20458         (TARGET_LD_EMULATION): Use them.
20459
20460         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
20461         (SPARC64_EMULATION): Define.
20462         (LINK_ARCH_SPEC): Use them.
20463
20464 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
20465
20466         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
20467         smallest_mode_for_size for computing the precision types of new
20468         graphite IVs.  Do not call lang_hooks.types.type_for_size.
20469
20470 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
20471
20472         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
20473         information.
20474         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
20475
20476 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
20477
20478         PR middle-end/44363
20479         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
20480         return false instead.
20481
20482 2010-06-02  Jan Hubicka  <jh@suse.cz>
20483
20484         PR middle-end/44295
20485         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
20486         create new cgraph node to check callee.
20487
20488 2010-06-02  Richard Guenther  <rguenther@suse.de>
20489
20490         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
20491
20492 2010-06-02  Richard Guenther  <rguenther@suse.de>
20493
20494         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
20495         (lto_wrapper_cleanup): ... this.  Do not exit.
20496         (fatal): Adjust.  Exit here.
20497         (fatal_perror): Likewise.
20498         (fatal_signal): New function.
20499         (main): Set up signal handlers to cleanup temporary files.
20500         * Makefile.in (lto-wrapper.o): Adjust dependencies.
20501
20502 2010-06-02  Richard Guenther  <rguenther@suse.de>
20503
20504         PR tree-optimization/44377
20505         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
20506
20507 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20508
20509         * config/s390/2097.md (z10_fhex): Remove insn reservation.
20510         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
20511         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
20512         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
20513         instruction.
20514         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
20515
20516 2010-06-02  Jan Hubicka  <jh@suse.cz>
20517
20518         * bitmap.c (bitmap_descriptor): Add search_iter.
20519         (bitmap_find_bit): Increment it.
20520         (print_statistics): Print it.
20521
20522 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
20523
20524         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
20525         instead of gimple_build_call_vec.  Delete unnecessary local variable.
20526
20527 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
20528
20529         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
20530         change from yesterday.
20531
20532 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
20533
20534         * c-ada-spec.c: Clean up redundant includes.
20535
20536 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
20537
20538         * gimplify.c: Do not include except.h and optabs.h.
20539         (gimplify_body): Do not initialize RTL profiling.
20540         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
20541         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
20542         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
20543         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
20544         langhooks.h.
20545
20546         * tree-pretty-print.h: Include pretty-print.h.
20547         * gimple-pretty-print.h: Include pretty-print.h.
20548
20549         * tree-pretty-print.c: Do not include diagnostic.h.
20550         * tree-vrp.c: Likewise.
20551         * tree-tailcall.c: Likewise
20552         * tree-scalar-evolution.c: Likewise
20553         * tree-ssa-dse.c: Likewise
20554         * tree-chrec.c: Likewise
20555         * tree-ssa-sccvn.c: Likewise
20556         * tree-ssa-copyrename.c: Likewise
20557         * tree-nomudflap.c: Likewise
20558         * tree-call-cdce.c: Likewise
20559         * tree-stdarg.c: Likewise
20560         * tree-ssa-math-opts.c: Likewise
20561         * tree-nrv.c: Likewise
20562         * tree-ssa-sink.c: Likewise
20563         * tree-browser.c: Likewise
20564         * tree-ssa-loop-ivcanon.c: Likewise
20565         * tree-ssa-loop.c: Likewise
20566         * tree-parloops.c: Likewise
20567         * tree-ssa-address.c: Likewise
20568         * tree-ssa-ifcombine.c: Likewise
20569         * tree-if-conv.c: Likewise
20570         * tree-data-ref.c: Likewise
20571         * tree-affine.c: Likewise
20572         * tree-ssa-phiopt.c: Likewise
20573         * tree-ssa-coalesce.c: Likewise
20574         * tree-ssa-pre.c: Likewise
20575         * tree-ssa-live.c: Likewise
20576         * tree-predcom.c: Likewise
20577         * tree-ssa-forwprop.c: Likewise
20578         * tree-ssa-dce.c: Likewise
20579         * tree-ssa-ter.c: Likewise
20580         * tree-ssa-loop-prefetch.c: Likewise
20581         * tree-optimize.c: Likewise
20582         * tree-ssa-phiprop.c: Likewise
20583         * tree-object-size.c: Likewise
20584         * tree-outof-ssa.c: Likewise
20585         * tree-ssa-structalias.c: Likewise
20586         * tree-switch-conversion.c: Likewise
20587         * tree-ssa-reassoc.c: Likewise
20588         * tree-ssa-operands.c: Likewise
20589         * tree-vectorizer.c: Likewise
20590         * tree-vect-data-refs.c: Likewise
20591         * tree-vect-generic.c: Likewise
20592         * tree-vect-stmts.c: Likewise
20593         * tree-vect-patterns.c: Likewise
20594         * tree-vect-slp.c: Likewise
20595         * tree-vect-loop.c: Likewise
20596         * tree-ssa-loop-ivopts.c: Likewise
20597         * tree-ssa-loop-im.c: Likewise
20598         * tree-ssa-loop-niter.c: Likewise
20599         * tree-ssa-loop-unswitch.c: Likewise
20600         * tree-ssa-loop-manip.c: Likewise
20601         * tree-ssa-loop-ch.c: Likewise
20602         * tree-dump.c: Likewise
20603         * tree-complex.c: Likewise
20604
20605         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
20606         * tree-ssa-uninit.c: Likewise
20607         * tree-ssa-threadupdate.c: Likewise
20608         * tree-ssa-uncprop.c: Likewise
20609         * tree-ssa-ccp.c: Likewise
20610         * tree-ssa-dom.c: Likewise
20611         * tree-ssa-propagate.c: Likewise
20612         * tree-ssa-alias.c: Likewise
20613         * tree-dfa.c: Likewise
20614         * tree-cfgcleanup.c: Likewise
20615         * tree-sra.c: Likewise
20616         * tree-ssa-copy.c: Likewise
20617         * tree-ssa.c: Likewise
20618         * tree-profile.c: Likewise
20619         * tree-cfg.c: Likewise
20620         * tree-ssa-threadedge.c: Likewise
20621         * tree-vect-loop-manip.c: Likewise
20622
20623         * tree-inline.c: Do not include diagnostic.h and expr.h.
20624         Include rtl.h.
20625         (copy_decl_for_dup_finish): Do not use NULL_RTX.
20626
20627         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
20628         * tree-loop-distribution.c: Likewise.
20629
20630 2010-06-01  Jan Hubicka  <jh@suse.cz>
20631
20632         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
20633
20634 2010-06-01  Jan Hubicka  <jh@suse.cz>
20635
20636         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
20637         remove return value.
20638         (split_bbs_on_noreturn_calls) .... here.
20639         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
20640         * tree-flow.h (fixup_noreturn_call): New.
20641
20642 2010-06-01  Jan Hubicka  <jh@suse.cz>
20643
20644         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
20645
20646 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
20647
20648         * tree.h (build_nt_call_list): Delete.
20649         * tree.c (build_nt_call_list): Delete.
20650
20651 2010-06-01  Jan Hubicka  <jh@suse.cz>
20652
20653         * fwprop.c: Make emit-rtl.h include last.
20654         * rtlanal.c: Include emit-rtl.h.
20655         * genautomata.c: Output emit-rtl include into insn-automata.c
20656         * df-scan.c: Include emit-rtl.h.
20657         * haifa-sched.c: Indlude emit-rtl.h.
20658         * mode-switching.c: Indlude emit-rtl.h.
20659         * graph.c: Indlude emit-rtl.h.
20660         * sel-sched.c: Include emit-rtl.h.
20661         * sel-sched-ir.c: Include emit-rtl.h.
20662         * ira-build.c: Include emit-rtl.h.
20663         * emit-rtl.c (first_insn, last_insn): Remove defines.
20664         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
20665         Move to emit-rtl.h.
20666         (set_new_first_and_last_insn, get_last_insn_anywhere,
20667         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
20668         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
20669         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
20670         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
20671         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
20672         Use accessor functions.
20673         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
20674          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
20675         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
20676         mem_expr_equal_p): Move here from rtl.h.
20677         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
20678         Move here from emit-rtl.c; make inline.
20679         * cfglayout.h: Include emit-rtl.h.
20680         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
20681          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
20682         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
20683         mem_expr_equal_p, get_insns, set_first-insn,
20684         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
20685         * reg-stack.c: Include emit-rtl.h.
20686         * dce.c: Likewise.
20687
20688 2010-06-01  Jan Hubicka  <jh@suse.cz>
20689
20690         * cgraph.h (tree_function_versioning): Update prototype.
20691         (cgraph_function_versioning): Update prototype.
20692         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
20693         bitmap.
20694         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
20695         (cgraph_materialize_clone, save_inline_function_body): Update use of
20696         tree_function_versioning.
20697         * tree-inline.c (copy_bb): Look for previous copied block to link
20698         after; fix debug output.
20699         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
20700         (copy_body): Likewise.
20701         (expand_call_inline): Update use of copy_body.
20702         (tree_function_versioning): Update use of copy body; accept
20703         blocks_to_copy and new_entry.
20704
20705 2010-06-01  Jan Hubicka  <jh@suse.cz>
20706
20707         * gegenrtl.c: Remove unnecesary prototypes.
20708         (gendecl): Remove.
20709         (gendef): Produce static inline.
20710         (gencode): Remove.
20711         (main): Do not decode parameters; generate header only.
20712         * Makefile.in (genrtl.c): Remove.
20713
20714 2010-06-01  Jan Hubicka  <jh@suse.cz>
20715
20716         * tree-switch-conversion.c (build_one_array): Make it readonly.
20717
20718 2010-06-01  Richard Guenther  <rguenther@suse.de>
20719
20720         * optabs.c (init_optabs): Guard all accesses to reinit.
20721         * ipa-pure-const.c (propagate): Fix another typo.
20722         * opts.c (common_handle_option): Split assignment to bool.
20723         * c-opts.c (c_common_handle_option): Likewise.
20724
20725 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
20726             Matthew Gingell  <gingell@adacore.com>
20727
20728         * doc/invoke.texi: Mention -fdump-ada-spec.
20729         * tree-dump.c (dump_files): Add ada-spec.
20730         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
20731         * tree-pass.h (tree_dump_index): Add TDI_ada.
20732         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
20733         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
20734         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
20735         * c-decl.c: Include c-ada-spec.h.
20736         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
20737         functions.
20738         (c_write_global_declarations): Add handling of -fdump-ada-spec.
20739         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
20740         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
20741         * c-ada-spec.h, c-ada-spec.c: New files.
20742
20743 2010-06-01  Richard Guenther  <rguenther@suse.de>
20744
20745         PR lto/43853
20746         * ipa-pure-const.c (get_function_state): Hand back varying state
20747         if we do not have one.
20748         (has_function_state): New function.
20749         (duplicate_node_data): Adjust.
20750         (remove_node_data): Likewise.
20751         (pure_const_write_summary): Likewise.
20752         (propagate): Likewise.  Fix typo.
20753
20754 2010-06-01  Jan Hubicka  <jh@suse.cz>
20755
20756         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
20757         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
20758         (execute_all_ipa_transforms): Do not play with the states.
20759
20760 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
20761
20762         * config/arm/t-linux-androideabi: New.
20763         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
20764
20765 2010-06-01  Jan Hubicka  <jh@suse.cz>
20766
20767         * tree-inline.c (estimate_num_insns): For stdarg functions look
20768         into call statement to count cost of argument passing.
20769
20770 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
20771
20772         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
20773         argument for fprintf.
20774         (ix86_output_addr_diff_elt): Likewise.
20775         (x86_function_profiler): Likewise.
20776         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
20777         (LPREFIX): Likewise.
20778         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
20779
20780 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
20781
20782         PR target/44338
20783         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
20784         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
20785         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
20786         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
20787         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
20788         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
20789         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
20790         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
20791         TARGET_FUSED_MADD.
20792
20793 2010-05-31  Jan Hubicka  <jh@suse.cz>
20794
20795         * tree.h (tree_range_check_failed): Declare noreturn.
20796
20797 2010-05-31  Jan Hubicka  <jh@suse.cz>
20798
20799         * gimple.c (gimple_call_builtin_p): New function.
20800         * gimple.h (gimple_call_builtin_p): Declare.
20801         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
20802         to exit.
20803         (execute_warn_function_return): BUILT_IN_RETURN is return.
20804         (split_critical_edges): Return edges are not critical.
20805         (is_ctrl_altering_stmt): Builtin_in_return is altering.
20806         (gimple_verify_flow_info): Handle built_in_return.
20807         (execute_warn_function_return): Handle built_in_return.
20808         * ipa-pure-const.c (check_call): Ignore builtin_return.
20809
20810 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
20811
20812         PR middle-end/44337
20813         * expr.c (expand_assignment): Don't store anything for out-of-bounds
20814         array accesses with non-MEM.
20815
20816         PR tree-optimization/44182
20817         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
20818         newly needs to end a bb is followed by debug stmts, instead return
20819         true from the function at the end.
20820         (maybe_move_debug_stmts_to_successors): New function.
20821         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
20822
20823 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
20824
20825         PR target/44161
20826         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
20827
20828 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
20829
20830         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
20831         for nested functions in non-optimized compilation.
20832
20833 2010-05-31  Richard Guenther  <rguenther@suse.de>
20834
20835         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
20836
20837 2010-05-30  Jan Hubicka  <jh@suse.cz>
20838
20839         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
20840
20841 2010-05-30  Richard Guenther  <rguenther@suse.de>
20842
20843         PR lto/42975
20844         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
20845         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
20846         no longer needed.
20847
20848 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
20849
20850         * config/darwin.c (output_objc_section_asm_op): Add comment.
20851         (name_needs_quotes): Add '_' to list of valid comment chars.
20852         (machopic_output_function_base_name): Remove unneeded quotes.
20853         (darwin_encode_section_info): Adjust asm whitespace.
20854         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
20855         (ASM_OUTPUT_LOCAL): Ditto.
20856         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
20857         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
20858         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
20859
20860 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
20861
20862         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
20863         RS6000_OUTPUT_BASENAME unconditionally.
20864         (rs6000_output_function_epilogue): Likewise.
20865
20866 2010-05-30  Jan Hubicka  <jh@suse.cz>
20867
20868         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
20869         nodes.
20870
20871 2010-05-30  Richard Guenther  <rguenther@suse.de>
20872
20873         * tree-cfg.c (verify_gimple_assign_single): Implement
20874         verification for COND_EXPR rhs.
20875
20876 2010-05-30  Jan Hubicka  <jh@suse.cz>
20877
20878         * cgraph.h (cgraph_dump_file): Declare.
20879         * cgraphunit.c (cgraph_dump_file): Export.
20880         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
20881
20882 2010-05-30  Jan Hubicka  <jh@suse.cz>
20883
20884         * dwarf2out.c (reference_to_unused,
20885         premark_types_used_by_global_vars_helper): Avoid creation of new
20886         varpool nodes.
20887
20888 2010-05-30  Jan Hubicka  <jh@suse.cz>
20889
20890         * cgraph.h (cgraph_node_cannot_return,
20891         cgraph_edge_cannot_lead_to_return): New functions.
20892         * cgraph.c (cgraph_node_cannot_return,
20893         cgraph_edge_cannot_lead_to_return): Use them.
20894         * ipa-pure-const.c (pure_const_names): New static var.
20895         (check_call): Handle calls not leading to return.
20896         (pure_const_read_summary): Dump info read.
20897         (propagate): Dump info about propagation process; ignore side effects
20898         of functions not leading to exit; fix handling of pure functions.
20899
20900 2010-05-30  Jan Hubicka  <jh@suse.cz>
20901
20902         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
20903         for tail call epilogues.
20904
20905 2010-05-30  Jan Hubicka  <jh@suse.cz>
20906
20907         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
20908         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
20909         dump files.
20910
20911 2010-05-29  Jan Hubicka  <jh@suse.cz>
20912
20913         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
20914         node; remove references in node we no longer keep in cgrpah but need
20915         body of.
20916
20917 2010-05-29  Jan Hubicka  <jh@suse.cz>
20918
20919         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
20920
20921 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20922
20923         PR target/44165
20924         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
20925
20926 2010-05-29  Jan Hubicka  <jh@suse.cz>
20927
20928         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
20929         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
20930         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
20931         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
20932         debug_names_replaced_by, debug_update_ssa): Likewise.
20933         * sbitmap.c (debug_sbitmap): Likewise.
20934         * genrecog.c (debug_decision, debug_decision_list): Likewise.
20935         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
20936         debug_tree_chain): Likewise.
20937         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
20938         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
20939         * optabs.c (debug_optab_libfuncs): Likewise.
20940         (verify_loop_closed_ssa): Likewise.
20941         * value-prof.c (verify_histograms): Likewise.
20942         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
20943         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
20944         * cfghooks.c (verify_flow_info): Likewise.
20945         * fold-const.c (debug_fold_checksum): Likewise.
20946         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
20947         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
20948         Likewise.
20949         * omega.c (debug_omega_problem): Likewise.
20950         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
20951         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
20952         * dominance.c (verify_dominators, debug_dominance_info,
20953         debug_dominance_tree): Likewise.
20954         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
20955         * df_regno_debug, df_ref_debug,
20956         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
20957         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
20958         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
20959         * sel-sched.c (debug_state): Likewise.
20960         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
20961         Likewise.
20962         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
20963         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
20964         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
20965         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
20966         Likewise.
20967         * c-pretty-print.c (debug_c_tree): Likewise.
20968         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
20969         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
20970         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
20971         * ebitmap.c (debug_ebitmap): Likewise.
20972         * function.c (debug_find_var_in_block_tree): Likewise.
20973         * print-rtl.c (debug_rtx): Likewise.
20974         (debug_rtx_count): Likewise.
20975         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
20976         * stor-layout.c (debug_rli): Likewise.
20977         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
20978         * tree-data-ref.c (debug_data_references,
20979         debug_data_dependence_relations, debug_data_reference,
20980         debug_data_dependence_relation, debug_rdg_vertex,
20981         debug_rdg_component, debug_rdg): Likewise.
20982         * tree-affine.c (debug_aff): Likewise.
20983         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
20984         Likewise.
20985         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
20986         * emit-rtl.c (verify_rtl_sharing): Likewise.
20987         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
20988         debug_value_expressions): Likewise.
20989         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
20990         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
20991         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
20992         * cfglayout.c (verify_insn_chain): Likewise.
20993         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
20994         debug_clast_stmt, debug_generated_program): Likewise.
20995         * ggc-page.c (debug_print_page_list): Likewise.
20996         * tree-ssa-ter.c (debug_ter): Likewise.
20997         * graphite-dependences.c (debug_pddr): Likewise.
20998         * sched-deps.c (debug_ds): Likewise.
20999         * tree-ssa.c (verify_ssa): Likewise.
21000         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
21001         debug_scattering_functions, debug_iteration_domains, debug_pdr,
21002         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
21003         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
21004         * tree-inline.c (debug_find_tree): Likewise.
21005         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
21006         debug_ppl_powerset_matrix): Likewise.
21007         * var-tracking.c (debug_dv): Likewise.
21008         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
21009         * cfgloop.c (verify_loop_structure): Likewise.
21010         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
21011         * c-common.c (verify_sequence_points): Likewise.
21012         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
21013         debug_candidates, debug_rgn_dependencies): Likewise.
21014         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
21015         * debug_constraint_graph, debug_solution_for_var,
21016         debug_sa_points_to_info): Likewise.
21017         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
21018         Likewie.
21019         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
21020         debug_loops, debug_loop, debug_loop_num): Likewise.
21021         * passes.c (debug_pass): Likewise.
21022         (dump_properties): Likewise; add cfglayout property.
21023         (debug_properties): Likewise.
21024         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
21025         * varpool.c (debug_varpool): Likewise.
21026         * regcprop.c (debug_value_data): Likewise.
21027         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
21028         debug_immediate_uses_for): Likewise.
21029
21030 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
21031
21032         PR bootstrap/44315
21033         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
21034         Filter out insn-flags.h.
21035
21036 2010-05-29  Jan Hubicka  <jh@suse.cz>
21037
21038         * cgraph.h (struct varpool_node_set_def,
21039         struct cgraph_node_set_def): Remove unused AUX pointer.
21040         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
21041         VEC_empty macro.
21042
21043 2010-05-29  Jan Hubicka  <jh@suse.cz>
21044
21045         PR middle-end/44324
21046         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
21047
21048 2010-05-29  Richard Guenther  <rguenther@suse.de>
21049
21050         * lto-streamer.c (cached_bp): New global variable.
21051         (bitpack_create): Return the cached bitpack, if available.
21052         (bitpack_delete): Clear and cache the bitpack, if appropriate.
21053         (bp_pack_value): Remove redundant asserts.
21054
21055 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
21056
21057         PR middle-end/44306
21058         * tree-if-conv.c (is_true_predicate): New.
21059         (is_predicated): Use is_true_predicate.
21060         (add_to_predicate_list): Same.  Do not use unshare_expr.
21061         (add_to_dst_predicate_list): Same.
21062
21063 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
21064
21065         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
21066         field on edges.
21067         (predicate_bbs): Same.
21068         (clean_predicate_lists): Same.
21069         (find_phi_replacement_condition): Do not AND the predicate from
21070         edge->aux.
21071
21072 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
21073
21074         PR bootstrap/44315
21075         * Makefile.in (build/gencondmd.o): Add a missing `\'.
21076
21077 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21078
21079         PR target/44261
21080         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
21081         (negdf2): Adjust expander pattern and use negdf2_slow.
21082         (negsf2): Likewise.
21083
21084 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
21085
21086         * basic-block.h (struct control_flow_graph): Move last_label_uid field
21087         up.
21088         * df.h (struct df_base_ref): Move regno field up.
21089         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
21090         * expr.h (struct separate_ops): Move location field up.
21091         * optabs.h (struct optab_d): Move libcall_basename field down.
21092         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
21093         * config/i386/i386.h (struct machine_function): Convert call_abi field
21094         into a bitfield.  Move cfa field to the end of the structure.
21095
21096 2010-05-29  Jan Hubicka  <jh@suse.cz>
21097
21098         * varpool.c (varpool_get_node): Fix lookup.
21099
21100 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
21101
21102         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
21103         RTL specific prototypes with #ifdef RTX_CODE.
21104         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
21105         * config/spu/t-spu-elf: Fix dependencies.
21106
21107         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
21108
21109 2010-05-29  Mike Stump  <mikestump@comcast.net>
21110
21111         PR bootstrap/44315
21112         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
21113         TM_H when building to avoid dependency loops.
21114
21115 2010-05-29  Jan Hubicka  <jh@suse.cz>
21116
21117         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
21118         refs and body; not the whole node for masters of materialized clones.
21119
21120 2010-05-29  Mike Stump  <mikestump@comcast.net>
21121
21122         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
21123
21124 2010-05-29  Jan Hubicka  <jh@suse.cz>
21125
21126         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
21127         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
21128         use of clone_function_name.
21129         * cgraph.h (cgraph_create_virtual_clone,
21130         cgraph_function_versioning): update prototypes.
21131         (clone_function_name): Declare.
21132         * ipa-cp.c (ipcp_insert_stage): Update call of
21133         cgraph_create_virtual_clone.
21134         * omp-low.c (create_omp_child_function_name): Use
21135         cgraph_create_virtual_clone.
21136         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
21137         (cgraph_function_versioning): Take SUFFIX argument; produce new name
21138         and make decl local.
21139
21140 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
21141
21142         * vec.h: Include statistics.h
21143         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
21144         with VEC_H.
21145
21146 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
21147
21148         * c-lex.c: Do not include c-tree.h.
21149         * c-pretty-print.c: Likewise.
21150         * c-opts.c: Likewise.
21151         * c-gimplify.c: Likewise.
21152         * c-common.c: Likewise.
21153         * c-dump.c: Likewise.  Include c-common.h.
21154
21155 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
21156
21157         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
21158         before including diagnostic-core.h.
21159         (c_cpp_error): New prototype moved from c-tree.h.
21160         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
21161         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
21162         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
21163         (c_cpp_error): Prototype moved to c-common.h.
21164         * Makefile.in: Update dependency for C_COMMON_H.
21165
21166 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
21167
21168         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
21169         * c-common.c (c_register_addr_space): Remove here.
21170         * c-decl.c (c_register_addr_space): Re-add here.
21171
21172 2010-05-28  Mike Stump  <mikestump@comcast.net>
21173
21174         * config/darwin-c.c: Remove c-tree.h include.
21175
21176 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
21177
21178         * gcc.c: Include diagnostic.h.
21179         (error_count): Remove.  All users changed to use errorcount.
21180         (programname): Remove.  All users changed to use progname.
21181         (fancy_abort, internal_error, fatal_error, error, warning, inform,
21182         fnotice): Remove.
21183         (execute): Don't include "Internal error" and bug reporting
21184         information in argument of internal_error call.
21185         (process_command): Don't increment error_count after calling
21186         perror_with_name.
21187         (input_filename): Rename to gcc_input_filename.  All users
21188         changed.
21189         (main): Call diagnostic_initialize.  Register delete_temp_files
21190         with atexit.  Use seen_error to test for errors.
21191         * gcc.h: Include diagnostic-core.h.
21192         (fatal_error, error, warning): Remove.
21193         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
21194         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
21195         (gcc.o): Update dependencies.
21196
21197 2010-05-28  Jeff Law  <law@redhat.com>
21198
21199         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
21200         functions.
21201         * ira.h (ira_bad_reload_regno): Declare
21202         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
21203
21204         * ira-color.c (update_curr_costs): Free updated hard reg costs.
21205         (ira_reassign_conflict_allocnos): Remove bogus asserts.
21206         (allocno_reload_assign): Likewise.
21207
21208 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
21209
21210         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
21211         build1_stat.
21212
21213 2010-05-28  Richard Guenther  <rguenther@suse.de>
21214
21215         PR lto/44312
21216         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
21217         Stream fixed-point constants mode.
21218         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
21219         and TYPE_PRECISION.
21220         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
21221         Stream fixed-point constants mode.
21222         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
21223         and TYPE_PRECISION.
21224
21225 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
21226
21227         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
21228         only place it was called from.
21229         (number_of_latch_executions): Do not return chrec_dont_know when the
21230         may_be_zero is a runtime condition: instead, return a COND_EXPR
21231         including the may_be_zero condition.
21232         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
21233         of nb_iterations.
21234         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
21235         COND_EXPRs.
21236
21237 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
21238
21239         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
21240         generate COND_EXPRs for degenerate_phi_result.
21241
21242 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
21243
21244         PR middle-end/44293
21245         * tree-if-conv.c (if_convertible_loop_p): Check the
21246         if-convertibility of phi nodes in non predicated BBs.
21247
21248 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
21249
21250         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
21251
21252 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
21253
21254         PR driver/15303
21255         * gcc.c (inform, warning, inform): New functions.
21256         (fatal_ice): Rename to internal_error; change cmsgid parameter to
21257         gmsgid.  All callers changed.
21258         (notice): Rename to fnotice; add parameter fp.  All callers changed.
21259         (fatal_error): Rename to fatal_signal.  All users changed.
21260         (fatal): Rename to fatal_error; change cmsgid parameter to
21261         gmsgid.  All callers changed.
21262         (process_command): Use warning instead of error for warnings.
21263         (end_going_arg): Don't use _() around argument of error.
21264         (do_spec_1): Use inform for message from %n specs.  Use warning
21265         instead of error for warnings.
21266         (main): Use inform for comparison messages.  Use warning for
21267         message about unused linker input.
21268         (error): Increment error_count.  Print "error: ".
21269         * gcc.h (fatal): Change to fatal_error.
21270         (warning): Declare.
21271         * config/darwin-driver.c (darwin_default_min_version): Use warning
21272         instead of fprintf for warnings.
21273         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
21274
21275 2010-05-28  Julian Brown  <julian@codesourcery.com>
21276
21277         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
21278         (*thumb2_addsi3_compare0_scratch): New.
21279         * config/arm/constraints.md (Pv): New.
21280         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
21281         for ARM mode only.
21282         (*addsi3_compare0_scratch): Likewise.
21283
21284 2010-05-28  Jan Hubicka  <jh@suse.cz>
21285
21286         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
21287         check.
21288         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
21289         only on local statics.
21290
21291 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
21292
21293         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
21294
21295 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
21296
21297         PR bootstrap/44314
21298         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
21299         (OPTION_GLIBC): Define.
21300
21301 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
21302
21303         PR debug/41048
21304         * dwarf2out.c (double_int_type_size_in_bits): New function.
21305         (round_up_to_align): Change first argument and return value to
21306         double_int.
21307         (field_byte_offset): Work internally on double_ints.
21308
21309         PR target/43636
21310         * builtins.c (expand_movstr): Use a temporary pseudo instead
21311         of target even when target is not NULL and not const0_rtx, but
21312         fails movstr predicate.
21313         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
21314
21315 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
21316
21317         * final.c (rest_of_clean_state): Use %m in errors instead of
21318         strerror (errno).
21319         * gengtype.c (read_input_list, close_output_files): Use xstrerror
21320         instead of strerror.
21321         * toplev.c (process_options): Use %m in errors instead of strerror
21322         (errno).
21323         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
21324         (errno).
21325
21326 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
21327
21328         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
21329         (ix86_canonical_va_list_type): Make static.  Add declaration.
21330         (ix86_enum_va_list): Make static.  Reindent.
21331         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
21332         (ix86_canonical_va_list_type): Ditto.
21333         (ix86_enum_va_list): Ditto.
21334
21335 2010-05-28  Richard Guenther  <rguenther@suse.de>
21336
21337         * lto-wrapper.c (run_gcc): With -save-temps generate a
21338         user-visible ltrans filename.  Fixup ltrans unit numbering.
21339
21340 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
21341
21342         * c-common.c (c_common_nodes_and_builtins): Replace use
21343         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
21344         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
21345         to ix86_enum_va_list.
21346         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
21347         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
21348         (TARGET_ENUM_VA_LIST_P): Add hook description.
21349         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
21350         * target.h (gcc_target): Add enum_va_list hook.
21351
21352         PR bootstrap/44299
21353         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
21354         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
21355         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
21356
21357 2010-05-28  Alan Modra  <amodra@gmail.com>
21358
21359         PR target/44266
21360         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
21361         emit_library_call machinery to set up __tls_get_addr calls.
21362
21363 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21364
21365         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
21366
21367 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
21368
21369         Revert fix for PR c++/44188
21370         * c-common.c (is_typedef_decl): Revert the moving of  this
21371         definition ...
21372         * tree.c (is_typedef_decl): ... here.
21373         (typdef_variant_p): Revert the moving of this  definition
21374         here from cp/tree.c.
21375         * c-common.h (is_typedef_decl): Revert the moving of this
21376         declaration ...
21377         * tree.h (is_typedef_decl): ... here.
21378         (typedef_variant_p): Revert the moving of this  declaration here
21379         from cp/cp-tree.h
21380         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
21381         (gen_tagged_type_die): Revert the splitting out of ...
21382         (gen_type_die_with_usage): ... this function. Revert the anonymous
21383         tagged type handling.
21384         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
21385         typedefs naming anonymous tagged types.
21386
21387 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
21388
21389         * config/rs6000/rs6000-modes.def (PSImode): Delete.
21390
21391 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
21392
21393         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
21394         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
21395         throughout.
21396         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
21397         "xer" to "ca".
21398         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
21399         XER_REGS to CA_REGS throughout.
21400         * config/rs6000/rs6000.h: Same.
21401         (ADDITIONAL_REGISTER_NAMES): Add "xer".
21402         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
21403         that mode_iterator "P" is the size for arithmetic carries as well.
21404         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
21405
21406 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
21407
21408         PR bootstrap/44255
21409         * combine.c (struct rtx_subst_pair): Define unconditionally.
21410         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
21411         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
21412         Call make_compound_operation on pair->to.
21413         (propagate_for_debug): Don't call make_compound_operation here.
21414         Always use simplify_replace_fn_rtx.
21415
21416 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
21417
21418         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
21419         * config/xtensa/xtensa.c (override_options): Check
21420           TARGET_FORCE_NO_PIC and set flag_pic.
21421         * config/xtensa/xtensa.opt: Document -mforce-no-pic
21422
21423 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
21424
21425         PR bootstrap/44299
21426         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
21427         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
21428
21429 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
21430
21431         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
21432         toplev.h.
21433         * diagnostic.c: Don't include toplev.h.
21434         (progname): Define.  Moved from toplev.c.
21435         (seen_error): New function.
21436         * diagnostic.h: Include diagnostic-core.h.
21437         (diagnostic_t, emit_diagnostic): Don't declare here.
21438         * toplev.c (progname): Move to toplev.c.
21439         (emit_debug_global_declarations, compile_file, finalize,
21440         do_compile, toplev_main): Use seen_error.
21441         * toplev.h: Include diagnostic-core.h.
21442         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
21443         internal_error, warning, warning_at, error, error_n, error_at,
21444         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
21445         verbatim, fnotice, progname): Move to diagnostic-core.h.
21446         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
21447         (expand_builtin_expect): Use seen_error.
21448         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
21449         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
21450         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
21451         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
21452         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
21453         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
21454         errorcount for errors.
21455         * c-opts.c (c_common_finish): Use seen_error.
21456         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
21457         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
21458         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
21459         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
21460         (get_coverage_counts): Use seen_error.
21461         * dwarf2out.c (dwarf2out_finish): Use seen_error.
21462         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
21463         gimplify_body): Use seen_error.
21464         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
21465         * ipa-pure-const.c (gate_pure_const): Use seen_error.
21466         * ipa-reference.c (gate_reference): Use seen_error.
21467         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
21468         * lambda-code.c: Include diagnostic-core.h instead of
21469         diagnostic.h.
21470         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
21471         * lto-compress.c: Include diagnostic-core.h instead of
21472         diagnostic.h.
21473         * lto-section-in.c: Include diagnostic-core.h instead of
21474         diagnostic.h.
21475         * lto-streamer-out.c: Include diagnostic-core.h instead of
21476         diagnostic.h.
21477         * lto-streamer.c: Include diagnostic-core.h instead of
21478         diagnostic.h.
21479         (gate_lto_out): Use seen_error.
21480         * matrix-reorg.c: Include diagnostic-core.h instead of
21481         diagnostic.h.
21482         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
21483         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
21484         (gate_expand_omp, lower_omp_1): Use seen_error.
21485         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
21486         (rest_of_decl_compilation, rest_of_type_compilation,
21487         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
21488         * tree-cfg.c (label_to_block_fn): Use seen_error.
21489         * tree-inline.c (optimize_inline_calls): Use seen_error.
21490         * tree-mudflap.c (mudflap_finish_file): Use
21491         seen_error.
21492         * tree-optimize.c (gate_all_optimizations,
21493         gate_all_early_local_passes, gate_all_early_optimizations): Use
21494         seen_error.
21495         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
21496         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
21497         (varpool_remove_unreferenced_decls,
21498         varpool_assemble_pending_decls): Use seen_error.
21499         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
21500         (TOPLEV_H, DIAGNOSTIC_H): Update.
21501         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
21502         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
21503         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
21504         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
21505         coverage.o, lambda-code.o): Update dependencies.
21506
21507 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
21508
21509         PR c++/44188
21510         * c-common.c (is_typedef_decl): Move this definition ...
21511         * tree.c (is_typedef_decl): ... here.
21512         (typdef_variant_p): Move definition here from cp/tree.c.
21513         * c-common.h (is_typedef_decl): Move this declaration ...
21514         * tree.h (is_typedef_decl): ... here.
21515         (typedef_variant_p): Move declaration here from cp/cp-tree.h
21516         * dwarf2out.c (is_naming_typedef_decl): New function.
21517         (gen_tagged_type_die): Split out of ...
21518         (gen_type_die_with_usage): ... this function. When an anonymous
21519         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
21520         is emitted for the typedef.
21521         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
21522         anonymous tagged types.
21523
21524 2010-05-27  Jason Merrill  <jason@redhat.com>
21525
21526         * print-tree.c (debug_vec_tree): New fn.
21527         (print_vec_tree): New fn.
21528         * tree.h: Declare them.
21529         * gdbinit.in (pvt): New command.
21530
21531         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
21532
21533         * gdbinit.in (pdd): New command.
21534
21535 2010-05-27  Jan Hubicka  <jh@suse.cz>
21536
21537         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
21538         (update_caller_keys): Return early if there are no callers;
21539         only update fibheap when decresing the key.
21540         (update_callee_keys): Avoid recursion.
21541         (decide_inlining_of_small_functions): When badness does not match;
21542         re-insert into fibheap.
21543
21544 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
21545
21546         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
21547         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
21548         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
21549         (ALL_HOST_OBJS): Now a union of the above two.
21550         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
21551         all files in ALL_HOST_FRONTEND_OBJS.
21552         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
21553
21554         * c-common.c: Pretend to be a backend file by undefining
21555         IN_GCC_FRONTEND (still need rtl.h here).
21556
21557 2010-05-27  Jan Hubicka  <jh@suse.cz>
21558
21559         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
21560         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
21561
21562 2010-05-27  Jan Hubicka  <jh@suse.cz>
21563
21564         * sched-ebb.c: Rename struct deps to struct deps_desc.
21565         * ddg.c: Likewise.
21566         * sel-sched-ir.c: Likewise.
21567         * sched-deps.c: Likewise.
21568         * sched-int.h: Likewise.
21569         * sched-rgn.c: Likewise.
21570
21571 2010-05-27  Jon Beniston  <jon@beniston.com>
21572
21573         PR 43726
21574         * config/lm32/lm32.h: Remove definition of
21575         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
21576
21577 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
21578
21579         PR lto/44230
21580         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
21581
21582 2010-05-27  Richard Guenther  <rguenther@suse.de>
21583
21584         PR tree-optimization/44284
21585         * tree-vect-stmts.c (vectorizable_assignment): Handle
21586         sign-changing conversions as simple copy.
21587
21588 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
21589
21590         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
21591         Bionic C library.
21592         (__gthread_active_p): Check for pthread_create if compiling against
21593         Bionic C library.
21594
21595 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
21596
21597         Support compilation for Android platform.  Reimplement -mandroid.
21598
21599         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
21600         (*android*): Set ANDROID_DEFAULT.
21601         (arm*-*-linux*): Include linux-android.h.
21602         (arm*-*-eabi*): Don't include previous -mandroid implementation.
21603         * config/arm/eabi.h: Remove, move Android-specific parts ...
21604         * config/linux-android.h: ... here.  New file.
21605         * config/arm/eabi.opt: Rename to ...
21606         * config/linux-android.opt: ... this.
21607         (mandroid): Allow -mno-android option.  Initialize based on
21608         ANDROID_DEFAULT.
21609         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
21610         Move logic to corresponding LINUX_TARGET_* macros.
21611         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
21612         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
21613         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
21614         Android definitions.
21615         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
21616         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
21617         Document.
21618
21619 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
21620
21621         Add support for Bionic C library
21622
21623         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
21624         macro.
21625         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
21626         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
21627
21628         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
21629         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
21630         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
21631         to support multiple C libraries.  Handle Bionic.
21632         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
21633         (BIONIC_DYNAMIC_LINKER64): Define.
21634         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
21635         Update.
21636         (TARGET_HAS_SINCOS): Enable for Bionic.
21637
21638         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
21639         the last option specified on command line take effect.
21640         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
21641         (mbionic): New.
21642         (mglibc, muclibc): Update.
21643
21644         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
21645         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
21646         DEFAULT_LIBC.
21647
21648         * doc/invoke.texi (-mglibc, -muclibc): Update.
21649         (-mbionic): Document.
21650
21651 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21652
21653         * c-common.h (c_register_addr_space): Add prototype.
21654         (ADDR_SPACE_KEYWORD): Remove.
21655         * c-common.c (c_register_addr_space): New function.
21656         (c_addr_space_name): Reimplement.
21657         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
21658
21659         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
21660         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
21661
21662         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
21663         Remove TARGET_ADDR_SPACE_KEYWORDS.
21664
21665 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
21666
21667         * input.c: New file.
21668         * input.h (main_input_filename): Move declaration to toplev.h.
21669         * toplev.c (input_location, line_table): Move to input.c
21670         * toplev.h (main_input_filename): Move declaration from input.h.
21671         * tree.c (expand_location): Move to input.c.
21672         * Makefile.in (OBJS-common): Add input.o.
21673         (input.o): Add dependencies.
21674
21675 2010-05-27  Richard Guenther  <rguenther@suse.de>
21676
21677         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
21678         for non-existant files.
21679         (fork_execute): Mark args_name file as deleted.
21680
21681 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
21682
21683         PR bootstrp/44287
21684         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
21685         (narrow_signed_type): Likewise.
21686
21687 2010-05-26  Jan Hubicka  <jh@suse.cz>
21688
21689         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
21690         edge only when checking is enabled; check using former_clone_of;
21691         check inline clones too.
21692         (cgraph_materialize_clone): Record former_clone_of pointer.
21693         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
21694         combining redirections; dump args_to_skip bitmap
21695         (cgraph_materialize_all_clones): Do no redirection here.
21696         * ipa-inline.c (inline_transform): Do redirection here.
21697         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
21698         cheking only).
21699
21700 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21701
21702         * config/avr/avr-c.c: Do not include regs.h.
21703         Include cpplib.h for cpp_define and tree.h for c-common.h.
21704         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
21705         * config/avr/t-avr: Fix dependencies for avr-c.o.
21706
21707 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21708
21709         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
21710         string instead of SYMBOL_REF rtx.
21711         * rtl.h (set_stack_check_libfunc): Move prototype from here...
21712         * libfuncs.h: ...to here.  Adjust for explow.c change.
21713
21714 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
21715
21716         * pretty-print.c: Don't include ggc.h.
21717         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
21718         (identifier_to_locale): Use them for allocation.
21719         * pretty-print.h (identifier_to_locale_alloc,
21720         identifier_to_locale_free): Declare.
21721         * toplev.c (alloc_for_identifier_to_locale): New.
21722         (general_init): Set identifier_to_locale_alloc and
21723         identifier_to_locale_free.
21724         * Makefile.in (pretty-print.o): Update dependencies.
21725
21726 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
21727
21728         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
21729         pointer types if they have different alignment or mode.
21730
21731 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
21732
21733         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
21734         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
21735         * config/sparc/sparc-protos.h (function_value): Remove declaration.
21736         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
21737         sparc_function_value_regno_p): New functions.
21738         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21739         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21740         (function_value): Rename to...
21741         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
21742         argument to 'outgoing'.
21743         (function_arg_record_value, function_arg_union_value,
21744         function_arg_vector_value): Update comment.
21745
21746 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
21747
21748         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
21749         (fde_needed_for_eh_p): New predicate.
21750         (output_call_frame_info): Use it throughout to decide whether FDEs
21751         are needed for EH purpose.
21752         (dwarf2out_begin_prologue): Reorder assignments.
21753
21754 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21755
21756         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
21757         special case loop->header.
21758         (is_predicated): New.
21759         (if_convertible_loop_p): Call it.
21760
21761 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21762
21763         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
21764         iterator in parameter.  Do not generate code during the analysis.
21765         (tree_if_convert_cond_stmt): Removed.
21766         (tree_if_convert_stmt): Removed.
21767         (predicate_bbs): New.
21768         (if_convertible_loop_p): Call predicate_bbs.
21769         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
21770         now contains all the analysis part.
21771
21772 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21773
21774         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
21775         statements in the analysis part.
21776         (tree_if_convert_stmt): Update comment.
21777         (remove_conditions_and_labels): New.
21778         (combine_blocks): Call remove_conditions_and_labels.
21779         (tree_if_conversion): Update comment.
21780
21781 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21782
21783         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
21784         than 2 predecessors or more than 2 successors.
21785
21786 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21787
21788         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
21789         of loops in which the data dependence analysis fails.
21790
21791 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21792
21793         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
21794         CDI_POST_DOMINATORS.
21795         (tree_if_conversion): Same.
21796
21797 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21798
21799         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
21800
21801 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21802
21803         * tree-if-conv.c: Update copyright years.  Fix comments.
21804         Fix indentation.
21805
21806 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
21807
21808         * builtin-types.def (BT_INT128): New primitive type.
21809         (BT_UINT128): Likewise.
21810         * c-common.c (c_common_r): Add __int128 keyword.
21811         (c_common_type_for_size): Handle __int128.
21812         (c_common_type_for_mode): Likewise.
21813         (c_common_signed_or_unsigned_type): Likewise.
21814         (c_common_nodes_and_builtins): Add builtin type
21815         if target supports 128-bit integer scalar.
21816         * c-common.h (enum rid): Add RID_INT128.
21817         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
21818         if target supports 128-bit integer scalar.
21819         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
21820         (finish_declspecs): Likewise.
21821         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
21822         (c_token_starts_declspecs): Likewise.
21823         (c_parser_declspecs): Likewise.
21824         (c_parser_attributes): Likewise.
21825         (c_parser_objc_selector): Likewise.
21826         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
21827         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
21828         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
21829         * tree.c (make_or_reuse_type): Likewise.
21830         (make_unsigned_type): Likewise.
21831         (build_common_tree_nodes_2): Likewise.
21832         * tree.h (enum integer_type_kind): Add itk_int128 and
21833         itk_unsigned_int128.
21834         (int128_integer_type_node): New define.
21835         (int128_unsigned_type_node): New define.
21836         * doc/extend.texi: Add documentation about __int128 type.
21837
21838 2010-05-26  Richard Guenther  <rguenther@suse.de>
21839
21840         * tree-ssa-sccvn.c (copy_nary): Adjust.
21841         (copy_phis): Rename to ...
21842         (copy_phi): ... this.  Adjust.
21843         (copy_references): Rename to ...
21844         (copy_reference): ... this.  Adjust.
21845         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
21846         result into the valid table.
21847
21848 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21849
21850         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
21851         insn-config.h, insn-codes.h, recog.h, and optabs.h.
21852
21853 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21854
21855         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
21856
21857 2010-05-26  Richard Guenther  <rguenther@suse.de>
21858
21859         * opts.c (common_handle_option): Handle OPT_Ofast.
21860
21861 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
21862
21863         * diagnostic.c: Don't include opts.h.
21864         (permissive_error_option): Define.
21865         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
21866         for classify_diagnostic.  Don't use memset for
21867         classify_diagnostic.  Initialize new and recently added fields.
21868         (diagnostic_classify_diagnostic): Use context->n_opts instead of
21869         N_OPTS.
21870         (diagnostic_report_diagnostic): Pass context parameter to
21871         diagnostic_report_warnings_p.  Use option_enabled and option_name
21872         hooks from context.
21873         (emit_diagnostic): Use permissive_error_option.
21874         (permerror): Likewise.
21875         * diagnostic.h: Don't include options.h.
21876         (struct diagnostic_context): Add n_opts, opt_permissive,
21877         inhibit_warnings, warn_system_headers, option_enabled and
21878         option_name fields.  Change classify_diagnostic to a pointer.
21879         * opts-diagnostic.h: New file.
21880         * opts.c: Include opts-diagnostic.h.
21881         (common_handle_option): Set global_dc fields for -Wfatal-errors,
21882         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
21883         (option_name): New function.
21884         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
21885         (c_common_handle_option): Set global_dc->permissive for
21886         -fpermissive.
21887         * c-common.c (c_cpp_error): Save and restore
21888         global_dc->warn_system_headers, not variable warn_system_headers.
21889         * toplev.c: Include opts-diagnostic.h.
21890         (general_init): Update call to diagnostic_initialize.  Set
21891         global_dc->show_column, global_dc->option_enabled and
21892         global_dc->option_name.
21893         (process_options): Don't set global_dc fields here.
21894         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
21895         (diagnostic.o, opts.o, toplev.o): Update dependencies.
21896
21897 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
21898
21899         * config/picochip/picochip.md (movsi): Split a movsi from a
21900         const after reload.
21901
21902 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21903
21904         * ggc-zone.c: Update copyright year.
21905         (poison_region): Mark memory for Valgrind as undefined before
21906         memset () call and inaccessible afterwards.
21907         (ggc_pch_total_size): Change type of i to int.
21908
21909 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21910
21911         * ggc-common.c (ggc_free_overhead): Allow empty slot.
21912
21913 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21914
21915         * ggc-common.c: Update copyright year.
21916         (ggc_rlimit_bound): Remove prototype.  Compile only if
21917         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
21918         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
21919         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
21920         (ggc_min_heapsize_heuristic): Likewise.
21921
21922 2010-05-26  Richard Guenther  <rguenther@suse.de>
21923
21924         PR rtl-optimization/44164
21925         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
21926         no-common access-path disambiguation.
21927         (indirect_ref_may_alias_decl_p): Adjust.
21928         (indirect_refs_may_alias_p): Likewise.
21929         (refs_may_alias_p_1): Likewise.
21930
21931 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21932
21933         * c-typeck.c: Do not include expr.h.
21934
21935 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21936
21937         * rtl.h (decl_default_tls_model): Move prototype from here...
21938         * output.h: ...to here.
21939         * c-decl.c: Do not include rtl.h.
21940         * c-pragma.c: Likewise.
21941         * c-parser.c: Likewise.
21942         * c-gimplify.c: Likewise.  And also not hard-reg-set.
21943         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
21944         FIXME note for it.  Add a FIXME note for expr.h.
21945         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
21946         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
21947         defined.
21948
21949 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
21950
21951         PR target/44199
21952         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
21953         or total_size is larger than red zone size for non-V4 ABI, emit a
21954         stack_tie resp. frame_tie insn before stack pointer restore.
21955         * config/rs6000/rs6000.md (frame_tie): New insn.
21956
21957 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
21958
21959         * function.h (struct function): Add can_throw_non_call_exceptions bit.
21960         * lto-streamer-in.c (input_function): Stream it in.
21961         * lto-streamer-out.c (output_function): Stream it out.
21962         * function.c (allocate_struct_function): Set it.
21963         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
21964         for flag_non_call_exceptions.
21965         * cfgbuild.c (control_flow_insn_p): Likewise.
21966         (make_edges): Likewise.
21967         * cfgexpand.c (expand_stack_alignment): Likewise.
21968         * combine.c (distribute_notes): Likewise.
21969         * cse.c (cse_extended_basic_block): Likewise.
21970         * except.c (insn_could_throw_p): Likewise.
21971         * gcse.c (simple_mem): Likewise.
21972         * ipa-pure-const.c (check_call): Likewise.
21973         (check_stmt ): Likewise.
21974         * lower-subreg.c (lower-subreg.c): Likewise.
21975         * optabs.c (emit_libcall_block): Likewise.
21976         (prepare_cmp_insn): Likewise.
21977         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
21978         * postreload.c (rest_of_handle_postreload): Likewise.
21979         * reload1.c (reload_as_needed): Likewise.
21980         (emit_input_reload_insns): Likewise.
21981         (emit_output_reload_insns): Likewise.
21982         (fixup_abnormal_edges): Likewise.
21983         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
21984         * store-motion.c (find_moveable_store): Likewise.
21985         * tree-eh.c (stmt_could_throw_p): Likewise.
21986         (tree_could_throw_p): Likewise.
21987         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
21988         * config/arm/arm.c (arm_expand_prologue): Likewise.
21989         (thumb1_expand_prologue): Likewise.
21990         * config/rx/rx.md (cbranchsf4): Likewise.
21991         (cmpsf): Likewise.
21992         * config/s390/s390.c (s390_emit_prologue): Likewise.
21993         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
21994         (inline_forbidden_into_p): New predicate.
21995         (expand_call_inline): Use it to forbid inlining.
21996         (tree_can_inline_p): Likewise.
21997
21998 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
21999
22000         * config/i386/i386-c.c: Do not include rtl.h.
22001         * config/i386/t-i386: Update dependencies.
22002
22003 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
22004
22005         * attribs.c: Do not include rtl.h.
22006         * Makefile.in: Update dependencies.
22007
22008 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
22009
22010         * double-int.h (double_int_and): New.
22011         * combine.c (try_combine): Clean up, use double_int_* and
22012         immed_double_int_const functions.
22013
22014 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22015
22016         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
22017         stderr to /dev/null instead of grep -q.
22018         * configure: Regenerate.
22019
22020 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
22021
22022         * Makefile.in (EXCEPT_H): Fix typo.
22023
22024 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
22025
22026         * ira-build.c (update_conflict_hard_reg_costs): New.
22027         (ira_build): Call update_conflict_hard_reg_costs.
22028
22029 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
22030
22031         PR debug/41371
22032         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
22033         ENABLE_CHECKING.
22034         (intersect_loc_chains): Walk the s2var's loc_chain together
22035         with s1node chain as long as the locations are equal, don't
22036         call find_loc_in_1pdv in that case.
22037
22038         PR debug/42801
22039         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
22040         (copy_bind_expr): ... instead of here.
22041         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
22042         if the block hasn't been remapped.
22043         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
22044         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
22045
22046 2010-05-25  Richard Guenther  <rguenther@suse.de>
22047
22048         PR middle-end/44069
22049         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
22050         out-of-bounds array accesses.
22051
22052 2010-05-25  Richard Guenther  <rguenther@suse.de>
22053
22054         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
22055         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
22056         (run_gcc): Re-organize to make cleanup easier.
22057
22058 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22059
22060         * config/s390/s390.c (optimization_options): Fix and move the
22061         flag_prefetch_loop_arrays override ...
22062         (override_options): ... here.
22063
22064 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
22065
22066         * diagnostic.c: Don't include plugin.h.
22067         (diagnostic_report_diagnostic): Don't handle plugins specially
22068         here.  Pass context to internal_error callback.
22069         * diagnostic.h (struct diagnostic_context): Add context parameter
22070         to internal_error callback.
22071         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
22072         * plugin.h (struct diagnostic_context): Declare.
22073         (warn_if_plugins, plugins_internal_error_function): Declare.
22074         * toplev.c (general_init): Set global_dc->internal_error.
22075         * Makefile.in (diagnostic.o): Update dependencies.
22076
22077 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
22078
22079         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
22080         * config/rs6000/t-darwin64: New.
22081         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
22082         build crt2.
22083
22084 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
22085
22086         PR 44203
22087         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
22088         match the original (and intended) behaviour before r159557.  This
22089         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
22090         in two ways.
22091
22092 2010-05-25  Richard Guenther  <rguenther@suse.de>
22093
22094         * doc/invoke.texi: Document -Ofast.
22095         * target.h (struct gcc_target): Add handle_ofast.
22096         * target-def.h (TARGET_HANDLE_OFAST): Add.
22097         (TARGET_INITIALIZER): Adjust.
22098         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
22099         * common.opt (Ofast): Add.
22100
22101 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
22102
22103         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
22104         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
22105
22106 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
22107
22108         PR target/43610
22109         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
22110         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
22111         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
22112         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
22113
22114 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
22115
22116         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
22117         DW_OP_minus with negated offset instead of DW_OP_plus.
22118         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
22119
22120 2010-05-25  Wei Guozhi  <carrot@google.com>
22121
22122         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
22123         tst instruction and a new alternative.
22124         * config/arm/constraints.md (Pu): New constraint.
22125
22126 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
22127
22128         * function.c (assign_stack_local_1): Initialize variable
22129         to avoid warning when bootstrapping at -O3.
22130
22131 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
22132
22133         * configure.ac (all_lang_makefiles): Remove everything related to it.
22134         * configure: Regenerate.
22135         * Makefile.in: Fix reference to ada Make-lang.in.
22136         Remove support for LANG_MAKEFILES.
22137
22138 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
22139             Sandra Loosemore  <sandra@codesourcery.com>
22140
22141         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
22142         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
22143         description.  Add arm_neon_fp16_ok.
22144         (Add Options): Add arm_neon and arm_neon_fp16.
22145
22146 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
22147
22148         * diagnostic.c: Don't include flags.h.
22149         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
22150         context parameters.  Check flags in the context passed as a parameter.
22151         (diagnostic_build_prefix): Add context parameter.  Check
22152         show_column flag in context.
22153         (diagnostic_action_after_output): Check fatal_errors flag in context.
22154         (diagnostic_report_current_module): Check show_column flag in context.
22155         (default_diagnostic_starter): Update call to
22156         diagnostic_build_prefix.
22157         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
22158         (emit_diagnostic): Pass context to permissive_error_kind.
22159         (permerror): Pass context to permissive_error_kind.
22160         * diagnostic.h (struct diagnostic_context): Add show_column,
22161         pedantic_errors, permissive and fatal_errors fields.
22162         (diagnostic_build_prefix): Update prototype.
22163         * langhooks.c
22164         * toplev.c (process_options): Set flags in global_dc from
22165         flag_show_column, flag_pedantic_errors, flag_permissive,
22166         flag_fatal_errors.
22167         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
22168         to diagnostic_build_prefix.
22169         * Makefile.in (diagnostic.o): Update dependencies.
22170
22171 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
22172
22173         * config/i386/ia32intrin.h (__crc32q): Define only if
22174         __SSE4_2__ is defined.
22175
22176 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
22177
22178         PR target/44132
22179         PR middle-end/43602
22180         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
22181         DECL_VISIBILITY_SPECIFIED.
22182         (emutls_decl): Set DECL_PRESERVE_P and copy
22183         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
22184         (emutls_finalize_control_var): New callback.
22185         (emutls_finish): Finalize emutls control variables.
22186         * toplev.c (compile_file): Move the call to emutls_finish ()
22187         before varpool_assemble_pending_decls ().
22188
22189 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
22190
22191         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
22192         added to the preprocessor condition.
22193
22194 2010-05-24  Paul Brook  <paul@codesourcery.com>
22195
22196         * gengtype-lex.l: Add HARD_REG_SET.
22197         * expr.c (expand_expr_real_1): Record writes to hard registers.
22198         * function.c (rtl_data): Add asm_clobbers.
22199         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
22200         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
22201         Use crtl->asm_clobbers.
22202
22203 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22204
22205         * doc/makefile.texi (Makefile): Mention stages 'profile'
22206         and 'feedback' for profiledbootstrap.
22207
22208 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
22209
22210         PR target/44245
22211         * config/i386/i386.c (def_builtin): Properly check
22212         OPTION_MASK_ISA_64BIT.
22213
22214 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
22215
22216         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
22217         typedefs with different but compatible types.  Allow duplicate
22218         typedefs with the same type except for pedantic non-C1X, but give
22219         warning for variably modified types.
22220         * c-typeck.c (tagged_types_tu_compatible_p,
22221         function_types_compatible_p, type_lists_compatible_p,
22222         comptypes_internal): Add parameter different_types_p; set
22223         *different_types_p for different but compatible types.  All
22224         callers changed.
22225         (comptypes_check_different_types): New.
22226         * c-tree.h (comptypes_check_different_types): Declare.
22227
22228 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
22229
22230         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
22231         * jump.c: Include basic-block.h.
22232         * profile.c: Likewise.
22233         * tree-profile.c: Likewise.
22234         * coverage.c: Likewise.
22235         * basic-block.h (optimize_function_for_size_p): Move to function.h.
22236         (optimize_function_for_speed_p): Likewise.
22237         * function.h (optimize_function_for_size_p,
22238         optimize_function_for_speed_p): Moved here from basic-block.h.
22239         * Makefile.in: Update dependencies.
22240
22241 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22242
22243         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
22244         before calling make; allow override through $MAKE.
22245         * doc/invoke.texi (Optimize Options): Document override.
22246
22247 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
22248
22249         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
22250         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22251         (rs6000_mode_dependent_address_ptr): Make static.
22252         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22253         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
22254         Remove.
22255
22256 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
22257
22258         PR target/43869
22259         * config/i386/i386.c: Make sure that the correct regparm is passed.
22260
22261 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
22262
22263         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
22264         * sbitmap.c: ...to here to internalize sbitmap element access.
22265         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
22266         Explain why basic-block.h is included.
22267         * function.h: Include tm.h for CUMULATIVE_ARGS.
22268         * Makefile.in: Update dependencies.
22269
22270 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
22271
22272         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
22273         New core types.
22274         * sbitmap.h (struct sbitmap_def): Do not typedef here.
22275         * sbitmap.c: Include sbitmap.h.
22276         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
22277         hard-reg-set.h.  Split everything related to regsets out from here...
22278         * regset.h: ...to here.  New file.
22279         * df.h: Include regset.h and sbitmap.h.
22280         * tree-flow.h: Likewise.
22281         * cfgloop.h: Likewise.
22282         * except.h: Do not include sbitmap.h.  Include hashtab.h.
22283         * cgraph.h: Include vec.h and function.h.
22284         * reload.h (struct insn_chain): Change types of live_throughout
22285         and dead_or_set from regset_head to bitmap_head.
22286         (compute_use_by_pseudos): Be defined also if regset.h is not included.
22287         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
22288         spilled_regs from regset_head to bitmap_head to avoid dependency
22289         in regset.h.
22290         * sel-sched-ir.h: Include regset.h.
22291         * reload.c: Include df.h before reload.h.
22292         * caller-save.c: Likewise.
22293         * reload1.c: Likewise.
22294         * ira.c: Likewise.
22295         (mark_elimination): Update type of r to bitmap, consistent with
22296         DF_LR_IN.
22297         * dominance.c: Include bitmap.h.
22298         * modulo-sched.c: Include df.h.
22299         * cfganal.c: Include bitmap.h and sbitmap.h.
22300         * cfgbuild.c: Include sbitmap.h.
22301         * lcm.c: Include sbitmap.h.
22302         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
22303         * domwalk.c: Include sbitmap.h, exclude ggc.h.
22304         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
22305         * cselib.c: Include bitmap.h.
22306         * tree-optimize.c: Include regset.h.
22307         * stmt.c: Include bitmap.h.
22308         * Makefile.in: Update dependencies.
22309
22310 2010-05-22  Jan Hubicka  <jh@suse.cz>
22311
22312         * cgraph.h (struct varpool_node): Add same_comdat_group.
22313         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
22314         pointer.
22315         (output_varpool): Update call of lto_output_varpool_node.
22316         (input_varpool): Read same_comdat_group pointer.
22317         (input_varpool_1): Fixup same_comdat_group pointer.
22318         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
22319         group is needed, all are.
22320         * varpool.c (varpool_remove_node): Remove node from same comdat group
22321         linklist too.
22322         (varpool_analyze_pending_decls): Walk same comdat groups.
22323
22324 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
22325
22326         * rtl.h (union rtunion_def): Remove rt_bit member.
22327         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
22328         * print-rtl (print_rtx): Do not print the member.
22329         * gengtype.c (adjust_field_rtx_def): Do not handle it.
22330         * gengenrtl.c (type_from_format): Likewise.
22331         (accessor_from_format): Likewise.
22332
22333 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
22334
22335         * dbgcnt.c: Include toplev.h instead of errors.h.
22336         * ira-emit.c: Don't include errors.h.
22337         * ira.c: Include toplev.h instead of errors.h.
22338         * lto-compress.c: Include toplev.h instead of errors.h.
22339         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
22340         ira.o, dbgcnt.o): Update dependencies.
22341
22342 2010-05-22  Richard Guenther  <rguenther@suse.de>
22343
22344         * gimple.c (gimple_types_compatible_p): Check type qualifications
22345         before merging pointer to complete and pointer to incomplete type.
22346         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
22347         we use our own resolution algorithm.  The gold linker plugin
22348         doesn't do the job we want it to do here.
22349
22350 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
22351
22352         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22353         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22354         (sparc_mode_dependent_address_p): New function.
22355
22356 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
22357
22358         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
22359
22360         * timevar.c: Do not include any core headers.
22361         (timevar_print): De-i18n-ize.
22362         (print_time): Likewise.
22363         * timevar.h (timevar_push, timevar_pop): Make inline functions.
22364
22365 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
22366
22367         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
22368         langhooks-def.h.
22369         (diagnostic_initialize): Initialize x_data not last_function.
22370         (diagnostic_report_current_function): Move to tree-diagnostic.c.
22371         (default_diagnostic_starter): Call
22372         diagnostic_report_current_module not
22373         diagnostic_report_current_function.
22374         (diagnostic_report_diagnostic): Initialize x_data not
22375         abstract_origin.
22376         (verbatim): Likewise.
22377         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
22378         x_data.
22379         (struct diagnostic_context): Change last_function to x_data.
22380         (diagnostic_auxiliary_data): Replace with
22381         diagnostic_context_auxiliary_data and
22382         diagnostic_info_auxiliary_data.
22383         (diagnostic_last_function_changed, diagnostic_set_last_function,
22384         diagnostic_report_current_function): Move to tree-diagnostic.h.
22385         (print_declaration, dump_generic_node, print_generic_stmt,
22386         print_generic_stmt_indented, print_generic_expr,
22387         print_generic_decl, debug_c_tree, dump_omp_clauses,
22388         print_call_name, debug_generic_expr, debug_generic_stmt,
22389         debug_tree_chain, default_tree_printer): Move to
22390         tree-pretty-print.h.
22391         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
22392         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
22393         gimple-pretty-print.h.
22394         * pretty-print.c: Don't include tree.h
22395         (pp_base_format): Don't handle %K here.
22396         (pp_base_tree_identifier): Move to tree-pretty-print.c.
22397         * pretty-print.h (text_info): Change abstract_origin to x_data.
22398         (pp_tree_identifier, pp_unsupported_tree,
22399         pp_base_tree_identifier): Move to tree-pretty-print.h.
22400         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
22401         tree-pretty-print.h: New files.
22402         * tree-pretty-print.c: Include tree-pretty-print.h.
22403         (percent_K_format): New.  Moved from pretty-print.c.
22404         (pp_base_tree_identifier): Move from pretty-print.c.
22405         * c-objc-common.c: Include tree-pretty-print.h.
22406         (c_tree_printer): Handle %K here.
22407         * langhooks.c: Include tree-diagnostic.h.
22408         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
22409         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
22410         (default_tree_printer): Handle %K using percent_K_format.
22411         (general_init): Use default_tree_diagnostic_starter.
22412         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
22413         (free_lang_data): Use default_tree_diagnostic_starter.
22414         * c-pretty-print.c: Include tree-pretty-print.h.
22415         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
22416         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
22417         * dwarf2out.c: Include tree-pretty-print.h.
22418         * except.c: Include tree-pretty-print.h.
22419         * gimple-pretty-print.c: Include tree-pretty-print.h and
22420         gimple-pretty-print.h.
22421         * gimplify.c: Include tree-pretty-print.h.
22422         * graphite-poly.c: Include tree-pretty-print.h and
22423         gimple-pretty-print.h.
22424         * ipa-cp.c: Include tree-pretty-print.h.
22425         * ipa-inline.c: Include gimple-pretty-print.h.
22426         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
22427         * ipa-pure-const.c: Include gimple-pretty-print.h.
22428         * ipa-struct-reorg.c: Include tree-pretty-print.h and
22429         gimple-pretty-print.h.
22430         * ipa-type-escape.c: Include tree-pretty-print.h.
22431         * print-rtl.c: Include tree-pretty-print.h.
22432         * print-tree.c: Include gimple-pretty-print.h.
22433         * sese.c: Include tree-pretty-print.h.
22434         * tree-affine.c: Include tree-pretty-print.h.
22435         * tree-browser.c: Include tree-pretty-print.h.
22436         * tree-call-cdce.c: Include gimple-pretty-print.h.
22437         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
22438         * tree-chrec.c: Include tree-pretty-print.h.
22439         * tree-data-ref.c: Include tree-pretty-print.h and
22440         gimple-pretty-print.h.
22441         * tree-dfa.c: Include tree-pretty-print.h.
22442         * tree-if-conv.c: Include tree-pretty-print.h and
22443         gimple-pretty-print.h.
22444         * tree-inline.c: Include tree-pretty-print.h.
22445         * tree-into-ssa.c: Include tree-pretty-print.h and
22446         gimple-pretty-print.h.
22447         * tree-nrv.c: Include tree-pretty-print.h.
22448         * tree-object-size.c: Include tree-pretty-print.h and
22449         gimple-pretty-print.h.
22450         * tree-outof-ssa.c: Include tree-pretty-print.h and
22451         gimple-pretty-print.h.
22452         * tree-parloops.c: Include tree-pretty-print.h and
22453         gimple-pretty-print.h.
22454         * tree-predcom.c: Include tree-pretty-print.h and
22455         gimple-pretty-print.h.
22456         * tree-scalar-evolution.c: Include tree-pretty-print.h and
22457         gimple-pretty-print.h.
22458         * tree-sra.c: Include tree-pretty-print.h.
22459         * tree-ssa-address.c: Include tree-pretty-print.h.
22460         * tree-ssa-alias.c: Include tree-pretty-print.h.
22461         * tree-ssa-ccp.c: Include tree-pretty-print.h and
22462         gimple-pretty-print.h.
22463         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
22464         * tree-ssa-copy.c: Include tree-pretty-print.h and
22465         gimple-pretty-print.h.
22466         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
22467         * tree-ssa-dce.c: Include tree-pretty-print.h and
22468         gimple-pretty-print.h.
22469         * tree-ssa-dom.c: Include tree-pretty-print.h and
22470         gimple-pretty-print.h.
22471         * tree-ssa-dse.c: Include gimple-pretty-print.h.
22472         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
22473         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
22474         * tree-ssa-live.c: Include tree-pretty-print.h and
22475         gimple-pretty-print.h.
22476         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
22477         gimple-pretty-print.h.
22478         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
22479         gimple-pretty-print.h.
22480         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
22481         gimple-pretty-print.h.
22482         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
22483         gimple-pretty-print.h.
22484         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
22485         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
22486         * tree-ssa-operands.c: Include tree-pretty-print.h and
22487         gimple-pretty-print.h.
22488         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
22489         gimple-pretty-print.h.
22490         * tree-ssa-pre.c: Include tree-pretty-print.h and
22491         gimple-pretty-print.h.
22492         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
22493         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
22494         gimple-pretty-print.h.
22495         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
22496         gimple-pretty-print.h.
22497         * tree-ssa-sink.c: Include gimple-pretty-print.h.
22498         * tree-ssa-ter.c: Include tree-pretty-print.h and
22499         gimple-pretty-print.h.
22500         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
22501         * tree-ssa.c: Include tree-pretty-print.h and
22502         gimple-pretty-print.h.
22503         * tree-stdarg.c: Include gimple-pretty-print.h.
22504         * tree-switch-conversion.c: Include gimple-pretty-print.h.
22505         * tree-tailcall.c: Include tree-pretty-print.h and
22506         gimple-pretty-print.h.
22507         * tree-vect-data-refs.c: Include tree-pretty-print.h and
22508         gimple-pretty-print.h.
22509         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
22510         gimple-pretty-print.h.
22511         * tree-vect-loop.c: Include tree-pretty-print.h and
22512         gimple-pretty-print.h.
22513         * tree-vect-patterns.c: Include gimple-pretty-print.h.
22514         * tree-vect-slp.c: Include tree-pretty-print.h and
22515         gimple-pretty-print.h.
22516         * tree-vect-stmts.c: Include tree-pretty-print.h and
22517         gimple-pretty-print.h.
22518         * tree-vectorizer.c: Include tree-pretty-print.h.
22519         * tree-vrp.c: Include tree-pretty-print.h and
22520         gimple-pretty-print.h.
22521         * value-prof.c: Include tree-pretty-print.h and
22522         gimple-pretty-print.h.
22523         * var-tracking.c: Include tree-pretty-print.h.
22524         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
22525         (tree-diagnostic.o): New dependencies.
22526         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
22527         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
22528         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
22529         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
22530         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
22531         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
22532         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
22533         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
22534         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
22535         tree-ssa-address.o, tree-ssa-loop-niter.o,
22536         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
22537         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
22538         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
22539         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
22540         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
22541         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
22542         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
22543         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
22544         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
22545         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
22546         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
22547         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
22548         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
22549         tree-switch-conversion.o, var-tracking.o, value-prof.o,
22550         cfgexpand.o, pretty-print.o): Update dependencies.
22551
22552 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
22553
22554         * tree-ssa-structalias.c: Remove tm_p.h from include.
22555
22556 2010-05-21  Jeff Law  <law@redhat.com>
22557
22558         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
22559
22560 2010-05-21  Jason Merrill  <jason@redhat.com>
22561
22562         * tree-eh.c (cleanup_is_dead_in): New.
22563         (lower_try_finally): Don't generate a dead cleanup region.
22564         (lower_cleanup): Likewise.
22565
22566 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
22567
22568         PR debug/44223
22569         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
22570         unchain each use from the cyclic next_regno_use chain first.
22571
22572 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
22573
22574         * real: Do not include gmp.h, mpfr.h, and mpc.h.
22575         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
22576         (real_value_negate, real_value_abs): New prototypes.
22577         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
22578         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
22579         new include file for interface between MPFR and REAL_VALUE_TYPE.
22580         * real.c: Include realmpfr.h.
22581         (real_arithmetic2): Remove legacy function.
22582         (real_value_negate): New.
22583         (real_value_abs): New.
22584         (mfpr_from_real, real_from_mpfr): Move from here...
22585         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
22586         * builtins.c: Include realmpfr.h.
22587         * fold-const.c: Include realmpfr.h.
22588         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
22589         (fold_negate_const): Likewise.
22590         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
22591         * toplev.c: Include realmpfr.h.
22592         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
22593         and real_value_negate.
22594         * fixed-value.c (check_real_for_fixed_mode): Likewise.
22595         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
22596         (vfp3_const_double_index): Likewise.
22597         (arm_print_operand): Likewise.
22598         * Makefile.in: Update dependencies.
22599
22600 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22601
22602         * config/s390/s390.c (override_options): Increase the default
22603         of max-completely-peel-times.
22604
22605 2010-05-21  Julian Brown  <julian@codesourcery.com>
22606             Mark Mitchell  <mark@codesourcery.com>
22607
22608         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
22609         sibling calls for Thumb-1.
22610         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
22611         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
22612         Thumb-2.
22613         (*call_insn, *call_value_insn): Don't use for Thumb-2.
22614         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
22615         for Thumb-2.
22616         (return): New expander.
22617         (*arm_return): New name for ARM return insn.
22618         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
22619
22620 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
22621
22622         * config.gcc (sparc64-*-rtems*): New target.
22623
22624 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
22625
22626         * tree.c (build_function_decl_skip_args): Fix grammar.
22627         (build_function_type_list_1): Fix typos, adjust formatting.
22628
22629 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
22630
22631         * tree.h: Include real.h and fixed-value.h as basic datatypes.
22632         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
22633         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
22634         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
22635         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
22636         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
22637         tree-pretty-print.c, tree-loop-distribution.c,
22638         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
22639         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
22640         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
22641         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
22642         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
22643         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
22644         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
22645         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
22646         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
22647         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
22648         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
22649         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
22650         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
22651         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
22652         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
22653         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
22654         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
22655         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
22656         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
22657         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
22658         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
22659         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
22660         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
22661         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
22662         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
22663         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
22664         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
22665         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
22666         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
22667         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
22668         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
22669         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
22670         config/score/score7.c, config/score/score.c, config/arm/arm.c,
22671         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
22672         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
22673         config/bfin/bfin.c: Clean up redundant includes.
22674         * Makefile.in: Update accordingly.
22675
22676 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
22677
22678         PR middle-end/44204
22679         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
22680         statement has no arguments.
22681
22682 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
22683
22684         PR/44139
22685         * varasm.c (emutls_decl): Merge attributes to new decl.
22686
22687 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
22688
22689         PR middle-end/44101
22690         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
22691         around the uniquized constructor if its type requires a conversion.
22692
22693 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
22694
22695         PR debug/44205
22696         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
22697         at -O0 goto_locus of any of the incoming edges differs from
22698         goto_locus of outgoing edge, or gimple_location of any of the
22699         labels differs.
22700
22701 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
22702
22703         * ira.c (ira_non_ordered_class_hard_regs): Define.
22704         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
22705         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
22706         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
22707         cost of unaligned hard regs when allocating multi-reg pseudos.
22708
22709 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
22710
22711         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
22712         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
22713         for TARGET_NO_FLOAT.
22714         * config/mips/mips.c (mips_file_start): Expand conditional expression
22715         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
22716         (mips_override_options): Move -mno-float override -msoft-float and
22717         -mhard-float.
22718         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
22719         Condition(TARGET_SUPPORTS_NO_FLOAT).
22720         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
22721         __mips_no_float here.
22722         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
22723         (TARGET_SUPPORTS_NO_FLOAT): Define.
22724         * config/mips/sdemtk.opt: Delete.
22725
22726 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
22727
22728         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
22729
22730 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
22731
22732         PR target/43733
22733         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
22734         * configure: Regenerate.
22735         * config.in: Regenerate.
22736         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
22737         instead of sahf only for 64bit targets.
22738
22739 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
22740
22741         PR debug/44178
22742         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
22743         setup_ref_regs for DEBUG_INSNs.
22744
22745 2010-05-20  Jan Hubicka  <jh@suse.cz>
22746
22747         PR middle-end/44197
22748         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
22749
22750 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
22751
22752         PR bootstrap/43870
22753         * df-scan.c (df_ref_compare): Stabilize sort.
22754
22755 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
22756
22757         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
22758         argument.  Don't use DW_OP_piece if offset is non-zero,
22759         put offset into second DW_OP_bit_piece argument.
22760         (dw_sra_loc_expr): Adjust callers.  For memory expressions
22761         compute offset.
22762
22763 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
22764
22765         PR target/44202
22766         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
22767         settings for 16-bit-constant "addo" alternative.
22768
22769 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
22770
22771         * config/mips/mips-dsp.md (add<DSPV:mode>3,
22772         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
22773
22774         PR target/43764
22775         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
22776         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
22777         Use it.
22778
22779 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
22780
22781         * diagnostic.c (FLOAT, FFS): Don't undefine.
22782         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
22783         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
22784         include ordering.
22785
22786 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
22787
22788         * combine.c (propagate_for_debug): Call make_compound_operation
22789         on the source value.
22790         (try_combine): When implementing a split chosen by find_split_point,
22791         either copy i2src or set it to null.  Assert that i2src is not null
22792         before substituting into CALL_INSN_FUNCTION_USAGE.
22793
22794 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
22795
22796         * double-int.h (double_int_ior): New function.
22797         * tree.h (build_int_cst_wide_type): Remove.
22798         * tree.c (build_int_cst_wide_type): Remove.
22799         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
22800         of build_int_cst_wide_type.
22801         * stor-layout.c (set_sizetype): (Ditto.).
22802         * dojump.c (do_jump): Use build_int_cstu instead of
22803         build_int_cst_wide_type.
22804
22805 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
22806
22807         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
22808         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
22809         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
22810         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
22811         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
22812         propagate the 'data' argument to copy_tree_r.
22813         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
22814         Propagate 'data' argument to walk_tree.
22815         (copy_if_shared): New function.
22816         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
22817         (unmark_visited): New function.
22818         (unshare_body): Call copy_if_shared instead of doing it manually.
22819         (unvisit_body): Call unmark_visited instead of doing it manually.
22820
22821 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
22822
22823         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
22824         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
22825         * hooks.c: Likewise.
22826         * target-def.h (TARGET_FOLD_BUILTIN): Define to
22827         hook_tree_tree_int_treep_bool_null.
22828         * target.h (struct gcc_target): Update signature of fold_builtin
22829         field.
22830         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
22831         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
22832         instead of the call expression.
22833         (fold_builtin_call_array): Pass n and argarray directly.
22834         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
22835         consing a list.
22836         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
22837         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
22838         `i' and use it in place of `arity'.
22839         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
22840         Dereference `args' directly.
22841         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
22842
22843 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22844
22845         * doc/sourcebuild.texi (Effective-Target Keywords): Document
22846         3dnow, sse3, sse2.
22847         (Directives): Document optional dg-require-effective-target
22848         selector.
22849
22850 2010-05-19  Richard Guenther  <rguenther@suse.de>
22851
22852         PR lto/44196
22853         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
22854
22855 2010-05-19  Richard Guenther  <rguenther@suse.de>
22856
22857         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
22858         * common.opt (fwhopr=): New.
22859         * opts.c (common_handle_option): Handle OPT_fwhopr.
22860         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
22861         * collect2.c (main): Match -fwhopr*.
22862         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
22863         Execute ltrans stage in parallel when jobs is bigger than 1.
22864
22865 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22866
22867         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
22868         pentiumpro on Solaris 8/x86 with Sun as.
22869         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
22870         hidden alias bug.
22871         (gcc_cv_as_ix86_quad): Check for .quad directive.
22872         * configure: Regenerate.
22873         * config.in: Regenerate.
22874         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
22875
22876 2010-05-19  Martin Jambor  <mjambor@suse.cz>
22877
22878         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
22879         also for indirect edges.  Actual printing moved...
22880         (ipa_print_node_jump_functions_for_edge): ...here.
22881         (ipa_compute_jump_functions): Renamed to
22882         ipa_compute_jump_functions_for_edge and made static.
22883         (ipa_compute_jump_functions): New function.
22884         (make_edge_direct_to_target): Check if the number of arguments on
22885         the newly direct edge is the same as the number of parametrs of
22886         the callee.
22887         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
22888         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
22889         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
22890         analysis functions unconditionally, call the new
22891         ipa_analyze_params_uses on the node instead of every edge.
22892
22893 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
22894
22895         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
22896         to tree.
22897         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
22898         also checks for a constant int vs.  non-constant but
22899         loop-invariant steps.
22900         (find_or_create_group): Change the sort algorithm to only consider
22901         steps that are constant ints.
22902         (idx_analyze_ref): Adopt code to handle a tree instead of a
22903         HOST_WIDE_INT for step.
22904         (gather_memory_references_ref): Handle tree instead of int and be
22905         prepared to see a NULL_TREE.
22906         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
22907         prefetches if the step cannot be calculated at compile time.
22908         (issue_prefetch_ref): Issue prefetches for non-constant but
22909         loop-invariant steps.
22910
22911 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
22912
22913         Revert:
22914         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
22915
22916         * tree.h (build_call_list): Remove.
22917         * tree.c (build_call_list): Remove.
22918
22919 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
22920
22921         * tree.h (build_call_list): Remove.
22922         * tree.c (build_call_list): Remove.
22923
22924 2010-05-18  Jan Hubicka  <jh@suse.cz>
22925
22926         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
22927
22928 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
22929
22930         PR rtl-optimization/43332
22931         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
22932
22933 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
22934
22935         * tree.h (build_int_cstu): Implement as static inline.
22936         * tree.c (build_int_cstu): Remove function.
22937         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
22938         sign extended.
22939
22940 2010-05-18  Richard Guenther  <rguenther@suse.de>
22941
22942         PR lto/44143
22943         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
22944         (debug): Initialize from -save-temps.
22945         (collect_execute): Print command-line when verbose.
22946         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
22947         for ltrans invocation.  Produce -dumpbase flag again.
22948         (process_args): Remove.
22949         (main): Simplify.
22950         * collect2.c (maybe_run_lto_and_relink): Only pass object
22951         files to lto-wrapper.
22952         * gcc.c (LINK_COMMAND_SPEC): Likewise.
22953
22954 2010-05-18  Jan Hubicka  <jh@suse.cz>
22955
22956         * opts.c (decode_options): Do not disable whopr at ipa_cp.
22957         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
22958
22959 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
22960
22961         PR lto/44184
22962         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
22963         in a GIMPLE_ASM.
22964         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
22965         in a GIMPLE_ASM.
22966
22967 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
22968
22969         PR debug/41371
22970         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
22971         rtx_equal_p inline.
22972
22973 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
22974
22975         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
22976         lto-macho as lto_binary_reader.
22977
22978         * darwin.c (darwin_asm_named_section): Do not add assembler comment
22979         after .section directive; just print it before the directive instead.
22980
22981 2010-05-17  Jan Hubicka  <jh@suse.cz>
22982
22983         * cgraph.c (cgraph_create_virtual_clone): Only check
22984         versionable_function_p when not in wpa and checking is enabled.
22985         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
22986         there are no more functions to materialize.
22987
22988 2010-05-17  Jan Hubicka  <jh@suse.cz>
22989
22990         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
22991         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
22992         New functions.
22993         (output_cgraph): Call output_cgraph_opt_summary.
22994         (input_cgrpah): Call input_cgraph_opt_summary.
22995         (output_cgraph_opt_summary_p, output_node_opt_summary,
22996         input_node_opt_summary, input_cgraph_opt_section): New functions.
22997         * lto-section-in.c (lto_section_name): Add cgraphopt.
22998         * tree-inline.c (tree_function_versioning): Handle parm_num.
22999         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
23000         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
23001
23002 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
23003
23004         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
23005         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
23006         the insn to prefetch ratio heuristic to loops with known trip count.
23007
23008 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
23009
23010         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
23011         (schedule_prefetches): Do not generate a prefetch if the unroll factor
23012         is far from what is required by the prefetch.
23013
23014 2010-05-17  Jan Hubicka  <jh@suse.cz>
23015
23016         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
23017         (ipcp_estimate_growth): Likewise.
23018         (ipcp_const_param_count): Likewise.
23019         (ipcp_insert_stage): Likewise.
23020         * ipa-prop.c (visit_load_for_mod_analysis): New function.
23021         (visit_store_addr_for_mod_analysis): Set used flag.
23022         (ipa_detect_param_modifications): Set used flag for SSE params;
23023         update use of walk_stmt_load_store_addr_ops.
23024         (ipa_print_node_params): Print used flag.
23025         (ipa_write_node_info): Stream used flag.
23026         (ipa_read_node_info): Likewise.
23027         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
23028         (ipa_is_param_used): New function.
23029         (lto_ipa_fixup_call_notes): Remove unused declaration.
23030
23031 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23032
23033         PR target/44074
23034         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
23035         * configure: Regenerate.
23036         * config.in: Regenerate.
23037         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
23038         !HAVE_AS_IX86_REP_LOCK_PREFIX.
23039         Don't emit whitespace.
23040         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
23041         (*rep_movsi): Likewise.
23042         (*rep_movsi_rex64): Likewise.
23043         (*rep_movqi): Likewise.
23044         (*rep_movqi_rex64): Likewise.
23045         (*rep_stosdi_rex64): Likewise.
23046         (*rep_stossi): Likewise.
23047         (*rep_stossi_rex64): Likewise.
23048         (*rep_stosqi): Likewise.
23049         (*rep_stosqi_rex64): Likewise.
23050         (*cmpstrnqi_nz_1): Use {%;} after repz.
23051         (*cmpstrnqi_nz_rex_1): Likewise.
23052         (*cmpstrnqi_1): Likewise.
23053         (*cmpstrnqi_rex_1): Likewise.
23054         (*strlenqi_1): Use {%;} after repnz.
23055         (*strlenqi_rex_1): Likewise.
23056         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
23057         (*sync_compare_and_swap<mode>): Likewise.
23058         (sync_double_compare_and_swap<mode>): Likewise.
23059         (*sync_double_compare_and_swapdi_pic): Likewise.
23060         (sync_old_add<mode>): Likewise.
23061         (sync_add<mode>): Likewise.
23062         (sync_sub<mode>): Likewise.
23063         (sync_<code><mode>): Likewise.
23064
23065 2010-05-17  Martin Jambor  <mjambor@suse.cz>
23066
23067         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
23068         otr_token and polymorphic.
23069         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
23070         (cgraph_clone_edge): Copy the above fields.
23071         * tree.c (get_binfo_at_offset): New function.
23072         * tree.h (get_binfo_at_offset): Declare.
23073         * ipa-prop.h (enum jump_func_type): Added known_type jump function
23074         type, reordered items, updated comments.
23075         (union jump_func_value): Added base_type field, reordered fields.
23076         (enum ipa_lattice_type): Moved down in the file.
23077         (struct ipa_param_descriptor): New field polymorphic.
23078         (ipa_is_param_polymorphic): New function.
23079         * ipa-prop.c: Include gimple.h and gimple-fold.h.
23080         (ipa_print_node_jump_functions): Print known type jump functions.
23081         (compute_complex_pass_through): Renamed to...
23082         (compute_complex_assign_jump_func): this.
23083         (compute_complex_ancestor_jump_func): New function.
23084         (compute_known_type_jump_func): Likewise.
23085         (compute_scalar_jump_functions): Create known type and complex ancestor
23086         jump functions.
23087         (ipa_note_param_call): New parameter polymorphic, set the corresponding
23088         flag in the call note accordingly.
23089         (ipa_analyze_call_uses): Renamed to...
23090         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
23091         variable var only in the block where it is used.
23092         (ipa_analyze_virtual_call_uses): New function.
23093         (ipa_analyze_call_uses): Likewise.
23094         (combine_known_type_and_ancestor_jfs): Likewise.
23095         (update_jump_functions_after_inlining): Implemented handling of a
23096         number of new jump function types combination.
23097         (print_edge_addition_message): Removed.
23098         (make_edge_direct_to_target): New function.
23099         (try_make_edge_direct_simple_call): Likewise.
23100         (try_make_edge_direct_virtual_call): Likewise.
23101         (update_call_notes_after_inlining): Renamed to...
23102         (update_indirect_edges_after_inlining): this.  Moved edge creation for
23103         indirect calls to try_make_edge_direct_simple_call, also calls
23104         try_make_edge_direct_virtual_call for virtual calls.
23105         (ipa_print_node_params): Changed the header message.
23106         (ipa_write_jump_function): Stream also known type jump functions.
23107         (ipa_read_jump_function): Likewise.
23108         (ipa_write_indirect_edge_info): Stream new fields in
23109         cgraph_indirect_call_info.
23110         (ipa_read_indirect_edge_info): Likewise.
23111         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
23112         GIMPLE_FOLD_H.
23113
23114 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23115
23116         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
23117
23118 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
23119
23120         * tree.h (CALL_EXPR_ARGS): Delete.
23121         (call_expr_arglist): Delete.
23122         * tree.c (call_expr_arglist): Delete.
23123         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
23124         targetm.fold_builtin.
23125         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
23126         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
23127         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
23128         arglist parameter.  Use CALL_EXPR_ARG.
23129         (picochip_expand_builtin_3op): Likewise.
23130         (picochip_expand_builtin_2opvoid): Likewise.
23131         (picochip_expand_array_get): Likewise.
23132         (picochip_expand_array_put): Likewise.
23133         (picochip_expand_array_testport): Likewise.
23134         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
23135         rather than arglist.
23136         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
23137         CALL_EXPR_ARGS.
23138         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
23139         than TREE_VALUE and TREE_CHAIN.
23140         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
23141         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
23142         the arglist.
23143
23144 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
23145
23146         PR bootstrap/42347
23147         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
23148         to have no fallthru edge.
23149
23150         PR middle-end/44102
23151         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
23152         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
23153         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
23154         add BARRIER after previous bb if needed.
23155
23156 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
23157
23158         * tree.c (build_function_type_list_1): Remove bogus assert condition.
23159
23160 2010-05-17  Alan Modra  <amodra@gmail.com>
23161
23162         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
23163         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
23164         with copy_reg rtx param.
23165         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
23166         Correct cases where code for ABI_V4 did not initialise the reg
23167         used to access frame.  Also leave frame_reg_rtx as sp for large
23168         frames that save no regs.
23169
23170 2010-05-17  Martin Jambor  <mjambor@suse.cz>
23171
23172         PR middle-end/44133
23173         * tree-sra.c (create_access_replacement): New parameter rename, mark
23174         the replaement for renaming only when it is true.
23175         (get_access_replacement): Pass true in the rename parameter of
23176         create_access_replacement.
23177         (get_unrenamed_access_replacement): New function.
23178         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
23179         replacement declaration from it.
23180
23181 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
23182
23183         * function.c (try_fit_stack_local, add_frame_space): New static
23184         functions.
23185         (assign_stack_local_1): Use them.  Look for opportunities to use
23186         space previously wasted on alignment.
23187         * function.h (struct frame_space): New.
23188         (struct rtl_data): Add FRAME_SPACE_LIST member.
23189         * reload1.c (something_was_spilled): New static variable.
23190         (alter_reg): Set it.
23191         (reload): Test it in addition to testing if the frame size changed.
23192
23193 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
23194
23195         * config/s390/s390.c: Define sane prefetch settings and activate
23196         flag_prefetch_loop_arrays on -O3.
23197         * config/s390/s390.h: Declare that read can use write prefetch.
23198
23199 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
23200
23201         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
23202         build.
23203
23204 2010-05-16  Jan Hubicka  <jh@suse.cz>
23205
23206         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
23207         function body; do not check stdarg field of struct function.
23208
23209 2010-05-16  Jan Hubicka  <jh@suse.cz>
23210
23211         * cgraph.c (dump_cgraph_node): Dump versionable flag.
23212         * cgraph.h (cgraph_local_info): Add versionable flag.
23213         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
23214         (ipcp_versionable_function_p): Use it.
23215         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
23216         versionable flag.
23217
23218 2010-05-16  Jan Hubicka  <jh@suse.cz>
23219
23220         * cgraph.c (cgraph_clone_node): Take decl argument and insert
23221         clone into hash when it is different from orig.
23222         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
23223         * cgraph.h (cgraph_clone_node): Update prototype.
23224         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
23225         (lto_cgraph_encoder_delete): Delete body map.
23226         (lto_cgraph_encoder_size): Move to header.
23227         (lto_cgraph_encoder_encode_body_p,
23228         lto_set_cgraph_encoder_encode_body): New.
23229         (lto_output_node): Do not take written_decls argument; output clone_of
23230         pointer.
23231         (add_node_to): Add include_body_argument; call
23232         lto_set_cgraph_encoder_encode_body on master of the clone.
23233         (add_references): Update use of add_node_to.
23234         (compute_ltrans_boundary): Likewise.
23235         (output_cgraph): Do not create written_decls bitmap.
23236         (input_node): Take nodes argument; stream in clone_of correctly.
23237         (input_cgraph_1): Update use of input_node.
23238         * lto-streamer-out.c (lto_output): Use encoder info to decide
23239         what bodies to output.
23240         * ipa-inline.c (cgraph_clone_inlined_nodes,
23241         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
23242         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
23243         (lto_cgraph_encoder_size): Define here.
23244         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
23245         Declare.
23246
23247 2010-05-16  Richard Guenther  <rguenther@suse.de>
23248
23249         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
23250         -fipa-type-escape.
23251         * ipa-type-escape.c (gate_type_escape_vars): Run when
23252         -fipa-struct-reorg runs.
23253         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
23254         * common.opt (fipa-type-escape): Remove.
23255
23256 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
23257
23258         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
23259         (decode_options): Likewise.
23260         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
23261
23262 2010-05-16  Jan Hubicka  <jh@suse.cz>
23263
23264         * ipa.c (function_and_variable_visibility): Also bring local all
23265         aliases.
23266
23267 2010-05-16  Richard Guenther  <rguenther@suse.de>
23268
23269         * alias.c (nonoverlapping_memrefs_p): Remove use of
23270         IPA type-escape information.
23271
23272 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
23273
23274         * c-common.c (c_common_reswords): Add _Static_assert for C.
23275         * c-parser.c (c_token_starts_declaration,
23276         c_parser_next_token_starts_declaration,
23277         c_parser_static_assert_declaration_no_semi,
23278         c_parser_static_assert_declaration): New.
23279         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
23280         Handle static assertions if static_assert_ok.
23281         (c_parser_external_declaration, c_parser_declaration_or_fndef,
23282         c_parser_compound_statement_nostart, c_parser_label,
23283         c_parser_for_statement, c_parser_objc_methodprotolist,
23284         c_parser_omp_for_loop): All callers of
23285         c_parser_declaration_or_fndef changed.
23286         (c_parser_struct_declaration): Handle static assertions.
23287         (c_parser_compound_statement_nostart): Use
23288         c_parser_next_token_starts_declaration and
23289         c_token_starts_declaration to detect start of declarations.
23290         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
23291         Likewise.
23292
23293 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
23294
23295         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23296         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23297         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23298         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23299         (mmix_function_outgoing_value): Rename to...
23300         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
23301         (mmix_function_value_regno_p): Make static.
23302         (mmix_libcall_value): New function.
23303         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
23304         mmix_function_value_regno_p): Remove declaration.
23305
23306 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
23307
23308         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
23309         BUILT_IN_ALLOCA if stack checking is enabled.
23310
23311 2010-05-16  Richard Guenther  <rguenther@suse.de>
23312
23313         * var-tracking.c (vars_copy_1): Inline ...
23314         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
23315         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
23316         (variable_merge_over_cur): Adjust.  Merge asserts.
23317         (variable_merge_over_src): Likewise.
23318         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
23319         (variable_post_merge_new_vals): Merge asserts.
23320         (variable_post_merge_perm_vals): Likewise.
23321         (find_mem_expr_in_1pdv): Likewise.
23322         (dataflow_set_different_value): Remove.
23323         (onepart_variable_different_p): Merge asserts.
23324         (variable_different_p): Likewise.
23325         (dataflow_set_different_1): Inline ...
23326         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
23327         (emit_notes_for_differences_1): Merge asserts.
23328
23329 2010-05-16  Richard Guenther  <rguenther@suse.de>
23330
23331         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
23332         * optabs.c (libfunc_decl_hash): Likewise.
23333         * varasm.c (emutls_decl): Likewise.
23334
23335 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
23336
23337         * c-decl.c: Don't include gimple.h.
23338         (merge_decls): Do not copy gimple_body.
23339
23340 2010-05-15  Jason Merrill  <jason@redhat.com>
23341
23342         * c.opt: Add -fnothrow-opt.
23343
23344 2010-05-15  Jan Hubicka  <jh@suse.cz>
23345
23346         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
23347         analyzed.
23348         * passes.c (ipa_write_summaries): Write all analyzed nodes.
23349
23350 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
23351
23352         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
23353         * Makefile.in: Add it.
23354         Fix all other Makefile dependencies for changes below.
23355         * tree.h: Include it instead of defining VEC primitives here.
23356         * gimple.h: Likewise.
23357         * rtl.h: Likewise.
23358         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
23359         * except.h: Include vecir.h, break dependence on tree.h.
23360
23361         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
23362         Move from here...
23363         * tree-iterator.c: ...to here.
23364         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
23365
23366         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
23367         tm_p.h.
23368         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
23369         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
23370         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
23371         tree-mudflap.h, and target.h.
23372         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
23373         predict.h, tree-inline.h, gimple.h, and langhooks.h.
23374         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
23375         Add FIXME for why gimple.h is still included (should be unnecessary
23376         since GCC 4.5 gimplification unit-at-a-time).
23377         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
23378         * c-pragma.c: Add FIXME for why function.h needs to be included just
23379         for cfun, at front-end level.
23380         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
23381         Do not include ggc.h, but include vecprim.h for VEC(char).
23382         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
23383         Explain why target.h is included.
23384         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
23385         Explain why gimple.h is included.
23386         * c-ppoutput.c: Do not include tm.h.
23387         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
23388         * c-parses.c: Explain why rtl.h is included, and that this (and only
23389         this) is also why tm.h must be included.
23390         Do not include except.h.
23391         * c-lang.c: Do not include ggc.h.
23392
23393 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
23394
23395         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
23396
23397 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
23398
23399         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
23400         unions by default if those structs and unions have no tags.  Do
23401         not condition anonymous struct and unions handling on flag_iso.
23402         Allow anonymous structs and unions for C1X.
23403         (finish_struct): Do not diagnose lack of named fields when
23404         anonymous structs and unions present for C1X.  Accept flexible
23405         array members in structure with anonymous structs or unions but no
23406         directly named fields.
23407         * doc/extend.texi (Unnamed Fields): Update.
23408
23409 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
23410
23411         * gimple.h (compare_field_offset): Rename into...
23412         (gimple_compare_field_offset): ...this.
23413         * gimple.c (compare_field_offset): Rename into...
23414         (gimple_compare_field_offset): ...this.  Compare the full access if
23415         the offset is self-referential.
23416         (gimple_types_compatible_p): Adjust for above renaming.
23417         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
23418         DECL_NONADDRESSABLE_P flag of fields before merging them.
23419
23420 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
23421
23422         * tree.h (ctor_to_list): Delete.
23423         * tree.c (ctor_to_list): Delete.
23424
23425 2010-05-15  Jan Hubicka  <jh@suse.cz>
23426
23427         * ipa-reference.c: Include toplev.h
23428         (is_proper_for_analysis): Only add to all_module_statics
23429         if it is allocated.
23430         (write_node_summary_p, stream_out_bitmap,
23431         ipa_reference_write_optimization_summary,
23432         ipa_reference_read_optimization_summary): New.
23433         (struct ipa_opt_pass_d pass_ipa_reference): Add
23434         optimization summary streaming.
23435         * lto-cgraph.c (referenced_from_this_partition_p,
23436         reachable_from_this_partition_p): New functions.
23437         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
23438         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
23439         * opts.c (decode_options): Enable ipa_reference.
23440         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
23441         * lto-streamer.h (referenced_from_this_partition_p,
23442         reachable_from_this_partition_p): Declare.
23443
23444 2010-05-15  Richard Guenther  <rguenther@suse.de>
23445
23446         PR tree-optimization/44038
23447         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
23448         taking the address of a V_C_E of a constant.
23449
23450 2010-05-14  Jan Hubicka  <jh@suse.cz>
23451
23452         * tree.h (memory_identifier_string): Remove.
23453         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
23454         (ipa_reference_global_vars_info_d): Remove statics_not_read and
23455         statics_not_written.
23456         (ipa_reference_optimization_summary_d): New structure.
23457         (ipa_reference_optimization_summary_t): New type and vector.
23458         (ipa_reference_vars_info_d): Embedd structures instead of using
23459         pointers.
23460         (reference_vars_to_consider): Remove out of GGC space.
23461         (module_statics_escape): Remove.
23462         (global_info_obstack): Rename to ...
23463         (optimization_summary_obstack): ... this one.
23464         (initialization_status_t): Remove.
23465         (memory_identifier_string): Remove.
23466         (get_reference_vars_info): Fix indenting.
23467         (set_reference_vars_info): Likewise.
23468         (get_reference_optimization_summary): New.
23469         (set_reference_optimization_summary): New.
23470         (get_global_reference_vars_info): Remove.
23471         (ipa_reference_get_read_global): Remove.
23472         (ipa_reference_get_written_global): Remove.
23473         (ipa_reference_get_not_read_global): Update.
23474         (ipa_reference_get_not_written_global): Update.
23475         (is_proper_for_analysis): Outlaw addressable.
23476         (propagate_bits): Update for new datastructures.
23477         (analyze_variable): Remove.
23478         (init_function_info): Update for new datastructures.
23479         (clean_function_local_data): Remove.
23480         (clean_function): Remove.
23481         (copy_global_bitmap): Use optimizations_summary_obstack.
23482         (duplicate_node_data): Duplicate optimization summary only.
23483         (remove_node_data): Remove optimization summary only.
23484         (generate_summary): Do not analyze variables; do not compute
23485         module_statics_escape; do not prune solutions by it.
23486         (read_write_all_from_decl): Fix typos in comments.
23487         (propagate): Doscover readonly and nonaddressable first;
23488         update for new datastructures; share global bitmaps.
23489         * ipa-reference.h (ipa_reference_get_read_global,
23490         ipa_reference_get_written_global): Remove.
23491         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
23492         * Makefile.in: Remove ipa-refereference from GT files.
23493
23494 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
23495
23496         PR debug/44112
23497         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
23498         for all SYMBOL_REF_DECLs.
23499
23500 2010-05-14  Jan Hubicka  <jh@suse.cz>
23501
23502         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
23503         (varpool_all_refs_explicit_p): New inline function.
23504         * ipa-reference.c: Update comment.
23505         (module_statics_written): Remove.
23506         (get_static_decl): Remove.
23507         (ipa_init): Do not initialize module_statics_written.
23508         (analyze_function): Likewise.
23509         (generate_summary): Likewise; do not compute module_statics_readonly
23510         and do not update variable flags.
23511         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
23512         * ipa.c: Inlucde flags.h
23513         (cgraph_local_node_p): New.
23514         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
23515         promote functions to local.
23516         (ipa_discover_readonly_nonaddressable_vars): New function.
23517         (function_and_variable_visibility): Use cgraph_local_node_p.
23518         * varpool.c (varpool_finalize_decl): Set force_output for
23519         DECL_PRESERVE_P vars.
23520
23521 2010-05-14  Jan Hubicka  <jh@suse.cz>
23522
23523         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
23524
23525 2010-05-14  Richard Guenther  <rguenther@suse.de>
23526
23527         PR tree-optimization/44119
23528         * tree-ssa-pre.c (eliminate): Properly mark replacement of
23529         a PHI node necessary.
23530
23531 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
23532
23533         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
23534
23535 2010-05-14  Jason Merrill  <jason@redhat.com>
23536
23537         PR c++/44127
23538         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
23539         (gimple_call_set_nothrow): New.
23540         * gimple.c (gimple_build_call_from_tree): Call it.
23541         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
23542
23543         PR c++/44127
23544         * gimplify.c (gimplify_seq_add_stmt): No longer static.
23545         * gimple.h: Declare it.
23546         * gimple.c (gimple_build_eh_filter): No ops.
23547
23548 2010-05-14  Jan Hubicka  <jh@suse.cz>
23549
23550         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
23551         nodes already in queue.
23552         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
23553         re-enqueueing node.
23554
23555 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
23556
23557         PR debug/44136
23558         * cfgexpand.c (expand_debug_expr): If non-memory op0
23559         has BLKmode, return NULL.
23560
23561 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
23562
23563         * config.gcc: Add support for --with-cpu option for bdver1.
23564         * config/i386/i386.h (TARGET_BDVER1): New macro.
23565         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
23566         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
23567         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
23568         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
23569         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
23570         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
23571         (processor_type): Add PROCESSOR_BDVER1.
23572         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
23573         processor_type in config/i386/i386.h.
23574         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
23575         movaps <reg, reg> instead of movapd <reg, reg> when replacing
23576         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
23577         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
23578         to emit packed xor instead of packed double/packed integer
23579         xor for SSE and AVX when moving a zero value.
23580         * config/i386/sse.md: Add check for
23581         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
23582         movapd/movdqa for SSE and AVX.
23583         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
23584         single logical operations i.e and, or and xor instead of packed double
23585         logical operations for SSE and AVX.
23586         * config/i386/i386-c.c (ix86_target_macros_internal):
23587         Add PROCESSOR_BDVER1.
23588         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
23589         (has_fma4, has_xop): New.
23590         * config/i386/i386.c (bdver1_cost): New variable.
23591         (m_BDVER1): New macro.
23592         (m_AMD_MULTIPLE): Add m_BDVER1.
23593         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
23594         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
23595         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
23596         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
23597         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
23598         x86_tune_sse_partial_reg_dependency,
23599         x86_tune_sse_unaligned_load_optimal,
23600         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
23601         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
23602         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
23603         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
23604         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
23605         Enable/disable for bdver1.
23606         (processor_target_table): Add bdver1_cost.
23607         (cpu_names): Add bdver1.
23608         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
23609          processor_alias_table.
23610         (ix86_expand_vector_move_misalign): Change.
23611         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
23612         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
23613         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
23614         of movupd/movdqu for SSE and AVX.
23615         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
23616         (ix86_tune_adjust_cost): Add code for bdver1.
23617         (standard_sse_constant_opcode): Add check for
23618         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
23619         of packed double xor for SSE and AVX.
23620
23621 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
23622
23623         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
23624         result to unsigned.
23625
23626 2010-05-14  Tristan Gingold  <gingold@adacore.com>
23627
23628         * toplev.c (default_debug_hooks): Remove this variable.
23629         (process_options): Remove assignments to default_debug_hooks.
23630
23631 2010-05-14  Martin Jambor  <mjambor@suse.cz>
23632
23633         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
23634         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
23635         * langhooks.h (struct lang_hooks_for_decls): Removed field
23636         fold_obj_type_ref.
23637         * tree.c (free_lang_data): Remove assignment to
23638         lang_hooks.fold_obj_type_ref.
23639         * tree.def (OBJ_TYPE_REF): Update comment.
23640
23641 2010-05-14  Richard Guenther  <rguenther@suse.de>
23642
23643         PR tree-optimization/44124
23644         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
23645
23646 2010-05-14  Alan Modra  <amodra@gmail.com>
23647
23648         PR target/44075
23649         * config/rs6000/rs6000.c (struct machine_function): Reorder
23650         fields for better packing.  Add lr_save_state.
23651         (rs6000_ra_ever_killed): Return lr_save_state if set.
23652         (rs6000_emit_eh_reg_restore): Set lr_save_state.
23653
23654 2010-05-13  Jan Hubicka  <jh@suse.cz>
23655
23656         * varpool.c (decide_is_variable_needed): Drop code checking
23657         TREE_SYMBOL_REFERENCED.
23658
23659 2010-05-13  Jan Hubicka  <jh@suse.cz>
23660
23661         * final.c (output_addr_const): Do not call mark_decl_referenced.
23662         * cgraphunit.c (process_function_and_variable_attributes): Use
23663         mark_needed_node dirrectly.
23664         (assemble_thunk): Do not call mark_decl_referenced.
23665
23666 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
23667
23668         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
23669
23670 2010-05-13  Jeff Law  <law@redhat.com>
23671
23672         * ira-conflicts.c (print_allocno_conflicts): New function broken out
23673         from...
23674         (print_conflicts): Call print_allocno_conflicts.
23675
23676 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
23677
23678         PR debug/44104
23679         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
23680         if it is NULL.
23681
23682 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
23683
23684         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
23685         t-mingw-w64 or t-mingw-w32 for multilib configuration.
23686         * config/i386/t-mingw-w32: New.
23687         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
23688
23689 2010-05-13  Martin Jambor  <mjambor@suse.cz>
23690
23691         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
23692         gimple-fold.c).
23693         * gimple-fold.c (get_base_binfo_for_type): New function.
23694         (gimple_get_relevant_ref_binfo): Likewise.
23695         (gimple_fold_obj_type_ref_known_binfo): Likewise.
23696         (gimple_fold_obj_type_ref): Likewise.
23697         (fold_gimple_call): Simplify condition for folding virtual calls
23698         and call gimple_fold_obj_type_ref.
23699         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
23700         (gimple_fold_obj_type_ref_known_binfo): Likewise.
23701
23702 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
23703
23704         * config/rs6000/rs6000-protos.h
23705         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
23706         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
23707         (rs6000_debug_mode_dependent_address)
23708         (rs6000_mode_dependent_address_ptr): Likewise.
23709
23710 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
23711
23712         PR debug/43983
23713         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
23714         by SRA.
23715         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
23716         * tree-sra.c (create_access_replacement): Call unshare_expr before
23717         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
23718         * dwarf2out.c: Include tree-flow.h.
23719         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
23720         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
23721         Handle DW_OP_bit_piece.
23722         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
23723         construct_piece_list, adjust_piece_list): New functions.
23724         (add_var_loc_to_decl): Handle SRA optimized variables.
23725         Adjust for var_loc_note to loc field renaming.
23726         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
23727         in VAR_LOCATION note.
23728         (new_loc_descr_op_bit_piece): New function.
23729         (dw_sra_loc_expr): New function.
23730         (dw_loc_list): Use it.  Don't handle the last range after the
23731         loop, handle it inside of the loop.  Adjust for var_loc_note
23732         to loc field renaming.
23733         (add_location_or_const_value_attribute): Only special case
23734         single entry loc lists if loc is NOTE_P.  Adjust for
23735         var_loc_note to loc field renaming.
23736         (dwarf2out_var_location): Don't set newloc->var_loc_note
23737         and newloc->next here.
23738
23739 2010-05-12  Jan Hubicka  <jh@suse.cz>
23740
23741         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
23742         flag.
23743         * cgraph.h (cgraph_only_called_directly_p,
23744         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
23745         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
23746         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
23747         (assemble
23748         * ipa.c (cgraph_remove_unreachable_nodes): Use
23749         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
23750         flags.
23751         * tree-inline.c (copy_bb): Check address_taken flag.
23752         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
23753         externally_visible flag.
23754
23755 2010-05-12  Jason Merrill  <jason@redhat.com>
23756
23757         PR bootstrap/44048
23758         PR target/44099
23759         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
23760         * sdbout.c (plain_type_1): Likewise.
23761         * dwarf2out.c (is_base_type): Likewise.
23762         (gen_type_die_with_usage): Likewise.  Generate
23763         DW_TAG_unspecified_type for any LANG_TYPE.
23764
23765 2010-05-12  Jan Hubicka  <jh@suse.cz>
23766
23767         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
23768         indrect edges too.
23769         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
23770         (cgraph_clone_edge): Update.
23771         (cgraph_node_remove_callees): Remove indirect calls too.
23772         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
23773         (cgraph_create_indirect_edge): Update prototype.
23774         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
23775         is_proper_for_analysis.
23776         (add_new_function, visited_nodes, function_insertion_hook_holder,
23777         get_local_reference_vars_info, mark_address_taken, mark_address,
23778         mark_load, mark_store, check_asm_memory_clobber, check_call,
23779         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
23780         (ipa_init): Do not initialize visited_nodes;
23781         function_insertion_hook_holder.
23782         (analyze_variable): Rewrite.
23783         (analyze_function): Rewrite.
23784         (copy_local_bitmap): Remove.
23785         (duplicate_node_dat): Do not duplicate local info.
23786         (generate_summary): Simplify to only walk cgraph.
23787         (write_node_summary_p, ipa_reference_write_summary,
23788         ipa_reference_read_summary): Remove.
23789         (propagate): Do not remove function insertion;
23790         generate summary.
23791         (pass_ipa_reference): NULLify summary handling fields.
23792         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
23793         (input_edge): Input ecf_flags.
23794         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
23795         (update_indirect_edges_after_inlining): Ignore edges with unknown
23796         param.
23797
23798 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
23799
23800         * implicit-zee.c: New file.
23801         * tree-pass.h (pass_implicit_zee): Declare.
23802         * passes.c (init_optimization_passes): Add zee pass.
23803         * common.opt (fzee): New flag.
23804         * timevar.def (TV_ZEE): Define.
23805         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
23806         and beyond.
23807         * Makefile.in (implicit-zee.o): Add new build file.
23808
23809 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
23810             Nathan Froyd  <froydnj@codesourcery.com>
23811
23812         * c-common.c (sync_resolve_params): Remove write-only variable.
23813
23814 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
23815
23816         * target.h (struct gcc_target): Add mode_dependent_address_p field.
23817         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
23818         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
23819         * targhooks.c (default_mode_dependent_address_p): New function.
23820         * targhooks.h (default_mode_dependent_address_p): Declare function.
23821         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
23822         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
23823         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
23824         target hook. Change return type to bool.
23825         * recog.h (mode_dependent_address_p): Change return type to bool.
23826
23827 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
23828             Nathan Froyd  <froydnj@codesourcery.com>
23829
23830         * tree-mudflap.c (build_function_type_0, build_function_type_1,
23831         build_function_type_2, build_function_type_3): Remove.
23832         (mudflap_init): Use build_function_type_list.
23833
23834 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
23835             Nathan Froyd  <froydnj@codesourcery.com>
23836
23837         * coverage.c (build_fn_info_value): Call build_constructor instead of
23838         build_constructor_from_list.
23839         (build_ctr_info_value): Likewise.
23840         (build_gcov_info): Likewise.
23841
23842 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
23843
23844         * tree.c (build_constructor): Compute TREE_CONSTANT for the
23845         resultant constructor.
23846         (build_constructor_single): Don't set TREE_CONSTANT.
23847         (build_constructor_from_list): Don't compute TREE_CONSTANT.
23848
23849 2010-05-12  Jan Hubicka  <jh@suse.cz>
23850
23851         * cgraph.h (struct varpool_node): Add aux.
23852         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
23853         * varpool.c (varpool_remove_node): Do not remove initializer.
23854         (varpool_reset_queue): Export.
23855         (varpool_finalize_decl): Volatile vars are forced to be output.
23856         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
23857         replaced decl.
23858         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
23859         process_references, varpool_can_remove_if_no_refs): New functions.
23860         (cgraph_remove_unreachable_nodes): Handle variables too.
23861
23862 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
23863
23864         PR target/44088
23865         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
23866
23867 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
23868
23869         PR middle-end/44085
23870         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
23871         change value of ORT_TASK.
23872         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
23873         (omp_notice_threadprivate_variable): New function.
23874         (omp_notice_variable): Call it for threadprivate variables.
23875         If enclosing ctx is a task, print enclosing task rather than
23876         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
23877         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
23878         if task has untied clause.
23879
23880         PR debug/42278
23881         * dwarf2out.c (base_type_die): Don't add name attribute here.
23882         (modified_type_die): Instead of sizetype use
23883         its underlying original type.  If a DW_TAG_base_type doesn't
23884         have name added, add __unknown__.
23885         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
23886         always call force_type_die instead.
23887
23888 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
23889
23890         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
23891         for __stack_chk_guard.
23892
23893 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
23894
23895         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
23896         don't call start_source_file debug hook here...
23897         (finish_options): ... but here, after outputting predefined and
23898         command line defines and undefs.
23899
23900         PR middle-end/44071
23901         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
23902         no fallthru edge.
23903         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
23904         optimizing away empty bb with no successors, move over its
23905         footer chain to fallthru predecessor.
23906         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
23907         (rtl_split_edge): For asm goto call patch_jump_insn even if
23908         splitting fallthru edge.
23909
23910         PR c++/44059
23911         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
23912         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
23913         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
23914         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
23915         on DW.ref.* decls.
23916
23917         PR c++/44062
23918         * c-parser.c (c_parser_expression): Mark LHS of a comma
23919         expression as read if it is a decl, handled component or
23920         COMPOUND_EXPR with that on the RHS.
23921         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
23922         if it is a decl or handled component.
23923
23924 2010-05-11  Jan Hubicka  <jh@suse.cz>
23925
23926         * lto-symtab.c (lto_symtab_free): New function.
23927         * lto-streamer.h (lto_symtab_free): Declare.
23928
23929 2010-05-11  Jan Hubicka  <jh@suse.cz>
23930
23931         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
23932         that if function is needed it is reachable.
23933         (lto_output_node): See if it the function is reachable or referenced.
23934         (output_cgraph): Update call of lto_output_node.
23935         * lto-streamer.h (reachable_from_other_partition_p): Declare.
23936
23937 2010-05-11  Jan Hubicka  <jh@suse.cz>
23938
23939         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
23940         Mark as used.
23941
23942 2010-05-11  Jan Hubicka  <jh@suse.cz>
23943
23944         PR tree-optimize/44063
23945         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
23946         queue.
23947         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
23948         limits.
23949         (estimate_function_body_sizes): Compute sizes even when disregarding.
23950
23951 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
23952
23953         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
23954
23955 2010-05-11  Jan Hubicka  <jh@suse.cz>
23956
23957         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
23958         into every boundary.
23959
23960 2010-05-11  Jan Hubicka  <jh@suse.cz>
23961
23962         * matrix-reorg.c (matrix_reorg): Rebuild edges.
23963
23964 2010-05-11  Jan Hubicka  <jh@suse.cz>
23965
23966         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
23967         lto_streamer_cache_delete): Put nodes into heap.
23968         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
23969         heap.
23970
23971 2010-05-11  Jan Hubicka  <jh@suse.cz>
23972
23973         * cgraphbuild.c (cgraph_rebuild_references): New.
23974         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
23975         out extern inlines.
23976         * cgraph.h (cgraph_rebuild_references): Declare.
23977         * tree-inline.c (tree_function_versioning): Use it.
23978         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
23979
23980 2010-05-11  Jan Hubicka  <jh@suse.cz>
23981
23982         * cgraph.c: Include ipa-utils.h
23983         (cgraph_create_virtual_clone): Update references.
23984         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
23985
23986 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
23987
23988         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
23989         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
23990         cache size.
23991
23992 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
23993
23994         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
23995
23996 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
23997
23998         * gcc.c (execute): For -### don't quote arguments that
23999         contain just alphanumerics and _/-. characters.
24000         * doc/invoke.texi: Document that change for -###.
24001
24002         PR debug/44023
24003         * df-problems.c (struct dead_debug): Add to_rescan field.
24004         (dead_debug_init): Clear to_rescan field.
24005         (dead_debug_finish): Rescan all debug insns in to_rescan
24006         bitmap and free the bitmap.
24007         (dead_debug_insert_before): Instead of rescanning debug insns
24008         immediately queue their rescanning until dead_debug_finish.
24009         (df_note_bb_compute): After dead_debug_add do continue instead
24010         of break.
24011
24012 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
24013
24014         PR debug/44028
24015         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
24016         clear also INSN_REG_USE_LIST.
24017
24018 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24019
24020         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
24021
24022 2010-05-10  Jan Hubicka  <jh@suse.cz>
24023
24024         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
24025         commited change.
24026
24027 2010-05-10  Jan Hubicka  <jh@suse.cz>
24028
24029         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
24030         Allocate encoders.
24031         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
24032         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
24033         (lto_streamer_cache_create): Init alloc pool.
24034         (lto_streamer_cache_delete): Free alloc pool.
24035         * lto-streamer.h: Include alloc pool.
24036         (lto_streamer_cache_d): Use alloc pool.
24037         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
24038
24039 2010-05-10  Jan Hubicka  <jh@suse.cz>
24040
24041         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
24042         * cgraphbuild.c: Include except.h
24043         (record_type_list, record_eh_tables): New function.
24044         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
24045
24046 2010-05-10  Jan Hubicka  <jh@suse.cz>
24047
24048         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
24049         __frame_dummy_init_array_entry, force_to_data): Attribute as used
24050         rather than unused.
24051
24052 2010-05-10  Michael Matz  <matz@suse.de>
24053
24054         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
24055         (can_reassociate_p): Use FLOAT_TYPE_P.
24056         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
24057         (vect_force_simple_reduction): ... this.
24058         * tree-parloops.c (gather_scalar_reductions): Use
24059         vect_force_simple_reduction.
24060         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
24061         vect_is_simple_reduction, add modify argument, if true rewrite
24062         "a-b" into "a+(-b)".
24063         (vect_is_simple_reduction, vect_force_simple_reduction): New
24064         functions.
24065         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
24066
24067 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
24068             Vladimir Makarov  <vmakarov@redhat.com>
24069
24070         PR rtl-optimization/44012
24071         * ira-build.c (remove_unnecessary_allocnos): Nullify
24072         regno_allocno_map of the removed allocno.
24073
24074 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24075
24076         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
24077         to /dev/null.
24078         * configure: Regenerate.
24079
24080 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24081
24082         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
24083         unused.
24084         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
24085         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
24086         support in Sun ld.
24087         * configure: Regenerate.
24088
24089 2010-05-10  Richard Guenther  <rguenther@suse.de>
24090
24091         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
24092         marked if the entry identifier is marked.
24093
24094 2010-05-10  Richard Guenther  <rguenther@suse.de>
24095
24096         * c-common.c (struct c_common_attributes): Add fnspec attribute.
24097         (handle_fnspec_attribute): New function.
24098         * gimple.h (gimple_call_return_flags): Declare.
24099         (gimple_call_arg_flags): Likewise.
24100         * gimple.c (gimple_call_arg_flags): New function.
24101         (gimple_call_return_flags): Likewise.
24102         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
24103         New argument flags.
24104         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
24105         return value flags.
24106         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
24107         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
24108         main work to ...
24109         (make_heapvar_for): ... this new function.
24110         (handle_rhs_call): Handle fnspec attribute argument specifiers.
24111         (handle_lhs_call): Likewise.
24112         (find_func_aliases): Adjust.
24113
24114 2010-05-10  Richard Guenther  <rguenther@suse.de>
24115
24116         PR tree-optimization/44050
24117         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
24118
24119 2010-05-10  Wei Guozhi  <carrot@google.com>
24120
24121         PR target/42879
24122         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
24123
24124 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
24125
24126         PR c/10676
24127         * c-typeck.c (lookup_field): Take a type directly.  Update
24128         recursive calls.
24129         (build_component_ref): Update call to lookup_field.
24130         (set_init_label): Use lookup_field to find initialized field.
24131         Handle returned list of fields like a sequence of designators.
24132
24133 2010-05-09  Richard Guenther  <rguenther@suse.de>
24134
24135         PR middle-end/44024
24136         * fold-const.c (tree_single_nonzero_warnv_p): Properly
24137         handle &FUNCTION_DECL.
24138
24139 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
24140
24141         PR c/4784
24142         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
24143         structures and unions recursively.
24144         (detect_field_duplicates): Move duplicate detection with a hash to
24145         detect_field_duplicates_hash.  Always use a hash if anonymous
24146         structures or unions are present.
24147         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
24148         give errors.
24149
24150 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
24151
24152         PR target/44046
24153         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
24154         detect Atom, Core 2 and Core i7.
24155
24156 2010-05-09  Richard Guenther  <rguenther@suse.de>
24157
24158         * gcc.c (store_arg): Handle temporary file deletion for
24159         joined arguments.
24160
24161 2010-05-09  Richard Guenther  <rguenther@suse.de>
24162
24163         PR middle-end/44043
24164         * ipa-inline.c (estimate_function_body_sizes): Return after
24165         disregarding inline limits.
24166
24167 2010-05-09  Richard Guenther  <rguenther@suse.de>
24168
24169         * gcc.c (store_arg): Revert last change.
24170
24171 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
24172
24173         PR middle-end/28685
24174         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
24175         (optimize_ops_list): Call it.
24176
24177 2010-05-08  Richard Guenther  <rguenther@suse.de>
24178
24179         PR tree-optimization/44030
24180         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
24181         NECESSARY flag if we propagate from a inserted expression.
24182
24183 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
24184
24185         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
24186         domain types as equal if they are both PLACEHOLDER_EXPRs.
24187
24188 2010-05-08  Richard Guenther  <rguenther@suse.de>
24189
24190         * lto-wrapper.c (run_gcc): Remove linker output from
24191         command line for LTRANS invocation.
24192
24193 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
24194
24195         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
24196         lto-macho as lto_binary_reader.
24197         * target.h (struct gcc_target): New hooks lto_start and lto_end.
24198         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
24199         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
24200         in lto_start and lto_end calls.
24201         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
24202         magic numbers.
24203         (scan_prog_file): Update is_elf_or_coff call.
24204         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
24205
24206         * collect2.c (main): Fix enum comparison.
24207
24208         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
24209         Add prototypes.
24210         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
24211         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
24212         and TARGET_ASM_LTO_END.
24213         * darwin.c: Include obstack.h and lto-streamer.h.
24214         (lto_section_names_offset, lto_section_names_obstack,
24215         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
24216         global variables.
24217         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
24218         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
24219         to a temporary file.
24220         (darwin_asm_lto_end): New function.  Restore asm_out_file.
24221         (darwin_asm_named_section): For LTO sections, replace the name with
24222         the offset of the section name in a string table, and build this
24223         table.
24224         (darwin_file_start): Initialize global vars for LTO support.
24225         (darwin_file_end): If output to asm_out_file was redirected, append it
24226         to the proper asm_out_file here.  Add the section names section.
24227
24228 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
24229
24230         * c-pragma.c (pending_weak_d, pending_weak): New.
24231         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
24232         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
24233         handle_pragma_weak): Update the uses of pending_weaks.
24234
24235 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24236
24237         PR documentation/44016
24238         * doc/standards.texi (Standards): Link to unversioned
24239         cxx0x_status.html page.
24240
24241 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
24242
24243         PR target/43708
24244         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
24245         in addition to TREE_USED, to avoid "set but unused" warnings.
24246
24247 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
24248
24249         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
24250         (is_loop_prefetching_profitable): Do not insert prefetches
24251         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
24252         times the prefetch ahead distance.
24253
24254 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
24255
24256         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
24257         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
24258         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
24259         the unroll_factor.
24260
24261 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
24262
24263         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
24264         a diagnostic info when the insn-to-mem ratio is too small.
24265
24266 2010-05-07  Richard Guenther  <rguenther@suse.de>
24267
24268         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
24269         the linker plugin.
24270         (store_arg): Queue temp_filename for deletion instead of
24271         the whole argument.
24272
24273 2010-05-07  Richard Guenther  <rguenther@suse.de>
24274
24275         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
24276         (run_gcc): Handle LTRANS phase invocation.
24277         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
24278
24279 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
24280
24281         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
24282         this is also meaningful on PARM_DECLs and RESULT_DECLs.
24283
24284 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24285
24286         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
24287
24288 2010-05-07  Richard Guenther  <rguenther@suse.de>
24289
24290         PR tree-optimization/44020
24291         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
24292         code when PRE is not yet initialized.
24293
24294 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24295
24296         * config/mips/dbxmdebug.h: Remove.
24297         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
24298
24299 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
24300
24301         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
24302         with null pointer and also warn about ordered comparison of zero with
24303         pointer if -Wextra.
24304
24305 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
24306
24307         * graphite-blocking.c
24308         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
24309         * graphite-clast-to-gimple.c
24310         (clast_to_gcc_expression): Same.
24311         (precision_for_value): Same.
24312         (precision_for_interval): Same.
24313         (gcc_type_for_interval): Same.
24314         (graphite_create_new_guard): Same.
24315         (compute_bounds_for_level): Same.
24316         (graphite_create_new_loop_guard): Same.
24317         * graphite-interchange.c
24318         (build_linearized_memory_access): Same.
24319         (pdr_stride_in_loop): Same.
24320         (memory_strides_in_loop_1): Same.
24321         (memory_strides_in_loop): Same.
24322         (extend_scattering): Same.
24323         (psct_scattering_dim_for_loop_depth): Same.
24324         (pbb_number_of_iterations): Same.
24325         * graphite-poly.h
24326         (debug_iteration_domains): Same.
24327         * graphite-ppl.c
24328         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
24329         (ppl_set_inhomogeneous_gmp): Same.
24330         (ppl_strip_loop): Same.
24331         (ppl_lexico_compare_linear_expressions): Same.
24332         (ppl_read_polyhedron_matrix): Same.
24333         (ppl_max_for_le_pointset): Same.
24334         * graphite-ppl.h
24335         (ppl_read_polyhedron_matrix): Same.
24336         (tree_int_to_gmp): Same.
24337         (gmp_cst_to_tree): Same.
24338         (ppl_set_inhomogeneous): Same.
24339         (ppl_set_inhomogeneous_tree): Same.
24340         (ppl_set_coef): Same.
24341         (ppl_set_coef_tree): Same.
24342         * graphite-sese-to-poly.c
24343         (build_pbb_scattering_polyhedrons): Same.
24344         (build_scop_scattering): Same.
24345         (scan_tree_for_params_right_scev): Same.
24346         (scan_tree_for_params): Same.
24347         (find_params_in_bb): Same.
24348         (find_scop_parameters): Same.
24349         (add_upper_bounds_from_estimated_nit): Same.
24350         (build_loop_iteration_domains): Same.
24351         (add_condition_to_domain): Same.
24352         (pdr_add_memory_accesses): Same.
24353
24354 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
24355
24356         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
24357         CLooG's value_* macros to their respective mpz_* counterparts.
24358         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
24359         (graphite_create_new_loop_guard): Same.
24360         * graphite-interchange.c (build_linearized_memory_access): Same.
24361         (pdr_stride_in_loop): Same.
24362         (memory_strides_in_loop_1): Same.
24363         (1st_interchange_profitable_p): Same.
24364         * graphite-poly.c (extend_scattering): Same.
24365         (psct_scattering_dim_for_loop_depth): Same.
24366         (pbb_number_of_iterations): Same.
24367         (pbb_number_of_iterations_at_time): Same.
24368         * graphite-poly.h (new_1st_loop): Same.
24369         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
24370         (oppose_constraint): Same.
24371         (insert_constraint_into_matrix): Same.
24372         (ppl_set_inhomogeneous_gmp): Same.
24373         (ppl_set_coef_gmp): Same.
24374         (ppl_strip_loop): Same.
24375         (ppl_lexico_compare_linear_expressions): Same.
24376         (ppl_max_for_le_pointset): Same.
24377         (ppl_min_for_le_pointset): Same.
24378         (ppl_build_realtion): Same.
24379         * graphite-ppl.h (gmp_cst_to_tree): Same.
24380         (ppl_set_inhomogeneous): Same.
24381         (ppl_set_inhomogeneous_tree): Same.
24382         (ppl_set_coef): Same.
24383         (ppl_set_coef_tree): Same.
24384         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
24385         (build_scop_scattering): Same.
24386         (add_value_to_dim): Same.
24387         (scan_tree_for_params_right_scev): Same.
24388         (scan_tree_for_params_int): Same.
24389         (scan_tree_for_params): Same.
24390         (find_params_in_bb): Same.
24391         (find_scop_parameters): Same.
24392         (add_upper_bounds_from_estimated_nit): Same.
24393         (build_loop_iteration_domains): Same.
24394         (create_linear_expr_from_tree): Same.
24395         (add_condition_to_domain): Same.
24396         (pdr_add_memory_accesses): Same.
24397
24398 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
24399             Jason Merrill  <jason@redhat.com>
24400
24401         * c-common.c (c_common_reswords): Add nullptr.
24402         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
24403         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
24404         (gen_type_die_with_usage): Likewise.
24405         * dbxout.c (dbxout_type): Likewise.
24406         * sdbout.c (plain_type_1): Likewise.
24407
24408 2010-05-06  Jason Merrill  <jason@redhat.com>
24409
24410         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
24411         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
24412         ret appropriately.
24413         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
24414
24415         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
24416         stripping WITH_SIZE_EXPR.
24417         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
24418         change.
24419
24420 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24421
24422         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
24423         list of obsolete configurations.
24424         Disabled check for obsolete configurations.
24425         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
24426         Removed support for previous versions.
24427         * config/mips/iris.h: Removed.
24428         * config/mips/iris5.h: Removed.
24429         * config/mips/iris6.h: Merged old iris.h contents.
24430         (TARGET_IRIX): Removed.
24431         (DRIVER_SELF_SPECS): Removed mabi=32.
24432         (IDENT_ASM_OP): Removed undef.
24433         (STARTFILE_SPEC): Removed mabi=32.
24434         (ENDFILE_SPEC): Likewise.
24435         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
24436         (MACHINE_TYPE): Update for IRIX 6.5.
24437         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
24438         TARGET_IRIX by TARGET_IRIX6.
24439         (mips_file_start): Likewise.
24440         (mips_output_external): Remove IRIX 5/6 O32 support.
24441         (mips_output_function_prologue): Likewise.
24442         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
24443         TARGET_IRIX6.
24444         (TARGET_CPU_CPP_BUILTINS): Likewise.
24445         (TARGET_IRIX): Removed.
24446         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
24447         (MULTILIB_DIRNAMES): Removed 32.
24448         (MULTILIB_OSDIRNAMES): Removed ../lib.
24449         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
24450         (Specific, mips-sgi-irix5): Document removal.
24451         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
24452         Remove references to older IRIX 6 releases and the O32 ABI.
24453
24454 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
24455
24456         PR bootstrap/43994
24457         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
24458         instead of DF_REF_REAL_REG.
24459
24460 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
24461
24462         PR target/43888
24463         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
24464         handling to still return true for x64 targets.
24465
24466 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
24467
24468         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
24469
24470 2010-05-06  Jan Hubicka  <jh@suse.cz>
24471
24472         PR tree-optimization/43791
24473         * ipa-inline.c (update_caller_keys): Remove bogus
24474         disregard_inline_limits check.
24475
24476 2010-05-06  Michael Matz  <matz@suse.de>
24477
24478         PR tree-optimization/43984
24479         * tree-ssa-pre.c (inserted_phi_names): Remove.
24480         (inserted_exprs): Change to bitmap.
24481         (create_expression_by_pieces): Set bits, don't append to vector.
24482         (insert_into_preds_of_block): Don't handle inserted_phi_names.
24483         (eliminate): Don't look at inserted_phi_names, remove deleted
24484         insns from inserted_exprs.
24485         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
24486         (init_pre, fini_pre): Allocate and free bitmaps.
24487         (execute_pre): Insert insns on edges before elimination.
24488
24489 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
24490
24491         * tree.c (initializer_zerop): Handle STRING_CST.
24492
24493 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24494
24495         PR 40989
24496         * doc/invoke.texi (Wimplicit): Document as C only.
24497         * opts.c (common_handle_option): Add argument kind.
24498         (handle_option): Rename as read_cmdline_option. Factor out code to...
24499         (handle_option): ... here. New.
24500         (handle_options): Rename as read_cmdline_options.
24501         (decode_options): Update call.
24502         (set_option): Use option index instead of option pointer. Classify
24503         diagnostics correctly.
24504         (enable_warning_as_error): Call handle_option.
24505         * opts.h (set_option): Update declaration.
24506         (handle_option): Declare.
24507         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
24508         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
24509         * c-opts.c (set_Wimplicit): Delete.
24510         (c_family_lang_mask): New static constant.
24511         (c_common_handle_option): Add argument kind. Use handle_option
24512         instead of set_Wimplicit.
24513         (c_common_post_options): warn_implicit and warn_implicit_int
24514         are disabled by default.
24515         * c-common.c (warn_implicit): Do not define here.
24516         * c-common.h (warn_implicit): Do not declare here.
24517         (c_common_handle_option): Update declaration.
24518         * lto-opts.c (lto_reissue_options): Update call to set_option.
24519
24520 2010-05-06  Richard Guenther  <rguenther@suse.de>
24521
24522         PR tree-optimization/43571
24523         * domwalk.c (walk_dominator_tree): Walk the dominator
24524         sons in more optimal order.
24525
24526 2010-05-06  Richard Guenther  <rguenther@suse.de>
24527
24528         PR tree-optimization/43934
24529         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
24530         (stmt_cost): Likewise.
24531         (extract_true_false_args_from_phi): New helper.
24532         (determine_max_movement): For PHI nodes verify we can hoist them
24533         and compute their cost.
24534         (determine_invariantness_stmt): Handle PHI nodes.
24535         (move_computations_stmt): Likewise.  Hoist PHI nodes in
24536         if-converted form using COND_EXPRs.
24537         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
24538         (tree_ssa_lim): Likewise.
24539         * tree-flow.h (tree_ssa_lim): Adjust prototype.
24540         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
24541
24542 2010-05-06  Richard Guenther  <rguenther@suse.de>
24543
24544         PR tree-optimization/43987
24545         * tree-ssa-structalias.c (could_have_pointers): For possibly
24546         address-taken variables force pointers to be recorded.
24547         (create_variable_info_for_1): Likewise.
24548         (push_fields_onto_fieldstack): Pass in wheter all fields
24549         must have pointers.
24550         (find_func_aliases): Query types instead of vars whether
24551         they contain pointers where appropriate.
24552
24553 2010-05-06  Jan Hubicka  <jh@suse.cz>
24554
24555         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
24556         (record_reference, mark_address, mark_load, mark_store): Record
24557         references.
24558         (record_references_in_initializer): Update call of record_references.
24559         (rebuild_cgraph_edges): Remove all references before rebuiding.
24560         * cgraph.c (cgraph_create_node): Clear ref list.
24561         (cgraph_remove_node): Remove references.
24562         (dump_cgraph_node): Dump references.
24563         (cgraph_clone_node): Clone references.
24564         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
24565         (struct cgraph_node, varpool_node): Add ref_lst.
24566         * ipa-ref.c: New file.
24567         * ipa-ref.h: New file.
24568         * ipa-ref-inline.h: New file.
24569         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
24570         (referenced_from_other_partition_p): New function.
24571         (lto_output_varpool_node): Take set arugment; call
24572         referenced_from_other_partition.
24573         (lto_output_ref): New.
24574         (add_references): New.
24575         (output_refs): New.
24576         (output_cgraph): Compute boundary based on references; output refs.
24577         (output_varpool): Accept cgraph_node_set argument.
24578         (input_ref): New.
24579         (input_refs): New.
24580         (input_cgraph): Call input_refs.
24581         * lto-section-in.c (lto_section_name): Add refs.
24582         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
24583         (ipa-ref.o): New file.
24584         * varpool.c (varpool_node): Clear ipa ref list.
24585         (varpool_remove_node): Remove references.
24586         (dump_varpool_node): Dump references.
24587         (varpool_assemble_decl): Only compile finalized ones.
24588         (varpool_extra_name_alias): Initialize ref list.
24589         * lto-streamer.c (lto-get_section_name): Add .refs section.
24590         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
24591         (referenced_from_other_partition_p): Declared.
24592
24593 2010-05-06  Ira Rosen  <irar@il.ibm.com>
24594
24595         PR tree-optimization/43901
24596         * tree-vect-stmts.c (vectorizable_call): Assert that vector
24597         type is not NULL if it's transformation phase, and return
24598         FALSE if it's analysis.
24599         (vectorizable_conversion, vectorizable_operation,
24600         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
24601
24602 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
24603
24604         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
24605         Delete.
24606         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
24607         New define.
24608         * config/mips/mips-protos.h
24609         (mips_small_register_classes_for_mode_p): Delete prototype.
24610
24611 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
24612
24613         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
24614         * config/arm/arm.c (multiple_operation_profitable_p,
24615         compute_offset_order): New static functions.
24616         (load_multiple_sequence, store_multiple_sequence): Use them.
24617         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
24618         memory offsets, not register numbers.
24619         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
24620
24621 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
24622
24623         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
24624         (get_pending_sizes, put_pending_size, put_pending_sizes):
24625         Update the uses of pending_sizes.
24626         * c-decl.c (store_parm_decls): Likewise.
24627         * c-tree.h (struct c_arg_info): Likewise.
24628         * tree.h: Update the prototype for get_pending_sizes and
24629         put_pending_sizes.
24630
24631 2010-05-05  Jason Merrill  <jason@redhat.com>
24632
24633         PR debug/43370
24634         * c-common.c (handle_aligned_attribute): Respect
24635         ATTR_FLAG_TYPE_IN_PLACE.
24636
24637         PR testsuite/43758
24638         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
24639         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
24640         (TARGET_INITIALIZER): Use it.
24641         * c-common.c (attribute_takes_identifier_p): Call it.
24642         * c-common.h: Update prototype.
24643         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
24644         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
24645
24646 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
24647
24648         PR debug/43950
24649         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
24650         DW_ID_down_case for Fortran compilation units.
24651
24652 2010-05-05  Jan Hubicka  <jh@suse.cz>
24653
24654         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
24655         handle aliases.
24656
24657 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
24658
24659         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
24660         a variable-sized RESULT_DECL.
24661
24662 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
24663
24664         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
24665
24666 2010-05-05  Jason Merrill  <jason@redhat.com>
24667
24668         PR c++/43787
24669         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
24670         returns GS_OK.
24671         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
24672
24673 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
24674             Jakub Jelinek  <jakub@redhat.com>
24675
24676         PR debug/43478
24677         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
24678         (dead_debug_init, dead_debug_finish): New functions.
24679         (dead_debug_add, dead_debug_insert_before): Likewise.
24680         (df_note_bb_compute): Initialize a dead_debug object, add dead
24681         debug uses to it, insert debug bind insns before death insns,
24682         reset debug insns that refer to pending uses at the end.
24683         * rtl.h (make_debug_expr_from_rtl): New prototype.
24684         * varasm.c (make_debug_expr_from_rtl): New function.
24685
24686 2010-05-05  Jan Hubicka  <jh@suse.cz>
24687
24688         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
24689         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
24690         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
24691         lto_varpool_encoder_deref, lto_varpool_encoder_size,
24692         lto_varpool_encoder_encode_initializer_p,
24693         lto_set_varpool_encoder_encode_initializer): New functions.
24694         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
24695         call output_varpool.
24696         (input_varpool_node): Do not always set analyzed.
24697         (input_cgraph_1): Return vector of cgraph nodes.
24698         (input_varpool_1): Return vector of varpools.
24699         (input_cgraph): Free the vectors.
24700         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
24701         output only initializers needed.
24702         (lto_output): Only call output_cgraph.
24703         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
24704         * lto-section-out.c (lto_new_out_decl_state): Initialize
24705         state->varpool_node_encoder.
24706         * lto-streamer.h (lto_varpool_encoder_d): New.
24707         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
24708         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
24709         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
24710         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
24711         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
24712         Declare.
24713         (output_varpool, input_varpool): Remove declarations.
24714
24715 2010-05-05  Jan Hubicka  <jh@suse.cz>
24716
24717         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
24718         with body can prevail.
24719
24720 2010-05-05  Jan Hubicka  <jh@suse.cz>
24721
24722         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
24723         size.
24724
24725 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24726
24727         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
24728
24729         * gengtype.h (erro_at_line): Constify pos argument.
24730
24731         * gengtype.c: Include hashtab.h.
24732         (enum gc_used): Document GC_MAYBE_POINTED_TO.
24733         (error_at_line): Constify pos argument.
24734         (do_typedef): Initialize p->opt field.
24735         (get_file_gtfilename): Fix comment typo.
24736         (struct walk_type_data): Constify line field.
24737         (get_output_file_for_structure): New function.
24738         (write_local_func_for_structure): Constify orig_s argument.
24739         Use get_output_file_for_structure.
24740         (write_func_for_structure): Use get_output_file_for_structure.
24741         (INDENT): New define.
24742         (dump_pair, dump_type, dump_type_list, dump_typekind)
24743         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
24744         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
24745         functions.
24746         (seen_types): New variable.
24747         (main): New variable do_dump.  Process "-d" command line option.
24748         Call dump_everything if dump requested.
24749
24750 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
24751
24752         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
24753         in a temporary instead of invoking the macro multiple times.
24754         (track_expr_p): Likewise.
24755
24756 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
24757
24758         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
24759         per new semantics.
24760         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
24761         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
24762         conditions for printing notes.
24763         * common.opt (-Wcoverage-mismatch): Allow negative, default to
24764         true, update documentation.
24765         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
24766
24767 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
24768
24769         PR c/43981
24770         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
24771         on dimen.
24772
24773 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
24774
24775         PR target/43799
24776         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
24777         (*sse_prologue_save_insn1): Likewise.
24778         (SSE prologue save splitter): Likewise.
24779
24780 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
24781
24782         * tree.c (free_lang_data_in_one_sizepos): New inline function.
24783         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
24784         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
24785         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
24786         all decls.  Call it on DECL_FIELD_OFFSET of fields.
24787         (find_decls_types_r): Follow DECL_VALUE_EXPR.
24788         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
24789
24790 2010-05-04  Martin Jambor  <mjambor@suse.cz>
24791
24792         * tree-sra.c (build_access_from_expr_1): The first parameter type
24793         changed to simple tree.
24794         (build_access_from_expr): Likewise, gsi parameter was eliminated.
24795         (scan_assign_result): Renamed to assignment_mod_result, enum elements
24796         renamed as well.
24797         (build_accesses_from_assign): Removed all parameters except for a
24798         simple gimple statement.  Now returns a simple bool.
24799         (scan_function): All non-analysis parts moved to separate functions
24800         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
24801         parameters and updated both callers.
24802         (sra_modify_expr): Removed parameter data.
24803         (sra_modify_function_body): New function.
24804         (perform_intra_sra): Call sra_modify_function_body to modify the
24805         function body.
24806         (replace_removed_params_ssa_names): Parameter data changed into
24807         adjustments vector.
24808         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
24809         changed the parameter dont_convert to convert with the opposite
24810         meaning.
24811         (sra_ipa_modify_assign): Parameter data changed into adjustments
24812         vector, return value changed to bool.
24813         (ipa_sra_modify_function_body): New function.
24814         (sra_ipa_reset_debug_stmts): Updated a comment.
24815         (modify_function): Use ipa_sra_modify_function_body to modify function
24816         body.
24817
24818 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
24819
24820         PR middle-end/43671
24821         * alias.c (true_dependence): Handle the same VALUE in x and mem.
24822         (canon_true_dependence): Likewise.
24823         (write_dependence_p): Likewise.
24824
24825 2010-05-04  Jan Hubicka  <jh@suse.cz>
24826
24827         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
24828         * cgraphbuild.c: Include ipa-utils.h
24829         (record_reference_ctx): New struct.
24830         (record_reference): Simplify to work on initializers; not statements.
24831         (mark_address, mark_load, mark_store): New.
24832         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
24833         walk PHI nodes too.
24834         (record_references_in_initializer): Update use of record_reference.
24835         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
24836         walk PHI nodes too.
24837
24838 2010-05-04  Jan Hubicka  <jh@suse.cz>
24839
24840         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
24841         node will be removed anyway.
24842         (lto_varpool_replace_node): Allow also unanalyzed nodes;
24843         relink aliases of node into prevailing node.
24844         * varpool.c (varpool_remove_node): Remove aliases properly;
24845         when removing node, remove all its aliases too; remove DECL_INITIAL
24846         of removed node; ggc_free the varpool node.
24847
24848 2010-05-04  Richard Guenther  <rguenther@suse.de>
24849
24850         PR tree-optimization/43879
24851         * tree-ssa-structalias.c (alias_get_name): Use
24852         DECL_ASSEMBLER_NAME if available.
24853         (create_function_info_for): Return the varinfo node.
24854         (ipa_pta_execute): Associate same-body aliases and extra names
24855         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
24856
24857 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
24858
24859         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
24860
24861 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
24862
24863         PR bootstrap/43964
24864         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
24865         only if HONOR_REG_ALLOC_ORDER is not defined.
24866
24867 2010-05-04  Richard Guenther  <rguenther@suse.de>
24868
24869         PR tree-optimization/43949
24870         * tree-vrp.c (extract_range_from_binary_expr): Only handle
24871         TRUNC_MOD_EXPR.
24872
24873 2010-04-26  Jason Merrill  <jason@redhat.com>
24874
24875         * c.opt (-fstrict-enums): New.
24876         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
24877
24878 2010-05-03  David Ung  <davidu@mips.com>
24879             James E. Wilson  <wilson@codesourcery.com>
24880
24881         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
24882         emit the trap instruction before the divide for TUNE_74K.
24883
24884 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
24885
24886         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
24887         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
24888         based on the above, for new target hook.
24889
24890         * hooks.c (hook_bool_mode_true): New generic hook.
24891         * hooks.h (hook_bool_mode_true): Add prototype.
24892
24893         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
24894         target hook.
24895         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
24896         target hook, set to hook_bool_mode_false.
24897         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
24898         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
24899         with targetm.small_register_classes_for_mode_p.
24900         (find_reusable_reload): Likewise.
24901         (combine_reloads): Likewise.
24902         * reload1.c (reload_as_needed): Likewise.
24903         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
24904         * ifcvt.c (noce_process_if_block, check_cond_move_block,
24905         dead_or_predicable): Likewise.
24906         * regmove.c (optimize_reg_copy_1): Likewise.
24907         * calls.c (prepare_call_address): Likewise.
24908         (precompute_register_parameters): Likewise.
24909
24910         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
24911         hook definition.
24912         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
24913         implementation of the hook that considers all register classes
24914         small except for SH64.
24915         (sh_override_options): Use the new hook.
24916         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
24917         Add prototype.
24918
24919         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
24920         hook definition.
24921         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
24922         implementation of the hook that considers all register classes
24923         small for THUMB1.
24924         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
24925         Add prototype.
24926
24927         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
24928         hook definition.
24929         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
24930         implementation of the hook that considers all register classes
24931         small for MIPS16.
24932         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
24933         Add prototype.
24934
24935         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
24936         hook definition.
24937         * config/m32c/m32c.h: Likewise.
24938         * config/pdp11/pdp11.h: Likewise.
24939         * config/avr/avr.h: Likewise.
24940         * config/xtensa/xtensa.h: Likewise.
24941         * config/m68hc11/m68hc11.h: Likewise.
24942         * config/mn10300/mn10300.h: Likewise.
24943         * config/mcore/mcore.h: Likewise.
24944         * config/h8300/h8300.h: Likewise.
24945         * config/bfin/bfin.h: Likewise.
24946
24947         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
24948         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
24949
24950 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
24951
24952         * double-int.h (tree_to_double_int): Remove macro.
24953         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
24954         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
24955         (tree_to_double_int): New function.
24956         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
24957         Move ...
24958         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
24959
24960 2010-05-03  Richard Guenther  <rguenther@suse.de>
24961
24962         PR tree-optimization/43971
24963         * tree-ssa-structalias.c (get_constraint_for_1): Fix
24964         constraints in the !flag_delete_null_pointer_checks case.
24965
24966 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
24967
24968         PR debug/43972
24969         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
24970         result mode matches original rtl mode.
24971
24972 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
24973
24974         PR target/43888
24975         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
24976
24977 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
24978
24979         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
24980         when processing flag options.
24981
24982 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
24983
24984         * gcov-iov.c (main): Change format string placeholder
24985         from %#08x to 0x%08x.
24986         * genchecksum.c (dosum): Change format string placeholder
24987         from %#02x to 0x%02x.
24988
24989 2010-05-02  Richard Guenther  <rguenther@suse.de>
24990
24991         PR tree-optimization/43879
24992         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
24993
24994 2010-05-02  Bruno Haible  <bruno@clisp.org>
24995
24996         * doc/extend.texi (Function Attributes): Fix a typo.
24997
24998 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
24999
25000         Revert:
25001         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
25002         placeholder from 0x%x to %#x.
25003         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
25004         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
25005         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
25006         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
25007         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
25008         * config/i386/i386.c (ix86_target_string): Ditto.
25009         * config/i386/i386.c (output_pic_addr_const): Ditto.
25010         (print_operand): Ditto.
25011
25012 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
25013
25014         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
25015         placeholder from 0x%x to %#x.
25016         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
25017         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
25018         (ASM_OUTPUT_DEBUG_DATA): Ditto.
25019         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
25020         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
25021         * optc-gen.awk: Ditto.
25022         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
25023         (HOST_WIDE_INT_PRINT_HEX): Ditto.
25024         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
25025         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
25026
25027 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
25028
25029         * target.h (struct calls): Add function_value_regno_p field.
25030         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
25031         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
25032         * targhooks.c (default_function_value_regno_p): New function.
25033         * targhooks.h (default_function_value_regno_p): Declare function.
25034         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
25035         * builtins.c. (apply_result_size): (Ditto.).
25036         * combine.c. (likely_spilled_retval_p): (Ditto.).
25037         * mode-switching.c. Include 'target.h'.
25038         (create_pre_exit): Use function_value_regno_p hook.
25039         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
25040         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
25041         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
25042
25043         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
25044         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
25045         (ix86_function_value_regno_p): Declare as static, change argument
25046         type to const unsigned int.
25047         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
25048
25049 2010-05-01  Richard Guenther  <rguenther@suse.de>
25050
25051         PR tree-optimization/43949
25052         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
25053         types.
25054         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
25055
25056 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
25057
25058         * rtl.h (CONST_DOUBLE_P): Define.
25059         (rtx_to_double_int): Declare.
25060         * emit-rtl.c (rtx_to_double_int): New function.
25061         * dwarf2out.c (insert_double): New function.
25062         (loc_descriptor, add_const_value_attribute): Clean up, use
25063         rtx_to_double_int and insert_double functions.
25064
25065 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
25066
25067         * doc/extend.texi (Inline): Add missing return keyword to examples.
25068         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
25069         "command-line".
25070
25071 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
25072
25073         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
25074         the variable part of the offset as well.  Use highest_pow2_factor for
25075         all alignment checks.
25076
25077 2010-04-30  Richard Guenther  <rguenther@suse.de>
25078
25079         PR tree-optimization/43879
25080         * tree-ssa-structalias.c (type_could_have_pointers): Functions
25081         can have pointers.
25082
25083 2010-04-30  Jan Hubicka  <jh@suse.cz>
25084
25085         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
25086         varpool.
25087         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
25088
25089 2010-04-30  Jan Hubicka  <jh@suse.cz>
25090
25091         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
25092         New.
25093         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
25094         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
25095         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
25096         cgraph_node_set_needs_ltrans_p): Remove.
25097
25098 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
25099
25100         * sdbout.c: Include vec.h, do not include varray.h.
25101         (deferred_global_decls, sdbout_global_decl,
25102         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
25103         * toplev.c: Do not include varray.h.
25104         (dump_memory_report): Do not dump VARRAY statistics.
25105         * gengtype.c (open_base_file): Ignore varray.h.
25106         * Makefile.in: Update for abovementioned changes.
25107         Remove all traces of varray.c and varray.h.
25108         * varray.c: Remove file.
25109         * varray.h: Remove file.
25110
25111 2010-04-30  Jan Hubicka  <jh@suse.cz>
25112
25113         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
25114         references.
25115
25116 2010-04-30  Jan Hubicka  <jh@suse.cz>
25117
25118         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
25119         needed.
25120
25121 2010-04-30  Richard Guenther  <rguenther@suse.de>
25122
25123         * tree-ssa-structalias.c (get_constraint_for_1): Generate
25124         constraints for CONSTRUCTOR.
25125
25126 2010-04-30  Richard Guenther  <rguenther@suse.de>
25127
25128         PR lto/43946
25129         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
25130         first after all lowering passes.
25131
25132 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
25133
25134         * toplev.c: Include varray.h for statistics dumping.
25135         * tree.h: Do not declare varray_head_tag.
25136         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
25137         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
25138         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
25139         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
25140         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
25141         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
25142         c-common.c, c-common.h, reg-stack.c, basic-block.h,
25143         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
25144         include varray.h.
25145         * Makefile.in: Update for abovementioned changes.
25146
25147 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
25148
25149         PR debug/43942
25150         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
25151
25152 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
25153
25154         * config/picochip/picochip.c (picochip_legitimize_address): Define.
25155         Use this function to do machine-specific conversion.
25156         (picochip_legitimize_reload_address): Likewise.
25157         (picochip_legitimate_address_p): Check valid base register only if
25158         strict.
25159         (picochip_check_conditional_copy): Check for modw only if opnd is
25160         register.
25161         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
25162         to call the function in c.
25163         * config/picochip/picochip-protos.h
25164         (picochip_legitimize_reload_address): Define.
25165         * config/picochip/picochip.md (supported_compare1): Define.
25166
25167 2010-04-30  Jan Hubicka  <jh@suse.cz>
25168
25169         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
25170         (cgraph_global_info): Remove inlined.
25171         (LTO_cgraph_tag_names): Remove.
25172         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
25173         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
25174         simplify cgraph tags and document.
25175         (lto_output_node): Use only LTO_cgraph_unavail_node and
25176         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
25177         for_functions_valid, global info, process and output flags.
25178         (input_overwrite_node): Initialize estimated stack size and
25179         estimated growth.  Do not read flags we no longer store.
25180         (input_node): Likewise do not read info no longer stored.
25181         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
25182         flag.
25183
25184 2010-04-30  Richard Guenther  <rguenther@suse.de>
25185
25186         PR tree-optimization/43879
25187         * tree-ssa-structalias.c (get_constraint_for_1): Properly
25188         handle non-zero initializers.
25189
25190 2010-04-30  Richard Guenther  <rguenther@suse.de>
25191
25192         * builtins.c (fold_builtin_1): Delete free (0).
25193
25194 2010-04-29  Jan Hubicka  <jh@suse.cz>
25195
25196         * gengtype.c (open_base_files): Add lto-streamer.h
25197         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
25198         (pass_ipa_cp): GGC collect.
25199         * toplev. (compile_file): Do not output symbols.
25200         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
25201         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
25202         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
25203         * lto-section-in.c: Include ggc.h
25204         (lto_new_in_decl_state): Alloc in GGC.
25205         (lto_delete_in_decl_state): Likewise.
25206         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
25207         Collect.
25208
25209 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
25210
25211         PR target/42895
25212         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
25213         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
25214         (HONOR_REG_ALLOC_ORDER): Describe new macro.
25215         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
25216         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
25217         account only if HONOR_REG_ALLOC_ORDER is not defined.
25218         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
25219         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
25220
25221 2010-04-29  Jon Grant  <04@jguk.org>
25222
25223         * collect2.c (vflag): Change type from int to bool.
25224         (debug): Likewise.
25225         (helpflag): New global bool.
25226         (main): Set vflag and debug with boolean, not integer truth values.
25227         Accept new "--help" option and output usage text if found.
25228         * collect2.h (vflag): Update prototype.
25229         (debug): Likewise.
25230
25231 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
25232
25233         PR bootstrap/43936
25234         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
25235
25236 2010-04-29  Richard Guenther  <rguenther@suse.de>
25237
25238         PR bootstrap/43935
25239         * plugin.h (invoke_plugin_callbacks): Annotate arguments
25240         with ATTRIBUTE_UNUSED.
25241
25242 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
25243
25244         PR target/43921
25245         * config/i386/i386.c (get_some_local_dynamic_name): Replace
25246         INSN_P with NONDEBUG_INSN_P.
25247         (distance_non_agu_define): Likewise.
25248         (distance_agu_use): Likewise.
25249
25250 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
25251
25252         From Dominique d'Humieres  <dominiq@lps.ens.fr>
25253         PR bootstrap/43858
25254         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
25255         test_set.
25256
25257 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
25258
25259         * plugin.h (invoke_plugin_callbacks): New inline function.
25260         * plugin.c (flag_plugin_added): New global flag.
25261         (add_new_plugin): Initialize above flag.
25262         (invoke_plugin_callbacks): Rename to ...
25263         (invoke_plugin_callbacks_full): ... this.
25264
25265 2010-04-28  Jan Hubicka  <jh@suse.cz>
25266
25267         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
25268         (lto_varpool_replace_node): New.
25269         (lto_symtab_resolve_symbols): Resolve varpool nodes.
25270         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
25271         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
25272         * cgraph.h (varpool_node_ptr): New type.
25273         (varpool_node_ptr): New vector.
25274         (varpool_node_set_def): New structure.
25275         (varpool_node_set): New type.
25276         (varpool_node_set): New vector.
25277         (varpool_node_set_element_def): New structure.
25278         (varpool_node_set_element, const_varpool_node_set_element): New types.
25279         (varpool_node_set_iterator): New type.
25280         (varpool_node): Add prev pointers, add used_from_other_partition,
25281         in_other_partition.
25282         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
25283         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
25284         varpool_get_node, varpool_remove_node): Declare.
25285         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
25286         varpool_node_set_size): New inlines.
25287         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
25288         * tree-pass.h (varpool_node_set_def): Forward declare.
25289         (ipa_opt_pass_d): Summary writting takes vnode sets too.
25290         (ipa_write_optimization_summaries): Update prototype.
25291         * ipa-cp.c (ipcp_write_summary): Update.
25292         * ipa-reference.c (ipa_reference_write_summary): Update.
25293         * lto-cgraph.c (lto_output_varpool_node): New static function.
25294         (output_varpool): New function.
25295         (input_varpool_node): New static function.
25296         (input_varpool_1): New function.
25297         (input_cgraph): Input varpool.
25298         * ipa-pure-const.c (pure_const_write_summary): Update.
25299         * lto-streamer-out.c (lto_output): Update, output varpool too.
25300         (write_global_stream): Kill WPA hack.
25301         (produce_asm_for_decls): Update.
25302         (output_alias_pair_p): Handle variables.
25303         (output_unreferenced_globals): Output only needed partition of varpool.
25304         * ipa-inline.c (inline_write_summary): Update.
25305         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
25306         cgraph.
25307         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
25308         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
25309         varpool_node_set_new, varpool_node_set_add,
25310         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
25311         debug_varpool_node_set): New functions.
25312         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
25313         (execute_one_pass): Process new decls too.
25314         (ipa_write_summaries_2): Pass around vsets.
25315         (ipa_write_summaries_1): Likewise.
25316         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
25317         to add.
25318         (ipa_write_optimization_summaries_1): Pass around vsets.
25319         (ipa_write_optimization_summaries): Likewise.
25320         * varpool.c (varpool_get_node): New.
25321         (varpool_node): Update doubly linked lists.
25322         (varpool_remove_node): New.
25323         (dump_varpool_node): More dumping.
25324         (varpool_enqueue_needed_node): Update doubly linked lists.
25325         (decide_is_variable_needed): Kill ltrans hack.
25326         (varpool_finalize_decl): Kill lto hack.
25327         (varpool_assemble_decl): Skip decls in other partitions.
25328         (varpool_assemble_pending_decls): Update doubly linkes lists.
25329         (varpool_empty_needed_queue): Likewise.
25330         (varpool_extra_name_alias): Likewise.
25331         * lto-streamer.c (lto_get_section_name): Add vars section.
25332         * lto-streamer.h (lto_section_type): Update.
25333         (output_varpool, input_varpool): Declare.
25334
25335 2010-04-28  Mike Stump  <mikestump@comcast.net>
25336
25337         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
25338
25339 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
25340
25341         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
25342         record or union type with RECORD_OR_UNION_TYPE_P predicate.
25343         (lto_input_ts_type_tree_pointers): Likewise.
25344         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
25345         (lto_output_ts_type_tree_pointers): Likewise.
25346
25347 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
25348
25349         Uniquization of constants at the Tree level
25350         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
25351         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
25352         bit to the end.
25353         (tree_output_constant_def): Declare.
25354         * gimplify.c (gimplify_init_constructor): When using block copy, first
25355         uniquize the constant constructor on the RHS.
25356         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
25357         DECL_IN_CONSTANT_POOL flag.
25358         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
25359         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
25360         constant pool.
25361         (assemble_variable): Deal with symbols belonging to the tree constant
25362         pool.
25363         (get_constant_section): Add ALIGN parameter and simplify.
25364         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
25365         (assemble_constant_contents): Use the expression of the VAR_DECL.
25366         (output_constant_def_contents): Use the alignment of the VAR_DECL.
25367         (tree_output_constant_def): New global function.
25368         (mark_constant): Use the expression of the VAR_DECL.
25369         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
25370         its expression.
25371         (output_object_block): Likewise and assemble the expression.
25372
25373 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
25374
25375         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
25376         hash_tree, eq_tree): New tree hash table.
25377         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
25378         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
25379         lto_orig_address_remove): Reimplement.
25380
25381 2010-04-28  Xinliang David Li  <davidxl@google.com>
25382
25383         PR c/42643
25384         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
25385         (compute_uninit_opnds_pos): New function.
25386         (is_non_loop_exit_postdominating): New function.
25387         (compute_control_dep_chain): New function.
25388         (find_pdom): New function.
25389         (convert_control_dep_chain_into_preds): New function.
25390         (find_predicates): New function.
25391         (find_control_equiv_block): New function.
25392         (collect_phi_def_edges): New function.
25393         (find_def_preds): New function.
25394         (find_dom): New function.
25395         (dump_predicates): New function.
25396         (get_cmp_code): New function.
25397         (is_value_included_in): New function.
25398         (find_matching_predicate_in_rest_chains): New function.
25399         (use_pred_not_overlap_with_undef_path_pred): New function.
25400         (is_use_properly_guarded): New function.
25401         (normalize_cond_1): New function.
25402         (is_and_or_or): New function.
25403         (normalize_cond): New function.
25404         (is_gcond_subset_of): New function.
25405         (is_subset_of_any): New function.
25406         (is_or_set_subset_of): New function.
25407         (is_and_set_subset_of): New function.
25408         (is_norm_cond_subset_of): New function.
25409         (is_pred_expr_subset_of): New function.
25410         (is_pred_chain_subset_of): New function.
25411         (is_included_in): New function.
25412         (is_superset_of): New function.
25413         (find_uninit_use): New function.
25414         (warn_uninitialized_phi): New function.
25415         (compute_possibly_undefined_names): New function.
25416         (ssa_undefined_value_p): New function.
25417         (execute_late_warn_uninitialized): New function.
25418         * tree-ssa.c (ssa_undefined_value_p): Removed.
25419         (warn_uninit): Changed to extern.
25420         (warn_uninitialized_phi): Removed.
25421         (warn_uninitialized_vars): Changed to extern.
25422         (execute_late_warn_uninitialized): Removed
25423         * tree-flow.h: Add new prototypes.
25424         * timevar.def: Add new time variable.
25425         * Makefile.in: Add new build file.
25426
25427 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
25428
25429         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
25430         type if available.
25431
25432 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25433
25434         PR target/22224
25435         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
25436
25437 2010-04-28  Martin Jambor  <mjambor@suse.cz>
25438
25439         * cgraph.h (struct cgraph_node): New field indirect_calls.
25440         (struct cgraph_indirect_call_info): New type.
25441         (struct cgraph_edge): Removed field indirect_call. New fields
25442         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
25443         (cgraph_create_indirect_edge): Declare.
25444         (cgraph_make_edge_direct): Likewise.
25445         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
25446         * ipa-prop.h (struct ipa_param_call_note): Removed.
25447         (struct ipa_node_params): Removed field param_calls.
25448         (ipa_create_all_structures_for_iinln): Declare.
25449         * cgraph.c: Described indirect edges and uids in initial comment.
25450         (cgraph_add_edge_to_call_site_hash): New function.
25451         (cgraph_edge): Search also among the indirect edges, use
25452         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
25453         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
25454         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
25455         site hash.
25456         (initialize_inline_failed): Assign a reason to indirect edges.
25457         (cgraph_create_edge_1): New function.
25458         (cgraph_create_edge): Moved some functionality to
25459         cgraph_create_edge_1.
25460         (cgraph_create_indirect_edge): New function.
25461         (cgraph_edge_remove_callee): Add an assert checking for
25462         non-indirectness.
25463         (cgraph_edge_remove_caller): Special-case indirect edges.
25464         (cgraph_remove_edge): Likewise.
25465         (cgraph_set_edge_callee): New function.
25466         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
25467         (cgraph_make_edge_direct): New function.
25468         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
25469         the declaration of the call statement matches.
25470         (cgraph_node_remove_callees): Special-case indirect edges.
25471         (cgraph_clone_edge): Likewise.
25472         (cgraph_clone_node): Clone also the indirect edges.
25473         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
25474         indirect_call, dump count of indirect_calls edges.
25475         * ipa-prop.c (iinlining_processed_edges): New variable.
25476         (ipa_note_param_call): Create indirect edges instead of
25477         creating notes.  New parameter node.
25478         (ipa_analyze_call_uses): New parameter node, pass it on to
25479         ipa_note_param_call.
25480         (ipa_analyze_stmt_uses): Likewise.
25481         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
25482         (print_edge_addition_message): Work on edges rather than on notes.
25483         (update_call_notes_after_inlining): Likewise, renamed to
25484         update_indirect_edges_after_inlining.
25485         (ipa_create_all_structures_for_iinln): New function.
25486         (ipa_free_node_params_substructures): Do not free notes.
25487         (ipa_edge_duplication_hook): Propagate bits within
25488         iinlining_processed_edges bitmap.
25489         (ipa_node_duplication_hook): Do not duplicate notes.
25490         (free_all_ipa_structures_after_ipa_cp): Renamed to
25491         ipa_free_all_structures_after_ipa_cp.
25492         (free_all_ipa_structures_after_iinln): Renamed to
25493         ipa_free_all_structures_after_iinln.
25494         (ipa_write_param_call_note): Removed.
25495         (ipa_read_param_call_note): Removed.
25496         (ipa_write_indirect_edge_info): New function.
25497         (ipa_read_indirect_edge_info): Likewise.
25498         (ipa_write_node_info): Do not stream notes, do stream information
25499         in indirect edges.
25500         (ipa_read_node_info): Likewise.
25501         (lto_ipa_fixup_call_notes): Removed.
25502         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
25503         * ipa-inline.c (pass_ipa_inline): Likewise.
25504         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
25505         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
25506         * tree-inline.c (copy_bb): Removed an unnecessary double check for
25507         is_gimple_call.
25508         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
25509         edges.
25510         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
25511         (output_cgraph): Stream also indirect edges.
25512         (lto_output_edge): Added capability to stream indirect edges.
25513         (input_edge): Likewise.
25514         (input_cgraph_1): Likewise.
25515         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
25516         of indirect edges.
25517
25518 2010-04-28  Richard Guenther  <rguenther@suse.de>
25519
25520         PR tree-optimization/43879
25521         PR tree-optimization/43909
25522         * tree-ssa-structalias.c (struct variable_info): Add
25523         only_restrict_pointers flag.
25524         (new_var_info): Initialize it.  Increment stats.total_vars here.
25525         (create_function_info_for): Do not increment stats.total_vars here.
25526         (get_function_part_constraint): Fix build with C++.
25527         (insert_into_field_list): Remove.
25528         (push_fields_onto_fieldstack): Properly merge fields.
25529         (create_variable_info_for): Split and simplify.
25530         (create_variable_info_for_1): New piece.
25531         (intra_create_variable_infos): Properly make restrict constraints
25532         from parameters.
25533
25534 2010-04-28  Richard Guenther  <rguenther@suse.de>
25535
25536         PR c++/43880
25537         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
25538
25539 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25540             Jan Hubicka  <hubicka@ucw.cz>
25541
25542         * doc/invoke.texi (-Wsuggest-attribute=const,
25543         -Wsuggest-attribute=pure): Document.
25544         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
25545         (function_always_visible_to_compiler_p,
25546         suggest_attribute, warn_function_pure, warn_function_const):
25547         New functions.
25548         (check_call): Improve debug info.
25549         (analyze_function): Do not check availability.
25550         (add_new_function): Check availability.
25551         (propagate): Output warnings.
25552         (skip_function_for_local_pure_const): New function.
25553         (local_pure_const): Use it; output warnings.
25554         * common.opt (Wsuggest-attribute=const,
25555         Wsuggest-attribute=pure): New.
25556
25557 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
25558
25559         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
25560         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
25561         or DW_CFA_def_cfa_offset{,_sf}.
25562
25563 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
25564
25565         * tree.h: Fix truncated long macros.
25566
25567 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
25568
25569         * collect2.c (TARGET_64BIT): Redefine to target's default.
25570         * tlink.c: Likewise.
25571         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
25572         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
25573         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
25574         for underscoring __USER_LABEL_PREFIX__.
25575         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
25576         (SUB_LINK_ENTRY32): New.
25577         (SUB_LINK_ENTRY64): New.
25578         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
25579         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
25580         (SUB_LINK_ENTRY64): New.
25581         (SUB_LINK_ENTRY): New.
25582         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
25583         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
25584         x64 target is choosen.
25585         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
25586         * configure: Regenerated.
25587         * configure.ac (leading-mingw64-underscores): Option added.
25588
25589 2010-04-27  Jan Hubicka  <jh@suse.cz>
25590
25591         * doc/invoke.texi (-fipa-profile): Document.
25592         * opts.c (decode_options): Enable ipa-profile at -O1.
25593         * timevar.def (TV_IPA_PROFILE): Define.
25594         * common.opt (fipa-profile): Add.
25595         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
25596         flag for clones.
25597         (cgraph_propagate_frequency): Handle only local ones.
25598         * tree-pass.h (pass_ipa_profile): Declare.
25599         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
25600         (pass_ipa_profile): Use TV_IPA_PROFILE.
25601         * ipa.c (ipa_profile): New function.
25602         (gate_ipa_profile): Likewise.
25603         (pass_ipa_profile): New global variable.
25604         * passes.c (pass_ipa_profile): New.
25605
25606 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
25607
25608         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
25609
25610 2010-04-27  Martin Jambor  <mjambor@suse.cz>
25611
25612         PR middle-end/43812
25613         * ipa.c (dissolve_same_comdat_group_list): New function.
25614         (function_and_variable_visibility): Call
25615         dissolve_same_comdat_group_list when comdat group contains external or
25616         newly local nodes.
25617         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
25618         lists are circular and that they contain only DECL_ONE_ONLY nodes.
25619
25620 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
25621
25622         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
25623         (const_hash_1) <VECTOR_CST>: New case.
25624         (compare_constant) <VECTOR_CST>: Likewise.
25625         <ADDR_EXPR>: Deal with LABEL_REFs.
25626         (copy_constant) <VECTOR_CST>: New case.
25627
25628 2010-04-27  Jan Hubicka  <jh@suse.cz>
25629
25630         * cgraph.c (cgraph_propagate_frequency): New function.
25631         * cgraph.h (cgraph_propagate_frequency): Declare.
25632         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
25633         cgraph_propagate_frequency.
25634
25635 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
25636
25637         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
25638
25639 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
25640
25641         PR target/40657
25642         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
25643         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
25644         here to determine which regs to push and how much stack to reserve.
25645
25646 2010-04-27  Jie Zhang  <jie@codesourcery.com>
25647
25648         * doc/gimple.texi (gimple_statement_with_ops): Remove
25649         addresses_taken field.
25650         (gimple_statement_with_memory_ops): Likewise.
25651
25652 2010-04-27  Jan Hubicka  <jh@suse.cz>
25653
25654         * tree-inline.c (eni_inlining_weights): Remove.
25655         (estimate_num_insns): Special case more builtins.
25656
25657 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
25658
25659         PR c/32207
25660         * c-typeck.c (build_binary_op): Move forward check for comparison
25661         pointer with null pointer constant and adjust the diagnostic message.
25662
25663 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
25664
25665         PR lto/42776
25666         * configure.ac (gcc_cv_as_section_has_align): Set if installed
25667         binutils supports extended .section directive needed by LTO, or
25668         warn if older binutils found.
25669         (LTO_BINARY_READER): New AC_SUBST'd variable.
25670         (LTO_USE_LIBELF): Likewise.
25671         * config.gcc (lto_binary_reader): New target-specific configure
25672         variable.
25673         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
25674         (LTO_USE_LIBELF): Likewise.
25675         * configure: Regenerate.
25676
25677         * collect2.c (is_elf): Rename from this ...
25678         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
25679          object files in addition to ELF-formatted ones.
25680         (scan_prog_file): Caller updated.  Also allow for LTO info marker
25681         symbol to be prefixed or not by an extra underscore.
25682
25683         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
25684         * config/i386/winnt.c: Also #include lto-streamer.h
25685         (i386_pe_asm_named_section): Specify 1-byte section alignment for
25686         LTO named sections.
25687         (i386_pe_asm_output_aligned_decl_common): Add comment.
25688         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
25689
25690 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
25691
25692         PR target/43889
25693         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
25694         Add missing earlyclobber for second alternative.
25695
25696 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
25697
25698         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
25699         bits for artificial defs at the top of the block.
25700         * fwprop.c (single_def_use_enter_block): Don't call it.
25701
25702 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
25703
25704         PR 43715
25705         * configure.ac: Use "$gcc_cv_nm -g" on darwin
25706         instead of "$gcc_cv_objdump -T".
25707         Use "-undefined dynamic_lookup" on darwin.
25708         * configure: Regenerate.
25709
25710 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
25711
25712         PR c/43893
25713         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
25714
25715 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
25716
25717         * c-parser.c (struct c_token): Move location field up.
25718         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
25719         (struct c_declspecs): Convert typespec_word, storage_class, and
25720         default_int_p into bitfields.
25721         (struct c_declarator): Move loc field up.
25722
25723 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
25724
25725         * cfgloop.h (struct loop): Move can_be_parallel field up.
25726         * ipa-prop.h (struct ip_node_params): Move bitfields up.
25727         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
25728         down.
25729         (struct iv_cand): Convert pos field into a bitfield.
25730         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
25731         field up.
25732         (struct _stmt_vec_info): Shuffle fields for better packing.
25733
25734 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
25735
25736         * varasm.c (IN_NAMED_SECTION): Remove guard.
25737         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
25738         (IN_NAMED_SECTION_P): ...this.
25739         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
25740         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
25741
25742 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
25743
25744         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
25745         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
25746         of shadowing it.  Fix comments.
25747
25748 2010-04-26  Jan Hubicka  <jh@suse.cz>
25749
25750         * cgraph.c (cgraph_create_node): Set node frequency to normal.
25751         (cgraph_clone_node): Copy function frequency.
25752         * cgraph.h (node_frequency): New enum
25753         (struct cgraph_node): Add.
25754         * final.c (rest_of_clean_state): Update.
25755         * lto-cgraph.c (lto_output_node): Output node frequency.
25756         (input_overwrite_node): Input node frequency.
25757         * tre-ssa-loop-ivopts (computation_cost): Update.
25758         * lto-streamer-out.c (output_function): Do not output function
25759         frequency.
25760         * predict.c (maybe_hot_frequency_p): Update and handle functions
25761         executed once.
25762         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
25763         attribute lookup.
25764         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
25765         (compute_function_frequency): Set noreturn functions to be executed
25766         once.
25767         (choose_function_section): Update.
25768         * lto-streamer-in.c (input_function): Do not input function frequency.
25769         * function.c (allocate_struct_function): Do not initialize function
25770         frequency.
25771         * function.h (function_frequency): Remove.
25772         (struct function): Remove function frequency.
25773         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
25774         (try_update): Update.
25775         * tree-inline.c (initialize_cfun): Do not update function frequency.
25776         * passes.c (pass_init_dump_file): Update.
25777         * i386.c (ix86_compute_frame_layout): Update.
25778         (ix86_pad_returns): Update.
25779
25780 2010-04-26  Jie Zhang  <jie@codesourcery.com>
25781
25782         PR tree-optimization/43833
25783         * tree-vrp.c (range_int_cst_p): New.
25784         (range_int_cst_singleton_p): New.
25785         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
25786         when both operands are constants.  Use range_int_cst_p in
25787         BIT_IOR_EXPR case.
25788
25789 2010-04-26  Jan Hubicka  <jh@suse.cz>
25790
25791         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
25792
25793 2010-04-26  Richard Guenther  <rguenther@suse.de>
25794
25795         PR lto/43080
25796         * gimple.c (gimple_decl_printable_name): Deal gracefully
25797         with a NULL DECL_NAME.
25798
25799 2010-04-26  Richard Guenther  <rguenther@suse.de>
25800
25801         PR lto/42425
25802         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
25803         if emitting debug information and it is either a function
25804         or a namespace decl.
25805
25806 2010-04-26  Ira Rosen  <irar@il.ibm.com>
25807
25808         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
25809         determine if the statement is vectorizable, and a macro to access it.
25810         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
25811         Skip statements that can't be vectorized. If the analysis fails,
25812         mark the statement as unvectorizable if vectorizing basic block.
25813         (vect_compute_data_refs_alignment): Likewise.
25814         (vect_verify_datarefs_alignment): Skip statements marked as
25815         unvectorizable. Add print.
25816         (vect_analyze_group_access): Skip statements that can't be
25817         vectorized. If the analysis fails, mark the statement as
25818         unvectorizable if vectorizing basic block.
25819         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
25820         * tree-vect-stmts.c (vectorizable_store): Fix the number of
25821         generated stmts for SLP.
25822         (new_stmt_vec_info): Initialize the new field.
25823         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
25824         statements marked as unvectorizable.
25825
25826 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
25827
25828         * c-common.c (flag_isoc1x): New.
25829         (flag_isoc99): Update comment.
25830         * c-common.h (flag_isoc1x): New.
25831         (flag_isoc99): Update comment.
25832         * c-cppbuiltin.c (builtin_define_float_constants): Also define
25833         __<type>_DECIMAL_DIG__.
25834         * c-opts.c (set_std_c1x): New.
25835         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
25836         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
25837         * c.opt (-std=c1x, -std=gnu1x): New options.
25838         * doc/cpp.texi: Mention -std=c1x.
25839         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
25840         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
25841         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
25842         * doc/standards.texi: Mention C1X.
25843         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
25844         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
25845         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
25846         Define for C1X.
25847
25848 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
25849
25850         * config/i386/gmon-sol2.c (_mcleanup): Change format string
25851         placeholder from 0x%x to %#x.
25852         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
25853         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
25854         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
25855         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
25856         * config/i386/i386.c (ix86_target_string): Ditto.
25857         (output_pic_addr_const): Ditto.
25858         (print_operand): Ditto.
25859
25860 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
25861
25862         * combine.c (find_split_point): Add third argument.  Use it
25863         to find nested multiply-accumulate instructions.  Adjust calls.
25864         (try_combine): Adjust call to find_split_point.
25865
25866 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
25867
25868         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
25869
25870 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
25871
25872         PR tree-optimization/41442
25873         * fold-const.c (merge_truthop_with_opposite_arm): New function.
25874         (fold_binary_loc): Call it.
25875
25876 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25877
25878         * toplev.c (general_init): Set default for fdiagnostics-show-option.
25879         * opts.c (common_handle_option): Allow disabling it.
25880         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
25881
25882 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
25883
25884         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
25885         between modes if both types are integral.
25886
25887 2010-04-23  Richard Guenther  <rguenther@suse.de>
25888
25889         PR tree-optimization/43572
25890         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
25891
25892 2010-04-23  Richard Guenther  <rguenther@suse.de>
25893
25894         PR lto/43455
25895         * tree-inline.c (tree_can_inline_p): Also check compatibility
25896         of return types.
25897
25898 2010-04-23  Martin Jambor  <mjambor@suse.cz>
25899
25900         PR tree-optimization/43846
25901         * tree-sra.c (struct access): New flag grp_assignment_read.
25902         (build_accesses_from_assign): Set grp_assignment_read.
25903         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
25904         (enum mark_read_status): New type.
25905         (analyze_access_subtree): Propagate grp_assignment_read, create
25906         accesses also if both direct_read and root->grp_assignment_read.
25907
25908 2010-04-23  Martin Jambor  <mjambor@suse.cz>
25909
25910         PR middle-end/43835
25911         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
25912         function does not have type attributes.
25913
25914 2010-04-23  Richard Guenther  <rguenther@suse.de>
25915
25916         PR lto/42653
25917         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
25918         of FUNCTION_DECLs.
25919
25920 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25921
25922         * sese.h (create_if_region_on_edge): Remove.
25923
25924         * sese.c (create_if_region_on_edge): Make static.
25925
25926         * tree-inline.c: Do not include ggc.h.
25927
25928         * expr.c: Do not include ggc.h.
25929
25930         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
25931         dependencies.
25932
25933 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
25934
25935         PR target/43744
25936         * config/sh/sh.c (find_barrier): Don't emit a constant pool
25937         in the middle of insns for casesi_worker_2.
25938
25939 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
25940
25941         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
25942
25943 2010-04-22  Ira Rosen  <irar@il.ibm.com>
25944
25945         PR tree-optimization/43842
25946         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
25947         loop unrolling in update of exit phis. Fix comment.
25948         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
25949         least two reduction statements in the loop before starting SLP
25950         analysis.
25951
25952 2010-04-22  Nick Clifton  <nickc@redhat.com>
25953
25954         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
25955
25956 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
25957
25958         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
25959         to simplify a + ~a.
25960
25961 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25962
25963         * tree-parloops.c (loop_parallel_p): New argument
25964         parloop_obstack.  Pass it down.
25965         (parallelize_loops): New variable parloop_obstack.  Initialize it,
25966         pass it down, free it.
25967
25968         * tree-loop-linear.c (linear_transform_loops): Pass down
25969         lambda_obstack.
25970
25971         * tree-data-ref.h (lambda_compute_access_matrices): New argument
25972         of type struct obstack *.
25973
25974         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
25975         scratch_obstack.  Initialize it, pass down, free it.
25976
25977         * lambda.h (lambda_loop_new): Remove.
25978         (lambda_matrix_new, lambda_matrix_inverse)
25979         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
25980         argument of type struct obstack *.
25981
25982         * lambda-trans.c (lambda_trans_matrix_new): New argument
25983         lambda_obstack.  Pass it down, use obstack allocation for ret.
25984         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
25985         it down.
25986
25987         * lambda-mat.c (lambda_matrix_get_column)
25988         (lambda_matrix_project_to_null): Remove.
25989         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
25990         allocation for mat.
25991         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
25992         lambda_obstack.
25993
25994         * lambda-code.c (lambda_loop_new): New function.
25995         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
25996         (lambda_compute_auxillary_space, lambda_compute_target_space)
25997         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
25998         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
25999         (build_access_matrix): New argument lambda_obstack.  Use obstack
26000         allocation for am.
26001         (lambda_compute_step_signs, lambda_compute_access_matrices): New
26002         argument lambda_obstack.  Pass it down.
26003
26004 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
26005
26006         * optabs.h (expand_widening_mult): Declare.
26007
26008 2010-04-22  Richard Guenther  <rguenther@suse.de>
26009
26010         PR tree-optimization/43845
26011         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
26012         lookup the CALL_EXPR function and arguments.
26013
26014 2010-04-22  Nick Clifton  <nickc@redhat.com>
26015
26016         * config/stormy16/stormy16.c
26017         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
26018         * config/stormy16/stormy16.h: Tidy up formatting.
26019         (DONT_USE_BUILTIN_SETJMP): Remove definition.
26020         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
26021         (ineqbranchsi): Delete pattern.
26022         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
26023         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
26024         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
26025         stormy16-lib2-ucmpsi2.c.
26026
26027 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
26028
26029         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
26030         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
26031         extra set merge_set_noclobber, and use it to relax the final test
26032         slightly.
26033         * df.h (df_simulate_find_noclobber_defs): Declare.
26034         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
26035         conditional defs.
26036         (df_simulate_find_noclobber_defs): New function.
26037
26038 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
26039
26040         * config/i386/i386.md: Use {} around multi-line preparation statements.
26041
26042 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26043
26044         * c-tree.h (push_init_level, pop_init_level, set_init_index)
26045         (process_init_element): New argument of type struct obstack *.
26046
26047         * c-typeck.c (push_init_level, pop_init_level, set_designator)
26048         (set_init_index, set_init_label, set_nonincremental_init)
26049         (set_nonincremental_init_from_string, find_init_member)
26050         (output_init_element, output_pending_init_elements)
26051         (process_init_element): New argument braced_init_obstack.  Pass it
26052         down.
26053         (push_range_stack, add_pending_init): New argument
26054         braced_init_obstack.  Use obstack allocation.
26055
26056         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
26057         braced_init_obstack.  Pass it down.
26058         (c_parser_braced_init): New variables ret, braced_init_obstack.
26059         Initialize obstack, pass it down and finally free it.
26060
26061 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
26062
26063         PR middle-end/29274
26064         * tree-pass.h (pass_optimize_widening_mul): Declare.
26065         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
26066         gate_optimize_widening_mul): New static functions.
26067         (pass_optimize_widening_mul): New.
26068         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
26069         <case MULT_EXPR>: Remove support for widening multiplies.
26070         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
26071         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
26072         simplify_gen_unary rather than directly building extensions.
26073         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
26074         WIDEN_MULT_EXPR.
26075         * expmed.c (expand_widening_mult): New function.
26076         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
26077
26078 2010-04-21  Jan Hubicka  <jh@suse.cz>
26079
26080         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
26081         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
26082         * lto-wpa-fixup.c: Remove.
26083         * Makefile.in (lto-wpa-fixup.o): Remove.
26084         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
26085         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
26086         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
26087
26088 2010-04-21  Jan Hubicka  <jh@suse.cz>
26089
26090         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
26091         add write_optimization_summary, read_optimization_summary.
26092         (ipa_write_summaries_of_cgraph_node_set): Remove.
26093         (ipa_write_optimization_summaries): Declare.
26094         (ipa_read_optimization_summaries): Declare.
26095         * ipa-cp.c (pass_ipa_cp): Update.
26096         * ipa-reference.c (pass_ipa_reference): Update.
26097         * ipa-pure-const.c (pass_ipa_pure_const): Update.
26098         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
26099         Update.
26100         * ipa-inline.c (pass_ipa_inline): Update.
26101         * ipa.c (pass_ipa_whole_program): Update.
26102         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
26103         * passes.c (ipa_write_summaries_1): Do not test wpa.
26104         (ipa_write_optimization_summaries_1): New.
26105         (ipa_write_optimization_summaries): New.
26106         (ipa_read_summaries): Do not test ltrans.
26107         (ipa_read_optimization_summaries_1): New.
26108         (ipa_read_optimization_summaries): New.
26109
26110 2010-04-21  Jan Hubicka  <jh@suse.cz>
26111
26112         * lto-cgraph.c (lto_output_node): Do not output comdat groups
26113         for boundary nodes.
26114         (output_cgraph): Do not arrange comdat groups for boundary nodes.
26115
26116 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
26117
26118         PR debug/40040
26119         * dwarf2out.c (add_name_and_src_coords_attributes): Add
26120         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
26121
26122 2010-04-21  Jan Hubicka  <jh@suse.cz>
26123
26124         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
26125
26126 2010-04-21  Jan Hubicka  <jh@suse.cz>
26127
26128         * varpool.c (decide_is_variable_needed): Variable is always needed
26129         during ltrans.
26130
26131 2010-04-21  Jan Hubicka  <jh@suse.cz>
26132
26133         * opts.c (decode_options): Enable pure-const pass for whopr.
26134
26135 2010-04-21  Jan Hubicka  <jh@suse.cz>
26136
26137         * cgraph.c (dump_cgraph_node): Dump also assembler name.
26138         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
26139         at WPA dumping.
26140         (cgraph_decide_inlining): Do not expect callee to be removed in all
26141         cases.
26142
26143 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
26144
26145         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
26146
26147 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
26148
26149         * config/i386/i386.md (x86_shrd): Add athlon_decode and
26150         amdfam10_decode attributes.
26151
26152 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
26153
26154         PR middle-end/43570
26155         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
26156         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
26157         (lower_copyprivate_clauses): Use private var in outer
26158         context instead of original var.  Make sure the types
26159         are correct for VLAs.
26160
26161 2010-04-21  Richard Guenther  <rguenther@suse.de>
26162
26163         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
26164         to non-pointer objects.
26165
26166 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
26167
26168         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
26169         last chain entry if it starts with the still current label.
26170         (add_location_or_const_value_attribute): Check that
26171         loc_list->first->next is NULL instead of comparing ->first with ->last.
26172         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
26173         to add_var_loc_to_decl.
26174
26175         * dwarf2out.c (output_call_frame_info): For dw_cie_version
26176         >= 4 add also address size and segment size fields into CIE header.
26177
26178         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
26179         long as address size is the same as sizeof (void *) and
26180         segment size is 0.
26181         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
26182         address size or segment size is unexpected, return DW_EH_PE_omit.
26183         (classify_object_over_fdes): If get_cie_encoding returned
26184         DW_EH_PE_omit, return -1.
26185         (init_object): If classify_object_over_fdes returned -1,
26186         pretend there were no FDEs at all.
26187
26188 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
26189
26190         * config/i386/i386.md (bswap<mode>2): Macroize expander from
26191         bswap{si,di}2 using SWI48 mode iterator.
26192         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
26193         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
26194         set modrm attribute of bswap insn to 0 and remove length attribute.
26195         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
26196         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
26197         set mode attribute to <MODE> and remove length attribute.
26198
26199 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
26200
26201         PR rtl-optimization/43520
26202         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
26203         zero available registers.
26204
26205 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26206
26207         * builtins.c (fold_builtin_cproj): Fold more cases.
26208
26209 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26210
26211         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
26212         (fold_builtin_1): Fold builtin cproj.
26213         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
26214         Use ATTR_CONST_NOTHROW_LIST.
26215
26216 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
26217
26218         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
26219         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
26220         ffsi2_no_cmove for !TARGET_CMOVE.
26221         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
26222         (ffssi2): Remove expander.
26223         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
26224         mode iterator.
26225         (ctz<mode>2): Ditto from ctz{si,di}2.
26226         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
26227         mode iterator.
26228         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
26229         mode iterator.
26230
26231 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
26232
26233         * dwarf2out.c (AT_linkage_name): Define.
26234         (clone_as_declaration): Handle DW_AT_linkage_name.
26235         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
26236         of DW_AT_MIPS_linkage_name.
26237         (move_linkage_attr): Likewise.
26238         (dwarf2out_finish): Likewise.
26239
26240 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
26241
26242         PR middle-end/41952
26243         * fold-const.c (fold_comparison): New folding rule.
26244
26245 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
26246
26247         * double-int.h (double_int_setbit): Declare.
26248         * double-int.c (double_int_setbit): New function.
26249         * rtl.h (immed_double_int_const): Declare.
26250         * emit-rtl.c (immed_double_int_const): New function.
26251         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
26252         and immed_double_int_const functions.
26253         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
26254         expand_copysign_bit): (Ditto.).
26255         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
26256         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
26257         * dojump.c (prefer_and_bit_test): (Ditto.).
26258         * expr.c (convert_modes, reduce_to_bit_field_precision,
26259         const_vector_from_tree): (Ditto.).
26260         * expmed.c (mask_rtx, lshift_value): (Ditto.).
26261
26262 2010-04-20  Jan Hubicka  <jh@suse.cz>
26263
26264         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
26265         (dump_cgraph_node): Dump new flags.
26266         * cgraph.h (struct cgraph_node): Add flags
26267         reachable_from_other_partition and in_other_partition.
26268         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
26269         other partition can not be removed.
26270         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
26271         the other partition must be output; silence sanity checking on
26272         leaking functions bodies from other paritition.
26273         * lto-cgraph.c (reachable_from_other_partition_p): New function.
26274         (lto_output_node): Output new flags; do not sanity check that inline
26275         clones are output; drop lto_forced_extern_inline_p code; do not mock
26276         visibility flags at partition boundaries.
26277         (add_node_to): New function.
26278         (output_cgraph): Use it to sort functions so masters appear before
26279         clones.
26280         (input_overwrite_node): Input new flags.
26281         * passes.c (ipa_write_summaries): Do not call
26282         lto_new_extern_inline_states.
26283         * lto-section-out.c (forced_extern_inline,
26284         lto_new_extern_inline_states lto_delete_extern_inline_states,
26285         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
26286         * lto-streamer.h (lto_new_extern_inline_states,
26287         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
26288         lto_forced_extern_inline_p): Kill.
26289
26290 2010-04-20  Richard Guenther  <rguenther@suse.de>
26291
26292         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
26293         from vars that can have pointers.
26294         (process_constraint): Dump useless constraints.
26295
26296 2010-04-20  Richard Guenther  <rguenther@suse.de>
26297
26298         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
26299         (dump_sa_points_to_info): Remove asserts.
26300         (init_base_vars): nothing_id isn't an escape point nor does it
26301         have pointers.
26302
26303 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
26304
26305         * tree.h (TYPE_REF_IS_RVALUE): Define.
26306         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
26307         should_move_die_to_comdat, prune_unused_types_walk): Handle
26308         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
26309         (modified_type_die, gen_reference_type_die): Emit
26310         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
26311         if TYPE_REF_IS_RVALUE and -gdwarf-4.
26312
26313 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26314
26315         PR target/43635
26316         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
26317         calls for -fpic -m31 if they have been sibcall optimized.
26318
26319 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
26320
26321         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
26322         ar.lc fixed and call-used.
26323
26324         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
26325
26326 2010-04-19  Jan Hubicka  <jh@suse.cz>
26327
26328         * opts.c (decode_options): Disable whpr incompatible passes.
26329         * lto/lto.c (lto_1_to_1_map): Skip clones.
26330         (read_cgraph_and_symbols): Do not mark everything as needed.
26331         (do_whole_program_analysis): Do map only after optimizing;
26332         set proper cgraph_state; use passmanager.
26333
26334 2010-04-19  DJ Delorie  <dj@redhat.com>
26335
26336         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
26337         POINTER_PLUS_EXPR and fix them.
26338
26339 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
26340
26341         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
26342         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
26343         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
26344         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
26345         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
26346         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
26347         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
26348         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
26349         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
26350         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
26351         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
26352
26353 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
26354
26355         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
26356         (check_cond_move_block): Likewise.
26357         (cond_move_process_if_block): Likewise.
26358         (noce_find_if_block): Improve formatting.
26359         (find_if_header): Pass 0 to memset and tweak conditions.
26360         (cond_exec_find_if_block): Fix long lines and tweak conditions.
26361
26362 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
26363
26364         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
26365         for -gdwarf-4.
26366
26367         PR middle-end/43337
26368         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
26369         with non-local decl doesn't need chain.
26370
26371 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
26372
26373         * ira-color.c (allocno_reload_assign): Avoid accumulating
26374         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
26375
26376 2010-04-19  Martin Jambor  <mjambor@suse.cz>
26377
26378         * gimple.h (create_tmp_reg): Declare.
26379         * gimplify.c (create_tmp_reg): New function.
26380         (gimplify_return_expr): Use create_tmp_reg.
26381         (gimplify_omp_atomic): Likewise.
26382         (gimple_regimplify_operands): Likewise.
26383         * tree-dfa.c (make_rename_temp): Likewise.
26384         * tree-predcom.c (predcom_tmp_var): Likewise.
26385         (reassociate_to_the_same_stmt): Likewise.
26386         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
26387         (get_replaced_param_substitute): Likewise.
26388         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
26389         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
26390         * tree-ssa-pre.c (get_representative_for): Likewise.
26391         (create_expression_by_pieces): Likewise.
26392         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
26393         (create_tailcall_accumulator): Likewise.
26394
26395 2010-04-19  Martin Jambor  <mjambor@suse.cz>
26396
26397         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
26398         new_stmt.
26399         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
26400
26401 2010-04-19  Richard Guenther  <rguenther@suse.de>
26402
26403         PR tree-optimization/43796
26404         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
26405         from SCEV in the lattice.
26406         (vrp_visit_phi_node): Dump change.
26407
26408 2010-04-19  Richard Guenther  <rguenther@suse.de>
26409
26410         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
26411         * configure: Re-generated.
26412
26413 2010-04-19  Richard Guenther  <rguenther@suse.de>
26414
26415         PR tree-optimization/43783
26416         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
26417         constant ARRAY_REF operands two and three if possible.
26418
26419 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
26420
26421         PR target/43766
26422         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
26423
26424 2010-04-19  Jie Zhang  <jie@codesourcery.com>
26425
26426         PR target/43662
26427         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
26428
26429 2010-04-19  Ira Rosen  <irar@il.ibm.com>
26430
26431         PR tree-optimization/37027
26432         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
26433         and macro to access it.
26434         (vectorizable_reduction): Add argument.
26435         (vect_get_slp_defs): Likewise.
26436         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
26437         statements for possible use in SLP.
26438         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
26439         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
26440         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
26441         add new argument.
26442         (vectorizable_reduction): Likewise.
26443         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
26444         vect_get_slp_defs.
26445         (vectorizable_type_demotion, vectorizable_type_promotion,
26446         vectorizable_store): Likewise.
26447         (vect_analyze_stmt): Update call to vectorizable_reduction.
26448         (vect_transform_stmt): Likewise.
26449         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
26450         (vect_build_slp_tree): Fix indentation. Check that there are no loads
26451         from different interleaving chains in same node.
26452         (vect_slp_rearrange_stmts): New function.
26453         (vect_supported_load_permutation_p): Allow load permutations for
26454         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
26455         inside SLP nodes if necessary.
26456         (vect_analyze_slp_instance): Handle reductions.
26457         (vect_analyze_slp): Try to build SLP instances originating from groups
26458         of reductions.
26459         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
26460         (vect_get_constant_vectors): Create initial vectors for reductions
26461         according to reduction code. Add new argument.
26462         (vect_get_slp_defs): Add new argument, pass it to
26463         vect_get_constant_vectors.
26464         (vect_schedule_slp_instance): Remove SLP tree root statements.
26465
26466 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
26467
26468         * tree.h (ENUM_IS_SCOPED): Define.
26469         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
26470         for ENUM_IS_SCOPED enums.
26471
26472 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
26473
26474         * fold-const.c (fold_comparison): Use ssizetype.
26475         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
26476         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
26477         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
26478         * tree-object-size.c (compute_object_sizes): Use size_type_node.
26479
26480         * tree.h (initialize_sizetypes): Remove parameter.
26481         (build_common_tree_nodes): Remove second parameter.
26482         * stor-layout.c (initialize_sizetypes): Remove parameter.
26483         Always create an unsigned type.
26484         (set_sizetype): Assert that the passed type is unsigned and simplify.
26485         * tree.c (build_common_tree_nodes): Remove second parameter.
26486         Adjust call to initialize_sizetypes.
26487         * c-decl.c (c_init_decl_processing): Remove second argument in call to
26488         build_common_tree_nodes.
26489
26490 2010-04-18  Matthias Klose  <doko@ubuntu.com>
26491
26492         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
26493
26494 2010-04-18  Ira Rosen  <irar@il.ibm.com>
26495
26496         PR tree-optimization/43771
26497         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
26498         load permutation doesn't have gaps.
26499
26500 2010-04-18  Jan Hubicka  <jh@suse.cz>
26501
26502         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
26503         (sse_prologue_save_insn expander): Use new pattern.
26504         (sse_prologue_save_insn1): New pattern and splitter.
26505         (sse_prologue_save_insn): Update to deal also with 64bit aligned
26506         blocks.
26507         * i386.c (setup_incoming_varargs_64): Do not compute jump
26508         destination here.
26509         (ix86_gimplify_va_arg): Update alignment needed.
26510         (ix86_local_alignment): Do not align all local arrays to 128bit.
26511
26512 2010-04-17  Jan Hubicka  <jh@suse.cz>
26513
26514         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
26515
26516 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
26517
26518         * arm.md (negdi2): Remove redundant code to force values into a
26519         register.
26520
26521 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
26522
26523         * arm/bpabi.S: Add EABI alignment attributes to objects.
26524         * arm/bpabi-v6m.S: Likewise.
26525         * arm/crti.asm: Likewise.
26526         * arm/crtn.asm: Likewise.
26527         * arm/lib1funcs.asm: Likewise.
26528         * arm/libunwind.S: Likewise.
26529
26530 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
26531
26532         * arm-protos.h (tune_params): New structure.
26533         * arm.c (current_tune): New variable.
26534         (arm_constant_limit): Delete.
26535         (struct processors): Add pointer to the tune parameters.
26536         (arm_slowmul_tune): New tuning option.
26537         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
26538         (all_cores): Adjust to pick up the tuning model.
26539         (arm_constant_limit): New function.
26540         (arm_override_options): Select the appropriate tuning model.  Delete
26541         initialization of arm_const_limit.
26542         (arm_split_constant): Use the new constant-limit model.
26543         (arm_rtx_costs): Pick up the current tuning model.
26544         * arm.md (is_strongarm, is_xscale): Delete.
26545         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
26546         for Xscale variant architectures.
26547         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
26548
26549 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26550
26551         * config/arm/arm.c (arm_gen_constant): Remove unused variable
26552         can_shift.
26553         (arm_rtx_costs_1): Remove unused variable extra_cost.
26554         (arm_unwind_emit_set): Use variable offset.
26555         (thumb1_output_casesi): Remove unused variable flags.
26556
26557 2010-04-16  Jeff Law  <law@redhat.com>
26558
26559         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
26560         needing assignment rather than doing a two-phase assignment.  Remove
26561         unused variable 'm'.
26562
26563 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
26564
26565         PR bootstrap/43767
26566         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
26567
26568 2010-04-16  Doug Kwan  <dougkwan@google.com>
26569
26570         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
26571         (next_operand_entry_id): New static variable.
26572         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
26573         (add_to_ops_vec): Assigned unique ID to operand entry.
26574         (struct oecount_s): New field ID.
26575         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
26576         (undistribute_ops_list): Assign unique IDs to oecounts.
26577         (init_reassoc): reset next_operand_entry_id.
26578
26579 2010-04-16  Doug Kwan  <dougkwan@google.com>
26580
26581         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
26582         missing left parenthesis.
26583
26584 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
26585
26586         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
26587         *btdi_rex64 using SWI48 mode iterator.
26588         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
26589         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
26590         *jcc_btdi_mask_rex64.
26591
26592 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
26593
26594         * double-int.h (tree_to_double_int): Convert to macro.
26595         * double-int.c (tree_to_double_int): Remove.
26596
26597 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
26598
26599         PR debug/43762
26600         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
26601         with want_address 2 and in case a single element list might be
26602         possible, call it again with want_address 0.
26603
26604 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
26605
26606         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
26607         case 'W' print operands for HI mode.
26608         * config/h8300/h8300.h (Y0, Y2) : New constraints.
26609         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
26610         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
26611         * config/h8300/predicate.md (bit_register_indirect_operand): New.
26612
26613         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
26614
26615         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
26616         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
26617         #xx:3 and #xx:4 mode.
26618
26619         * config/h8300/h8300.md (inverted load with HImode dest): Add
26620         support for H8300SX.
26621
26622         * config/h8300/predicate.md (bit_operand): Allow immediate values that
26623         satisfy 'U' constraint.
26624
26625 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26626
26627         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
26628         * configure: Regenerate.
26629         * config.in: Regenerate.
26630         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
26631         works.
26632
26633 2010-04-16  Richard Guenther  <rguenther@suse.de>
26634
26635         * tree.h (struct tree_decl_minimal): Move pt_uid ...
26636         (struct tree_decl_common): ... here.
26637         (DECL_PT_UID): Adjust.
26638         (SET_DECL_PT_UID): Likewise.
26639         (DECL_PT_UID_SET_P): Likewise.
26640
26641 2010-04-16  Richard Guenther  <rguenther@suse.de>
26642
26643         PR tree-optimization/43572
26644         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
26645         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
26646         * tree-flow.h (is_call_clobbered): Remove.
26647         * tree-flow-inline.h (is_call_clobbered): Likewise.
26648         * tree-dfa.c (dump_variable): Do not dump call clobber state.
26649         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
26650         (execute_return_slot_opt): Adjust.
26651         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
26652         check for call clobbered vars here.
26653         (find_tail_calls): Move tailcall verification to the
26654         proper place.
26655
26656 2010-04-16  Diego Novillo  <dnovillo@google.com>
26657
26658         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
26659
26660 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
26661
26662         PR target/40603
26663         * config/arm/arm.md (cbranchqi4): New pattern.
26664         * config/arm/predicates.md (const0_operand,
26665         cbranchqi4_comparison_operator): New predicates.
26666
26667 2010-04-16  Richard Guenther  <rguenther@suse.de>
26668
26669         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
26670         (dump_gimple_stmt): Likewise.
26671
26672 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
26673
26674         * recog.h (struct recog_data): New field is_operator.
26675         (struct insn_operand_data): New field is_operator.
26676         * recog.c (extract_insn): Set recog_data.is_operator.
26677         * genoutput.c (output_operand_data): Emit code to set the
26678         is_operator field.
26679         * reload.c (find_reloads): Use it rather than testing for an
26680         empty constraint string.
26681
26682         PR target/41514
26683         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
26684         If the previous insn is a cbranchsi4_insn with the same arguments,
26685         omit the compare instruction.
26686
26687         * config/arm/arm.md (addsi3_cbranch): If destination is a high
26688         register, inputs must be low registers and we need a low register
26689         scratch.  Handle alternative 2 like alternative 3.
26690
26691 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
26692
26693         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
26694         don't call get_addr on both.  If one expression is a VALUE and
26695         the other a REG, check VALUE's locs if the REG isn't among them.
26696
26697 2010-04-16  Christian Bruel  <christian.bruel@st.com>
26698
26699         * config/sh/sh.h (sh_frame_pointer_required): New function.
26700         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
26701         (flag_omit_frame_pointer) Set.
26702         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
26703         (rounded_frame_size): Adjust size with outgoing_args_size.
26704         (sh_set_return_address): Must return from stack pointer.
26705         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
26706         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
26707         (ACCUMULATE_OUTGOING_ARGS): Define.
26708         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
26709         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
26710
26711 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
26712
26713         PR target/43471
26714         * config/sh/sh.c (sh_legitimize_reload_address): Use
26715         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
26716         Remove a unneeded check for offset_base.
26717
26718 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
26719
26720         * configure: Regenerated.
26721
26722 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26723
26724         * config/s390/s390.c (s390_call_save_register_used): Switch back
26725         to HARD_REGNO_NREGS.
26726
26727 2010-04-15  Richard Guenther  <rguenther@suse.de>
26728
26729         * alias.c (alias_set_subset_of): Handle alias-set zero
26730         child properly.
26731
26732 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
26733             Julian Brown  <julian@codesourcery.com>
26734
26735         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
26736         alternatives according to use of high and low regs.
26737         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
26738         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
26739         optimizing for size on Thumb-2.
26740
26741 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
26742
26743         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
26744
26745 2010-04-15  Richard Guenther  <rguenther@suse.de>
26746
26747         * tree-ssa-structalias.c (struct variable_info): Add
26748         is_fn_info flag.
26749         (new_var_info): Initialize it.
26750         (dump_constraints): Support printing last added constraints.
26751         (debug_constraints): Adjust.
26752         (dump_constraint_graph): Likewise.
26753         (make_heapvar_for): Check for NULL cfun.
26754         (get_function_part_constraint): New function.
26755         (get_fi_for_callee): Likewise.
26756         (find_func_aliases): Properly implement IPA PTA constraints.
26757         (process_ipa_clobber): New function.
26758         (find_func_clobbers): Likewise.
26759         (insert_into_field_list_sorted): Remove.
26760         (create_function_info_for): Properly allocate vars for IPA mode.
26761         Do not use insert_into_field_list_sorted.
26762         (create_variable_info_for): Properly generate constraints for
26763         global vars in IPA mode.
26764         (dump_solution_for_var): Always dump the solution.
26765         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
26766         (find_what_var_points_to): Adjust.
26767         (pt_solution_set): Change.
26768         (pt_solution_ior_into): New function.
26769         (pt_solution_empty_p): Export.
26770         (pt_solution_includes_global): Adjust.
26771         (pt_solution_includes_1): Likewise.
26772         (pt_solutions_intersect_1): Likewise.
26773         (dump_sa_points_to_info): Check some invariants.
26774         (solve_constraints): Move constraint dumping ...
26775         (compute_points_to_sets): ... here.
26776         (ipa_pta_execute): ... and here.
26777         (compute_may_aliases): Do not re-compute points-to info
26778         locally if IPA info is available.
26779         (ipa_escaped_pt): New global var.
26780         (ipa_pta_execute): Properly implement IPA PTA.
26781         * tree-into-ssa.c (dump_decl_set): Support dumping
26782         decls not in referenced-vars.
26783         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
26784         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
26785         (dump_points_to_solution): Likewise.
26786         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
26787         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
26788         (remap_gimple_stmt): Reset call clobber/use information if necessary.
26789         (copy_decl_to_var): Copy DECL_PT_UID.
26790         (copy_result_decl_to_var): Likewise.
26791         * tree.c (make_node_stat): Initialize DECL_PT_UID.
26792         (copy_node_stat): Copy it.
26793         * tree.h (DECL_PT_UID): New macro.
26794         (SET_DECL_PT_UID): Likewise.
26795         (DECL_PT_UID_SET_P): Likewise.
26796         (struct tree_decl_minimal): Add pt_uid member.
26797         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
26798         (pt_solution_empty_p): Declare.
26799         (pt_solution_set): Adjust.
26800         (ipa_escaped_pt): Declare.
26801         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
26802         * gimple-pretty-print.c (pp_points_to_solution): New function.
26803         (dump_gimple_call): Dump call clobber/use information.
26804         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
26805         * tree-pass.h (TDF_ALIAS): New dump option.
26806         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
26807         * doc/invoke.texi (-fipa-pta): Update documentation.
26808
26809 2010-04-15  Richard Guenther  <rguenther@suse.de>
26810
26811         * Makefile.in (OBJS-common): Add gimple-fold.o.
26812         (gimple-fold.o): New rule.
26813         * tree.h (maybe_fold_offset_to_reference,
26814         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
26815         prototypes ...
26816         * gimple.h: ... here.
26817         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
26818         may_propagate_address_into_dereference): Move prototypes ...
26819         * gimple.h: ... here.
26820         * tree-ssa-ccp.c (get_symbol_constant_value,
26821         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
26822         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
26823         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
26824         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
26825         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
26826         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
26827         gimplify_and_update_call_from_tree): Move ...
26828         * gimple-fold.c: ... here.  New file.
26829         (ccp_fold_builtin): Rename to ...
26830         (gimple_fold_builtin): ... this.
26831         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
26832
26833 2010-04-15  Richard Guenther  <rguenther@suse.de>
26834
26835         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
26836         fit_double_type, force_fit_type_double, add_double_with_sign,
26837         neg_double, mul_double_with_sign, lshift_double, rshift_double,
26838         lrotate_double, rrotate_double, div_and_round_double): Move ...
26839         * double-int.c: ... here.
26840         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
26841         add_double, neg_double, mul_double_with_sign, mul_double,
26842         lshift_double, rshift_double, lrotate_double, rrotate_double,
26843         div_and_round_double): Move prototypes ...
26844         * double-int.h: ... here.
26845
26846 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
26847
26848         PR target/43742
26849         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
26850         matching constraints to ensure inputs match the output.
26851
26852 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
26853
26854         PR target/43742
26855         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
26856         in an input-only operand.
26857
26858 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
26859
26860         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
26861         (double_int_not, double_int_lshift, double_int_rshift): Declare.
26862         (double_int_negative_p): Convert to static inline function.
26863         * double-int.c (double_int_lshift, double_int_lshift): New functions.
26864         (double_int_negative_p): Remove.
26865         * tree.h (lshift_double, rshift_double):
26866         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
26867         * fold-const.c (fold_convert_const_int_from_real,
26868         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
26869         (lshift_double): Change type of arith argument to bool.
26870         (rshift_double): Change type of arith argument to bool. Correct
26871         comment.
26872         * expmed.c (mask_rtx, lshift_value): (Ditto.).
26873
26874 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
26875
26876         PR target/21803
26877         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
26878         at the start and end of the then/else blocks, and omit them from the
26879         conversion.
26880         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
26881         argument; all callers changed.  Pass zero to old_insns_match_p instead.
26882         (flow_find_head_matching_sequence): New function.
26883         (old_insns_match_p): Check REG_EH_REGION notes for calls.
26884         * basic-block.h (flow_find_cross_jump,
26885         flow_find_head_matching_sequence): Declare functions.
26886
26887 2010-04-14  Jason Merrill  <jason@redhat.com>
26888
26889         PR c++/36625
26890         * c-common.c (attribute_takes_identifier_p): New fn.
26891         * c-common.h: Declare it.
26892
26893 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26894
26895         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
26896         splitter condition.
26897         (*udivmod<mode>4): Ditto.
26898
26899 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26900
26901         * config/i386/i386.md (maxmin_int): Rename code attribute from
26902         maxminiprefix and update all users.
26903         (maxmin_float): Ditto from maxminfprefix.
26904         (logic): Ditto from logicprefix.
26905         (absneg_mnemonic): Ditto from absnegprefix.
26906         * config/i386/mmx.md: Update all users of maxminiprefix,
26907         maxminfprefix and logicprefix for rename.
26908         * config/i386/sse.md: Ditto.
26909         * config/i386/sync.md (sync_<code><mode>): Update for
26910         logicprefix rename.
26911
26912 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26913
26914         PR 42966
26915         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
26916         warnings converted to errors.
26917
26918 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26919
26920         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
26921         used insn_type variable.
26922         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
26923         to avoid set-but-not-used warning.
26924
26925 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26926
26927         * df-core.c (df_ref_debug): Change format string placeholder
26928         from 0x%x to %#x.
26929         * dwarf2asm.c (dw2_asm_output_data_raw,
26930         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
26931         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
26932         * dwarf2out.c (output_cfi, output_cfi_directive,
26933         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
26934         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
26935         Ditto.
26936         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
26937         * print-rtl.c (print_rtx): Ditto.
26938
26939 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
26940
26941         PR middle-end/42694
26942         * builtins.c (expand_builtin_pow_root): New function to expand pow
26943         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
26944         series of sqrt and cbrt calls under -ffast-math.
26945         (expand_builtin_pow): Call it.
26946
26947 2010-04-14  Michael Matz  <matz@suse.de>
26948
26949         PR tree-optimization/42963
26950         * tree-cfg.c (touched_switch_bbs): New static variable.
26951         (group_case_labels_stmt): New function broken out from ...
26952         (group_case_labels): ... here, use the above.
26953         (start_recording_case_labels): Allocate touched_switch_bbs.
26954         (end_recording_case_labels): Deallocate it, call
26955         group_case_labels_stmt.
26956         (gimple_redirect_edge_and_branch): Remember index of affected BB.
26957
26958 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26959
26960         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
26961         from insn template.
26962
26963 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26964
26965         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
26966
26967 2010-04-13  Jan Hubicka  <jh@suse.cz>
26968
26969         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
26970         of optimized out static functions.
26971         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
26972         cost computation.  Also sanity check for overflows.
26973         (update_caller_keys): Update cgraph_edge_badness call; properly
26974         update fibheap and sanity check that it is up to date.
26975         (add_new_edges_to_heap): Update cgraph_edge_badness.
26976         (cgraph_decide_inlining_of_small_function): Likewise;
26977         add sanity checking that badness in heap is up to date;
26978         improve dumping of reason; Update badness of calls to the
26979         offline copy of function currently inlined; dump badness
26980         of functions not inlined because of unit growth limits.
26981
26982 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
26983
26984         PR middle-end/32628
26985         * c-common.c (pointer_int_sum): Disregard overflow that occured only
26986         because of sign-extension change when converting to sizetype here...
26987         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
26988
26989         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
26990         the folding to constants.  Remove redundant final conversion.
26991         (fold_binary) <associate>: Do not associate if the re-association of
26992         constants alone overflows.
26993         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
26994         to the end of the list.
26995         (multiple_of_p) <COND_EXPR>: New case.
26996
26997 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26998
26999         * opt-functions.awk (opt_sanitized_name): New.
27000         (opt_enum): New.
27001         * optc-gen.awk: Use it
27002         * opth-gen.awk: Use it.
27003
27004 2010-04-13  Martin Jambor  <mjambor@suse.cz>
27005
27006         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
27007         (sra_modify_assign): Delete stmts loading dead data even if racc has no
27008         children.  Call replace_uses_with_default_def_ssa_name to handle
27009         SSA_NAES on lhs.
27010
27011 2010-04-13  Michael Matz  <matz@suse.de>
27012
27013         PR middle-end/43730
27014         * builtins.c (expand_builtin_interclass_mathfn): Also create
27015         a register if the predicate doesn't match.
27016
27017 2010-04-13  Diego Novillo  <dnovillo@google.com>
27018
27019         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
27020         * c-pch.c: Include timevar.h.
27021         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
27022         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
27023         * ggc-common.c: Include timevar.h.
27024         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
27025         * timevar.def (TV_PCH_SAVE): Define.
27026         (TV_PCH_CPP_SAVE): Define.
27027         (TV_PCH_PTR_REALLOC): Define.
27028         (TV_PCH_PTR_SORT): Define.
27029         (TV_PCH_RESTORE): Define.
27030         (TV_PCH_CPP_RESTORE): Define.
27031
27032 2010-04-13  Michael Matz  <matz@suse.de>
27033
27034         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
27035         into MINUS_EXPRs.
27036         (can_reassociate_p): New function.
27037         (break_up_subtract_bb, reassociate_bb): Use it.
27038
27039 2010-04-13  Richard Guenther  <rguenther@suse.de>
27040
27041         PR bootstrap/43737
27042         * builtins.c (c_readstr): Fix assert.
27043
27044 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
27045
27046         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
27047         when generating cltd insn.
27048
27049         (*ashl<mode>3_1): Remove special handling for register operand 2.
27050         (*ashlsi3_1_zext): Ditto.
27051         (*ashlhi3_1): Ditto.
27052         (*ashlhi3_1_lea): Ditto.
27053         (*ashlqi3_1): Ditto.
27054         (*ashlqi3_1_lea): Ditto.
27055         (*<shiftrt_insn><mode>3_1): Ditto.
27056         (*<shiftrt_insn>si3_1_zext): Ditto.
27057         (*<shiftrt_insn>qi3_1_slp): Ditto.
27058         (*<rotate_insn><mode>3_1): Ditto.
27059         (*<rotate_insn>si3_1_zext): Ditto.
27060         (*<rotate_insn>qi3_1_slp): Ditto.
27061
27062 2010-04-13  Richard Guenther  <rguenther@suse.de>
27063
27064         * tree-ssa-structalias.c (callused_id): Remove.
27065         (call_stmt_vars): New.
27066         (get_call_vi): Likewise.
27067         (lookup_call_use_vi): Likewise.
27068         (lookup_call_clobber_vi): Likewise.
27069         (get_call_use_vi): Likewise.
27070         (get_call_clobber_vi): Likewise.
27071         (make_transitive_closure_constraints): Likewise.
27072         (handle_const_call): Adjust to do per-call call-used handling.
27073         (handle_pure_call): Likewise.
27074         (find_what_var_points_to): Remove general callused handling.
27075         (init_base_vars): Likewise.
27076         (init_alias_vars): Initialize call_stmt_vars.
27077         (compute_points_to_sets): Process call-used and call-clobbered
27078         vars for call statements.
27079         (delete_points_to_sets): Free call_stmt_vars.
27080
27081 2010-04-13  Richard Guenther  <rguenther@suse.de>
27082
27083         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
27084         Only add RW dependence for dependence distance zero.
27085         Adjust maximal vectorization factor according to dependences.
27086         Move alignment handling ...
27087         (vect_find_same_alignment_drs): ... here.  New function.
27088         (vect_analyze_data_ref_dependences): Adjust.
27089         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
27090         (vect_analyze_data_refs): Adjust minimal vectorization factor
27091         according to data references.
27092         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
27093         dependences before determining the vectorization factor.
27094         Analyze alignment after determining the vectorization factor.
27095         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
27096         dependences before alignment.
27097         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
27098         Adjust prototype.
27099         (vect_analyze_data_refs): Likewise.
27100         (MAX_VECTORIZATION_FACTOR): New define.
27101
27102 2010-04-13  Duncan Sands  <baldrick@free.fr>
27103
27104         * except.h (lang_eh_type_covers): Remove.
27105         * except.c (lang_eh_type_covers): Likewise.
27106
27107 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27108             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27109
27110         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
27111         * config/s390/s390.c: Replace UNTIS_PER_WORD with
27112         UNITS_PER_LONG where it is ABI relevant.
27113         (s390_return_addr_rtx): Likewise.
27114         (s390_back_chain_rtx): Likewise.
27115         (s390_frame_area): Likewise.
27116         (s390_frame_info): Likewise.
27117         (s390_initial_elimination_offset): Likewise.
27118         (save_gprs): Likewise.
27119         (s390_emit_prologue): Likewise.
27120         (s390_emit_epilogue): Likewise.
27121         (s390_function_arg_advance): Likewise.
27122         (s390_function_arg): Likewise.
27123         (s390_va_start): Likewise.
27124         (s390_gimplify_va_arg): Likewise.
27125         (s390_function_profiler): Likewise.
27126         (s390_optimize_prologue): Likewise.
27127         (s390_rtx_costs): Likewise.
27128         (s390_secondary_reload): Likewise.
27129         (s390_promote_function_mode): Likewise.
27130         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
27131         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
27132         registers available.
27133         (s390_unwind_word_mode): New function.
27134         (s390_function_value): Split 64 bit values into register pair if
27135         used as return value.
27136         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
27137         function call parameters.  Handle parallels.
27138         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
27139         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
27140         (DWARF_CIE_DATA_ALIGNMENT): New macro.
27141         (s390_expand_setmem): Remove unused variable src_addr.
27142         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
27143         deal with 64 bit registers.
27144         * config/s390/s390.h: Define __zarch__ predefined macro.
27145         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
27146         (UNITS_PER_LONG): New macro.
27147         * libjava/include/s390-signal.h: Define extended ucontext
27148         structure containing the upper halfs of the 64 bit registers.
27149
27150 2010-04-13  Simon Baldwin  <simonb@google.com>
27151
27152         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
27153
27154 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
27155
27156         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
27157         rvalue on the RHS if the LHS is of a non-renamable type.
27158         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
27159
27160 2010-04-13  Matthias Klose  <doko@ubuntu.com>
27161
27162         * gcc.c (cc1_options): Handle -iplugindir before processing
27163         the cc1 spec. Only add -iplugindir once.
27164         (cpp_unique_options): Add -iplugindir option if -fplugin* options
27165         found.
27166         * common.opt (iplugindir): Remove `Separate' property, initialize.
27167         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
27168         option.
27169         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
27170         (distclean): Remove plugin dir.
27171         * doc/invoke.texi: Document -iplugindir.
27172
27173 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
27174
27175         * doc/plugins.texi (Loading Plugins): Document short
27176         -fplugin=foo option.
27177         (Plugin API): Mention default_plugin_dir_name function.
27178
27179         * gcc.c (find_file_spec_function): Add new declaration.
27180         (static_spec_func): Use it for "find-file".
27181         (find_file_spec_function): Add new function.
27182         (cc1_options): Add -iplugindir option if -fplugin* options found.
27183
27184         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
27185
27186         * plugin.c (add_new_plugin): Updated comment, and handle short
27187         plugin name.
27188         (default_plugin_dir_name): Added new function.
27189
27190         * common.opt (iplugindir): New option to set the plugin directory.
27191
27192 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
27193
27194         * config/i386/i386.md (any_rotate): New code iterator.
27195         (rotate_insn): New code attribute.
27196         (rotate): Ditto.
27197         (SWIM124): New mode iterator.
27198         (<rotate_insn>ti3): New expander.
27199         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
27200         any_rotate code iterator.
27201         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
27202         using any_rotate code iterator and SWIM124 mode iterator.
27203         (ix86_rotlti3): New insn_and_split pattern.
27204         (ix86_rotrti3): Ditto.
27205         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
27206         ix86_rotl{di,ti}3 patterns.
27207         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
27208         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
27209         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
27210         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
27211         code iterator and SWI mode iterator.
27212         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
27213         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
27214         code iterator.
27215         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
27216         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
27217         (bswap rotatert splitter): Add splitter.
27218         (bswap splitter): Macroize splitter using any_rotate code iterator.
27219         Add insn predicate to split only for TARGET_USE_XCHGB or when
27220         optimizing function for size.
27221
27222 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
27223
27224         * config/pa/pa.c (emit_move_sequence): Remove use of
27225         deleted variable flag_argument_noalias.
27226
27227 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27228
27229         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
27230         configurations.
27231         Add to unsupported targets list.
27232         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
27233         sparc*-sun-solaris2.[567]* from target lists.
27234         * configure: Regenerate.
27235         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
27236         removal.
27237         Remove Solaris 7 patch references.
27238         (Specific, sparc-sun-solaris2.7): Removed.
27239         (sparc-sun-solaris2*): Update Solaris 7 example.
27240         (sparc64-*-solaris2*): Likewise.
27241
27242 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27243
27244         * config.build (alpha*-dec-osf4*): Remove.
27245         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
27246         of obsolete configurations.
27247         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
27248         support.
27249         * config/alpha/t-osf4: Renamed to ...
27250         * config/alpha/t-osf5: ... this.
27251         * config/alpha/osf.h: Renamed to ...
27252         * config/alpha/osf5.h: ... this.
27253         Merged old osf5.h contents.
27254         Update comments.
27255         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
27256         (EXTRA_SPECS): Removed.
27257         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
27258         reflect removal of Tru64 UNIX V4.0/V5.0 support.
27259         Document that.
27260
27261 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27262
27263         * doc/contrib.texi (Contributors, Rainer Orth): Update.
27264
27265 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
27266
27267         PR/43702
27268         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
27269         __thiscall convention.
27270
27271 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
27272
27273         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
27274         orig_base.
27275         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
27276
27277 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
27278
27279         * function.c (assign_parms_initialize_all): Add unused attribute
27280         to fntype.
27281
27282 2010-04-12  Richard Guenther  <rguenther@suse.de>
27283
27284         * gsstruct.def (GSS_CALL): New.
27285         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
27286         * gimple.h: Include tree-ssa-alias.h.
27287         (struct gimple_statement_call): New.
27288         (union gimple_statement_struct_d): Add gimple_call member.
27289         (gimple_call_reset_alias_info): Declare.
27290         (gimple_call_use_set): New function.
27291         (gimple_call_clobber_set): Likewise.
27292         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
27293         * gimple.c (gimple_call_reset_alias_info): New function.
27294         (gimple_build_call_1): Call it.
27295         * lto-streamer-in.c (input_gimple_stmt): Likewise.
27296         * tree-inline.c (remap_gimple_stmt): Likewise.
27297         (expand_call_inline): Remove callused handling.
27298         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
27299         * tree-dfa.c (dump_variable): Likewise.
27300         * tree-parloops.c (parallelize_loops): Likewise.
27301         * tree-ssa.c (init_tree_ssa): Likewise.
27302         (delete_tree_ssa): Likewise.
27303         * tree-flow-inline.h (is_call_used): Remove.
27304         * tree-flow.h (struct gimple_df): Remove callused member.
27305         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
27306         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
27307         (ref_maybe_used_by_call_p_1): Simplify.
27308         (call_may_clobber_ref_p_1): Likewise.
27309         * tree-ssa-structalias.c (compute_points_to_sets): Set
27310         the call stmt used and clobbered sets.
27311         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
27312         (find_tail_calls): Verify the tail call.
27313
27314 2010-04-12  Richard Guenther  <rguenther@suse.de>
27315
27316         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
27317         single-iteration always-inline inlining.
27318         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
27319         (cgraph_decide_inlining): Do not handle always-inline specially.
27320         (try_inline): Remove always-inline cycle detection special case.
27321         Do not recurse on always-inlines.
27322         (cgraph_early_inlining): Do not iterate if not optimizing.
27323         (cgraph_gate_early_inlining): remove.
27324         (pass_early_inline): Run unconditionally.
27325         (gate_cgraph_decide_inlining): New function.
27326         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
27327         not inlining or optimizing.
27328         (cgraph_decide_inlining_of_small_functions): Also consider
27329         always-inline functions.
27330         (cgraph_default_inline_p): Return true for nodes which should
27331         disregard inline limits.
27332         (estimate_function_body_sizes): Assume zero size and time for
27333         nodes which are marked as disregarding inline limits.
27334         (cgraph_decide_recursive_inlining): Do not perform recursive
27335         inlining on always-inline nodes.
27336
27337 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
27338
27339         PR bootstrap/43699
27340         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
27341         for exprs satisfying handled_component_p.
27342
27343 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
27344
27345         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
27346         non-constant aggregate elements.
27347
27348         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
27349         is a real initialization.
27350
27351 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
27352
27353         PR c/36774
27354         * c-decl.c (start_function): Move forward check for nested function.
27355
27356 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
27357
27358         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
27359         * config/sh/sh.c: Include reload.h.
27360         (sh_legitimize_reload_address): New.
27361         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
27362         sh_legitimize_reload_address.
27363
27364 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
27365
27366         * config/sh/sh.md (*movqi_pop): New insn pattern.
27367         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
27368
27369 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
27370
27371         * config/i386/i386.md (any_shiftrt): New code iterator.
27372         (shiftrt_insn): New code attribute.
27373         (shiftrt): Ditto.
27374         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
27375         using any_shiftrt code iterator.
27376         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
27377         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
27378         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
27379         pattern from corresponding peephole2 patterns.
27380         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
27381         using any_shiftrt code iterator.
27382         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
27383         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
27384         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
27385         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
27386         *{ashr,lshr}<mode>3_cmp_zext.
27387         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
27388
27389 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
27390
27391         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
27392         scratch register.
27393         (*lshr<mode>3_cconly): Ditto.
27394
27395 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
27396
27397         * config/i386/i386.md (lshr<mode>3): Macroize expander from
27398         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
27399         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
27400         pattern from *lshr{di,ti}3_1 and corresponding splitters using
27401         DWI mode iterator.
27402         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
27403         from corresponding peephole2 patterns.
27404         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
27405         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
27406         and *lshrdi3_1_rex64 using SWI mode iterator.
27407         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
27408         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
27409         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
27410         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
27411         and *lshrdi3_cmp_rex64 using SWI mode iterator.
27412         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
27413         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
27414         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
27415         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
27416         SWI mode iterator.
27417
27418 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
27419
27420         * config/i386/i386.md (ashr<mode>3): Macroize expander from
27421         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
27422         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
27423         pattern from *ashr{di,ti}3_1 and corresponding splitters using
27424         DWI mode iterator.
27425         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
27426         from corresponding peephole2 patterns.
27427         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
27428         (ashrsi3_cvt): Rename from ashrsi3_31.
27429         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
27430         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
27431         and x86_64_shift_adj_3 using SWI48 mode iterator.
27432         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
27433         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
27434         and *ashrdi3_1_rex64 using SWI mode iterator.
27435         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
27436         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
27437         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
27438         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
27439         and *ashrdi3_cmp_rex64 using SWI mode iterator.
27440         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
27441         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
27442         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
27443         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
27444         SWI mode iterator.
27445         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
27446         * config/i386/i386.c (ix86_split_ashr): Update for renamed
27447         x86_shift<mode>_adj_3 expanders.
27448
27449 2010-04-10  Wei Guozhi  <carrot@google.com>
27450
27451         PR target/42601
27452         * config/arm/arm.c (arm_pic_static_addr): New function.
27453         (legitimize_pic_address): Call arm_pic_static_addr when it detects
27454         a static symbol.
27455         (arm_output_addr_const_extra): Output expression for new pattern.
27456         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
27457
27458 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
27459
27460         * ira-costs.c (record_reg_classes): Ignore alternatives that are
27461         not enabled.
27462
27463         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
27464         * web.c: Include "insn-config.h" and "recog.h".
27465         (union_match_dups): New function.
27466         (web_main): Call it.
27467         (union_defs): Don't try to recognize match_dups.
27468
27469         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
27470         if doing so would replace the entire pattern.
27471
27472 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
27473
27474         PR target/43707
27475         PR target/43709
27476         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
27477         and splitter pattern.  Change splitter operand 1 predicate to
27478         nonmemory_operand.
27479
27480 2010-04-09  Martin Jambor  <mjambor@suse.cz>
27481
27482         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
27483         lattices are addresses of CONST_DECLs with the same initial value.
27484         (ipcp_print_all_lattices): Print values of CONST_DECLs.
27485         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
27486
27487 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
27488             Bernd Schmidt  <bernds@codesourcery.com>
27489
27490         * loop-invariant.c (replace_uses): New static function.
27491         (move_invariant_reg): Use it to ensure we can replace the uses.
27492
27493 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
27494
27495         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
27496         function template.
27497         (picochip_override_options): Enable section anchors only above -O1.
27498         (picochip_reorg): Fixed a couple of build warnings.
27499
27500 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27501
27502         * configure.ac (plugin -rdynamic test): Log result.
27503         * configure: Regenerate.
27504         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
27505         (RDYNAMIC_SPEC): Define.
27506         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
27507
27508 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27509
27510         * configure.ac: Determine Sun ld version numbers.
27511         (comdat_group): Restrict GNU ld version checks to gld.
27512         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
27513         (enable_comdat): Support --enable-comdat.
27514         * configure: Regenerate.
27515         * doc/install.texi (Configuration): Document --enable-comdat.
27516
27517 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27518
27519         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
27520         * config/sol2-gld.h: ... here.
27521         * config.gcc (sparc*-*-solaris2*): Reflect this.
27522         (i[34567]86-*-solaris2*): Use it.
27523
27524 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
27525
27526         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
27527         setup_clocks_p.
27528         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
27529
27530 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27531
27532         PR 42965
27533         * diagnostic.c (diagnostic_initialize): Initialize
27534         some_warnings_are_errors.
27535         (diagnostic_finish): New.
27536         (diagnostic_action_after_output): Call it before exiting.
27537         (diagnostic_report_diagnostic): Do not print message here. Set
27538         some_warnings_are_errors.
27539         * diagnostic.h (diagnostic_context): Delete
27540         issue_warnings_are_errors_message. Add some_warnings_are_errors.
27541         (diagnostic_finish): Declare.
27542         * toplev.c (toplev_main): Call it before exit.
27543
27544 2010-04-09  Jason Merrill  <jason@redhat.com>
27545
27546         PR c++/42623
27547         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
27548         for incomplete type.
27549
27550         PR c++/41788
27551         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
27552         based on a warning flag.
27553
27554 2010-04-09  Richard Guenther  <rguenther@suse.de>
27555
27556         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
27557
27558 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
27559
27560         PR bootstrap/43684
27561         * varasm.c (default_assemble_visibility): Wrap vars that are
27562         set, but unused, by targets without GAS.
27563         * config/rs6000/rs6000.c (paired_emit_vector_compare):
27564         Remove set, but unused, vars.
27565         (rs6000_legitimize_tls_address): Likewise.
27566         (altivec_expand_dst_builtin): Likewise.
27567         * config/darwin.c (machopic_classify_symbol): Likewise.
27568         (machopic_indirection_name): Likewise.
27569
27570 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
27571
27572         * config/i386/i386.md (DWI): New mode iterator.
27573         (S): New mode attribute.
27574         (shift_operand): Ditto.
27575         (shift_immediate_operand): Ditto.
27576         (ashl_input_operand): Ditto.
27577         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
27578         using SDWIM mode iterator.
27579         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
27580         pattern from *ashl{di,ti}3_1 and corresponding splitters using
27581         DWI mode iterator.
27582         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
27583         from corresponding peephole2 patterns.
27584         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
27585         and x86_64_shift_adj_1 using SWI48 mode iterator.
27586         (x86_shift<mode>_adj_2): Ditto.
27587         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
27588         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
27589         using SWI48 mode iterator.
27590         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
27591         *ashldi3_cmp_rex64 using SWI mode iterator.
27592         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
27593         *ashldi3_cconly_rex64 using SWI mode iterator.
27594         * config/i386/i386.c (ix86_split_ashl): Update for renamed
27595         x86_shift<mode>_adj_{1,2}.
27596         (ix86_split_ashr): Ditto.
27597         (ix86_split_lshr): Ditto.
27598
27599 2010-04-09  Richard Guenther  <rguenther@suse.de>
27600
27601         * target.h (builtin_conversion): Pass in input and output types.
27602         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
27603         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
27604         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
27605         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
27606
27607         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
27608         Handle AVX modes.
27609         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
27610
27611 2010-04-09  Richard Guenther  <rguenther@suse.de>
27612
27613         PR target/43152
27614         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
27615
27616 2010-04-09  Richard Guenther  <rguenther@suse.de>
27617
27618         * tree-vectorizer.h (struct _stmt_vec_info): Document
27619         that vectype is the type of the LHS.
27620         (supportable_widening_operation, supportable_narrowing_operation):
27621         Get both input and output vector types as arguments.
27622         (vect_is_simple_use_1): Declare.
27623         (get_same_sized_vectype): Likewise.
27624         * tree-vect-loop.c (vect_determine_vectorization_factor):
27625         Set STMT_VINFO_VECTYPE to the vector type of the def.
27626         (vectorizable_reduction): Adjust.
27627         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
27628         Adjust.  Specify the output vector type.
27629         (vect_pattern_recog_1): Adjust.
27630         * tree-vect-stmts.c (get_same_sized_vectype): New function.
27631         (vectorizable_call): Adjust.
27632         (vectorizable_conversion): Likewise.
27633         (vectorizable_operation): Likewise.
27634         (vectorizable_type_demotion): Likewise.
27635         (vectorizable_type_promotion): Likewise.
27636         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
27637         the def.
27638         (vect_is_simple_use_1): New function.
27639         (supportable_widening_operation): Get both input and output
27640         vector types.
27641         (supportable_narrowing_operation): Likewise.
27642         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
27643
27644 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
27645
27646         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
27647         __thiscall and _thiscall as predefined macros.
27648         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
27649         thiscall attribute handling.
27650         (ix86_comp_type_attributes): Likewise.
27651         (ix86_function_regparm): Likewise.
27652         (ix86_return_pops_args): Likewise.
27653         (init_cumulative_args): Likewise.
27654         (find_drap_reg): Likewise.
27655         (ix86_static_chain): Likewise.
27656         (x86_this_parameter): Likewise.
27657         (x86_output_mi_thunk): Likewise.
27658         (ix86_attribute_table): Add description for thiscall attribute.
27659         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
27660         * doc/extend.texi: Add documentation for thiscall.
27661
27662 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27663
27664         PR c++/28584
27665         * c.opt (Wint-to-pointer-cast): Available in C++.
27666         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
27667
27668 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
27669
27670         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
27671         * calls.c (expand_call): Pass the function type to aggregate_value_p.
27672         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
27673         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
27674         function type instead.  Reorder and simplify checks.
27675
27676         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
27677
27678 2010-04-08  Jing Yu  <jingyu@google.com>
27679             Zdenek Dvorak  <ook@ucw.cz>
27680
27681         PR tree-optimization/42720
27682         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
27683         loop unswitch conditions here from ...
27684         (tree_unswitch_single_loop): ... here.
27685
27686 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
27687
27688         * tree-if-conv.c: Fix comments and simplify logic.
27689
27690 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
27691
27692         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
27693         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
27694         (main_tree_if_conversion): Update call to tree_if_conversion.
27695
27696 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27697
27698         PR 42485
27699         * doc/invoke.texi (-b,-V): Delete.
27700         * doc/tm.texi: Do not mention -b.
27701         * gcc.c (display_help): Delete -b and -V.
27702         (process_command): Delete -b and -V.
27703         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
27704
27705 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
27706             Wolfgang Gellerich  <gellerich@de.ibm.com>
27707
27708         Implement target hook for loop unrolling
27709         * target.h (loop_unroll_adjust): Add a new target hook function.
27710         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
27711         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
27712         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
27713         (s390_loop_unroll_adjust): Implement the new target hook for s390.
27714         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
27715         target hook.
27716         (decide_unroll_stupid): Likewise.
27717
27718 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27719
27720         PR target/43643
27721         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
27722
27723 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27724
27725         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
27726         (Specific, *-*-solaris2*): Likewise.
27727         Don't prefer Sun as over GNU as.
27728
27729 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
27730
27731         * config/s390/s390.c (override_options): Adjust the z10 defaults
27732         for max-unroll-times, max-completely-peeled-insns
27733         and max-completely-peel-times.
27734
27735 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27736
27737         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
27738         instructions for z10.
27739         (s390_expand_setmem): Likewise.
27740         (s390_expand_cmpmem): Likewise.
27741
27742 2010-04-08  Richard Guenther  <rguenther@suse.de>
27743
27744         PR tree-optimization/43679
27745         * tree-ssa-pre.c (eliminate): Only propagate copies.
27746
27747 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
27748
27749         PR bootstrap/43681
27750         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
27751         set but not used variable warning.
27752
27753 2010-04-08  Wei Guozhi  <carrot@google.com>
27754
27755         PR target/41653
27756         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
27757         (arm_size_rtx_costs): Call the new function when optimized for size.
27758
27759 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
27760
27761         PR debug/43670
27762         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
27763         op0 is not a MEM, just return NULL instead of assertion
27764         failure.
27765         (discover_nonconstant_array_refs): Don't walk debug stmts.
27766
27767 2010-04-08  Doug Kwan  <dougkwan@google.com>
27768
27769         * configure.ac: Recognize gold and do not use its version number
27770         to test ld features.
27771         * configure: Regenerate.
27772
27773 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
27774
27775         PR middle-end/40815
27776         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
27777         (negate_value): Move code to push elements to broken_up_substracts ...
27778         (eliminate_plus_minus_pair): ... here.  Push operands that have no
27779         negative pair to plus_negates.
27780         (repropagate_negates, init_reassoc, fini_reassoc): Update.
27781
27782 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27783
27784         * doc/install.texi (Configuration): Move description of
27785         --enable-lto, --with-libelf*, --enable-gold from Java section to
27786         general section.
27787
27788         * doc/generic.texi (Working with declarations)
27789         (Function Properties, C and C++ Trees): Fix typos.
27790         * doc/sourcebuild.texi (Top Level): Likewise.
27791
27792 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
27793
27794         PR c/18624
27795         * tree.h (DECL_READ_P): Define.
27796         (struct tree_decl_common): Add decl_read_flag.
27797         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
27798         a set but not used warning.
27799         (merge_decls): Merge DECL_READ_P flag.
27800         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
27801         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
27802         * c-common.c (handle_used_attribute, handle_unused_attribute):
27803         Likewise.
27804         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
27805         New prototypes.
27806         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
27807         New functions.
27808         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
27809         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
27810         c_parser_binary_expression, c_parser_cast_expression,
27811         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
27812         Call default_function_array_read_conversion instead of
27813         default_function_array_conversion where needed.
27814         (c_parser_unary_expression, c_parser_conditional_expression,
27815         c_parser_postfix_expression_after_primary, c_parser_initelt):
27816         Likewise.  Call mark_exp_read where needed.
27817         (c_parser_statement_after_labels, c_parser_asm_operands,
27818         c_parser_typeof_specifier, c_parser_sizeof_expression,
27819         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
27820         where needed.
27821         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
27822         New.
27823         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
27824         (warn_unused_but_set_parameter): Default to warn_unused
27825         && extra_warnings.
27826         * doc/invoke.texi: Document -Wunused-but-set-variable and
27827         -Wunused-but-set-parameter.
27828
27829         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
27830         used count variable.
27831         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
27832         when operandN variables aren't used in the body of the expander
27833         or splitter.
27834         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
27835         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
27836         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
27837         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
27838         FOR_EACH_IMM_USE_ON_STMT): Likewise.
27839         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
27840         * tree.c (PROCESS_ARG): Likewise.
27841
27842 2010-04-07  Simon Baldwin  <simonb@google.com>
27843
27844         * diagnostic.h (diagnostic_override_option_index): New macro to
27845         set a diagnostic's option_index.
27846         * c-tree.h (c_cpp_error): Add warning reason argument.
27847         * opts.c (_warning_as_error_callback): New.
27848         (register_warning_as_error_callback): Store callback for
27849         warnings enabled via enable_warning_as_error.
27850         (enable_warning_as_error): Call callback, minor code tidy.
27851         * opts.h (register_warning_as_error_callback): Declare.
27852         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
27853         response to -Werror=.
27854         (c_common_init_options): Register warning_as_error_callback in opts.c.
27855         * common.opt: Add -Wno-cpp option.
27856         * c-common.c (struct reason_option_codes_t): Map cpp warning
27857         reason codes to gcc option indexes.
27858         * (c_option_controlling_cpp_error): New function, lookup the gcc
27859         option index for a cpp warning reason code.
27860         * (c_cpp_error): Add warning reason argument, call
27861         c_option_controlling_cpp_error for diagnostic_override_option_index.
27862         * doc/invoke.texi: Document -Wno-cpp.
27863
27864 2010-04-07  Richard Guenther  <rguenther@suse.de>
27865
27866         * ipa-reference.c (mark_load): Use get_base_address.
27867         (mark_store): Likewise.
27868
27869         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
27870         inserting GIMPLE_NOPs into the IL.
27871         * tree-ssa-structalias.c (get_constraint_for_component_ref):
27872         Explicitly strip handled components and indirect references.
27873
27874         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
27875         folding address expressions.
27876         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
27877         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
27878         operand_equal_p to compare decls.
27879         (ptr_deref_may_alias_decl_p): Likewise.
27880         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
27881         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
27882         Handle reversed comparison ops.
27883         * tree-sra.c (asm_visit_addr): Use get_base_address.
27884         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
27885         * ipa-reference.c (mark_address): Use get_base_address.
27886
27887 2010-04-07  Richard Guenther  <rguenther@suse.de>
27888
27889         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
27890         Propagate constants everywhere.
27891
27892 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
27893
27894         PR debug/43516
27895         * tree.c (MAX_INT_CACHED_PREC): Define.
27896         (nonstandard_integer_type_cache): New array.
27897         (build_nonstandard_integer_type): Cache results for precision
27898         <= MAX_INT_CACHED_PREC.
27899
27900 2010-04-07  Richard Guenther  <rguenther@suse.de>
27901
27902         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
27903         -fargument-noalias-global, -fargument-noalias-anything): Remove.
27904         * common.opt: Likewise.
27905         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
27906         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
27907         (nonoverlapping_memrefs_p): Likewise.
27908         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
27909         * opts.c (common_handle_option): Handle OPT_fargument_alias,
27910         OPT_fargument_noalias, OPT_fargument_noalias_anything and
27911         OPT_fargument_noalias_global for backward compatibility.
27912
27913 2010-04-07  Richard Guenther  <rguenther@suse.de>
27914
27915         PR tree-optimization/43270
27916         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
27917         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
27918         * tree-ssa-pre.c (phi_translate_1): Adjust.
27919         (fully_constant_expression): Split out vn_reference handling to ...
27920         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
27921         Fold reads from constant strings.
27922         (vn_reference_lookup): Handle fully constant references.
27923         (vn_reference_lookup_pieces): Likewise.
27924         * Makefile.in (expmed.o-warn): Add -Wno-error.
27925
27926 2010-04-07  Martin Jambor  <mjambor@suse.cz>
27927
27928         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
27929
27930 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
27931
27932         PR driver/41594
27933         * gcc.c: Add -static-libstdc++ to list of recognized options.
27934
27935 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27936
27937         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
27938
27939 2010-04-07  Richard Guenther  <rguenther@suse.de>
27940
27941         PR middle-end/42617
27942         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
27943         bases build simple mem attributes to retain points-to information.
27944
27945 2010-04-07  Richard Guenther  <rguenther@suse.de>
27946
27947         PR middle-end/42617
27948         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
27949         preserve points-to related information.
27950
27951 2010-04-07  Richard Guenther  <rguenther@suse.de>
27952
27953         PR middle-end/42617
27954         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
27955         discard plain indirect references.
27956         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
27957         * tree.c (tree_nop_conversion): Likewise.
27958
27959 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
27960
27961         PR debug/43628
27962         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
27963
27964 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
27965
27966         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
27967         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
27968
27969 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
27970
27971         * tree-if-conv.c: Fix indentation and comments.
27972
27973 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
27974
27975         * tree-if-conv.c: Sort static functions in topological order.
27976
27977 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
27978
27979         * tree-if-conv.c: Fix indentation and comments.
27980
27981 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27982
27983         PR middle-end/43519
27984         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
27985         lang_hooks.types.type_for_size instead of
27986         build_nonstandard_integer_type.
27987         When converting an unsigned type to signed, double its precision.
27988         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
27989         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
27990         (graphite_create_new_loop_guard): When ub + 1 wraps around,
27991         use lb <= ub.
27992
27993 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27994
27995         PR middle-end/43519
27996         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
27997         POINTER_PLUS_EXPR for pointer types.
27998
27999 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
28000
28001         PR middle-end/43519
28002         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
28003         * graphite-clast-to-gimple.c: Include langhooks.h.
28004         (max_signed_precision_type): New.
28005         (max_precision_type): Takes two types as arguments.
28006         (precision_for_value): New.
28007         (precision_for_interval): New.
28008         (gcc_type_for_interval): New.
28009         (gcc_type_for_value): New.
28010         (gcc_type_for_clast_term): New.
28011         (gcc_type_for_clast_red): New.
28012         (gcc_type_for_clast_bin): New.
28013         (gcc_type_for_clast_expr): Split up into several functions.
28014         (gcc_type_for_clast_eq): Rewritten.
28015         (compute_bounds_for_level): New.
28016         (compute_type_for_level_1): New.
28017         (compute_type_for_level): New.
28018         (gcc_type_for_cloog_iv): Removed.
28019         (gcc_type_for_iv_of_clast_loop): Rewritten.
28020         (graphite_create_new_loop): Compute the lower and upper bound types
28021         with gcc_type_for_clast_expr.
28022         (graphite_create_new_loop_guard): Same.
28023         (find_cloog_iv_in_expr): Removed.
28024         (compute_cloog_iv_types_1): Removed.
28025         (compute_cloog_iv_types): Removed.
28026         (gloog): Do not call compute_cloog_iv_types.
28027         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
28028         GBB_CLOOG_IV_TYPES.
28029         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
28030         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
28031         (GBB_CLOOG_IV_TYPES): Removed.
28032
28033 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
28034
28035         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
28036         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
28037         (detect_commutative_reduction): Same.
28038
28039 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
28040
28041         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
28042         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
28043         argument.
28044         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
28045         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
28046         (rewrite_commutative_reductions_out_of_ssa): Same.
28047         * passes.c (execute_function_todo): Call verify_ssa for every pass
28048         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
28049         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
28050         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
28051         with an extra argument.
28052         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
28053         verify_ssa only when the extra argument is true.
28054         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
28055         with an extra argument.
28056         (tree_transform_and_unroll_loop): Same.
28057
28058 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
28059
28060         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
28061         for all the passes of the LNO having LOOP_CLOSED_SSA.
28062         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
28063         * tree-loop-distribution.c (pass_loop_distribution): Same.
28064         * tree-pass.h (TODO_verify_loops): Removed.
28065         * tree-ssa-loop.c (pass_tree_loop_init): Same.
28066         (pass_lim): Same.
28067         (pass_tree_unswitch): Same.
28068         (pass_predcom): Same.
28069         (pass_vectorize): Same.
28070         (pass_linear_transform): Same.
28071         (pass_graphite_transforms): Same.
28072         (pass_iv_canon): Same.
28073         (pass_complete_unroll): Same.
28074         (pass_complete_unrolli): Same.
28075         (pass_parallelize_loops): Same.
28076         (pass_loop_prefetch): Same.
28077         (pass_iv_optimize): Same.
28078
28079 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
28080
28081         PR middle-end/32824
28082         * passes.c (init_optimization_passes): Move pass_lim before
28083         pass_copy_prop and pass_dce_loop.
28084
28085 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
28086
28087         PR target/43667
28088         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
28089         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
28090         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
28091         MULTI_* defines for 4 argument vpermil2p* builtins.
28092
28093 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
28094
28095         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
28096         * config/i386/i386.c (x86_maybe_negate_const_int): New.
28097         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
28098         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
28099         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
28100         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
28101         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
28102         Use x86_maybe_negate_const_int to output insn mnemonic.
28103         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
28104         check from instruction predicate.  Update comments.
28105         * config/i386/sync.md (sync_add<mode>): Use
28106         x86_maybe_negate_const_int to output insn mnemonic.
28107
28108 2010-04-06  Jan Hubicka  <jh@suse.cz>
28109
28110         PR tree-optimization/42906
28111         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
28112         IGNORE_SELF argument.  Set visited_control_parents for fully
28113         processed BBs.
28114         (find_obviously_necessary_stmts): Update call of
28115         mark_control_dependent_edges_necessary.
28116         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
28117
28118 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
28119
28120         * config/i386/i386.md: Remove comment about 'e' and 'E'
28121         operand modifier.
28122
28123 2010-04-06  Richard Guenther  <rguenther@suse.de>
28124
28125         PR tree-optimization/43627
28126         * tree-vrp.c (extract_range_from_unary_expr): Widenings
28127         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
28128         not varying.
28129
28130 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
28131
28132         * BASE-VER: Change to 4.6.0.
28133
28134         PR target/43638
28135         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
28136         handling.
28137
28138 2010-04-06  Richard Guenther  <rguenther@suse.de>
28139
28140         PR middle-end/43661
28141         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
28142
28143 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28144
28145         * doc/invoke.texi (Optimize Options): Document that LTO
28146         won't remove object access purely due to incompatible
28147         declarations.
28148
28149 2010-04-04  Matthias Klose  <doko@ubuntu.com>
28150
28151         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
28152         Initialize variable.
28153
28154 2010-04-03  Richard Guenther  <rguenther@suse.de>
28155
28156         PR middle-end/42509
28157         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
28158         require a non-NULL MEM_OFFSET.
28159
28160 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
28161
28162         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
28163         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
28164         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
28165         config/alpha/predicates.md, config/arm/arm.md,
28166         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
28167         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
28168         config/darwin9.h, config/darwin.c, config/darwin.h,
28169         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
28170         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
28171         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
28172         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
28173         config/mips/mips.md, config/mn10300/mn10300.c,
28174         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
28175         config/rs6000/aix.h, config/rs6000/dfp.md,
28176         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
28177         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
28178         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
28179         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
28180         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
28181         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
28182         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
28183         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
28184         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
28185         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
28186         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
28187         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
28188         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
28189         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
28190         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
28191         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
28192         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
28193         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
28194         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
28195         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
28196         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
28197         opt-functions.awk, opth-gen.awk, params.def, passes.c,
28198         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
28199         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
28200         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
28201         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
28202         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
28203         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
28204         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
28205         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
28206         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
28207         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
28208         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
28209         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
28210         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
28211         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
28212
28213 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28214
28215         PR other/43620
28216         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
28217         * aclocal.m4: Regenerate.
28218
28219 2010-04-02  Richard Guenther  <rguenther@suse.de>
28220
28221         PR tree-optimization/43629
28222         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
28223         if we have seen a constant value.
28224
28225 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
28226
28227         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
28228
28229 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
28230
28231         PR target/43469
28232         * arm.c (legitimize_tls_address): Adjust call to
28233         gen_tls_load_dot_plus_four.
28234         (arm_note_pic_base): New function.
28235         (arm_cannot_copy_insn_p): Use it.
28236         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
28237         constraint.
28238
28239 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28240
28241         PR bootstrap/43531
28242
28243         Revert:
28244         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28245
28246         * Makefile.in ($(out_object_file)): Depend on
28247         gt-$(basename $(notdir $(out_file))).h.
28248
28249 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
28250
28251         * config.gcc (lm32-*-rtems*): Add t-lm32.
28252
28253 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
28254
28255         * config.gcc: Add lm32-*-rtems*.
28256         * config/lm32/rtems.h: New file.
28257
28258 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
28259
28260         PR target/42609
28261         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
28262
28263 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
28264
28265         * dwarf2out.c (output_compilation_unit_header): For
28266         -gdwarf-4 use version 4 instead of version 3.
28267         (output_line_info): For version 4 and above emit additional
28268         maximum ops per insn header field.
28269         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
28270
28271         * dwarf2out.c (is_c_family, is_java): Remove.
28272         (lower_bound_default): New function.
28273         (add_bound_info, gen_descr_array_type_die): Use it.
28274
28275 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
28276
28277         PR debug/43325
28278         * dwarf2out.c (gen_variable_die): Allow debug info for variable
28279         re-declaration when it happens in a function.
28280
28281 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
28282
28283         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
28284         (cgraph_remove_function_insertion_hook): Same.
28285         (cgraph_call_function_insertion_hooks): Same.
28286
28287 2010-04-01  Richard Guenther  <rguenther@suse.de>
28288
28289         PR middle-end/43614
28290         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
28291         and TREE_THIS_VOLATILE.
28292         (copy_ref_info): Likewise.
28293         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
28294         * tree.c (build6_stat): Ignore side-effects of all but arg5
28295         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
28296         TARGET_MEM_REF.
28297
28298 2010-04-01  Richard Guenther  <rguenther@suse.de>
28299
28300         PR tree-optimization/43607
28301         * ipa-type-escape.c (check_call): Do not access non-existing
28302         arguments.
28303
28304 2010-04-01  Richard Guenther  <rguenther@suse.de>
28305
28306         PR middle-end/43602
28307         Revert
28308         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
28309                     Jack Howarth  <howarth@bromo.med.uc.edu>
28310
28311         * tree-profile.c (tree_init_ic_make_global_vars): Make static
28312         variables TLS.
28313
28314 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28315
28316         * doc/install.texi (Prerequisites): Document libelf usability on
28317         IRIX 5/6 and Solaris 2.
28318         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
28319         Update GNU as, GNU ld requirements.
28320         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
28321         Document Sun Studio compiler download.
28322         Update and simplify as, ld recommendations.
28323         (Specific, *-*-solaris2.7): Note obsoletion, removal.
28324
28325 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28326
28327         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
28328         with_tune_32 to pentium4.
28329
28330 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
28331
28332         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
28333
28334 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28335
28336         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
28337         obsoletion, removal.
28338         Update IDO URL.
28339         Document GNU as requirement.
28340         Update configure requirements.
28341         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
28342         Recomment IRIX 6.5.18+.
28343         Document IDF/IDL requirement.
28344         Document GNU as requirement.
28345         Document GNU ld bootstrap failure.
28346         Remove freeware.sgi.com reference.
28347
28348 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28349
28350         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
28351         UNIX V4.0, V5.0 obsoletion, removal.
28352         Remove --with-gc=simple reference.
28353         Update VM requirements during bootstrap.
28354         Remove -oldas bootstrap description.
28355         Update binutils reference.
28356         Remove comparison failure note.
28357
28358 2010-03-31  Richard Guenther  <rguenther@suse.de>
28359             Zdenek Dvorak  <ook@ucw.cz>
28360             Sebastian Pop  <sebastian.pop@amd.com>
28361
28362         PR middle-end/43464
28363         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
28364         with multiple arguments.
28365         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
28366
28367 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
28368
28369         * graphite-dependences.c (print_pddr): Call print_pdr with an
28370         extra argument.
28371         * graphite-poly.c (debug_pdr): Add an extra argument for the
28372         verbosity level.
28373         (print_pdr): Same.
28374         (print_pbb_domain): Same.
28375         (print_pbb): Same.
28376         (print_scop_context): Same.
28377         (print_scop): Same.
28378         (print_cloog): Same.
28379         (debug_pbb_domain): Same.
28380         (debug_pbb): Same.
28381         (print_pdrs): Same.
28382         (debug_pdrs): Same.
28383         (debug_scop_context): Same.
28384         (debug_scop): Same.
28385         (debug_cloog): Same.
28386         (print_scop_params): Same.
28387         (debug_scop_params): Same.
28388         (print_iteration_domain): Same.
28389         (print_iteration_domains): Same.
28390         (debug_iteration_domain): Same.
28391         (debug_iteration_domains): Same.
28392         (print_scattering_function): Same.
28393         (print_scattering_functions): Same.
28394         (debug_scattering_function): Same.
28395         (debug_scattering_functions): Same.
28396         * graphite-poly.h (debug_pdr): Update declaration.
28397         (print_pdr): Same.
28398         (print_pbb_domain): Same.
28399         (print_pbb): Same.
28400         (print_scop_context): Same.
28401         (print_scop): Same.
28402         (print_cloog): Same.
28403         (debug_pbb_domain): Same.
28404         (debug_pbb): Same.
28405         (print_pdrs): Same.
28406         (debug_pdrs): Same.
28407         (debug_scop_context): Same.
28408         (debug_scop): Same.
28409         (debug_cloog): Same.
28410         (print_scop_params): Same.
28411         (debug_scop_params): Same.
28412         (print_iteration_domain): Same.
28413         (print_iteration_domains): Same.
28414         (debug_iteration_domain): Same.
28415         (debug_iteration_domains): Same.
28416         (print_scattering_function): Same.
28417         (print_scattering_functions): Same.
28418         (debug_scattering_function): Same.
28419         (debug_scattering_functions): Same.
28420
28421 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
28422
28423         * graphite-poly.c (print_scattering_function_1): New.
28424         (print_scattering_function): Call it.
28425         (print_scop_params): Remove spaces at the end of lines.
28426         (print_cloog): New.
28427         (debug_cloog): New.
28428         * graphite-poly.h (print_cloog): Declared.
28429         (debug_cloog): Declared.
28430
28431 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
28432
28433         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
28434         in loop->header.
28435         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
28436         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
28437         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
28438         to switch between adding the IV bump in loop->latch or in loop->header.
28439
28440 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
28441
28442         * graphite-poly.c (print_scattering_function): Pretty print following
28443         the scoplib format.
28444         (print_pdr): Same.
28445         (print_pbb_domain): Same.
28446         (dump_gbb_cases): Same.
28447         (dump_gbb_conditions): Same.
28448         (print_pdrs): Same.
28449         (print_pbb): Same.
28450         (print_scop_params): Same.
28451         (print_scop_context): Same.
28452         (print_scop): Same.
28453         (print_pbb_body): New.
28454         (lst_indent_to): New.
28455         (print_lst): Start new lines with a #.
28456         * graphite-poly.h (pbb_bb): New.
28457         (pbb_index): Use pbb_bb.
28458         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
28459         disjuncts.
28460         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
28461
28462 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
28463
28464         * dwarf2out.c (size_of_die): For -gdwarf-4 use
28465         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
28466         and 0 instead of 1 for dw_val_class_flag.
28467         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
28468         dw_val_class_range_list, dw_val_class_loc_list,
28469         dw_val_class_lineptr and dw_val_class_macptr, use
28470         DW_FORM_flag_present for dw_val_class_flag and
28471         DW_FORM_exprloc for dw_val_class_loc.
28472         (output_die): For -gdwarf-4 print dw_val_class_loc
28473         size as uleb128 instead of 1 or 2 bytes and don't print
28474         anything for dw_val_class_flag.
28475
28476         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
28477         instead of cselib_lookup following by tweaking locs->setting_insn.
28478
28479         PR bootstrap/43596
28480         * cselib.c (cselib_process_insn): Clear cselib_current_insn
28481         even before returning from label, setjmp call or volatile asm
28482         handling.
28483
28484 2010-03-31  Richard Guenther  <rguenther@suse.de>
28485
28486         PR middle-end/43600
28487         * cgraphunit.c (cgraph_output_in_order): Do not allocate
28488         temporary data on stack.
28489
28490 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28491
28492         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
28493         (PUSHSECTION_ASM_OP): Remove.
28494         (POPSECTION_ASM_OP): Remove.
28495         (PUSHSECTION_FORMAT): Remove.
28496         * config/sol2.h (PUSHSECTION_FORMAT): Define.
28497         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
28498         * config/sol2.c (solaris_output_init_fini): Use it.
28499
28500 2010-03-31  Jie Zhang  <jie@codesourcery.com>
28501
28502         PR 43574
28503         * opt-functions.awk (var_type_struct): Use signed char type
28504         for simple variables.
28505
28506 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28507
28508         * config/sol2.c: Include output.h.
28509         (solaris_assemble_visibility): New function.
28510         * config/t-sol2 (sol2.o): Add output.h dependency.
28511         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
28512         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
28513         Redefine.
28514
28515 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
28516
28517         PR target/43580
28518         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
28519         V2SImode or XFmode on PRE_DEC.
28520
28521         PR debug/43557
28522         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
28523         BLKmode.
28524
28525 2010-03-31  Jie Zhang  <jie@codesourcery.com>
28526
28527         PR 43562
28528         * reload.h (caller_save_initialized_p): Declare.
28529         * toplev.c (backend_init_target): Don't call
28530         init_caller_save but set caller_save_initialized_p to false.
28531         * caller-save.c (caller_save_initialized_p): Define.
28532         (init_caller_save): Check caller_save_initialized_p.
28533         * ira.c (ira): Call init_caller_save if flag_caller_saves.
28534
28535 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28536
28537         PR target/39048
28538         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
28539         and soft-fp/t-softfp to tmake_file.
28540         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
28541         (LIBGCC2_TF_CEXT): Define.
28542         (TF_SIZE): Define.
28543
28544 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
28545
28546         PR debug/42977
28547         * cselib.c (n_useless_values): Document handling of debug locs.
28548         (n_useless_debug_values, n_debug_values): New variables.
28549         (new_elt_loc_list): Don't add to debug values, keep count.
28550         (promote_debug_loc): New.
28551         (cselib_reset_table): Zero new variables.
28552         (entry_and_rtx_equal_p): Promote debug locs.
28553         (discard_useless_locs): Increment n_useless_debug_values for
28554         debug values.
28555         (remove_useless_values): Adjust n_useless_values and n_debug_values
28556         with n_useless_debug_values.
28557         (add_mem_for_addr): Promote debug locs.
28558         (cselib_lookup_mem): Likewise.
28559         (cselib_lookup_addr): Renamed to...
28560         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
28561         (cselib_log_lookup): ... this.  Turn into...
28562         (cselib_lookup_addr): ... new wrapper.
28563         (cselib_lookup_from_insn): New.
28564         (cselib_invalidate_regno): Increment n_useless_debug_values for
28565         debug values.
28566         (cselib_invalidate_mem): Likewise.
28567         (cselib_process_insn): Take n_deleted and n_debug_values into
28568         account to guard remove_useless_value call.
28569         (cselib_finish): Zero n_useless_debug_values.
28570         * cselib.h (cselib_lookup_from_insn): Declare.
28571         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
28572         (sched_analyze_2): Likewise.
28573
28574 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
28575
28576         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
28577         functions.
28578         (adjust_mems): Replace narrowing SUBREG of expression containing
28579         just PLUS, MINUS, MULT and ASHIFT of registers and constants
28580         with operations in the narrower mode.
28581
28582         PR debug/43593
28583         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
28584         regs_invalidated_by_call instead all call_used_reg_set registers.
28585
28586 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
28587
28588         PR middle-end/43430
28589         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
28590         pointer comparisons with types_compatible_p.
28591         * tree-vect-stmts.c (vectorizable_call): Same.
28592         (vectorizable_condition): Same.
28593
28594 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28595
28596         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
28597         stack check if the mask would be zero.
28598
28599 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
28600             Jack Howarth  <howarth@bromo.med.uc.edu>
28601
28602         * tree-profile.c (tree_init_ic_make_global_vars): Make static
28603         variables TLS.
28604
28605 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
28606
28607         PR other/25232
28608         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
28609         and __unordtf2.
28610         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
28611         Include ___unordxf2 and ___unordtf2.
28612         * config/i386/libgcc-glibc.ver: Do not define inheritance from
28613         GCC_4.4.0 here.
28614
28615 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
28616
28617         * config/lm32/t-lm32: New file.
28618         * config.gcc: Use the above file when targetting lm32.
28619
28620 2010-03-28  Duncan Sands  <baldrick@free.fr>
28621
28622         * Makefile.in (PLUGIN_HEADERS): Add except.h.
28623
28624 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
28625
28626         PR middle-end/43431
28627         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
28628         Improve vectorization cost model diagnostic.
28629
28630 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
28631
28632         PR middle-end/43436
28633         * tree-vect-data-refs.c (vect_analyze_data_refs): When
28634         compute_data_dependences_for_loop returns false, early exit
28635         and output an extra diagnostic for the failed data reference
28636         analysis.
28637
28638 2010-03-29  Richard Guenther  <rguenther@suse.de>
28639
28640         PR tree-optimization/43560
28641         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
28642         (can_sm_ref_p): Treat stores to readonly locations as trapping.
28643
28644 2010-03-29  Jie Zhang  <jie@codesourcery.com>
28645
28646         PR 43564
28647         * toplev.c (process_options): Set optimization_default_node
28648         and optimization_current_node.
28649         * opts.c (decode_options): Don't set optimization_default_node
28650         and optimization_current_node.
28651
28652 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
28653
28654         * config/rtems.h: Abandon -qrtems_debug.
28655
28656 2010-03-28  Jan Hubicka  <jh@suse.cz>
28657
28658         PR tree-optimization/43505
28659         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
28660         map should not be copied.
28661
28662 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28663
28664         PR middle-end/41674
28665         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
28666         cdtors, set DECL_PRESERVE_P.
28667         * ipa.c (cgraph_externally_visible_p): Return true if declaration
28668         should be preseved.
28669
28670 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
28671
28672         PR tree-optimization/43528
28673         * stor-layout.c (place_field): Check that constant fits into
28674         unsigned HWI when skipping calculation of MS bitfield layout.
28675
28676 2010-03-27  Jan Hubicka  <jh@suse.cz>
28677
28678         PR middle-end/43391
28679         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
28680         notice_global_symbol work.
28681
28682 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
28683
28684         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
28685         instead of dwarf2out_decl.
28686         (struct var_loc_node): Remove section_label field.
28687         (dwarf2out_function_decl): New function.
28688         (dwarf2out_var_location): Don't set section_label field.
28689         (dwarf2out_begin_function): Don't empty decl_loc_table here.
28690
28691 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
28692
28693         PR tree-optimization/43544
28694         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
28695         First argument for builtin vectorized function hook is now a
28696         tree to be able to distinguish between machine specific and
28697         standard builtins.
28698         * targhooks.c (default_builtin_vectorized_function): Ditto.
28699         * targhooks.h (default_builtin_vectorized_function): Ditto.
28700         * target.h (struct gcc_target): Ditto.
28701         * tree-vect-stmts.c (vectorizable_function): Ditto.
28702         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
28703         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
28704         Ditto.
28705
28706 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
28707
28708         PR c/43381
28709         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
28710         nested binding iff it is a FUNCTION_DECL.
28711         (store_parm_decls_newstyle): Pass nested=true to bind for
28712         FUNCTION_DECLs amongst parameters.
28713
28714 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
28715
28716         * var-tracking.c (vt_expand_loc_callback): Don't run
28717         cselib_expand_value_rtx_cb in dummy mode if
28718         cselib_dummy_expand_value_rtx_cb returned false.
28719
28720         * var-tracking.c (emit_note_insn_var_location): For one part
28721         notes with offset 0, don't add EXPR_LIST around the location.
28722         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
28723         add_location_or_const_value_attribute): Adjust for that change.
28724
28725         PR debug/43540
28726         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
28727         into first operand and location into second.
28728         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
28729         dw_cfi_oprnd_loc for DW_CFA_expression.
28730         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
28731         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
28732         assume first argument is regnum and second argument is location.
28733
28734 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
28735
28736         PR target/42113
28737         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
28738         of scratch register to DImode.  Split to DImode comparison operator.
28739         Use SImode subreg of scratch register in the multiplication.
28740         (*cmp_sadd_sidi): Ditto.
28741         (*cmp_ssub_si): Ditto.
28742         (*cmp_ssub_sidi): Ditto.
28743
28744 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
28745
28746         PR target/43524
28747         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
28748         Remove invalid assert and wrong comment.
28749
28750 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
28751
28752         PR debug/43516
28753         * flags.h (final_insns_dump_p): New extern.
28754         * final.c (final_insns_dump_p): New variable.
28755         (rest_of_clean_state): Set it before -fdump-final-insns=
28756         dumping, clear afterwards.
28757         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
28758         MEM_ALIAS_SET on MEMs.
28759
28760 2010-03-26  David S. Miller  <davem@davemloft.net>
28761
28762         * configure.ac: Fix sparc GOTDATA_OP bug check.
28763         * configure: Rebuild.
28764
28765 2010-03-26  Alan Modra  <amodra@gmail.com>
28766
28767         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
28768
28769 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28770
28771         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
28772         TLS_SECTION_ASM_FLAG.
28773
28774 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
28775
28776         PR bootstrap/43511
28777         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
28778         Clear first_function_block_is_cold.
28779
28780         PR c/43385
28781         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
28782         argument if the argument is truth_value_p.
28783
28784 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
28785
28786         * config/rs6000/constraints.md: Update copyright year for my changes.
28787
28788         PR target/43484
28789         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
28790         used in reg+reg addressing, swap registers.
28791
28792 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
28793
28794         PR debug/43293
28795         * target.h (struct gcc_target): Add code_end hook.
28796         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
28797         if not yet defined.
28798         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
28799         * toplev.c (compile_file): Call targetm.asm_out.code_end
28800         hook before unwind info/debug info output.
28801         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
28802         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
28803         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
28804         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
28805         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
28806         * config/i386/i386.c (ix86_file_end): Renamed to...
28807         (ix86_code_end): ... this.  Make static.  Don't call
28808         file_end_indicate_exec_stack.  Emit unwind info using
28809         final_start_function/final_end_function.
28810         (darwin_x86_file_end): Remove.
28811         (TARGET_ASM_CODE_END): Define.
28812         * config/i386/i386.h (TARGET_ASM_FILE_END,
28813         NEED_INDICATE_EXEC_STACK): Don't define.
28814         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
28815         (TARGET_ASM_FILE_END): Define to darwin_file_end.
28816         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
28817         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
28818
28819         PR target/43498
28820         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
28821         at the beginning and final_end_function at the end.
28822         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
28823
28824 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28825
28826         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
28827         and Sun as TLS syntax.
28828         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
28829         * configure: Regenerate.
28830         * config.in: Regenerate.
28831         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
28832         (default_elf_asm_named_section): Use it.
28833         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
28834         (i386_output_dwarf_dtprel): Likewise.
28835         (output_addr_const_extra): Likewise.
28836         (output_pic_addr_const): Lowercase @GOTTPOFF.
28837         (output_addr_const_extra): Likewise.
28838         (output_pic_addr_const): Lowercase @GOTNTPOFF.
28839         (output_addr_const_extra): Likewise.
28840         (output_pic_addr_const): Lowercase @INDNTPOFF.
28841         (output_addr_const_extra): Likewise.
28842         (output_pic_addr_const): Lowercase @NTPOFF.
28843         (output_addr_const_extra): Likewise.
28844         (output_pic_addr_const): Lowercase @TPOFF.
28845         (output_addr_const_extra): Likewise.
28846         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
28847         (*tls_global_dynamic_64): Likewise.
28848         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
28849         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
28850
28851         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
28852         (ASM_OUTPUT_TLS_COMMON): Use it.
28853         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
28854
28855         PR target/38118
28856         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
28857         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
28858         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
28859         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
28860         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
28861         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
28862
28863 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28864
28865         * config/i386/i386.c (override_options): Don't accept
28866         -mtls-dialect=sun any longer.
28867         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
28868         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
28869         (*tls_local_dynamic_base_32_sun): Likewise.
28870         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
28871
28872 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
28873
28874         PR debug/43508
28875         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
28876         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
28877
28878         PR debug/43479
28879         * ira.c (adjust_cleared_regs): New function.
28880         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
28881
28882         PR debug/19192
28883         PR debug/43479
28884         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
28885         from gimple_block.
28886         * expr.c (expand_expr_real): Restore previous
28887         curr_insn_source_location and curr_insn_block after
28888         expand_expr_real_1 call.
28889         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
28890         instead of expand_expr_real_1.
28891
28892 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
28893
28894         PR rtl-optimization/43413
28895         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
28896         hard regs too.
28897
28898 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
28899
28900         PR target/43348
28901         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
28902         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
28903
28904 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
28905
28906         * config/i386/i386.c (ix86_target_string): Add -mfma.
28907         Fix a typo in comment.
28908
28909 2010-03-22  Mike Stump  <mikestump@comcast.net>
28910
28911         PR target/23071
28912         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
28913         Don't overly align based upon packed packed fields.
28914
28915 2010-03-22  Jason Merrill  <jason@redhat.com>
28916
28917         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
28918         Use () rather than [], and move before the element type.
28919
28920 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28921
28922         * doc/configfiles.texi (Configuration Files): Removed
28923         fixinc/Makefile*, intl/Makefile.*.
28924         * doc/makefile.texi: Fixed markup. Abstract from version
28925         control system used.
28926         (Makefile): Removed obsolete java/parse.y example.
28927         * doc/sourcebuild.texi: Likewise.
28928         (Top Level): Added config, gnattools, libdecnumber, libgcc,
28929         libgomp, libssp.  Removed fastjar.
28930         (Miscellaneous Docs): Clarify location.
28931         Added COPYING3, COPYING3.LIB.
28932         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
28933
28934 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28935
28936         PR target/38085
28937         * config/i386/i386.c (x86_function_profiler)
28938         [!NO_PROFILE_COUNTERS]: Fix typo.
28939         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
28940         instead of callq.
28941
28942 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
28943             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28944
28945         * doc/sourcebuild.texi (Test Directives): Split into six
28946         subsections, with most of the current text in new subsections
28947         Directives, Selectors, and Final Actions.
28948         (Directives): Split list of test directives into multiple
28949         subsubsections.
28950         (Selectors): Describe use and syntax of selectors.
28951         (Effective-Target Keywords): Describe all existing keywords.
28952         (Add Options): Describe features for dg-add-options.
28953         (Require Support): Describe variants of dg-require-support.
28954         (Final Actions): Describe commands to use in dg-final.
28955
28956 2010-03-22  Michael Matz  <matz@suse.de>
28957
28958         PR middle-end/43475
28959         * recog.c (validate_replace_rtx_group): Replace also in
28960         REG_EQUAL and REG_EQUIV notes.
28961
28962 2010-03-22  Richard Guenther  <rguenther@suse.de>
28963
28964         PR tree-optimization/43390
28965         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
28966         sure vector extracts are type correct.
28967
28968 2010-03-22  Richard Guenther  <rguenther@suse.de>
28969
28970         PR middle-end/40106
28971         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
28972         x * sqrt (x) even when optimizing for size if the target
28973         has native support for sqrt.
28974
28975 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
28976
28977         * varasm.c (make_decl_rtl_for_debug): Also clear
28978         flag_mudflap for the duration of make_decl_rtl call.
28979
28980         PR debug/43443
28981         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
28982         locs from preserved VALUEs.
28983
28984 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28985
28986         PR middle-end/42718
28987         * pa.md (movmemsi): Set align to one if zero.
28988         (movmemdi): Likewise.
28989
28990 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
28991
28992         PR target/42321
28993         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
28994         with their corresponding prologue pushes.
28995
28996 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
28997
28998         PR target/43156
28999         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
29000         at the begining or end.
29001         (spu_expand_epilogue): Likewise.
29002
29003 2010-03-20  Richard Guenther  <rguenther@suse.de>
29004
29005         PR rtl-optimization/43438
29006         * combine.c (make_extraction): Properly zero-/sign-extend an
29007         extraction of the low part of a CONST_INT.  Also handle
29008         CONST_DOUBLE.
29009
29010 2010-03-19  Mike Stump  <mikestump@comcast.net>
29011
29012         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
29013         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
29014         (override_options): Use SUBTARGET32_DEFAULT_CPU.
29015
29016 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
29017
29018         PR c/43211
29019         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
29020         an error.
29021
29022 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
29023
29024         PR rtl-optimization/42258
29025         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
29026         use that may match DEF.
29027
29028         PR target/40697
29029         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
29030         the cost of loading the constant rather than assuming
29031         COSTS_N_INSNS (1).
29032         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
29033         outer code is AND, do the same tests as the andsi3 expander and
29034         return COSTS_N_INSNS (1) if and is cheap.
29035
29036         * optabs.c (avoid_expensive_constant): Fix formatting.
29037
29038 2010-03-19  Michael Matz  <matz@suse.de>
29039
29040         PR c++/43116
29041         * attribs.c (decl_attributes): When rebuilding a function pointer
29042         type use the same qualifiers as the original pointer type.
29043
29044 2010-03-19  Martin Jambor  <mjambor@suse.cz>
29045
29046         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
29047         and is_gimple_ip_invariant_address.
29048
29049 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29050
29051         Revert
29052         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29053
29054         * config/arm/arm.c (arm_override_options): Turn off
29055         flag_dwarf2_cfi_asm for AAPCS variants.
29056
29057 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29058
29059         PR target/43399
29060         * config/arm/arm.c (emit_multi_reg_push): Update comments.
29061         Use PRE_MODIFY instead of PRE_DEC.
29062         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
29063         (vfp_emit_fstmd): Likewise.
29064
29065 2010-03-19  Michael Matz  <matz@suse.de>
29066
29067         PR target/43305
29068         * builtins.c (expand_builtin_interclass_mathfn,
29069         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
29070         if that fails.
29071
29072 2010-03-19  Richard Guenther  <rguenther@suse.de>
29073
29074         PR tree-optimization/43415
29075         * tree-ssa-pre.c (phi_translate): Split out worker to ...
29076         (phi_translate_1): ... this.
29077         (phi_translate): Move all caching here.  Cache all NARY
29078         and REFERENCE translations.
29079
29080 2010-03-19  David S. Miller  <davem@davemloft.net>
29081
29082         With help from Eric Botcazou.
29083         * config/sparc/sparc.c: Include dwarf2out.h.
29084         (emit_pic_helper): Delete.
29085         (pic_helper_symbol_name): Delete.
29086         (pic_helper_emitted_p): Delete.
29087         (pic_helper_needed): New.
29088         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
29089         (get_pc_thunk_name): New.
29090         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
29091         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
29092         Set pic_helper_needed to true.  Don't call emit_pic_helper.
29093         (sparc_expand_prologue): Update load_pic_register call.
29094         (sparc_output_mi_thunk): Likewise.
29095         (sparc_file_end): Emit a hidden comdat symbol for the PIC
29096         thunk if possible.  Output CFI information as needed.
29097
29098 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
29099             Jack Howarth  <howarth@bromo.med.uc.edu>
29100
29101         PR target/36399
29102         * config/i386/i386.h: Fix ABI on darwin x86-32.
29103
29104 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
29105
29106         * tree.h: Declare make_decl_rtl_for_debug.
29107         * varasm.c (make_decl_rtl_for_debug): New.
29108         * dwarf2out.c (rtl_for_decl_location): Call it.
29109         * cfgexpand.c (expand_debug_expr): Call it.
29110
29111 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
29112
29113         PR bootstrap/43399
29114         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
29115         mem_mode.
29116
29117         PR bootstrap/43403
29118         * var-tracking.c (vt_init_cfa_base): Do nothing if
29119         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
29120
29121 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
29122
29123         PR debug/42873
29124         * var-tracking.c (canonicalize_vars_star): New.
29125         (dataflow_post_merge_adjust): Use it.
29126
29127 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
29128
29129         PR debug/43058
29130         * var-tracking.c (non_suitable_const): New function.
29131         (add_uses): For DEBUG_INSNs with constants, don't record any
29132         value, instead just the constant value itself.
29133         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
29134         is not VAR_LOC_UNKNOWN_P, set var to the constant.
29135         (emit_notes_in_bb): Likewise.
29136         (emit_note_insn_var_location): For onepart variables if
29137         cur_loc is a VOIDmode constant, use DECL_MODE.
29138
29139 2010-03-18  Martin Jambor  <mjambor@suse.cz>
29140
29141         PR middle-end/42450
29142         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
29143         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
29144         all non-clones.  Moved call redirection...
29145         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
29146         (cgraph_materialize_all_clones): Dispose of all
29147         combined_args_to_skip bitmaps.
29148         (verify_cgraph_node): Do not check for edges pointing to wrong
29149         nodes in inline clones.
29150         * tree-inline.c (copy_bb): Call
29151         cgraph_redirect_edge_call_stmt_to_callee.
29152         * ipa.c (cgraph_remove_unreachable_nodes): Call
29153         cgraph_node_remove_callees even when there are used clones.
29154
29155 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
29156
29157         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
29158
29159 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
29160
29161         PR target/43383
29162         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
29163         for 32bit.
29164
29165 2010-03-18  Michael Matz  <matz@suse.de>
29166
29167         PR middle-end/43419
29168         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
29169         into sqrt(x) if we need to preserve signed zeros.
29170
29171 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
29172             Eric Botcazou  <ebotcazou@adacore.com>
29173
29174         PR rtl-optimization/43360
29175         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
29176         note if we don't know its invariant status.
29177
29178 2010-03-18  Michael Matz  <matz@suse.de>
29179
29180         PR tree-optimization/43402
29181         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
29182         PHI chains of ssa names registered for update.
29183
29184 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
29185
29186         PR target/42427
29187         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
29188         non-offsettable and pre_modify update addressing.
29189         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
29190         and "2" alternatives "#".
29191         (*movdd_softfloat32): Make all alternatives "#";
29192         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
29193         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
29194         (*movdf_softfloat32): Make all alternatives "#";
29195         (movdi): Use the new DIFD mode iterator to create a common splitter
29196         for movdi, movdf and movdd patterns.
29197
29198 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
29199
29200         * common.opt (dumpdir): Remove redundant tab.
29201
29202 2010-03-17  Martin Jambor  <mjambor@suse.cz>
29203
29204         PR tree-optimization/43347
29205         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
29206         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
29207
29208 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
29209
29210         PR rtl-optimization/42216
29211         * regrename.c (create_new_chain): New function, broken out from...
29212         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
29213         appending a use to an empty chain.
29214         (build_def_use): Remove previous changes that convert OP_INOUT to
29215         OP_OUT operands; instead detect the case where an OP_INOUT operand
29216         uses a previously untracked register and create an empty chain for it.
29217
29218 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29219
29220         * doc/extend.texi (Function Attributes): Rewrite unfinished
29221         sentence in ms_abi documentation.
29222
29223 2010-03-17  Alan Modra  <amodra@gmail.com>
29224
29225         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
29226         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
29227         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
29228         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
29229
29230 2010-03-16  Richard Henderson  <rth@redhat.com>
29231
29232         PR middle-end/43365
29233         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
29234         (lower_try_finally): Save and restore eh_seq around the expansion
29235         of the try-finally.
29236
29237 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
29238
29239         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
29240         statements before splitting block.
29241
29242 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29243
29244         * doc/sourcebuild.texi (Testsuites): Fix markup.
29245         Use pathnames relative to gcc/testsuite.
29246         (Test Directives): Move description of how timeout is determined.
29247         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
29248         (C Tests): Correct gcc.misc-tests directory.
29249         Framework tests now live in gcc.test-framework.
29250
29251 2010-03-16  Richard Guenther  <rguenther@suse.de>
29252
29253         PR middle-end/43379
29254         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
29255         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
29256
29257 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
29258             Alexandre Oliva  <aoliva@redhat.com>
29259
29260         PR tree-optimization/42917
29261         * lambda-code.c (remove_iv): Skip debug statements.
29262         (lambda_loopnest_to_gcc_loopnest): Likewise.
29263         (not_interesting_stmt): Debug statements are not interesting.
29264
29265 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
29266
29267         PR debug/43051
29268         PR debug/43092
29269         * cselib.c (cselib_preserve_constants,
29270         cfa_base_preserved_val): New static variables.
29271         (preserve_only_constants): New function.
29272         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
29273         clear its REG_VALUES.  If cselib_preserve_constants, don't
29274         empty the whole hash table, but preserve there VALUEs with constants,
29275         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
29276         (cselib_preserve_cfa_base_value): New function.
29277         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
29278         (cselib_init): Change argument to int bitfield.  Set
29279         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
29280         is in it.
29281         (cselib_finish): Clear cselib_preserve_constants and
29282         cfa_base_preserved_val.
29283         * cselib.h (enum cselib_record_what): New enum.
29284         (cselib_init): Change argument to int.
29285         (cselib_preserve_cfa_base_value): New prototype.
29286         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
29287         * dse.c (dse_step1): Likewise.
29288         * cfgcleanup.c (thread_jump): Likewise.
29289         * sched-deps.c (sched_analyze): Likewise.
29290         * gcse.c (local_cprop_pass): Likewise.
29291         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
29292         If FN is non-NULL, call the callback always and whenever it returns
29293         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
29294         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
29295         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
29296         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
29297         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
29298         * var-tracking.c: Include recog.h.
29299         (bb_stack_adjust_offset): Remove.
29300         (vt_stack_adjustments): Don't call it, instead just gather the
29301         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
29302         (adjust_stack_reference): Remove.
29303         (compute_cfa_pointer): New function.
29304         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
29305         (struct adjust_mem_data): New type.
29306         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
29307         functions.
29308         (get_address_mode): New function.
29309         (replace_expr_with_values): Use it.
29310         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
29311         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
29312         (adjust_sets): Remove.
29313         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
29314         Use get_address_mode.
29315         (get_adjusted_src): Remove.
29316         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
29317         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
29318         (add_with_sets): Don't call adjust_sets.
29319         (fp_setter, vt_init_cfa_base): New functions.
29320         (vt_initialize): Change return type to bool.  Move most of pool etc.
29321         initialization to the beginning of the function from end.  Pass
29322         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
29323         If !frame_pointer_needed, call vt_stack_adjustment before mos
29324         vector is filled, call vt_init_cfa_base if argp/framep has been
29325         eliminated to sp.  If frame_pointer_needed and argp/framep has
29326         been eliminated to hard frame pointer, set
29327         hard_frame_pointer_adjustment and call vt_init_cfa_base after
29328         encountering fp setter in the prologue.  For MO_ADJUST, call
29329         log_op_type before pusing the op into mos vector, not afterwards.
29330         Call adjust_insn before cselib_process_insn/add_with_sets,
29331         call cancel_changes (0) afterwards.
29332         (variable_tracking_main_1): Adjust for vt_initialize calling
29333         vt_stack_adjustments and returning whether it succeeded or not.
29334
29335 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
29336
29337         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
29338         debug statements.
29339
29340 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
29341
29342         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
29343         has been set.
29344         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
29345         drap_reg has not been set.
29346
29347 2010-03-15  Michael Matz  <matz@suse.de>
29348
29349         PR middle-end/43300
29350         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
29351         use it to expand block copies.
29352         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
29353         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
29354         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
29355
29356 2010-03-15  Richard Guenther  <rguenther@suse.de>
29357
29358         PR tree-optimization/43367
29359         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
29360         elimination check.
29361
29362 2010-03-15  Richard Guenther  <rguenther@suse.de>
29363
29364         PR tree-optimization/43317
29365         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
29366
29367 2010-03-15  Martin Jambor  <mjambor@suse.cz>
29368
29369         PR tree-optimization/43141
29370         * tree-sra.c (create_abstract_origin): New function.
29371         (modify_function): Call create_abstract_origin.
29372
29373 2010-03-15  Chris Demetriou  <cgd@google.com>
29374
29375         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
29376         wasn't copied.
29377
29378 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29379
29380         PR middle-end/43354
29381         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
29382         call insert_out_of_ssa_copy for default definitions.
29383
29384 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29385
29386         * graphite-clast-to-gimple.c (my_long_long): Defined.
29387         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
29388         * graphite-sese-to-poly.c (my_long_long): Defined.
29389         (scop_ivs_can_be_represented): Use it.
29390
29391 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29392
29393         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
29394         graphite-max-bbs-per-function, and loop-block-tile-size.
29395         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
29396         with "maximum".
29397         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
29398
29399 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29400
29401         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
29402         forward declaration.
29403         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
29404         (add_upper_bounds_from_estimated_nit): New.
29405         (build_loop_iteration_domains): Use it.
29406
29407 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29408
29409         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
29410
29411 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29412
29413         PR middle-end/43306
29414         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
29415         should be an INTEGER_CST.  Also handle CASE_CONVERT.
29416
29417 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29418
29419         * graphite.c (graphite_initialize): To bound the number of bbs per
29420         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
29421         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
29422         * doc/invoke.texi: Document it.
29423
29424 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29425
29426         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
29427         * graphite-sese-to-poly.h (build_poly_scop): Same.
29428
29429 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29430
29431         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
29432         the number of parameters in the scop.  Use as an upper bound
29433         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
29434         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
29435         * doc/invoke.texi: Document it.
29436
29437 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
29438
29439         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
29440         * doc/c-tree.texi: Remove.
29441         * doc/generic.texi: Merge c-tree.texi here.
29442         * doc/gccint.texi (Trees): Remove menu entry.
29443         (c-tree.texi): Remove @include.
29444         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
29445         * doc/languages.texi (Reading RTL): Ditto.
29446
29447 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
29448
29449         PR target/42869
29450         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
29451
29452 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
29453
29454         PR middle-end/42431
29455         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
29456         code added to work around reload clobbering CONST insns.
29457
29458 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
29459
29460         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
29461         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
29462         (cselib_preserve_only_values): Remove retain argument, don't
29463         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
29464         * cselib.h (cselib_preserve_only_values): Remove retain argument.
29465         * var-tracking.c (micro_operation): Move insn field before union.
29466         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
29467         (struct variable_tracking_info_def): Remove n_mos field, change
29468         mos into a vector of micro_operations.
29469         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
29470         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
29471         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
29472         changing into a vector.
29473         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
29474         come before all other uops generated by add_stores.
29475         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
29476         argument removal.
29477         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
29478         a vector.  Run just one pass over the bbs instead of separate counting
29479         and computation phase.
29480         (vt_finalize): Free VTI (bb)->mos vector instead of array.
29481
29482         PR debug/43329
29483         * tree-inline.c (remap_decls): Put old_var rather than origin_var
29484         into *nonlocalized_list vector.
29485         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
29486         even if origin is non-NULL.
29487         (gen_variable_die): Likewise.
29488         (process_scope_var): Don't change origin.
29489         (gen_decl_die): Likewise.
29490         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
29491         before adding new edges instead of after it, fix moving over
29492         debug stmts.
29493
29494 2010-03-11  David S. Miller  <davem@davemloft.net>
29495
29496         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
29497         of four.
29498         * configure: Rebuild.
29499
29500 2010-03-11  Martin Jambor  <mjambor@suse.cz>
29501
29502         PR tree-optimization/43257
29503         * tree.c (assign_assembler_name_if_neeeded): New function.
29504         (free_lang_data_in_cgraph): Assembler name assignment moved to the
29505         above new function.
29506         * tree.h (assign_assembler_name_if_neeeded): Declare.
29507         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
29508         the function if needed.
29509
29510 2010-03-11  Chris Demetriou  <cgd@google.com>
29511
29512         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
29513         include/stdint-gcc.h, and include/stdint.h world-readable.
29514
29515 2010-03-11  Richard Guenther  <rguenther@suse.de>
29516
29517         PR tree-optimization/43255
29518         * tree-vrp.c (process_assert_insertions_for): Do not insert
29519         asserts for trivial conditions.
29520
29521 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29522
29523         PR tree-optimization/43280
29524         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
29525         generation.  Move calculation of size out of the if branch.
29526         (find_bswap): Modify compare number generation.
29527
29528 2010-03-11  Richard Guenther  <rguenther@suse.de>
29529
29530         PR lto/43200
29531         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
29532         (input_gimple_stmt): Fixup handled component types during
29533         operand read.  Also fix up decls in ADDR_EXPRs.
29534
29535 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
29536
29537         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
29538         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
29539
29540 2010-03-10  Jan Hubicka  <jh@suse.cz>
29541
29542         PR c/43288
29543         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
29544         * varasm.c (get_variable_section): Don't do that here...
29545         (make_decl_rtl): ... and here.
29546         (do_assemble_alias): Produce decl RTL.
29547         (assemble_alias): Likewise.
29548
29549 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
29550
29551         PR debug/43290
29552         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
29553         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
29554         of fde->vdrap_reg.
29555         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
29556         (based_loc_descr): Only express drap or vdrap regno based expressions
29557         using DW_OP_fbreg when not optimizing.
29558         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
29559         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
29560         REG_CFA_SET_VDRAP note.
29561
29562 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
29563
29564         PR tree-optimization/43236
29565         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
29566         error in calculation of base address in reverse iteration case.
29567         (generate_builtin): Take number of latch executions if the statement
29568         is in the latch.
29569
29570 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
29571
29572         PR middle-end/42859
29573         * tree-eh.c: Include pointer-set.h.
29574         (lower_eh_dispatch): Filter out duplicate case labels and
29575         remove the unneeded edge when the label is unused.  Return
29576         true when some edges are removed.
29577         (execute_lower_eh_dispatch): When any lowering resulted in
29578         removing an edge, also delete unreachable blocks.
29579
29580 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
29581
29582         PR bootstrap/43287
29583         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
29584         UNSPEC_MACHOPIC_OFFSET.
29585
29586 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
29587
29588         PR target/43294
29589         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
29590         (m68k_delegitimize_address): New function.
29591
29592 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
29593
29594         PR debug/43299
29595         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
29596
29597         PR debug/43299
29598         * var-tracking.c (adjust_sets): New function.
29599         (count_with_sets, add_with_sets): Use it.
29600         (get_adjusted_src): New inline function.
29601         (add_stores): Use it.
29602
29603         PR debug/43304
29604         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
29605         call cselib_dummy_expand_value_rtx_cb instead of
29606         cselib_expand_value_rtx_cb.
29607
29608         PR debug/43293
29609         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
29610         * config/i386/i386.c: Include debug.h and dwarf2out.h.
29611         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
29612         and .cfi_endproc around the pic thunks.
29613         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
29614         all queued unwind info register saves are saved before the call.
29615         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
29616         considered as sp-=4 for unwind info and the pop as sp+=4 which
29617         also clobbers dest, but doesn't actually restore it.
29618
29619         PR debug/43290
29620         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
29621         RTX_FRAME_RELATED_P.
29622
29623 2010-03-09  Jie Zhang  <jie@codesourcery.com>
29624
29625         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
29626         whitespaces in output template.
29627
29628 2010-03-09  Jie Zhang  <jie@codesourcery.com>
29629
29630         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
29631         out array boundary.
29632
29633 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
29634
29635         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
29636         builtins.exp in a separate job.
29637
29638 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29639
29640         * graphite-sese-to-poly.c (add_param_constraints): Use
29641         lower_bound_in_type and upper_bound_in_type.
29642
29643 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29644
29645         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
29646         instead of unsigned_type_node.
29647
29648 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29649             Reza Yazdani  <reza.yazdani@amd.com>
29650
29651         PR middle-end/43065
29652         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
29653         on pointer type parameters.
29654
29655 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
29656
29657         PR middle-end/42644
29658         PR middle-end/42130
29659         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
29660         handle conversions from pointer to integers.
29661         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
29662         induction variable, to be able to work with code generated by CLooG.
29663         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
29664         (build_poly_scop): Bail out if we cannot codegen a loop.
29665
29666 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
29667
29668         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
29669         code generation with gloog_error.
29670
29671 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29672
29673         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
29674         Call fold_convert on all the returned values.
29675         (expand_scalar_variables_expr): Pass to
29676         expand_scalar_variables_ssa_name the type of the resulting expression.
29677
29678 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29679
29680         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
29681         ppl_min_for_le_pointset.
29682         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
29683         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
29684
29685 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29686
29687         * graphite-dependences.c (map_into_dep_poly): Removed.
29688         (dependence_polyhedron_1): Use combine_context_id_scat.
29689
29690 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29691
29692         * graphite-poly.h (struct poly_scattering): Add layout documentation.
29693         (struct poly_bb): Same.
29694         (combine_context_id_scat): New.
29695
29696 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29697
29698         PR middle-end/42326
29699         * sese.c (name_defined_in_loop_p): Return false for default
29700         definitions.
29701
29702 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29703
29704         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
29705         and clean up the logic.
29706
29707 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29708
29709         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
29710         early return.
29711
29712 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
29713
29714         * var-tracking.c (remove_cselib_value_chains): Define only for
29715         ENABLE_CHECKING.
29716         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
29717         delete_slot_part, emit_notes_for_differences_1): Don't call
29718         remove_cselib_value_chains here.
29719         (set_slot_part, emit_notes_for_differences_2): Don't call
29720         add_cselib_value_chains here.
29721         (preserved_values): New vector.
29722         (preserve_value): New function.
29723         (add_uses, add_stores, vt_add_function_parameters): Use it
29724         instead of cselib_preserve_value.
29725         (changed_values_stack): New vector.
29726         (check_changed_vars_0): New function.
29727         (check_changed_vars_1, check_changed_vars_2): Use it.
29728         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
29729         changed_values_stack VALUEs.
29730         (vt_emit_notes): For all preserved_values call
29731         add_cselib_value_chains.  If ENABLE_CHECKING call
29732         remove_cselib_value_chains before verifying value_chains is empty.
29733         Initialize and free changed_values_stack.
29734         (vt_initialize): Initialize preserved_values.
29735         (vt_finalize): Free preserved_values.
29736
29737 2010-03-08  Richard Guenther  <rguenther@suse.de>
29738
29739         PR tree-optimization/43269
29740         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
29741         region detection.
29742
29743 2010-03-08  Martin Jambor  <mjambor@suse.cz>
29744
29745         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
29746         (ipa_is_param_called): Removed.
29747         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
29748         (ipa_print_node_params): Do not print the called flag.
29749         (ipa_write_node_info): Do not stream the called flag.
29750         (ipa_read_node_info): Likewise.
29751
29752 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
29753
29754         PR debug/43176
29755         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
29756         * cselib.c (struct expand_value_data): Add dummy field.
29757         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
29758         dummy to false.
29759         (cselib_dummy_expand_value_rtx_cb): New function.
29760         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
29761         any rtl.
29762         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
29763         * var-tracking.c: Include pointer-set.h.
29764         (variable): Change n_var_parts to char from int.  Add
29765         cur_loc_changed and in_changed_variables fields.
29766         (variable_canonicalize): Remove.
29767         (shared_var_p): New inline function.
29768         (unshare_variable): Maintain cur_loc_changed and
29769         in_changed_variables fields.  If var was in changed_variables,
29770         replace it there with new_var.  Just copy cur_loc instead of
29771         resetting it to something else.
29772         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
29773         (dataflow_set_union): Don't call variable_canonicalize.
29774         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
29775         of their DEBUG_EXPR_TREE_DECLs.
29776         (canonicalize_loc_order_check): Verify that cur_loc is NULL
29777         and in_changed_variables and cur_loc_changed is false.
29778         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
29779         and cur_loc_changed.  Don't update cur_loc here.
29780         (variable_merge_over_src): Don't call variable_canonicalize.
29781         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
29782         removing loc that is equal to cur_loc, clear cur_loc,
29783         set cur_loc_changed and ensure variable_was_changed is called.
29784         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
29785         compare pointers in cur_loc check, if it is equal to loc,
29786         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
29787         (variable_different_p): Remove compare_current_location argument,
29788         don't compare cur_loc.
29789         (dataflow_set_different_1): Adjust variable_different_p caller.
29790         (variable_was_changed): If dv had some var in changed_variables
29791         already, reset in_changed_variables flag for it and propagate
29792         cur_loc_changed over to the new variable.  On empty var
29793         always set cur_loc_changed.  Set in_changed_variables on whatever
29794         var is added to changed_variables.
29795         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
29796         Use shared_var_p.  When removing loc that is equal to cur_loc,
29797         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
29798         end, don't set it to something else, just call variable_was_changed.
29799         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
29800         loc being removed, clear cur_loc and set cur_loc_changed.
29801         Set cur_loc_changed if all locations have been removed.
29802         (struct expand_loc_callback_data): New type.
29803         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
29804         allocated.  Always create SUBREGs if simplify_subreg failed.
29805         Prefer to use cur_loc, when that fails and still in
29806         changed_variables (and seen first time) recompute it.  Set
29807         cur_loc_changed of variables which had to change cur_loc and
29808         compute elcd->cur_loc_changed if any of the subexpressions used
29809         had to change cur_loc.
29810         (vt_expand_loc): Adjust to pass arguments in
29811         expand_loc_callback_data structure.
29812         (vt_expand_loc_dummy): New function.
29813         (emitted_notes): New variable.
29814         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
29815         that weren't used for any other decl in current
29816         emit_notes_for_changes call call vt_expand_loc_dummy to update
29817         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
29818         first loc_chain location if NULL before.  Always use just
29819         cur_loc instead of first loc_chain location.  When cur_loc_changed
29820         is false, when not --enable-checking=rtl just don't emit any note.
29821         When rtl checking, compute the note and assert it is the same
29822         as previous note.  Clear cur_loc_changed and in_changed_variables
29823         at the end before removing from changed_variables.
29824         (check_changed_vars_3): New function.
29825         (emit_notes_for_changes): Traverse changed_vars to call
29826         check_changed_vars_3 on each changed var.
29827         (emit_notes_for_differences_1): Clear cur_loc_changed and
29828         in_changed_variables.  Recompute cur_loc of new_var.
29829         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
29830         (vt_emit_notes): Initialize and destroy emitted_notes.
29831
29832 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
29833
29834         PR rtl-optimization/42220
29835         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
29836         Use verify_reg_tracked to determine if we should use OP_OUT rather
29837         than OP_INOUT.
29838         (build_def_use): If we see an in-out operand for a register that we
29839         know nothing about, treat is an output if possible, fail the block if
29840         not.
29841
29842 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
29843
29844         PR debug/42897
29845         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
29846         permanently.
29847
29848 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
29849
29850         PR debug/42897
29851         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
29852         uses of relevant DEFs that are dead outside the loop too.
29853
29854 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
29855
29856         * var-tracking.c (dataflow_set_merge): Swap src and src2.
29857         Reverted:
29858         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
29859         PR debug/41371
29860         * var-tracking.c (values_to_unmark): New variable.
29861         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
29862         values_to_unmark vector.  Moved body to...
29863         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
29864         instead queue it into values_to_unmark vector.
29865         (vt_find_locations): Free values_to_unmark vector.
29866
29867 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
29868
29869         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
29870         (site.exp): Export them when plugins are enabled.
29871
29872 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
29873
29874         PR middle-end/42326
29875         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
29876         that contain scevs.
29877         (chrec_fold_multiply): Same.
29878
29879 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
29880
29881         PR c/43248
29882         * c-decl.c (build_compound_literal): Return early if init is
29883         an error_mark_node.
29884
29885 2010-03-04  Martin Jambor  <mjambor@suse.cz>
29886
29887         PR tree-optimization/43164
29888         PR tree-optimization/43191
29889         * tree-sra.c (type_consists_of_records_p): Reject records with
29890         zero-size bit-fields at the end.
29891
29892 2010-03-04  Mike Stump  <mikestump@comcast.net>
29893
29894         * Makefile.in (TAGS): Remove *.y.
29895
29896 2010-03-04  Richard Guenther  <rguenther@suse.de>
29897
29898         PR tree-optimization/40761
29899         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
29900         in reverse order.
29901         (my_rev_post_order_compute): New function.
29902         (init_pre): Call it.
29903
29904 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
29905
29906         PR middle-end/43209
29907         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
29908         decrease the cost of an IV candidate when the cost is infinite.
29909
29910 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29911
29912         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
29913         Use '3DNow!' for the extension of that name, ensure normal space
29914         after the string.
29915         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
29916
29917 2010-03-03  Jeff Law  <law@redhat.com>
29918
29919         * PR middle-end/32693
29920         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
29921         than gen_rtx_SUBREG.
29922         (extract_bit_field_1): Likewise.
29923
29924 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
29925
29926         * doc/sourcebuild.texi (Test directives): Document that arguments
29927         include-opts and exclude-opts are now optional for dg-skip-if,
29928         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
29929
29930 2010-03-03  Jason Merrill  <jason@redhat.com>
29931
29932         PR c++/12909
29933         * cgraph.h (varpool_node): Add extra_name field.
29934         * varpool.c (varpool_extra_name_alias): New.
29935         (varpool_assemble_decl): Emit extra name aliases.
29936         (varpool_mark_needed_node): Look past an extra name alias.
29937         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
29938         * lto-streamer-in.c (lto_input_tree): Read it.
29939         * lto-streamer-out.c (output_unreferenced_globals): Write it.
29940
29941 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
29942
29943         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
29944         (sparc*-*-solaris2*): ...this.
29945
29946 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
29947
29948         PR debug/43229
29949         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
29950         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
29951         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
29952         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
29953
29954         PR debug/43237
29955         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
29956         fallthrough to default handling, just with want_address 0 instead of 2.
29957         For single element lists, add_AT_loc directly, otherwise create an
29958         artificial variable DIE and stick location list to it.
29959
29960         PR debug/43177
29961         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
29962         (VAL_EXPR_HAS_REVERSE): Define.
29963         (reverse_op): New function.
29964         (add_stores): For reversible operations add an extra MO_VAL_USE.
29965
29966 2010-03-02  Jason Merrill  <jason@redhat.com>
29967
29968         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
29969
29970 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
29971
29972         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
29973         (sparc64-*-linux*): Likewise.
29974         (sparc64-*-solaris2*): Include assembler files before linker ones.
29975         (sparc-*-solaris2*): Simplify and reorder to match previous case.
29976         * config/sparc/gas.h: Delete.
29977         * config/sparc/sol2-64.h: Add copyright notice.
29978         * config/sparc/sol2-gas-bi.h: Likewise.
29979         * config/sparc/sol2-gld.h: Likewise.
29980         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
29981         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
29982         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
29983         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
29984         (sparc_elf_asm_named_section): Rename into...
29985         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
29986
29987 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
29988
29989         * config/alpha/alpha.c (override_options): Fix -mtune error message.
29990
29991 2010-03-02  Jeff Law  <law@redhat.com>
29992
29993         PR middle-end/42431
29994         * reload1.c (rtx_p, substitute_stack): Declare.
29995         (substitute): Record addresses of changed rtxs.
29996         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
29997         Restore the original rtx when complete.
29998         (reload): Free subsitute_stack when complete.
29999
30000 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
30001
30002         * doc/gccint.texi (menu): Add Testsuites as a chapter.
30003         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
30004         new chapter.
30005         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
30006         LTO Testing, gcov Testing, profopt Testing, compat Testing,
30007         Torture Tests): Change from subsection to section.
30008
30009 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
30010             Steven Bosscher  <steven@gcc.gnu.org>
30011
30012         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
30013         instead of bb.
30014
30015 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
30016
30017         PR middle-end/42640
30018         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
30019         the assignment from the new induction variable to the assignment
30020         of the value from the original loop PHI function.
30021
30022 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
30023             Daniel Jacobowitz  <dan@codesourcery.com>
30024
30025         * doc/sourcebuild.texi (Test directives): Clarify options to
30026         dg-skip-if.
30027
30028 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30029
30030         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
30031         Disable cfi directives unless GCC and gas agree on using read-only
30032         .eh_frame sections for 64-bit.
30033         * configure: Regenerate.
30034
30035 2010-03-01  Richard Guenther  <rguenther@suse.de>
30036
30037         PR tree-optimization/43220
30038         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
30039         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
30040
30041 2010-03-01  Richard Guenther  <rguenther@suse.de>
30042             Martin Jambor  <mjambor@suse.cz>
30043
30044         PR middle-end/41250
30045         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
30046         gimplified parameters.
30047
30048 2010-03-01  Christian Bruel  <christian.bruel@st.com>
30049
30050         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
30051
30052 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
30053
30054         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
30055
30056 2010-03-01  Richard Guenther  <rguenther@suse.de>
30057
30058         PR middle-end/43213
30059         * expr.c (expand_assignment): Use the alias-oracle to tell
30060         if the rhs aliases the result decl.
30061
30062 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30063
30064         PR pch/14940
30065         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
30066         to sol_gt_pch_get_address.
30067         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
30068         64-bit, SPARC and x86.
30069         (sol_gt_pch_get_address): New function.
30070
30071 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
30072
30073         * toplev.h (inform_n, error_n): Declare.
30074         * diagnostic.c (inform_n, error_n): New function.
30075
30076 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
30077
30078         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
30079         has no rtl yet when processing local_decls, queue it and recheck
30080         if deferred stack allocation hasn't assigned it rtl.
30081
30082 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
30083
30084         * config/sh/sh.c (unspec_bbr_uid): New.
30085         (gen_block_redirect): Use it instead of INSN_UID.
30086         (gen_far_branch): Likewise.
30087
30088 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
30089
30090         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
30091         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
30092
30093 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30094
30095         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
30096         (Warning Options): -Wno-conversion-null is valid for
30097         Objective-C++ as well.
30098         * doc/tm.texi (Named Address Spaces): Likewise.
30099         * doc/plugins.texi (Plugins): Replace TABs with spaces.
30100         * doc/tree-ssa.texi (Tree SSA): Likewise.
30101
30102 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
30103
30104         PR bootstrap/43202
30105         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
30106         by default.  Don't set the default arch for
30107         i[34567]86-*-darwin*|x86_64-*-darwin*.
30108
30109 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
30110
30111         PR bootstrap/43202
30112         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
30113         default.  Set the default 32bit/64bit archs with $with_arch
30114         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
30115
30116 2010-02-27  Richard Guenther  <rguenther@suse.de>
30117
30118         PR tree-optimization/43186
30119         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
30120         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
30121         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
30122         unroller iterations.
30123
30124 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
30125
30126         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
30127         required and i[34567]86-*-* targets don't support 64bit ISA.
30128
30129 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
30130
30131         PR ada/43096
30132         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
30133         the same alias set.
30134
30135 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
30136
30137         * config.gcc: Set the default arch at least to Prescott for
30138         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
30139         if SSE math is enabled.
30140
30141 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30142
30143         * diagnostic.c (diagnostic_initialize): Update.
30144         (diagnostic_report_diagnostic): Test inhibit_notes_p for
30145         informative notes.
30146         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
30147         (diagnostic_inhibit_notes): New.
30148         * toplev.c (process_options): inhibit notes with -fcompare-debug.
30149
30150 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30151
30152         PR c/20631
30153         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
30154         * doc/standards.texi: Likewise.
30155         * doc/extend.texi: Likewise.
30156         * doc/trouble.texi: Likewise.
30157         * doc/cppopts.texi: Likewise.
30158         * doc/install.texi: Likewise.
30159         * c.opt (std=c90,std=gnu90): New options.
30160         * c-opts.c (c_common_handle_option): Handle them.
30161
30162 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30163
30164         PR c/24577
30165         * c-decl.c (undeclared_variable): Use an informative note.
30166
30167 2010-02-26  Richard Guenther  <rguenther@suse.de>
30168
30169         PR tree-optimization/43186
30170         * gimple.h (gimple_fold): Remove.
30171         * gimple.c (gimple_fold): Remove.  Inline into single user ...
30172         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
30173         Try harder for conditions.
30174
30175 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
30176
30177         PR debug/43190
30178         * function.c (used_types_insert): Don't skip through named pointer
30179         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
30180         and it is different from the main variant's type.
30181
30182 2010-02-26  Nick Clifton  <nickc@redhat.com>
30183
30184         * config/rx/rx.md (sminsi3): Remove bogus alternative.
30185
30186 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
30187
30188         * config.gcc: Support --with-fpmath=sse for x86.
30189
30190         * config/i386/ssemath.h: New.
30191
30192         * doc/install.texi (--with-fpmath=sse): Documented.
30193
30194 2010-02-26  Richard Guenther  <rguenther@suse.de>
30195
30196         PR tree-optimization/43188
30197         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
30198         vector types of over-aligned element type.
30199
30200 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
30201
30202         PR target/43175
30203         * config/i386/i386.c (expand_vec_perm_blend): Use correct
30204         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
30205
30206 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
30207
30208         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
30209
30210 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
30211
30212         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
30213         * var-tracking.c: Include diagnostic.h.
30214         (debug_dv): New function.
30215         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
30216
30217         PR debug/43160
30218         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
30219         (add_value_chain, add_value_chains, remove_value_chain,
30220         remove_value_chains): Handle DEBUG_EXPRs.
30221         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
30222
30223         PR debug/43161
30224         * regcprop.c (struct queued_debug_insn_change): New type.
30225         (struct value_data_entry): Add debug_insn_changes field.
30226         (struct value_data): Add n_debug_insn_changes field.
30227         (debug_insn_changes_pool): New variable.
30228         (free_debug_insn_changes, apply_debug_insn_changes,
30229         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
30230         (kill_value_one_regno): Call free_debug_insn_changes if needed.
30231         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
30232         fields.
30233         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
30234         changes for them.
30235         (copyprop_hardreg_forward_1): Don't call apply_change_group for
30236         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
30237         changes, call cprop_find_used_regs via note_stores.
30238         (copyprop_hardreg_forward): When copying vd from predecessor
30239         which has any queued DEBUG_INSN changes, make sure the pointers are
30240         cleared.  At the end call df_analyze and then if there are any
30241         DEBUG_INSN changes queued at the end of some basic block for still
30242         live registers, apply them.
30243         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
30244
30245 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
30246
30247         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
30248         (arm*-*-*): Ditto.
30249
30250 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
30251
30252         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
30253         targets.  Set the default with_cpu/with_arch from arch/cpu.
30254         Allow x86-64 and native for with_cpu/with_arch.
30255
30256 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
30257
30258         * ebitmap.c: Change calls to verify_popcount with calls to
30259         sbitmap_verify_popcount.
30260         (ebitmap_clear_bit): Fixed map->cacheindex test and
30261         map>cache update when bit clearing results in an empty
30262         element.
30263
30264 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
30265
30266         PR target/43154
30267         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
30268         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
30269         and support both V2DF and V2DI modes.
30270         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
30271         support both V2DF and V2DI modes.
30272         (general): Delete trailing whitespace from a few patterns.
30273
30274         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30275         V2DF/V2DI interleave high/low builtins.
30276
30277         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
30278         new VSX builtins.
30279
30280         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
30281         interleave high/low functions.
30282
30283 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
30284
30285         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
30286         #pragma extern_prefix.
30287
30288 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
30289
30290         PR debug/43166
30291         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
30292         BLKmode, assert op0 is a MEM and just adjust its mode.
30293
30294         PR debug/43165
30295         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
30296         if bitpos isn't multiple of mode's bitsize.
30297
30298 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30299
30300         * c.opt (-ftemplate-depth=): New.
30301         (-ftemplate-depth-): Deprecate.
30302         * optc-gen.awk: Handle -ftemplate-depth=.
30303         * opth-gen.awk: Likewise.
30304         * c-opts.c (c_common_handle_option): Likewise.
30305         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
30306
30307 2010-02-24  Jason Merrill  <jason@redhat.com>
30308
30309         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
30310
30311 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30312
30313         * cfg.c (alloc_aux_for_block): Remove inline.
30314         (alloc_aux_for_edge): Likewise.
30315
30316 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30317
30318         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
30319
30320 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30321
30322         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
30323         * config/i386/sol2-gas.h: New file.
30324         * config.gcc (i[34567]86-*-solaris2*): Use it.
30325
30326 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30327
30328         PR c/43128
30329         * c-typeck.c (ep_convert_and_check): New.
30330         (build_conditional_expr): Use it.
30331         (build_binary_op): Likewise.
30332
30333 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
30334
30335         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
30336
30337         PR debug/43150
30338         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
30339         bounds even for -O+.
30340         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
30341         expr needs to have DECL_NAME set.
30342
30343 2010-02-24  Nick Clifton  <nickc@redhat.com>
30344
30345         * config/mep/mep.c: Include gimple.h.
30346         (mep_function_uses_sp): Delete unused function.
30347         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
30348         parameters.  Use unsigned integers to count args.  Return a
30349         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
30350
30351 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
30352
30353         PR target/43107
30354         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
30355         greater or equal to nelt instead of 2 * nelt.
30356         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
30357         with nelt - 1.
30358
30359 2010-02-23  Jason Merrill  <jason@redhat.com>
30360
30361         PR debug/42800
30362         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
30363         in cfun->local_decls even if they have register types.
30364
30365         PR c++/42837
30366         * stor-layout.c (place_field): Don't warn about unnecessary
30367         DECL_PACKED if the type is packed.
30368
30369 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
30370
30371         PR target/43139
30372         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
30373         GOTOFF relocs, even when the base reg isn't pic pointer.
30374
30375 2010-02-23  Michael Matz  <matz@suse.de>
30376
30377         PR debug/43077
30378         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
30379         (expand_gimple_basic_block): Generate and use debug temps if there
30380         are debug uses left after the last real use of TERed ssa names.
30381         Unlink debug immediate uses when they are expanded.
30382
30383 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30384
30385         PR 43123
30386         * config/i386/i386.c (override_options): Reorganise to provide
30387         better error messages.
30388
30389 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
30390
30391         PR middle-end/43083
30392         * graphite-scop-detection.c (create_single_exit_edge): Move
30393         the call to find_single_exit_edge to....
30394         (create_sese_edges): ...here.  Don't handle multiple edges
30395         exiting the function.
30396         (build_graphite_scops): Don't handle multiple edges
30397         exiting the function.
30398
30399 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
30400
30401         PR middle-end/43097
30402         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
30403         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
30404
30405 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
30406
30407         PR middle-end/43026
30408         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
30409
30410 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30411
30412         PR c++/43126
30413         * c-typeck.c (convert_arguments): Print declaration location.
30414         * c-common.c (validate_nargs): Rename as
30415         builtin_function_validate_nargs.
30416         (check_builtin_function_arguments): Update.
30417
30418 2010-02-22  Richard Guenther  <rguenther@suse.de>
30419
30420         PR lto/43045
30421         * tree-inline.c (declare_return_variable): Use the type of
30422         the call stmt lhs if available.
30423
30424 2010-02-22  Duncan Sands  <baldrick@free.fr>
30425
30426         * passes.c (register_pass): Always consider all pass lists when
30427         ref_pass_instance_number is zero.
30428
30429 2010-02-22  Richard Guenther  <rguenther@suse.de>
30430
30431         PR tree-optimization/42749
30432         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
30433         parameter.  Do arithmetic in the original type.
30434         (update_accumulator_with_ops): Likewise.
30435         (adjust_accumulator_values): Adjust.
30436
30437 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30438
30439         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
30440         (QI to BLKmode splitter): New splitter.
30441
30442 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
30443
30444         * config/i386/i386.c (initial_ix86_tune_features): Turn on
30445         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
30446
30447 2010-02-22  Richard Guenther  <rguenther@suse.de>
30448
30449         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
30450
30451 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
30452
30453         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
30454         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
30455         ($(T)crti.o, $(T)crtn.o): Remove rules.
30456
30457 2010-02-21  Tobias Burnus  <burnus@net-b.de>
30458
30459         PR fortran/35259
30460         * doc/invoke.texi (-fassociative-math): Document that this
30461         option is automatically enabled for Fortran.
30462
30463 2010-02-20  David S. Miller  <davem@davemloft.net>
30464
30465         * configure.ac: Test if linker and assembler properly support
30466         GOTDATA_OP relocations.
30467         * configure: Rebuild.
30468         * config.in: Likewise.
30469         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
30470         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
30471         (movsi_high_pic): Likewise.
30472         (movdi_lo_sum_pic): Likewise.
30473         (movdi_high_pic): Likewise.
30474         (movsi_pic_gotdata_op): New pattern.
30475         (movdi_pic_gotdata_op): Likewise.
30476         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
30477         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
30478
30479 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
30480
30481         PR target/43067
30482         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
30483         attribute to ssemul.
30484         (xop_mulv2div2di3_high): Ditto.
30485
30486 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30487
30488         PR c++/35669
30489         * c.opt (Wconversion-null): New option.
30490         * doc/invoke.texi (Wconversion-null): Document.
30491
30492 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30493
30494         * common.opt (Wlarger-than-): Add Undocumented.
30495
30496 2010-02-19  Mike Stump  <mikestump@comcast.net>
30497
30498         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
30499
30500 2010-02-19  Jason Merrill  <jason@redhat.com>
30501
30502         PR target/40332
30503         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
30504         * configure: Likewise.
30505
30506 2010-02-20  Alan Modra  <amodra@gmail.com>
30507
30508         PR middle-end/42344
30509         * cgraph.h (cgraph_make_decl_local): Declare.
30510         * cgraph.c (cgraph_make_decl_local): New function.
30511         (cgraph_make_node_local): Use it.
30512         * cgraphunit.c (cgraph_function_versioning): Likewise.
30513         * ipa.c (function_and_variable_visibility): Likewise.
30514
30515 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
30516
30517         PR bootstrap/43121
30518         * except.c (sjlj_emit_function_enter): Don't call
30519         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
30520         directly.
30521         * rtl.h (add_reg_br_prob_note): Remove prototype.
30522
30523 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30524
30525         PR 41779
30526         * c-common.c (conversion_warning): Remove widening conversions
30527         before checking the conversion of integers to reals.
30528
30529 2010-02-19  Mike Stump  <mikestump@comcast.net>
30530
30531         PR middle-end/43125
30532         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
30533
30534         PR objc/43061
30535         * cgraphunit.c (process_function_and_variable_attributes): Check
30536         DECL_PRESERVE_P instead of looking up attribute "used".
30537         * ipa-pure-const.c (check_decl): Likewise.
30538         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
30539         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
30540         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
30541         instead of attribute "used".
30542         * config/sol2-c.c (solaris_pragma_init): Likewise.
30543         (solaris_pragma_fini): Likewise.
30544
30545 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
30546
30547         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
30548         Use XCNEW instead of xcalloc.
30549         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
30550         XNEW instead of xmalloc.
30551         (get_fields): Use XNEWVEC instead of xmalloc.
30552
30553         PR debug/43084
30554         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
30555         populate vars array.
30556         (create_new_general_access): For debug stmts just reset value.
30557         (get_stmt_accesses): For accesses within debug stmts just record them
30558         using add_access_to_acc_sites instead of preventing the peeling or
30559         counting them as accesses.
30560
30561         PR middle-end/42233
30562         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
30563
30564 2010-02-19  Richard Guenther  <rguenther@suse.de>
30565
30566         PR tree-optimization/42916
30567         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
30568         instructions.
30569
30570 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
30571
30572         * configure.ac: Replace all uses of changequote in macro arguments
30573         with proper quoting.
30574
30575 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
30576
30577         PR middle-end/42233
30578         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
30579
30580 2010-02-19  Richard Guenther  <rguenther@suse.de>
30581
30582         PR tree-optimization/42944
30583         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
30584         test for aliasing with errno.
30585
30586 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
30587
30588         PR middle-end/42233
30589         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
30590         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
30591         * dojump.c: Include output.h.
30592         (inv): New inline function.
30593         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
30594         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
30595         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
30596         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
30597         argument, pass it down to other calls.
30598         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
30599         add REG_BR_PROB note to the conditional jump.
30600         * cfgexpand.c (add_reg_br_prob_note): Removed.
30601         (expand_gimple_cond): Don't call it, add the probability
30602         as last argument to jumpif_1/jumpifnot_1.
30603         * Makefile.in (dojump.o): Depend on output.h.
30604         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
30605         callers.
30606         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
30607         * stmt.c (do_jump_if_equal): Likewise.
30608         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
30609         * loop-unswitch.c (compare_and_jump_seq): Likewise.
30610         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
30611         Likewise.
30612         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
30613         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
30614         jumpifnot_1 callers.
30615         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
30616         callers.
30617         (store_expr): Adjust jumpifnot caller.
30618         (store_constructor): Adjust jumpif caller.
30619
30620         PR middle-end/42233
30621         * gimplify.c (gimple_boolify): For __builtin_expect call
30622         gimple_boolify also on its first argument.
30623
30624 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
30625
30626         * configure.ac (gnu-unique-object): Wrap regexps using [] in
30627         changequote block.
30628         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
30629         * configure: Regenerated.
30630
30631 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30632
30633         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
30634         lang_hooks.types_compatible_p instead of comptypes.
30635
30636 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30637
30638         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
30639         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
30640         if __prefer_thumb__ is defined.
30641
30642 2010-02-18  Martin Jambor  <mjambor@suse.cz>
30643
30644         PR tree-optimization/43066
30645         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
30646         array with zero-sized element type.
30647
30648 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
30649
30650         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
30651         rtx, allocate struct var_loc_node here and return it to the
30652         caller, and only if it is actually needed.
30653         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
30654         move it earlier and return immediately if it returns NULL.
30655
30656 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
30657
30658         * config/sparc/gas.h: New file.  Restore
30659         TARGET_ASM_NAMED_SECTION to its ELF default.
30660         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
30661         check !HAVE_GNU_AS.
30662         * config/sparc/sparc.c (sparc_elf_asm_named_section):
30663         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
30664         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
30665         after sparc/sysv4.h.
30666
30667 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
30668
30669         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
30670
30671 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
30672
30673         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
30674         patterns from predicated pattern.
30675
30676 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
30677
30678         PR target/43103
30679         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
30680         for insn mnemonic suffix.
30681
30682 2010-02-17  Richard Guenther  <rguenther@suse.de>
30683
30684         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
30685         to loop PHI nodes.
30686
30687 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
30688
30689         PR debug/42918
30690         * caller-save.c (save_call_clobbered_regs): If BB ends with
30691         a DEBUG_INSN, move any notes in between last real insn and the last
30692         DEBUG_INSN after the last DEBUG_INSN.
30693
30694 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
30695
30696         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
30697         Fix return type.  Fix argument type.  Explain meaning of return value.
30698
30699 2010-02-16  Richard Guenther  <rguenther@suse.de>
30700
30701         PR tree-optimization/41043
30702         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
30703         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
30704         statements ...
30705         (vrp_visit_phi_node): ... but only for loop PHI nodes.
30706
30707 2010-02-16  Ira Rosen  <irar@il.ibm.com>
30708
30709         PR tree-optimization/43074
30710         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
30711         * tree-vect-loop.c (vect_analyze_loop_operations): Add
30712         vectorizable cycles in hybrid SLP check.
30713         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
30714
30715 2010-02-16  Richard Guenther  <rguenther@suse.de>
30716
30717         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
30718         (true_dependence): If memrefs_conflict_p computes must-alias
30719         trust it.  Move TBAA check after offset-based disambiguation.
30720         (canon_true_dependence): Likewise.
30721
30722 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
30723
30724         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
30725         * doc/invoke.texi: Document it.
30726         * var-tracking.c: Include toplev.h and params.h.
30727         (vt_find_locations): Return bool indicating success.  Compute
30728         hash sizes unconditionally.  Check new parameter, report.
30729         (variable_tracking_main_1): Check vt_find_locations results and
30730         retry.  Renamed from...
30731         (variable_tracking_main): ... this.  New wrapper to preserve
30732         flag_var_tracking_assignments.
30733         * Makefile.in (var-tracking.o): Adjust dependencies.
30734
30735 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
30736             Jakub Jelinek  <jakub@redhat.com>
30737
30738         PR target/42854
30739         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
30740         if weak_import attribute is present.
30741         * config/darwin.c (machopic_select_section): Likewise.
30742
30743 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
30744
30745         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
30746         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
30747         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
30748         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
30749
30750         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
30751         types.
30752
30753         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
30754         Fix argument types.
30755
30756         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
30757         Rewrite text to refer to the names.
30758
30759 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
30760
30761         * config/i386/i386-builtin-types.def
30762         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
30763         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
30764         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
30765         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
30766         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
30767         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
30768         IX86_BUILTIN_VPERMIL2PS256.
30769         (MULTI_ARG_4_DF2_DI_I): Defined.
30770         (MULTI_ARG_4_DF2_DI_I1): Defined.
30771         (MULTI_ARG_4_SF2_SI_I): Defined.
30772         (MULTI_ARG_4_SF2_SI_I1): Defined.
30773         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
30774         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
30775         __builtin_ia32_vpermil2ps256.
30776         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
30777         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
30778         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
30779         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
30780         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
30781         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
30782         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
30783         CODE_FOR_xop_vpermil2v8sf3.
30784         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
30785         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
30786         * config/i386/xopintrin.h (_mm_permute2_pd): New.
30787         (_mm256_permute2_pd): New.
30788         (_mm_permute2_ps): New.
30789         (_mm256_permute2_ps): New.
30790
30791 2010-02-15  Nick Clifton  <nickc@redhat.com>
30792
30793         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
30794         boolean parameters.  Use emit_jump_insn when emitting a pop
30795         instruction containing a return insn.
30796         (push): Use 'true' rather than '1' as second parameter to F.
30797         (h8300_expand_prologue): Likewise.
30798         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
30799         (h8300_expand_epilogue): Likewise.
30800
30801 2010-02-15  Richard Guenther  <rguenther@suse.de>
30802
30803         PR middle-end/43068
30804         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
30805         if that is zero.
30806
30807 2010-02-15  Nick Clifton  <nickc@redhat.com>
30808
30809         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
30810         delta.
30811
30812 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
30813
30814         * intl.c (fake_ngettext): New function.
30815         * intl.h (fake_ngettext): Declare.
30816         (ngettext): Define macro.
30817         * collect2.c (notice_translated): New function.
30818         (main): Use notice_translated and ngettext.
30819         * collect2.h (notice_translated): Declare.
30820
30821 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
30822
30823         * reorg.c (delete_computation): Comment fixes.
30824         * caller-save.c (setup_save_areas): Idem.
30825         * sel-sched-dump.c (dump_lv_set): Idem.
30826         * rtl.def: Idem.
30827
30828 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30829
30830         * config/s390/s390.c (s390_sched_init): New function.
30831         (TARGET_SCHED_INIT): Target hook defined.
30832
30833 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
30834             Jack Howarth  <howarth@bromo.med.uc.edu>
30835             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
30836
30837         PR target/42982
30838         Partial revert of unintended change in fix for PR41605.
30839         * config/darwin.h: Fix typo.
30840         * config/darwin9.h: Same.
30841
30842 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
30843
30844         * c-pch.c (pch_init): Clear v.
30845
30846 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
30847
30848         PR middle-end/42930
30849         * graphite-scop-detection.c (graphite_can_represent_scev): Call
30850         graphite_can_represent_init for MULT_EXPR.
30851
30852 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
30853
30854         PR middle-end/42914
30855         PR middle-end/42530
30856         * graphite-sese-to-poly.c (remove_phi): New.
30857         (translate_scalar_reduction_to_array): Call remove_phi.
30858
30859 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
30860
30861         PR middle-end/42771
30862         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
30863         * graphite-clast-to-gimple.h (gloog): Update declaration.
30864         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
30865         * graphite-poly.h (struct poly_bb): Add missing comments.
30866         (struct scop): Add poly_scop_p field.
30867         (POLY_SCOP_P): New.
30868         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
30869         * graphite.c (graphite_transform_loops): Build the polyhedral
30870         representation for each scop before code generation.
30871         * sese.c (rename_variables_in_operand): Removed.
30872         (rename_variables_in_expr): Return the renamed expression.
30873         (rename_sese_parameters): New.
30874         * sese.h (rename_sese_parameters): Declared.
30875
30876 2010-02-11  Richard Guenther  <rguenther@suse.de>
30877
30878         PR tree-optimization/42998
30879         * tree-ssa-pre.c (create_expression_by_pieces): Treat
30880         POINTER_PLUS_EXPR properly.
30881
30882 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
30883             Changpeng Fang  <changpeng.fang@amd.com>
30884
30885         PR middle-end/40886
30886         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
30887         the cost of an IV candidate when the IV is used in a test against zero.
30888
30889         * gcc.dg/tree-ssa/ivopts-3.c: New.
30890
30891 2010-02-11  Richard Guenther  <rguenther@suse.de>
30892
30893         PR lto/41664
30894         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
30895         pointer-vs-decl case by swapping refs.  Handle some cases
30896         of pointer-vs-decl disambiguations more conservatively.
30897         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
30898         to false after expanding.
30899
30900 2010-02-11  Richard Guenther  <rguenther@suse.de>
30901
30902         PR driver/43021
30903         * gcc.c (process_command): Handle LTO file@offset case more
30904         appropriately.
30905
30906 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
30907
30908         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
30909         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
30910         of DEBUG_INSNs.
30911         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
30912
30913         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
30914         if MEM's mode size isn't DWARF2_ADDR_SIZE.
30915         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
30916         Optimize eq/ne comparisons when both arguments are known to be
30917         zero-extended.
30918         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
30919         Don't mask operands unnecessarily if they are known to be already
30920         zero-extended.
30921
30922 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
30923
30924         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
30925         instead of loop.
30926
30927 2010-02-10  Richard Guenther  <rguenther@suse.de>
30928
30929         PR tree-optimization/43017
30930         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
30931         for wrapping signed arithmetic.
30932
30933 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
30934
30935         PR debug/43010
30936         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
30937         if no debug info should be emitted for it.
30938
30939 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
30940
30941         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
30942         note when flag_exceptions is set.
30943
30944 2010-02-10  Duncan Sands  <baldrick@free.fr>
30945
30946         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
30947
30948 2010-02-10  Richard Guenther  <rguenther@suse.de>
30949
30950         PR c/43007
30951         * tree.c (get_unwidened): Handle constants.
30952         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
30953
30954 2010-02-10  Martin Jambor  <mjambor@suse.cz>
30955
30956         PR lto/42985
30957         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
30958         check for variable argument counts independently.
30959
30960 2010-02-10  Christian Bruel  <christian.bruel@st.com>
30961
30962         PR target/42841
30963         * config/sh/sh.c (find_barrier): Increase length for non delayed
30964         conditional branches.
30965
30966 2010-02-10  Christian Bruel  <christian.bruel@st.com>
30967
30968         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
30969
30970 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
30971
30972         * builtins.c (set_builtin_user_assembler_name): Also handle
30973         ffs if int is smaller than word.
30974
30975 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
30976
30977         PR middle-end/42973
30978         * ira-conflicts.c (get_dup): Remove.
30979         (process_reg_shuffles): Add new parameter.  Use it as an
30980         additional guard for copy generation.
30981         (add_insn_allocno_copies): Rewrite.
30982
30983 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
30984
30985         * common.opt (fsched2-use-traces): Preserved for backward
30986         compatibility.
30987         * doc/invoke.texi: Remove the documentation about option
30988         -fsched2-use-traces.
30989         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
30990         flag_sched2_use_traces.
30991         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
30992         the backward compatibility flag section.
30993
30994 2010-02-09  Richard Guenther  <rguenther@suse.de>
30995
30996         PR tree-optimization/43008
30997         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
30998         make HEAP variables initialized from global memory if they
30999         are not known builtin functions.
31000         (find_func_aliases): Adjust.
31001
31002 2010-02-09  Richard Guenther  <rguenther@suse.de>
31003
31004         PR tree-optimization/43000
31005         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
31006         arithmetic manually.
31007
31008 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
31009
31010         PR tree-optimization/42931
31011         * tree-loop-linear.c (try_interchange_loops): Don't call
31012         double_int_mul if estimated_loop_iterations failed.
31013
31014 2010-02-08  Martin Jambor  <mjambor@suse.cz>
31015
31016         PR middle-end/42898
31017         * tree-sra.c (build_accesses_from_assign): Do not mark in
31018         should_scalarize_away_bitmap if stmt has volatile ops.
31019         (sra_modify_assign): Do not process assigns piecemeal if if stmt
31020         has volatile ops.
31021
31022 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
31023
31024         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
31025
31026 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
31027
31028         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
31029         before the pattern.
31030
31031 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
31032
31033         PR middle-end/42946
31034         * df-core.c (df_finish_pass): Change type of saved_flags to int.
31035
31036 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
31037
31038         PR middle-end/42988
31039         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
31040         to unknown_dependence.
31041         (graphite_legal_transform_dr): Handle the unknown_dependence.
31042         (graphite_carried_dependence_level_k): Same.
31043
31044 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
31045
31046         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
31047
31048 2010-02-07  Richard Guenther  <rguenther@suse.de>
31049
31050         PR middle-end/42991
31051         * expr.c (get_inner_reference): Always initialize *pbitsize.
31052
31053 2010-02-07  Richard Guenther  <rguenther@suse.de>
31054
31055         PR middle-end/42956
31056         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
31057         new ARRAY_REFs on variable size element or minimal index arrays.
31058         Complete.
31059         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
31060         gimple_fold_indirect_ref.
31061
31062 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
31063
31064         PR target/42957
31065         * arm.c (arm_override_options): Just return if the user has specified
31066         an invalid fpu name.
31067
31068 2010-02-03  Jason Merrill  <jason@redhat.com>
31069
31070         PR c++/42870
31071         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
31072         i386_pe_maybe_record_exported_symbol.
31073
31074 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
31075
31076         PR target/42924
31077         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
31078         (pa_delegitimize_address): New function.
31079
31080 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
31081
31082         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
31083         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
31084
31085 2010-02-05  Richard Guenther  <rguenther@suse.de>
31086
31087         PR lto/42762
31088         * lto-streamer-in.c (get_resolution): Deal with references
31089         to undefined functions.
31090
31091 2010-02-05  Richard Guenther  <rguenther@suse.de>
31092
31093         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
31094         (fold_const_aggregate_ref): Likewise.
31095         (ccp_fold_stmt): Substitute loads.
31096         (maybe_fold_reference): Verify types before substituting.
31097         Unshare properly.
31098         (fold_gimple_assign): Unshare properly.
31099         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
31100
31101 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
31102
31103         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
31104         for rs6000_gen_cell_microcode.
31105
31106 2010-02-04  Richard Guenther  <rguenther@suse.de>
31107
31108         PR rtl-optimization/42952
31109         * dse.c (const_or_frame_p): Remove MEM handling.
31110
31111 2010-02-04  Nick Clifton  <nickc@redhat.com>
31112
31113         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
31114         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
31115         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
31116         (mn10300_asm_output_mi_thunk): New function.
31117         (mn10300_can_output_mu_thunk): New function.
31118         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
31119         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
31120         (FUNCTION_ARG): Delete incorrect comment.
31121
31122 2010-02-03  Jason Merrill  <jason@redhat.com>
31123
31124         PR c++/40138
31125         * fold-const.c (operand_equal_p): Handle erroneous types.
31126
31127 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
31128
31129         * config/h8300/h8300.md (can_delay): Fix attibute condition.
31130
31131 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
31132
31133         PR rtl-optimization/42941
31134         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
31135         of xmalloc.
31136
31137 2010-02-03  Jason Merrill  <jason@redhat.com>
31138
31139         PR c++/35652
31140         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
31141
31142 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
31143
31144         PR debug/42896
31145         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
31146         (cselib_reset_table): Renamed from...
31147         (cselib_reset_table_with_next_value): ... this.
31148         (cselib_get_next_uid): Renamed from...
31149         (cselib_get_next_unknown_value): ... this.
31150         * cselib.c (next_uid): Renamed from...
31151         (next_unknown_value): ... this.
31152         (cselib_clear_table): Adjust.
31153         (cselib_reset_table): Adjust.  Renamed from...
31154         (cselib_reset_table_with_next_value): ... this.
31155         (cselib_get_next_uid): Adjust.  Renamed from...
31156         (cselib_get_next_unknown_value): ... this.
31157         (get_value_hash): Use hash.
31158         (cselib_hash_rtx): Likewise.
31159         (new_cselib_val): Adjust.  Set and dump uid.
31160         (cselib_lookup_mem): Pass next_uid as hash.
31161         (cselib_subst_to_values): Likewise.
31162         (cselib_log_lookup): Dump uid.
31163         (cselib_lookup): Pass next_uid as hash.  Adjust.
31164         (cselib_process_insn): Adjust.
31165         (cselib_init): Initialize next_uid.
31166         (cselib_finish): Adjust.
31167         (dump_cselib_table): Likewise.
31168         * dse.c (canon_address): Dump value uid.
31169         * print-rtl.c (print_rtx): Print value uid.
31170         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
31171         (dvuid): New type.
31172         (dv_uid): New function, sort of renamed from...
31173         (dv_htab_hash): ... this, reimplemented in terms of it and...
31174         (dv_uid2hash): ... this.  New.
31175         (variable_htab_eq): Drop excess assertions.
31176         (tie_break_pointers): Removed.
31177         (canon_value_cmp): Compare uids.
31178         (variable_post_merge_New_vals): Print uids.
31179         (vt_add_function_parameters): Adjust.
31180         (vt_initialize): Reset table.  Adjust.
31181
31182 2010-02-03  Richard Guenther  <rguenther@suse.de>
31183
31184         PR tree-optimization/42944
31185         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
31186         (call_may_clobber_ref_p_1): Likewise.  Properly handle
31187         malloc and calloc clobbering errno.
31188
31189 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
31190
31191         * doc/invoke.texi: Fix name of sched1 dump.
31192
31193         * opts.c (decode_options): Set flag_tree_switch_conversion
31194         only conditionally on optimize >= 2.
31195
31196         * gcse.c: Assorted comment fixes in pass description.
31197
31198 2010-02-03  Anthony Green  <green@moxielogic.com>
31199
31200         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
31201         nop padding in order to maintain alignment of storage location of
31202         target function address.
31203         (moxie_trampoline_init): Store target function address at newly
31204         aligned location.
31205         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
31206         to 32.
31207         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
31208
31209 2010-02-03  Richard Guenther  <rguenther@suse.de>
31210
31211         PR middle-end/42927
31212         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
31213
31214 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31215
31216         * config.gcc: Reenable check for obsolete targets.
31217         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
31218         mips-sgi-irix6.[0-4]*.
31219
31220 2010-02-02  Nick Clifton  <nickc@redhat.com>
31221
31222         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
31223         constant size of 4 as being the same as 0.
31224         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
31225         can take values in the range 0..4.
31226
31227 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
31228
31229         PR java/41991
31230         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
31231         as _darwin10_Unwind_FindEnclosingFunction().
31232         * libgcc-libsystem.ver: New.
31233
31234 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
31235
31236         PR target/41399
31237         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
31238         implicitly set registers.
31239
31240 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
31241
31242         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
31243         (arm_override_options): Allow automatic selection of the thread
31244         pointer register if thumb2.
31245         (legitimize_pic_address): Improve code sequences for Thumb2.
31246         (arm_call_tls_get_addr): Likewise.
31247         (legitimize_tls_address): Likewise.
31248         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
31249         (pic_load_addr_32bit): ... this.  New named pattern.
31250         * thumb2.md (pic_load_addr_thumb2): Delete.
31251         (pic_load_dot_plus_four): Delete.
31252         (tls_load_dot_plus_four): New named pattern.
31253
31254 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31255
31256         PR libgomp/29986
31257         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
31258         Document fix for TLS bug.
31259
31260 2010-01-31  Richard Guenther  <rguenther@suse.de>
31261
31262         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
31263         conservatively correct.
31264
31265 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31266
31267         PR target/42850
31268         Revert:
31269         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31270
31271         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
31272
31273 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31274
31275         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
31276
31277 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
31278
31279         * config.gcc: Adjust order of makefile fragments for mingw targets.
31280
31281 2010-01-31  Richard Guenther  <rguenther@suse.de>
31282
31283         PR middle-end/42898
31284         * gimplify.c (gimplify_init_constructor): For volatile LHS
31285         initialize a temporary.
31286
31287 2010-01-31  Matthias Klose  <doko@ubuntu.com>
31288
31289         * configure.ac: Fix __stack_chk_fail check for cross builds configured
31290         --with-headers
31291         * configure: Regenerate.
31292
31293 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
31294
31295         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
31296         the same alias set and their sizes different constantness.
31297         (aliasing_component_refs_p): Revert 2009-10-24 change.
31298
31299 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31300
31301         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
31302         unused.
31303
31304 2010-01-29  Richard Guenther  <rguenther@suse.de>
31305
31306         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
31307         Assert we successfully updated the call.
31308
31309 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
31310
31311         PR rtl-optimization/42889
31312         * df.h (df_set_bb_dirty_nonlr): New prototype.
31313         * df-core.c (df_set_bb_dirty_nonlr): New function.
31314         * df-scan.c (df_insn_rescan): Call it instead of
31315         df_set_bb_dirty for DEBUG_INSNs.
31316
31317 2010-01-29  Richard Guenther  <rguenther@suse.de>
31318
31319         PR middle-end/37448
31320         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
31321         quadratic behavior in most cases.
31322
31323 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
31324
31325         PR target/42891
31326         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
31327         in the call to gen_x86_movsicc_0_m1.
31328
31329 2010-01-28  Richard Guenther  <rguenther@suse.de>
31330
31331         PR tree-optimization/42871
31332         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
31333
31334 2010-01-28  Richard Guenther  <rguenther@suse.de>
31335
31336         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
31337         into call arguments.
31338
31339 2010-01-28  Richard Guenther  <rguenther@suse.de>
31340
31341         PR middle-end/42883
31342         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
31343         the forwarder if the destination is an EH landing pad.
31344
31345 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
31346
31347         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
31348         block list passed to gimple_duplicate_sese_tail.
31349         (parallelize_loops): Avoid parallelization when the function
31350         has_nonlocal_label.
31351         Avoid parallelization when the preheader is IRREDUCIBLE.
31352         Try to optimize when estimated_loop_iterations_int is unresolved.
31353         Add the loop's location to the dump file.
31354         * tree-cfg.c (add_phi_args_after_redirect): Remove.
31355         (gimple_duplicate_sese_tail): Remove the check for the latch.
31356         Redirect nexits to the exit block.
31357         Remove handling of the incoming edges to the latch.
31358         Redirect the backedge from the copied latch to the exit bb.
31359
31360 2010-01-28  Michael Matz  <matz@suse.de>
31361
31362         PR target/42881
31363         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
31364         Wrap force_reg into a sequence, emit it before user.
31365
31366 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
31367
31368         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
31369         (arm_rev): New.
31370         (arm_legacy_rev): Likewise.
31371         (thumb_legacy_rev): Likewise.
31372
31373 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
31374
31375         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
31376         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
31377         on MEM's address failed, try avoid_constant_pool_reference and
31378         recurse if it returned something different.
31379         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
31380         address, try avoid_constant_pool_reference and recurse if it
31381         returned something different.
31382         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
31383         address and avoid_constant_pool_reference returned something
31384         different, don't set have_address.
31385
31386 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
31387
31388         PR debug/42861
31389         * var-tracking.c (val_store): Add modified argument, obey it.
31390         Adjust callers.
31391         (count_uses): Move down logging of main.
31392         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
31393         don't need resolution.
31394         (emit_notes_in_bb): Likewise.
31395
31396 2010-01-27  Richard Guenther  <rguenther@suse.de>
31397
31398         PR middle-end/42878
31399         * tree-inline.c (remap_decl): Delay remapping of SSA name
31400         default definitions until we need them.
31401
31402 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
31403
31404         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
31405         (rs6000_delegitimize_address): New function.
31406
31407         * config/s390/s390.c (s390_delegitimize_address): Call
31408         delegitimize_mem_from_attrs.
31409
31410         PR middle-end/42874
31411         * tree-inline.c (cannot_copy_type_1): Removed.
31412         (copy_forbidden): Don't forbid copying of functions containing
31413         records/unions with variable length fields.
31414
31415 2010-01-27  Christian Bruel  <christian.bruel@st.com>
31416
31417         Revert:
31418         PR target/42841
31419         * config/sh/sh.c (find_barrier): Increase length for non delayed
31420         conditional branches.
31421
31422 2010-01-27  Matthias Klose  <doko@ubuntu.com>
31423
31424         * configure.ac (gnu-unique-object): Fix ldd version check.
31425         * configure: Regenerate.
31426
31427 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31428
31429         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
31430         HAVE_GNU_AS value.
31431         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
31432         Test for HAVE_GNU_AS value.
31433
31434 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31435
31436         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
31437         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
31438         INT64_TYPE): Define.
31439         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
31440         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
31441         INT_LEAST64_TYPE): Define.
31442         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
31443         UINT_LEAST64_TYPE): Define.
31444         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
31445         INT_FAST64_TYPE): Define.
31446         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
31447         UINT_FAST64_TYPE): Define.
31448         (INTMAX_TYPE, UINTMAX_TYPE): Define.
31449         (INTPTR_TYPE, UINTPTR_TYPE): Define.
31450         (SIG_ATOMIC_TYPE): Define.
31451
31452 2010-01-26  Richard Guenther  <rguenther@suse.de>
31453
31454         * df-scan.c (df_scan_set_bb_info): Remove assert.
31455         (df_insn_rescan_debug_internal): Merge asserts.
31456         (df_install_ref): Likewise.
31457         (df_mark_reg): Use bitmap_set_range.
31458         (df_hard_reg_used_p): Remove assert.
31459         (df_hard_reg_used_count): Likewise.
31460
31461 2010-01-26  Richard Guenther  <rguenther@suse.de>
31462
31463         PR rtl-optimization/42685
31464         * web.c (web_main): Ignore DEBUG_INSNs.
31465
31466 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
31467
31468         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
31469
31470         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
31471         Fix types of fndecl and arglist parameters.
31472
31473 2010-01-26  Richard Guenther  <rguenther@suse.de>
31474
31475         PR middle-end/42806
31476         * tree-eh.c (unsplit_eh): Skip debug insns.
31477
31478 2010-01-26  Richard Guenther  <rguenther@suse.de>
31479
31480         PR tree-optimization/42250
31481         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
31482
31483 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
31484
31485         PR fortran/42866
31486         * omp-low.c (expand_omp_sections): Only use single_pred if
31487         l2_bb is single_pred_p.
31488
31489 2010-01-25  Christian Bruel  <christian.bruel@st.com>
31490
31491         PR target/42841
31492         * config/sh/sh.c (find_barrier): Increase length for non delayed
31493         conditional branches.
31494         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
31495
31496 2010-01-24  David S. Miller  <davem@davemloft.net>
31497
31498         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
31499         define if not using GAS.
31500         * config/sparc/sparc.c (sparc_elf_asm_named_section):
31501         Likewise.  Delete SECTION_MERGE code, which is only applicable
31502         when using GAS.
31503
31504 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
31505
31506         PR c++/42748
31507         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
31508         mangling of va_list in system headers.
31509
31510 2010-01-23  Toon Moene  <toon@moene.org>
31511
31512         * tree-predcom.c (combine_chains): Return NULL, not false.
31513
31514 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
31515
31516         * tree-loop-distribution.c (distribute_loop): Fix declaration and
31517         initialization of variable res to agree with return type.
31518
31519 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
31520
31521         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
31522         * tree-sra.c: Add include of expr.h.
31523
31524 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
31525
31526         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
31527         insert the debug stmt on the single non-EH edge from the stmt.
31528
31529 2010-01-22  Richard Henderson  <rth@redhat.com>
31530
31531         PR tree-opt/42833
31532         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
31533         the RHS until after generate_subtree_copies has insertted its
31534         code before the current statement.
31535
31536 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
31537
31538         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
31539
31540         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
31541
31542 2010-01-21  Martin Jambor  <mjambor@suse.cz>
31543
31544         PR tree-optimization/42585
31545         * tree-sra.c (struct access): New field grp_total_scalarization.
31546         (dump_access): Dump the new field.
31547         (should_scalarize_away_bitmap): New variable.
31548         (cannot_scalarize_away_bitmap): Likewise.
31549         (sra_initialize): Allocate new bitmaps.
31550         (sra_deinitialize): Free new bitmaps.
31551         (create_access_1): New function.
31552         (create_access): Parts moved to create_access_1.
31553         (type_consists_of_records_p): New function.
31554         (completely_scalarize_record): Likewise.
31555         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
31556         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
31557         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
31558         access.
31559         (analyze_all_variable_accesses): Completely scalarize small eligible
31560         records.
31561
31562 2010-01-21  Martin Jambor  <mjambor@suse.cz>
31563
31564         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
31565
31566 2010-01-21  Andrew Haley  <aph@redhat.com>
31567
31568         * gcc.c (process_command): Move lang_specific_driver before
31569         setting cc_libexec_prefix.
31570
31571 2010-01-21  Richard Guenther  <rguenther@suse.de>
31572
31573         PR middle-end/19988
31574         * fold-const.c (negate_expr_p): Pretend only negative
31575         real constants are easily negatable.
31576
31577 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
31578             Jason Merrill  <jason@redhat.com>
31579
31580         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
31581         (TYPE_TRANSPARENT_AGGR): this, for union and record.
31582         * calls.c (initialize argument_information): Handle it.
31583         * c-common.c (handle_transparent_union_attribute): Use new name.
31584         * c-decl.c (finish_struct): Ditto.
31585         * c-typeck.c (type_lists_compatible_p): Ditto.
31586         (convert_for_assignment): Use new name and also handle record.
31587         * function.c (aggregate_value_p): Handle it.
31588         (pass_by_reference): Ditto.
31589         (assign_parm_data_types): Ditto.
31590         * print-tree.c (print_node): Ditto.
31591         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
31592         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
31593         * tree.c (first_field): New fn.
31594
31595 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
31596
31597         PR target/42818
31598         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
31599         even when linking statically, for now.
31600
31601 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
31602
31603         PR debug/42715
31604         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
31605         without a cselib val.
31606         (count_uses): Accept MO_VAL_SET with no val on stores.
31607         (add_stores): Likewise.
31608
31609 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
31610
31611         * var-tracking.c (check_value_val): Add a compile time assertion.
31612         (dv_is_decl_p): Simplify.
31613         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
31614         gcc_assert if ENABLE_CHECKING.
31615
31616 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
31617
31618         PR debug/42782
31619         * var-tracking.c: Include tree-flow.h.
31620         (mem_dies_at_call): New.
31621         (dataflow_set_preserve_mem_locs): Use it.
31622         (dataflow_set_remove_mem_locs): Likewise.
31623         (dump_var): Renamed from dump_variable.  Adjust all callers.
31624         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
31625         * Makefile.in (var-tracking.o): Adjust deps.
31626
31627 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
31628
31629         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
31630
31631 2010-01-20  Richard Guenther  <rguenther@suse.de>
31632
31633         PR tree-optimization/42717
31634         * tree-ssa-dce.c (get_live_post_dom): Remove.
31635         (forward_edge_to_pdom): Take an arbitrary edge to copy
31636         degenerate PHI args from.
31637         (remove_dead_stmt): Use the first post-dominator even if it
31638         does not contain live statements as redirection destination.
31639
31640 2010-01-20  Richard Guenther  <rguenther@suse.de>
31641
31642         * tree-inline.c (estimate_num_insns): Handle EH builtins.
31643
31644 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
31645
31646         * sel-sched.c (create_speculation_check): Remove set but not used
31647         variable twin.
31648         (try_transformation_cache): Remove set but not used variable ds.
31649         (calculate_privileged_insns): Remove set but not used variables
31650         cur_insn and min_spec_insn.
31651         (find_best_expr): Remove set but not used variable avail_n.
31652         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
31653         variable e.
31654         * cgraphunit.c (assemble_thunk): Remove set but not used variable
31655         false_label.
31656         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
31657         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
31658         new_scop_exit_edge.
31659
31660 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
31661
31662         PR bootstrap/42786
31663         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
31664         cpu types.  Add support for *-sse3 cpu types.
31665         (x86_64-*-*): Ditto.
31666
31667 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
31668
31669         PR middle-end/42803
31670         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
31671         argument, call initializer_constant_valid_p_1 instead of
31672         initializer_constant_valid_p, pass CACHE to it, return NULL
31673         immediately if first call returns NULL.
31674         (initializer_constant_valid_p_1): New function.
31675         (initializer_constant_valid_p): Use it.
31676
31677 2010-01-20  Thomas Quinot  <quinot@adacore.com>
31678
31679         * tree.def (PLACEHOLDER_EXPR): Fix comment.
31680
31681 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
31682
31683         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
31684         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
31685         (loc_list_from_tree): Don't handle unsigned division.  Handle
31686         signed modulo using DW_OP_{over,over,div,mul,minus}.
31687         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
31688         modulo instead of signed.
31689
31690 2010-01-20  DJ Delorie  <dj@redhat.com>
31691
31692         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
31693         (Fpa): Pass it
31694         (h8300_emit_stack_adjustment): Propogate it.
31695         (push): Pass it.
31696         (h8300_expand_prologue): Likewise.
31697         (h8300_expand_epilogue): Likewise.
31698
31699 2010-01-19  Michael Matz  <matz@suse.de>
31700
31701         PR tree-optimization/41783
31702         * tree-data-ref.c (toplevel): Include flags.h.
31703         (dump_data_dependence_relation):  Also dump the inputs if the
31704         result will be unknown.
31705         (split_constant_offset_1): Look through some conversions.
31706         * tree-predcom.c (determine_roots_comp): Restart a new chain if
31707         the offset from last element is too large.
31708         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
31709         (reassociate_to_the_same_stmt): Handle vector registers.
31710         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
31711         (e.g. conversions).
31712         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
31713         wide_prolog_niters argument, emit widening instructions.
31714         (vect_do_peeling_for_alignment): Adjust caller, use widened
31715         variant of the iteration cound.
31716         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
31717
31718 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31719
31720         PR target/38697
31721         * config/arm/neon-testgen.m (emit_automatics): New parameter
31722         features. Adjust for Fixed_return_reg feature.
31723         (test_intrinsic): Call emit_automatics with new feature.
31724         * config/arm/neon.ml: Update copyright years.
31725         (features): New Fixed_return_reg feature.
31726         (ops): Update feature for Vget_low.
31727
31728 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
31729
31730         PR tree-optimization/42719
31731         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
31732         stmt uses.
31733
31734         PR debug/42728
31735         * fwprop.c (all_uses_available_at): Return false if def_set dest
31736         is a REG that is used in def_insn.
31737
31738 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
31739
31740         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
31741
31742         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
31743         Add argument names.
31744
31745         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
31746
31747         * target.h (struct gcc_target) <secondary_reload>: Change type
31748         of last argument to secondary_reload_info *.
31749
31750 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
31751
31752         PR target/42774
31753         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
31754         memory references with unaligned offsets.  Remove CQImode handling.
31755         (unaligned_memory_operand): Return 1 for memory references with
31756         unaligned offsets.  Remove CQImode handling.
31757
31758 2010-01-18  Richard Guenther  <rguenther@suse.de>
31759
31760         PR middle-end/39954
31761         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
31762         builtin calls.
31763
31764 2010-01-18  Richard Guenther  <rguenther@suse.de>
31765
31766         PR tree-optimization/42781
31767         * tree-ssa-structalias.c (find_what_var_points_to): Skip
31768         restrict processing only if the original variable was artificial.
31769
31770 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
31771
31772         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
31773         find number of popped argument bytes.
31774
31775         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
31776         Fix the text that describes the return value for invalid insns.
31777
31778         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
31779
31780         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
31781         Clarify what 'cost of the -dependence' is.  Fix quoting.
31782
31783         * toplev.c (default_get_pch_validity): Rename argument to "sz".
31784         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
31785
31786 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
31787
31788         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
31789         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
31790
31791 2010-01-17  Richard Guenther  <rguenther@suse.de>
31792
31793         PR middle-end/42248
31794         * function.c (split_complex_args): Take a VEC to modify.
31795         (assign_parms_augmented_arg_list): Build a VEC instead of
31796         a chain of PARM_DECLs.
31797         (assign_parms_unsplit_complex): Take a VEC of arguments.
31798         Do not fixup unmodified parms.
31799         (assign_parms): Deal with the VEC.
31800         (gimplify_parameters): Likewise.
31801
31802 2010-01-17  Richard Guenther  <rguenther@suse.de>
31803
31804         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
31805         node existence check.
31806         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
31807         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
31808         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
31809         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
31810         (gimple_execute_on_growing_pred): Likewise.
31811
31812 2010-01-17  Richard Guenther  <rguenther@suse.de>
31813
31814         PR tree-optimization/42773
31815         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
31816         (compute_antic_aux): Likewise.
31817         (compute_partial_antic_aux): Likewise.
31818
31819 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
31820
31821         PR debug/42767
31822         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
31823         and US_TRUNCATE.
31824
31825 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
31826
31827         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
31828         appearance.
31829
31830         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
31831         Fix markup for strict argument.
31832
31833         (TARGET_SCHED_REORDER2): Fix argument types.
31834
31835         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
31836         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
31837
31838         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
31839         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
31840
31841         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
31842         Add argument name.
31843
31844         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
31845         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
31846         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
31847         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
31848         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
31849
31850         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
31851
31852         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
31853
31854         (TARGET_ASM_RELOC_RW_MASK): Add return type.
31855         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
31856
31857         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
31858
31859         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
31860         Use prototype.
31861
31862         (TARGET_ASM_NAMED_SECTION): Fix argument list.
31863
31864         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
31865         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
31866
31867         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
31868
31869         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
31870
31871         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
31872         referring to it.  Fix language.
31873
31874         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
31875
31876         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
31877
31878         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
31879
31880         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
31881
31882         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
31883         '@var{stream}.  Remove stray 'and'.
31884
31885         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
31886
31887         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
31888
31889         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
31890
31891         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
31892         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
31893
31894         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
31895         Fix description of return value.
31896         Rename argument "sz" to "len."
31897
31898         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
31899         Clarify meaning of 'true' return value.
31900
31901         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
31902
31903         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
31904         rep_mode versus mode_rep.
31905
31906         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
31907
31908         (TARGET_BUILTIN_DECL): Fix name.
31909
31910         (TARGET_COMMUTATIVE_P): Fix type of first argument.
31911
31912         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
31913
31914         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
31915
31916         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
31917
31918         (TARGET_RELAXED_ORDERING): Use @deftypevr.
31919
31920         (TARGET_GET_DRAP_RTX): Note that this is a hook.
31921         Clarify language.
31922
31923         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
31924         Rename argument tm_fn to md_fn.
31925
31926         (TARGET_OPTION_PRINT): Fix argument list.
31927
31928 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
31929
31930         PR target/42664
31931         * config/i386/i386.c (ix86_fixup_binary_operands):
31932         Revert FMA4 fixup of operands.
31933
31934 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31935
31936         PR gcc/42525
31937         * Makefile.in (write_entries_to_file, install-plugin):
31938         Use \012 instead of \n with tr.
31939
31940 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
31941
31942         * configure.ac (HAVE_AS_REF): New C macro.
31943         * configure: Regenerate.
31944         * config.in: Likewise.
31945         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
31946         if HAVE_AS_REF.
31947         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
31948         if HAVE_AS_REF.
31949
31950 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
31951
31952         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
31953
31954         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
31955
31956         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
31957
31958         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
31959
31960         (TARGET_IN_SMALL_DATA_P): Fix argument type.
31961
31962         (TARGET_BINDS_LOCAL_P): Fix argument type.
31963
31964         (TARGET_ASM_FILE_END): Use prototype.
31965
31966         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
31967
31968         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
31969
31970         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
31971
31972         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
31973
31974         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
31975         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
31976
31977         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
31978         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
31979
31980         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
31981         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
31982         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
31983         (TARGET_ADDR_SPACE_CONVERT): Likewise.
31984
31985         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
31986
31987         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
31988
31989         (TARGET_INIT_BUILTINS): Use prototype.
31990
31991         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
31992         Put 'const char *' in braces.  Fix parameter types.
31993         (TARGET_INVALID_CONVERSION): Fix parameter types.
31994         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
31995         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
31996
31997         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
31998         Fix argument type.
31999
32000         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
32001
32002         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
32003
32004 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
32005
32006         * doc/tm.texi (TARGET_HELP): Fix return type.
32007
32008         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
32009         in braces.  Fix argument types.
32010
32011         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
32012
32013         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
32014
32015         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
32016
32017         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
32018         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
32019
32020         (TARGET_MANGLE_TYPE): Fix argument types.
32021
32022         (TARGET_IRA_COVER_CLASSES): Use prototype.
32023
32024         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
32025
32026         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
32027
32028         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
32029
32030         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
32031
32032         (TARGET_CALLEE_COPIES): Fix argument types.
32033
32034         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
32035
32036         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
32037
32038         (TARGET_FUNCTION_VALUE): Fix argument types.
32039
32040         (TARGET_RETURN_IN_MSB): Fix argument type.
32041
32042         (TARGET_RETURN_IN_MEMORY): Fix argument types.
32043
32044         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
32045
32046         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
32047
32048         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
32049         agree with return type.
32050
32051         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
32052
32053 2010-01-15  Jing Yu  <jingyu@google.com>
32054
32055         PR rtl-optimization/42691
32056         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
32057         a pseudo to a constant and are merged, and adjust comments.
32058
32059 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
32060
32061         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
32062
32063 2010-01-15  Richard Guenther  <rguenther@suse.de>
32064
32065         PR middle-end/42739
32066         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
32067         labels of computed or non-local gotos to the destination.
32068         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
32069         landing pad label is the first label.
32070
32071 2010-01-15  Richard Guenther  <rguenther@suse.de>
32072
32073         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
32074
32075 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
32076
32077         PR target/42747
32078         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
32079         to allow generation of the xssqrtdp instruction on power7.
32080         (sqrtdf2_fpr): Ditto.
32081
32082 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
32083
32084         PR middle-end/42674
32085         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
32086         functions with noreturn attribute.
32087
32088         PR c++/42608
32089         * varasm.c (declare_weak): Add weak attribute to decl if it
32090         doesn't have one already.
32091         (assemble_external): Only add decls to weak_decls if they also
32092         have weak attribute.
32093
32094 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
32095
32096         * var-tracking.c (var_reg_delete): Don't delete the association
32097         between REGs and values or one-part variables if the register
32098         isn't clobbered.
32099
32100 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
32101
32102         PR debug/42657
32103         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
32104         because its first operand is a non-localized variable.
32105
32106 2010-01-14  Martin Jambor  <mjambor@suse.cz>
32107
32108         PR tree-optimization/42706
32109         * tree-sra.c (encountered_recursive_call): New variable.
32110         (encountered_unchangable_recursive_call): Likewise.
32111         (sra_initialize): Initialize both new variables.
32112         (callsite_has_enough_arguments_p): New function.
32113         (scan_function): Call decl and flags check only for IPA-SRA, check
32114         whether there is a recursive call and whether it has enough arguments.
32115         (all_callers_have_enough_arguments_p): New function.
32116         (convert_callers): Look for recursive calls only when
32117         encountered_recursive_call is set.
32118         (ipa_early_sra): Bail out either if
32119         !all_callers_have_enough_arguments_p or
32120         encountered_unchangable_recursive_call.
32121
32122 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
32123
32124         * sel-sched.c: Add 2010 to copyright years.
32125         * sel-sched-ir.c: Likewise.
32126         * sel-sched-ir.h: Likewise.
32127
32128 2010-01-14  Martin Jambor  <mjambor@suse.cz>
32129
32130         PR tree-optimization/42714
32131         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
32132         constructors specially.
32133
32134 2010-01-14  Andi Kleen  <ak@linux.intel.com>
32135
32136         * config/i386/drivers-i386.c (detect_caches_intel):
32137         Add l2sizekb parameter and fill in.
32138         (host_detect_local_cpu): Add l2sizekb, fill in.
32139         Add Atom small cache heuristic.
32140
32141 2010-01-14  Andi Kleen  <ak@linux.intel.com>
32142
32143         * config/i386/drivers-i386.c (detect_caches_cpuid4):
32144         Add level3 parameter and fill in.
32145         (detect_caches_intel): Handle level3 cache.
32146
32147 2010-01-14  Andi Kleen  <ak@linux.intel.com>
32148
32149         * config/i386/drivers-i386.c (host_detect_local_cpu):
32150         Fix core duo detection.
32151
32152 2010-01-14  Andi Kleen  <ak@linux.intel.com>
32153
32154         * config/i386/drivers-i386.c (host_detect_local_cpu):
32155         Fix Atom detection.
32156
32157 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
32158
32159         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
32160         (rs6000_variable_issue_1): this.  Use...
32161         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
32162
32163 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
32164
32165         * sel-sched-ir.c (sel_restore_other_notes): Rename to
32166         sel_restore_notes.  Update all callers.  Call reemit_notes
32167         for all insns.
32168
32169 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
32170
32171         PR rtl-optimization/42246
32172         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
32173         loops.
32174
32175 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
32176
32177         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
32178         all successors is the same as number of successors in current region.
32179
32180 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
32181
32182         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
32183         to rename is not separable.  Otherwise check that its LHS is not NULL.
32184
32185 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
32186
32187         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
32188
32189 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
32190
32191         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
32192         available registers when failed to discover LHS register class.
32193         Fix indentation.  Update comment.
32194
32195 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
32196             Alexander Monakov  <amonakov@ispras.ru>
32197
32198         PR rtl-optimization/42389
32199         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
32200         to can_issue_more.
32201         (advance_state_on_fence): Likewise.
32202         (sel_target_adjust_priority): Print debug output only when
32203         sched_verbose >= 4, not 2.
32204         (get_expr_cost): Do not issue all unique insns on the next cycle.
32205         (fill_insns): Initialize can_issue_more from the value saved
32206         with the fence.
32207         * sel-sched-ir.c (flist_add): New parameter issue_more.
32208         Init FENCE_ISSUE_MORE with it.
32209         (merge_fences): Likewise.
32210         (init_fences): Update call to flist_add.
32211         (add_to_fences, add_clean_fence_to_fences)
32212         (add_dirty_fence_to_fences): Likewise.
32213         (move_fence_to_fences): Update call to merge_fences.
32214         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
32215         sched groups.
32216         * sel-sched-ir.h (struct _fence): New field issue_more.
32217         (FENCE_ISSUE_MORE): New accessor macro.
32218
32219 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
32220
32221         PR rtl-optimization/42388
32222         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
32223         that have no predecessors nor successors.  Do not call move_bb_info
32224         for empty blocks outside of current region.
32225
32226 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
32227
32228         PR rtl-optimization/42294
32229         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
32230         * sel-sched.c (move_exprs_to_boundary): Transitively add all
32231         originators' originators.
32232
32233 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
32234
32235         PR rtl-optimization/39453
32236         PR rtl-optimization/42246
32237         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
32238         for pipelining_p.
32239         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
32240
32241 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
32242             Alexander Monakov  <amonakov@ispras.ru>
32243
32244         PR middle-end/42245
32245         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
32246         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
32247         argument.  Update all callers.
32248         (tidy_control_flow): ... and here.  Recompute topological order
32249         of basic blocks in region if necessary.
32250         (sel_redirect_edge_and_branch): Change return type.  Return true
32251         if topological order might have been invalidated.
32252         (purge_empty_blocks): Export and move from...
32253         * sel-sched.c (purge_empty_blocks): ... here.
32254         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
32255         (maybe_tidy_empty_bb): Delete prototype.
32256         (purge_empty_blocks): Declare.
32257
32258 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
32259
32260         PR rtl-optimization/42249
32261         * sel-sched.c (try_replace_dest_reg): When chosen register
32262         and original register is the same, do not bail out early, but
32263         still check all original insns for validity of replacing destination
32264         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
32265         in this case.
32266
32267 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
32268
32269         PR c/42721
32270         Port from no-undefined-overflow branch:
32271         2009-03-09  Richard Guenther  <rguenther@suse.de>
32272
32273         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
32274
32275 2010-01-14  Richard Guenther  <rguenther@suse.de>
32276
32277         PR lto/42665
32278         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
32279
32280 2010-01-14  Ira Rosen  <irar@il.ibm.com>
32281
32282         PR tree-optimization/42709
32283         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
32284         as scalar type in creation of constant vector operand.
32285
32286 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32287
32288         PR testsuite/42414
32289         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
32290         (check-parallel-%): Match `testsuite' directory component only
32291         at the end.
32292
32293 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
32294
32295         PR translation/39521
32296         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
32297         strings with _().
32298
32299 2010-01-13  Richard Guenther  <rguenther@suse.de>
32300
32301         PR tree-optimization/42730
32302         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
32303         offset zero.
32304
32305 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
32306
32307         PR target/pr42542
32308         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
32309         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
32310         them signed.
32311
32312 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
32313
32314         * config/bfin/libgcc-bfin.ver: Regenerate based on current
32315         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
32316         ___umulsi3_highpart.
32317
32318         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
32319         rather than schedule_insns if the pass is enabled.
32320
32321 2010-01-13  Martin Jambor  <mjambor@suse.cz>
32322
32323         PR tree-optimization/42704
32324         * tree-sra.c (sra_modify_assign): Do not delete assignments to
32325         SSA_NAMEs.
32326
32327 2010-01-13  Martin Jambor  <mjambor@suse.cz>
32328
32329         PR tree-optimization/42703
32330         * tree-sra.c (analyze_access_subtree): Check that we can build a
32331         reference to the original data within the aggregate.
32332
32333 2010-01-13  Richard Guenther  <rguenther@suse.de>
32334
32335         PR tree-optimization/42705
32336         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
32337
32338 2010-01-13  Richard Guenther  <rguenther@suse.de>
32339
32340         PR middle-end/42716
32341         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
32342
32343 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
32344
32345         PR debug/41371
32346         * var-tracking.c (values_to_unmark): New variable.
32347         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
32348         values_to_unmark vector.  Moved body to...
32349         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
32350         instead queue it into values_to_unmark vector.
32351         (vt_find_locations): Free values_to_unmark vector.
32352
32353 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
32354
32355         * config/s390/s390.c (override_options): Set
32356         default of max-pending-list-length to 256
32357
32358 2010-01-13  Richard Guenther  <rguenther@suse.de>
32359
32360         PR lto/42678
32361         * tree-pass.h (PROP_gimple_lcx): New.
32362         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
32363         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
32364         before the final cleanup_eh.
32365         (dump_properties): Dump PROP_gimple_lcx.
32366         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
32367         (tree_lower_complex_O0): Remove.
32368         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
32369         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
32370         tree_lower_complex, schedule TODO_update_ssa.
32371         * lto-streamer-out.c (output_function): Stream the functions
32372         properties.
32373         * lto-streamer-in.c (input_function): Likewise.
32374         (lto_read_body): Do not override them here.
32375
32376 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
32377
32378         PR c/42708
32379         * c-typeck.c (build_c_cast): Fold value cast to union type before
32380         wrapping it in a CONSTRUCTOR.
32381
32382 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
32383
32384         PR rtl-optimization/42699
32385         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
32386         involved.
32387
32388 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32389
32390         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
32391         SUBTARGET_WARN_UNUSED_SPEC): Move ...
32392         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
32393         SUBTARGET_WARN_UNUSED_SPEC): ... here
32394         * config/mips/iris5.h (LIBGCC_SPEC): Define.
32395
32396 2010-01-12  Julian Brown  <julian@codesourcery.com>
32397
32398         * config/arm/neon-schedgen.ml (Utils): Don't try to
32399         open missing module.
32400         (find_with_result): New.
32401
32402 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
32403
32404         PR debug/42662
32405         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
32406         sharing when canonicalizing ({lt,ge}u (plus a b) b).
32407
32408         PR tree-optimization/42645
32409         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
32410         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
32411         decl_map, set processing_debug_stmt to -1 and return name without
32412         any remapping.
32413
32414 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
32415
32416         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
32417         binutils version, and reword target configuration description.
32418
32419 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
32420
32421         * config/avr/avr.h (LINKER_NAME): Remove.
32422
32423 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
32424
32425         PR target/42416
32426         * config/rs6000/rs6000.c (rs6000_override_options): On targets
32427         that support VSX, warn for -mno-altivec if vsx is not disabled,
32428         and disable vsx.
32429
32430 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
32431             Shujing Zhao  <pearly.zhao@oracle.com>
32432
32433         PR translation/42469
32434         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
32435         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
32436         character between option name and help text.
32437         * c.opt (imultilib): Likewise.
32438
32439 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
32440
32441         * lto-streamer-out.c (output_unreferenced_globals): Output static
32442         variables.
32443
32444 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
32445
32446         PR rtl-optimization/42621
32447         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
32448         optimizing for size.
32449         (duplicate_computed_gotos): Remove now-redundant check.
32450
32451 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
32452
32453         PR target/37454
32454         * configure.ac: Save and restore LDFLAGS and LIBS
32455         * configure: Regenerate.
32456
32457 2010-01-10  Richard Guenther  <rguenther@suse.de>
32458
32459         PR middle-end/42667
32460         * builtins.c (fold_builtin_strlen): Add type argument and
32461         convert the resulting length to it.
32462         (fold_builtin_1): Adjust.
32463
32464 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
32465
32466         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
32467         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
32468         1 insn.
32469         (num_insns_constant_wide): Adjust for that change.
32470
32471 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32472
32473         PR debug/42631
32474         * web.c (union_defs): Add used argument, to combine uses of
32475         uninitialized regs.
32476         (entry_register): Adjust type and tests of used argument.
32477         (web_main): Widen used for new use.  Pass it to union_defs.
32478         * df.h (union_defs): Adjust prototype.
32479
32480 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32481
32482         PR debug/42630
32483         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
32484         uses in new incoming argument.  Free body.
32485         (reset_debug_uses_in_loop): New.
32486         (analyze_insn_to_expand_var): Call the latter if the former found
32487         anything.  Fix whitespace.  Reject invalid dest overlaps before
32488         going through all insns in the loop.
32489
32490 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32491
32492         PR debug/42629
32493         * haifa-sched.c (dying_use_p): Debug insns don't count.
32494
32495 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32496
32497         PR middle-end/42363
32498         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
32499         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
32500         (verify_gimple_call): Reject LHS in noreturn calls.
32501
32502 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32503
32504         PR debug/42604
32505         PR debug/42395
32506         * tree-vect-loop-manip.c (adjust_info): New type.
32507         (adjust_vec): New pointer to vector.
32508         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
32509         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
32510         (slpeel_update_phis_for_duplicate_loop): Use them.
32511         (slpeel_update_phi_nodes_for_guard1): Likewise.
32512         (slpeel_update_phi_nodes_for_guard2): Likewise.
32513         (slpeel_tree_peel_loop_to_edge): Likewise.
32514         (vect_update_ivs_after_vectorizer): Likewise.
32515
32516 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32517
32518         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
32519         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
32520
32521 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32522
32523         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
32524         bogus uninitialized warning.
32525
32526 2010-01-09  Richard Guenther  <rguenther@suse.de>
32527
32528         PR middle-end/42512
32529         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
32530         the evolution is compatible with the initial condition.
32531
32532 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
32533
32534         * gcc.c (process_command): Update copyright notice dates.
32535         * gcov.c (print_version): Likewise.
32536         * gcov-dump.c (print_version): Likewise.
32537         * mips-tfile.c (main): Likewise.
32538         * mips-tdump.c (main): Likewise.
32539
32540 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
32541
32542         PR target/41885
32543         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
32544         (rotlhi3): Delete.
32545         (rotlhi3_8): Delete.
32546         (rotlsi3): Delete.
32547         (rotlsi3_8): Delete.
32548         (rotlsi3_16): Delete.
32549         (rotlsi3_24): Delete.
32550         (rotl<mode>3): New.
32551         (*rotw<mode>3): New.
32552         (*rotb<mode>3): New.
32553         * config/avr/avr.c (avr_rotate_bytes): New function.
32554         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
32555
32556 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
32557
32558         PR target/37454
32559         * configure.ac: Modify -rdynamic check.
32560         * configure: Regenerate.
32561
32562 2010-01-08  DJ Delorie  <dj@redhat.com>
32563
32564         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
32565         register popping order.
32566
32567 2010-01-08  Richard Guenther  <rguenther@suse.de>
32568
32569         PR lto/42528
32570         * c.opt (fsigned-char): Also let LTO handle this option.
32571         (funsigned-char): Likewise.
32572
32573 2010-01-07  Richard Guenther  <rguenther@suse.de>
32574
32575         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
32576         (gimple_op): Likewise.
32577         (gimple_op_ptr): Likewise.
32578         (gimple_assign_set_lhs): Remove gcc_assert.
32579         (gimple_assign_set_rhs1): Likewise.
32580         (gimple_assign_set_rhs2): Likewise.
32581         (gimple_call_set_lhs): Likewise.
32582         (gimple_call_set_fn): Likewise.
32583         (gimple_call_set_fndecl): Likewise.
32584         (gimple_call_fndecl): Likewise.
32585         (gimple_call_return_type): Likewise.
32586         (gimple_call_set_chain): Likewise.
32587         (gimple_call_num_args): Likewise.
32588         (gimple_call_set_arg): Likewise.
32589         (gimple_cond_set_code): Likewise.
32590         (gimple_cond_set_lhs): Likewise.
32591         (gimple_cond_set_rhs): Likewise.
32592         (gimple_cond_set_true_label): Likewise.
32593         (gimple_cond_set_false_label): Likewise.
32594         (gimple_label_set_label): Likewise.
32595         (gimple_goto_set_dest): Likewise.
32596         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
32597         (gimple_debug_bind_get_value): Likewise.
32598         (gimple_debug_bind_get_value_ptr): Likewise.
32599         (gimple_debug_bind_set_var): Likewise.
32600         (gimple_debug_bind_set_value): Likewise.
32601         (gimple_debug_bind_reset_value): Likewise.
32602         (gimple_debug_bind_has_value_p): Likewise.
32603         (gimple_return_retval_ptr): Remove gcc_assert.
32604         (gimple_return_retval): Likewise.
32605         (gimple_return_set_retval): Likewise.
32606         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
32607         (safe_referenced_var_iterator): Remove.
32608         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
32609         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
32610         (fill_referenced_var_vec): Remove.
32611         (first_readonly_imm_use): Remove redundant gcc_assert.
32612         (phi_arg_index_from_use): Combine gcc_asserts.
32613         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
32614         (first_imm_use_stmt): Remove redundant gcc_assert.
32615         * tree-cfg.c (verify_gimple_call): Verify function and chain
32616         operands.  Verify arguments.
32617         (verify_types_in_gimple_stmt): Verify condition code and labels.
32618
32619 2010-01-07  Richard Guenther  <rguenther@suse.de>
32620
32621         PR tree-optimization/42641
32622         * sese.c (rename_map_elt_info): Use the SSA name version, do
32623         not hash pointers.
32624
32625 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
32626
32627         PR tree-optimization/42625
32628         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
32629         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
32630
32631 2010-01-07  Duncan Sands  <baldrick@free.fr>
32632
32633         * Makefile.in (PLUGIN_HEADERS): Add version.h.
32634
32635 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
32636
32637         PR target/42511
32638         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
32639         note itself is not function_invariant_p.
32640
32641 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
32642
32643         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
32644         Do not add the DF_NOTE problem.
32645         * store-motion.c (execute_rtl_store_motion): Likewise.
32646
32647 2010-01-07  Martin Jambor  <mjambor@suse.cz>
32648
32649         PR tree-optimization/42157
32650         * tree-sra.c (compare_access_positions): Stabilize sort if both
32651         accesses have integer types, return zero immediately if they are the
32652         same.
32653
32654 2010-01-06  Richard Henderson  <rth@redhat.com>
32655
32656         PR middle-end/41883
32657         * haifa-sched.c (add_to_note_list): Merge into ...
32658         (concat_note_lists): ... here, and ...
32659         (unlink_other_notes, rm_other_notes): Merge into...
32660         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
32661         NOTE_INSN_EPILOGUE_BEG.
32662
32663 2010-01-06  Richard Guenther  <rguenther@suse.de>
32664
32665         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
32666         not inline regular functions into always-inline functions.
32667
32668 2010-01-06  Nick Clifton  <nickc@redhat.com>
32669
32670         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
32671         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
32672         used together.
32673         (OVERRIDE_OPTIONS): Delete.
32674         (OPTIMIZATION_OPTIONS): Define.
32675         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
32676         * config/rx/rx.c (rx_handle_option): Issue an error message if
32677         -mcpu=rx200 and -fpu are used together.
32678         (rx_set_optimization_options): New function.  Issue an error
32679         message if an optimization attribute attempts to reset the FPU/
32680         math optimization pairing.
32681         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
32682         * config/rx/rx.opt: Set the default to 32-bit doubles.
32683         * config/rx/t-rx: Add multilibs for -nofpu option.
32684         * doc/invoke.texi: Update documentation of RX options.
32685
32686 2010-01-06  Richard Guenther  <rguenther@suse.de>
32687
32688         * tree-ssa-pre.c (name_to_id): New global.
32689         (alloc_expression_id): Simplify SSA name handling.
32690         (lookup_expression_id): Likewise.
32691         (init_pre): Zero name_to_id.
32692         (fini_pre): Free it.
32693
32694 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
32695
32696         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
32697
32698 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
32699
32700         PR target/42542
32701         * config/i386/sse.md (smaxv2di3): New.
32702         (umaxv2di3): Likewise.
32703         (sminv2di3): Likewise.
32704         (uminv2di3): Likewise.
32705
32706 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
32707
32708         PR target/42564
32709         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
32710         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
32711         (legitimize_tls_address): Likewise.
32712         (sparc_tls_referenced_p): Likewise.
32713         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
32714         and adjust calls to legitimize_pic_address.
32715         (legitimate_constant_p) Use sparc_tls_referenced_p.
32716         (legitimate_pic_operand_p): Likewise.
32717         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
32718         (sparc_tls_symbol_ref_1): Delete.
32719         (sparc_tls_referenced_p): Make static, recognize specific patterns.
32720         (legitimize_tls_address): Make static, handle CONST patterns.
32721         (legitimize_pic_address): Make static, remove unused parameter and
32722         adjust recursive calls.
32723         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
32724         and adjust call to legitimize_pic_address.
32725         (sparc_output_mi_thunk): Likewise.
32726
32727 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
32728             H.J. Lu  <hongjiu.lu@intel.com>
32729
32730         PR target/42542
32731         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
32732         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
32733         operands to make them signed.
32734
32735         Revert:
32736         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
32737
32738         PR target/42542
32739         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
32740         GTU to GT for V4SI and V2DI.
32741
32742         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
32743         (umin<mode>3): Removed.
32744         (uminv8hi3): New.
32745         (uminv4si3): Likewise.
32746
32747 2010-01-05  Martin Jambor  <mjambor@suse.cz>
32748
32749         PR tree-optimization/42462
32750         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
32751         current_function_decl to helper functions and macros.
32752
32753 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32754
32755         PR bootstrap/41771
32756         * flags.h: Don't include real.h.
32757         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
32758         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
32759         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
32760         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
32761         * dominance.c: Update copyright.
32762         * gimple.c (walk_gimple_op): Remove inline.
32763         * tree-ssa-reassoc.c: Include real.h.
32764         * Makefile.in (FLAGS_H): Remove $(REAL_H).
32765         (tree-ssa-reassoc.o): Depend on $(REAL_H).
32766
32767 2010-01-05  Nick Clifton  <nickc@redhat.com>
32768
32769         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
32770         register to push into the stack frame when the accumulator has to
32771         be saved during interrupts.
32772
32773 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
32774
32775         * doc/invoke.texi: Remove the documentation about option
32776         -Wunreachable-code.
32777         * common.opt (Wunreachable-code):  Preserved for backward
32778         compatibility.
32779         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
32780         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
32781         the backward compatibility flag section.
32782
32783 2010-01-05  Richard Guenther  <rguenther@suse.de>
32784
32785         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
32786
32787 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
32788
32789         PR other/42611
32790         * cfgexpand.c (expand_one_var): Diagnose too large variables.
32791
32792         PR tree-optimization/42508
32793         * tree-sra.c (convert_callers): Check for recursive call
32794         by comparing cgraph nodes instead of decls.
32795         (modify_function): Call ipa_modify_formal_parameters also
32796         on all same_body aliases.
32797
32798         * cgraphunit.c (cgraph_materialize_all_clones): Compare
32799         cgraph nodes when checking for same_body aliases.
32800
32801 2010-01-05  Richard Guenther  <rguenther@suse.de>
32802
32803         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
32804         allocation and lookup.
32805         (get_or_alloc_expr_for_constant): Likewise.
32806         (phi_translate): Sink allocation.
32807
32808 2010-01-04  Richard Guenther  <rguenther@suse.de>
32809
32810         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
32811         a new entry only if needed.
32812         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
32813         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
32814         hashtable lookup.
32815         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
32816         the result array.
32817         (phi_translate): Handle CONSTANTs early.
32818
32819 2010-01-04  Martin Jambor  <mjambor@suse.cz>
32820
32821         PR tree-optimization/42398
32822         * tree-sra.c (struct access): Removed flag grp_different_types.
32823         (dump_access): Do not dump the removed flag.
32824         (sort_and_splice_var_accesses): Do not set the removed flag.
32825         (sra_modify_expr): Check for type compatibility directly.
32826
32827 2010-01-04  Martin Jambor  <mjambor@suse.cz>
32828
32829         PR tree-optimization/42366
32830         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
32831         edges with variable number of parameters.
32832         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
32833         flag instead of asserting it.
32834         (ipa_read_node_info): Read uses_analysis_done flag.
32835
32836 2010-01-04  Richard Guenther  <rguenther@suse.de>
32837
32838         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
32839         iterative_hash_* as intended.
32840         (vn_reference_compute_hash): Likewise.  Simplify hashing
32841         SSA names.
32842         (vn_reference_lookup_2): Likewise.
32843         (vn_nary_op_compute_hash): Likewise.
32844         (vn_phi_compute_hash): Likewise.
32845         (expressions_equal_p): Remove strange code.
32846         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
32847         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
32848         (bitmap_insert_into_set_1): Take value-id as parameter.
32849         (add_to_value): Pass it.
32850         (bitmap_insert_into_set): Likewise.
32851         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
32852
32853 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
32854
32855         PR driver/42442
32856         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
32857         (do_self_spec): For switches with SWITCH_IGNORE set set also
32858         SWITCH_IGNORE_PERMANENTLY.
32859         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
32860         of SWITCH_IGNORE.
32861
32862 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
32863
32864         * lto-streamer-out.c (output_unreferenced_globals): Output the full
32865         tree of an unreferenced global var.
32866
32867 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
32868
32869         PR target/42542
32870         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
32871         GTU to GT for V4SI and V2DI.
32872
32873         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
32874         (umin<mode>3): Removed.
32875         (uminv8hi3): New.
32876         (uminv4si3): Likewise.
32877
32878 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
32879
32880         PR lto/42581
32881         * collect2.c (main): Turn on trace in collect2 if -v is passed
32882         to gcc with LTO.
32883
32884 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
32885
32886         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
32887         description of expression operand.
32888
32889 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
32890
32891         * configure.ac: Add install-html to target_list for Make-hooks.
32892         * configure: Regenerate.
32893         * fortran/Make-lang.in (F95_HTMLFILES): New.
32894         (fortran.html): Use it.
32895         (fortran.install-html): New.
32896         * Makefile.in (install-html): Add lang.install-html.
32897         * java/Make-lang.in (JAVA_HTMLFILES): New.
32898         (java.html): Use it.
32899         (java.install-html): New.
32900         * objc/Make-lang.in (objc.install-html): New.
32901         * objcp/Make-lang.in (obj-c++.install-html): New.
32902         * cp/Make-lang.in (c++.install-html): New.
32903         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
32904         * lto/Make-lang.in (lto.install-html): New.
32905
32906 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
32907
32908         PR lto/42520
32909         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
32910
32911 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
32912
32913         PR rtl-optimization/41862
32914         * store-motion.c (store_killed_in_insn, compute_store_table,
32915         remove_reachable_equiv_notes, replace_store_insn,
32916         build_store_vectors): Ignore all DEBUG_INSNs.
32917
32918 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
32919
32920         PR lto/41564
32921         * common.opt: Add dumpdir.
32922
32923         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
32924         isn't specified.
32925         (option_map): Add --dumpdir.
32926
32927         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
32928
32929         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
32930
32931         * opts.c (decode_options): Try dump_dir_name first if
32932         dump_base_name isn't an absolute path.
32933         (common_handle_option): Handle OPT_dumpdir.
32934
32935         * toplev.c (dump_dir_name): New.
32936         (print_switch_values): Also ignore -dumpdir.
32937
32938         * toplev.h (dump_dir_name): New.
32939
32940 2010-01-03  Richard Guenther  <rguenther@suse.de>
32941
32942         PR tree-optimization/42589
32943         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
32944         double-word expansion of bswap32.
32945
32946 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
32947
32948         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
32949         with BLOCK_FOR_INSN.
32950         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
32951         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
32952         noce_process_if_block): Likewise.
32953         * gcse.c (compute_local_properties, insert_expr_in_table,
32954         insert_set_in_table, canon_list_insert, find_avail_set,
32955         pre_insert_copy_insn): Likewise.
32956
32957         * basic-block.h (BLOCK_NUM): Move from here...
32958         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
32959
32960 2010-01-03  Richard Guenther  <rguenther@suse.de>
32961
32962         PR tree-optimization/42438
32963         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
32964         contains_may_not_return_call flag.
32965         (BB_MAY_NOTRETURN): New.
32966         (valid_in_sets): Trapping nary operations are not valid
32967         in blocks that may not return.
32968         (insert_into_preds_of_block): Remove check for trapping expressions.
32969         (compute_avail): Compute also BB_MAY_NOTRETURN.
32970
32971 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
32972
32973         * doc/invoke.texi: Add 2010 to copyright years.
32974
32975 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
32976
32977         * config/sparc/sparc.c: Fix formatting nits.
32978
32979 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
32980             Alexander Monakov  <amonakov@ispras.ru>
32981
32982         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
32983
32984 2010-01-02  Richard Guenther  <rguenther@suse.de>
32985
32986         PR middle-end/42577
32987         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
32988         (simplify_switch_using_ranges): Mark to be removed edges
32989         as non-executable.
32990
32991 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32992
32993         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
32994
32995         * collect2.c (scan_libraries): Add missing argument in call to
32996         scan_prog_file.
32997
32998 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
32999
33000         PR target/42448
33001         * config/alpha/predicates.md (aligned_memory_operand): Return false
33002         for CQImode.
33003         (unaligned_memory_operand): Return true for CQImode.
33004         * config/alpha/alpha.c (get_aligned_mem): Assert that location
33005         doesn not cross aligned SImode word boundary.
33006
33007 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
33008
33009         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
33010         Remove.
33011         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
33012         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
33013
33014 2010-01-02  Richard Guenther  <rguenther@suse.de>
33015
33016         PR lto/41597
33017         * toplev.c (compile_file): Emit LTO marker properly.  Change
33018         it to __gnu_lto_v1.
33019         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
33020
33021 2010-01-01  Richard Guenther  <rguenther@suse.de>
33022
33023         PR debug/42455
33024         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
33025
33026 2010-01-01  Richard Guenther  <rguenther@suse.de>
33027
33028         PR c/42570
33029         * c-decl.c (grokdeclarator): For zero-size arrays force
33030         structural equality checks as layout_type does.
33031
33032 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
33033
33034         * builtins.c: Update copyright to 2010.
33035
33036 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
33037
33038         PR lto/42531
33039         * lto-streamer-out.c (produce_asm): Revert the last change.
33040         (copy_function): Likewise.
33041
33042         * lto-streamer.c (lto_get_section_name): Skip any leading
33043         asterisk in name.
33044
33045 2010-01-01  Richard Guenther  <rguenther@suse.de>
33046
33047         PR middle-end/42559
33048         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
33049         for LABEL_DECLs.
33050
33051 \f
33052 Copyright (C) 2010 Free Software Foundation, Inc.
33053
33054 Copying and distribution of this file, with or without modification,
33055 are permitted in any medium without royalty provided the copyright
33056 notice and this notice are preserved.